Turinys:

Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas: 4 žingsniai
Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas: 4 žingsniai

Video: Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas: 4 žingsniai

Video: Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas: 4 žingsniai
Video: PROGRAMAR ARDUINO DESDE MÓVIL O TABLET #ingenieria #arduino #universidad #escuela #electronica 2024, Lapkritis
Anonim
Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas
Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas
Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas
Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas
Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas
Planšetinis kompiuteris/telefonas kaip „Arduino“ekranas ir 2 USD osciloskopas

Nors „Arduino“projektui galima nusipirkti pigų 320 x 240 skystųjų kristalų jutiklinį ekraną, gali būti patogiau-ypač prototipų kūrimui ir eskizo testavimui-naudoti planšetinį kompiuterį ar telefoną kaip jutiklinį ekraną ir maitinimo šaltinį. projektas. „Android“įrenginyje galite turėti daug didesnę skiriamąją gebą ir atrodyti geriau (pvz., Visos jūsų linijos bus apsaugotos nuo slapyvardžio).

„Android“pagrįstas ekranas gali būti prijungtas per USB nuoseklumą, „Bluetooth“arba „WiFi“(pvz., ESP8266).

Tuo tikslu parašiau „VectorDisplay“(šaltinis čia), „Android“programą, kuri suporuojama su „Arduino“biblioteka, kuri įgyvendina didelį „Adafruit GFX“sąsajos pogrupį. Galite parašyti kodą, kurį galima lengvai perkelti į atskirą ekraną, arba toliau naudoti eskizą su „Android“pagrįstu ekranu. Ir galite siųsti komandas iš „Android“programos, kad galėtumėte valdyti „Arduino“eskizą. „Arduino“biblioteka iš esmės nepriklauso nuo plokštės: ji turėtų veikti su bet kuria plokšte, kurioje yra USB serijinio prievado objektas, pavadintas „Serial“, arba su ESP8266 per „WiFi“arba „Bluetooth“(pirmiausia suporuokite savo plokštę).

Kaip koncepcijos pritaikymo įrodymą, perkėliau plikų kaulų STM32-O-Scope projektą, kad vietoj ILI9341 ekrano naudotų „VectorDisplay“. Rezultatas-nešiojamas, baterijomis maitinamas 1.7MS/s osciloskopas (grubus aplink kraštus), kuriam nereikia nieko daugiau nei 2 USD kainuojanti STM32F103C plokštė (naudojant „Libmaple“pagrįstą „Arduino“branduolį), du laidai, USB OTG kabelis ir „Android“įrenginys. Žinoma, viskas, ką gausite, yra diapazonas nuo 0 iki maždaug 3,3 V.

1 veiksmas: įdiekite programinę įrangą

Manau, kad turite „Arduino IDE“, sukurtą jūsų mėgstamai plokštei, ir kad jūsų mėgstamiausia plokštė turi USB nuosekliąją sąsają.

Eikite į eskizą | Įtraukti biblioteką | Tvarkyti bibliotekas. Paieškos srityje įdėkite „VectorDisplay“ir suradę spustelėkite „Įdiegti“.

Atsisiųskite bibliotekos ZIP failą iš čia.

Išpakuokite aplanką „Arduino“/bibliotekų aplanke.

Atsisiųskite „VectorDisplay“iš „Google Play“ir įdiekite ją „Android“įrenginyje. Gali tekti įgalinti diegimą iš nežinomų šaltinių „Android“įrenginyje. „Android“programoje naudojama „UsbSerial“biblioteka, o pradinis taškas buvo viena iš bibliotekos programų.

2 žingsnis: demonstracinis eskizas

Demo eskizas
Demo eskizas
Demo eskizas
Demo eskizas
Demo eskizas
Demo eskizas
Demo eskizas
Demo eskizas

Prijunkite savo plokštę (jei reikia, įkėlimo režimu) prie kompiuterio ir eikite į Failas | Pavyzdžiai | „VectorDisplay“| draugų ratai jūsų „Arduino IDE“. Spustelėkite įkėlimo mygtuką (rodyklė dešinėn).

„Android“įrenginyje paleiskite programą „VectorDisplay“. Prijunkite plokštę prie „Android“įrenginio naudodami USB OTG kabelį. (Jei jūsų plokštėje yra USB mikro prievadas, įsitikinkite, kad USB OTG prieglobos pusė eina į „Android“įrenginį). Dabar turėtumėte gauti leidimo užklausą „VectorDisplay“. Paspauskite OK.

Jei viskas gerai, dabar „VectorDisplay“kairėje ekrano pusėje bus rodomi du mygtukai: apskritimas ir spalva. Paspaudus apskritimą ekrane nupiešiamas atsitiktinis apskritimas, o spalva pakeičia spalvą į atsitiktinę spalvą prieš kitą apskritimą.

Jei pažvelgsite į apskritimų eskizą IDE, pamatysite, kad nuoseklusis vektorinis ekranas deklaruojamas taip:

„SerialDisplayClass“ekranas;

ir tada inicijuojama sąrankoje () su:

Display.begin ();

Tada komandų mygtukų prašoma naudojant „Display.addButton“(). Tada kilpa () skambina „Display.readMessage“() ir ieško komandų, siunčiamų per komandų mygtukus.

Pagal numatytuosius nustatymus ekrano koordinačių sistema yra 240x320. Tačiau visos linijos ir tekstas yra nubrėžti naudojant visą „Android“įrenginio ekrano skiriamąją gebą. Štai kodėl programa vadinama „Vector Display“.

3 žingsnis: API

Bibliotekos API yra faile „VectorDisplay.h“. Pirmiausia turite inicijuoti ekrano objektą. Jei norite naudoti USB, atlikite šiuos veiksmus:

„SerialDisplayClass“ekranas;

Inicijuokite ryšį naudodami „Display.begin“().

„SerialDisplayClass“objekte yra du metodų rinkiniai: vienas rinkinys naudoja 32 bitų spalvą (įskaitant alfa) ir komandas, kurios yra gana artimos USB serijiniam protokolui, kurį naudoja mano „VectorDisplay“programa, o kitas rinkinys yra standarto pogrupis. „Adafruit GFX“bibliotekos metodai, naudojant 16 bitų spalvas. Dažniausiai galite laisvai maišyti du komandų rinkinius, išskyrus tai, kad jei naudojate „Adafruit“suderinamus metodus, turėtumėte naudoti 16 bitų spalvų komandas, kurių pavadinimai baigiasi 565, o ne 32 bitų.

Koordinačių sistemą galite nustatyti naudodami „Display.coordinates“(plotis, aukštis). Numatytasis yra plotis = 240 ir aukštis = 320. Jei norite imituoti ekraną su ne kvadratiniais pikseliais, galite naudoti „Display.pixelAspectRatio“(santykis).

Kai kurie metodai, įskaitant „pixelAspectRatio“(), naudoja „FixedPoint32“argumentą. Tai yra 32 bitų sveikasis skaičius, reiškiantis slankiojo kablelio skaičių, kur 65536 reiškia 1,0. Norėdami konvertuoti slankiojo kablelio skaičių x į „FixedPoint32“, atlikite šiuos veiksmus: (FixedPoint32) (65536. * X) (arba tiesiog TO_FP32 (x)).

Be galimybės siųsti komandas iš „Android“mygtukų, ekrano jutikliniai įvykiai taip pat siunčiami į MCU.

Jei norite naudoti „Wi -Fi“, žr. Rings_esp8266 pavyzdį. Norėdami perjungti į „WiFi“režimą, programoje turėsite paspausti USB mygtuką.

Jei norite naudoti „Bluetooth“, turėtumėte atlikti šiuos veiksmus:

„SerialDisplayClass“ekranas („MyBluetoothSerial“);

… MyBluetoothSerial.begin (115200); Display.begin ();

ir tada tęskite, kaip ir USB serijiniame dėkle, kur „MyBluetoothSerial“yra bet koks „Stream“objektas (pvz., „Serial2“), prijungtas prie „Bluetooth“adapterio.

4 žingsnis: 2 USD osciloskopas

2 USD osciloskopas
2 USD osciloskopas
2 USD osciloskopas
2 USD osciloskopas
2 USD osciloskopas
2 USD osciloskopas

Greitam ir nešvariam osciloskopui jums reikės mėlynos arba juodos (lengviau tvarkomos) tabletės STM32F103C8 plokštės, kurią galite įsigyti „Aliexpress“už mažiau nei 2 USD. Čia aprašau, kaip paruošti plokštę naudoti su „Arduino“aplinka ir įdiegti eskizus čia.

Atsisiųskite šį eskizą lentoje, kuris yra modifikuota „Pingumacpenguin“STM32-O-Scope eskizo versija. Redaguokite #define BOARD_LED eilutę, kad ji atitiktų jūsų lentą. Aš naudoju juodą piliulę, kurios šviesos diodas yra PB12. Mėlynos spalvos tabletės (ir kai kurios juodos tabletės, turinčios tą patį tašką kaip ir mėlynos tabletės) turi šviesos diodą PC13.

Prijunkite vieną laidą-įžeminimo zondą-prie plokštės įžeminimo, o kitą-prie plokštės B0 kaiščio. Prijunkite plokštę prie „Android“įrenginio, kuriame veikia „VectorDisplay“, ir turite nešiojamą, baterijomis maitinamą osciloskopą.

Nuotraukoje osciloskopas prijungtas prie fototransistoriaus. Pėdsakas ekrane yra iš televizoriaus infraraudonųjų spindulių nuotolinio valdymo pulto.

Rekomenduojamas: