Tartalomjegyzék:

Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp: 4 lépés
Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp: 4 lépés

Videó: Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp: 4 lépés

Videó: Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp: 4 lépés
Videó: High Density 2022 2024, November
Anonim
Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp
Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp
Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp
Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp
Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp
Táblagép/telefon Arduino képernyőként és 2 dolláros oszcilloszkóp

Míg az Arduino-alapú projekthez olcsó 320x240-es LCD érintőképernyőt vásárolhat, kényelmesebb lehet-különösen prototípus-készítés és vázlat tesztelése esetén-, ha táblagépet vagy telefont használ érintőképernyőként és áramforrásként. projekt. Sokkal nagyobb felbontású és jobban kinéző kijelzővel rendelkezhet Android-eszközén (pl. Minden sora anti-alias lesz).

Az Android-alapú képernyő csatlakoztatható USB soros, Bluetooth vagy WiFi kapcsolaton keresztül (pl. ESP8266).

Ennek érdekében írtam a VectorDisplay -t (forrás itt), egy Android -alkalmazást, amely párosul egy Arduino könyvtárral, amely az Adafruit GFX felület nagy részhalmazát valósítja meg. Írhat olyan kódot, amely könnyen átvihető önálló képernyőre, vagy továbbra is használja a vázlatot Android-alapú kijelzővel. És parancsokat küldhet az Android alkalmazásból az Arduino vázlat vezérléséhez. Az Arduino könyvtár nagyrészt táblafüggetlen: minden olyan táblával együtt kell működnie, amely USB soros port objektumot biztosít Serial néven, vagy ESP8266-tal WiFi vagy Bluetooth kapcsolaton keresztül (először párosítsa a táblát).

A koncepció alkalmazásának bizonyítékaként áthelyeztem a csupasz csontok STM32-O-Scope projektjét a VectorDisplay használatára az ILI9341 kijelző helyett. Az eredmény egy (durva a szélek körül) hordozható, elemmel működtetett 1.7MS/s oszcilloszkóp, amelyhez nem kell több, mint egy 2 dollár értékű STM32F103C kártya (a libmaple-alapú Arduino mag használatával), két vezeték, egy USB OTG kábel és egy Android-eszköz. Természetesen ezzel csak 0 és 3,3 V közötti tartomány érhető el.

1. lépés: Telepítse a szoftvert

Feltételezem, hogy Arduino IDE van beállítva a kedvenc táblájához, és a kedvenc táblája rendelkezik USB soros interfésszel.

Lépjen a Sketch | oldalra Könyvtár | Könyvtárak kezelése. Tegye a "VectorDisplay" -t a keresési területre, és kattintson a "Telepítés" gombra, ha megtalálta.

Töltse le a könyvtár zip -jét innen.

Csomagolja ki az Arduino/libraries mappában található mappába.

Töltse le a VectorDisplay programot a Google Playről, és telepítse azt Android -eszközére. Előfordulhat, hogy engedélyeznie kell a telepítést ismeretlen forrásokból Android -eszközén. Az Android alkalmazás az UsbSerial könyvtárat használja, és a kiindulópont a könyvtár egyik példalkalmazása volt.

2. lépés: Demó vázlat

Demó vázlat
Demó vázlat
Demó vázlat
Demó vázlat
Demó vázlat
Demó vázlat
Demó vázlat
Demó vázlat

Csatlakoztassa a táblát (feltöltési módban, ha szükséges) a számítógéphez, és lépjen a Fájl | Példák | VectorDisplay | körök az Arduino IDE -ben. Kattintson a feltöltés gombra (jobbra mutató nyíl).

Indítsa el a VectorDisplay alkalmazást Android -eszközén. Csatlakoztassa a táblát az Android -eszközhöz USB OTG kábelen keresztül. (Ha a tábla rendelkezik USB mikro porttal, győződjön meg arról, hogy az USB OTG gazdaoldal az Android -eszközre megy). Most engedélykérést kell kapnia a VectorDisplay számára. Nyomja meg az OK gombot.

Ha minden jól megy, a VectorDisplay most két gombot jelenít meg a képernyő bal oldalán: Kör és Színes. A Kör megnyomása véletlenszerű kört rajzol a képernyőn, a Szín pedig a következő kör előtt véletlenszerűre változtatja a színt.

Ha megnézi a körök vázlatát az IDE -ben, látni fogja, hogy a soros vektoros megjelenítés a következőképpen van deklarálva:

SerialDisplayClass kijelző;

majd inicializálva a setup () -ban:

Display.begin ();

Ezután a Display.addButton () paranccsal kéri a parancsgombokat. Ezután a loop () felhívja a Display.readMessage () parancsot, hogy megkeresse a parancsgombokkal küldött parancsokat.

Alapértelmezés szerint a kijelző koordináta -rendszere 240x320. Mindazonáltal a vonalak és a szöveg az Android -eszköz képernyőjének teljes felbontásával készülnek, és antialiasing a jó megjelenés érdekében. Ezért hívják az alkalmazást Vector Display -nek.

3. lépés: API

A könyvtár API -ja a VectorDisplay.h fájlban található. Először inicializálnia kell egy Display objektumot. USB használat esetén tegye ezt a következőkkel:

SerialDisplayClass kijelző;

Inicializálja a kapcsolatot a Display.begin () segítségével.

A SerialDisplayClass objektumban kétféle metódus áll rendelkezésre: az egyik készlet 32 bites színt használ (beleértve az alfa-t is), és olyan parancsokat használ, amelyek nagyon közel állnak a VectorDisplay alkalmazásom által használt USB soros protokollhoz, a másik pedig a szabvány részhalmaza. Adafruit GFX könyvtári módszerek, 16 bites szín használatával. A két parancskészletet nagyrészt szabadon keverheti, azzal a kivétellel, hogy ha az Adafruit kompatibilis módszereket használja, akkor azokat a 16 bites színparancsokat használja, amelyek neve 565-tel végződik a 32 bites helyett.

A koordináta -rendszert a Display.koordinátákkal állíthatja be (szélesség, magasság). Az alapértelmezett szélesség = 240 és magasság = 320. Ha nem négyzet alakú képpontokat szeretne emulálni, akkor használja a Display.pixelAspectRatio (arány) lehetőséget.

Néhány módszer, köztük a pixelAspectRatio (), FixedPoint32 argumentumot használ. Ez egy 32 bites egész szám, amely lebegőpontos számot jelent, ahol a 65536 1,0. Ha egy x lebegőpontos számot FixedPoint32 -ba szeretne konvertálni, tegye a következőket: (FixedPoint32) (65536. * X) (vagy csak TO_FP32 (x)).

Amellett, hogy parancsokat tud küldeni az Android gombjairól, a képernyő érintési eseményeit az MCU is elküldi.

A WiFi használatához lásd a körök_esp8266 példát. A WiFi módra váltáshoz meg kell nyomnia az USB gombot az alkalmazásban.

Bluetooth esetén a következőket kell tennie:

SerialDisplayClass kijelző (MyBluetoothSerial);

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

majd folytassa, mint az USB soros esetben, ahol a MyBluetoothSerial bármilyen Stream objektum (pl. Serial2) van csatlakoztatva a Bluetooth adapterhez.

4. lépés: 2 dolláros oszcilloszkóp

2 dolláros oszcilloszkóp
2 dolláros oszcilloszkóp
2 dolláros oszcilloszkóp
2 dolláros oszcilloszkóp
2 dolláros oszcilloszkóp
2 dolláros oszcilloszkóp

A gyors és piszkos oszcilloszkóphoz szüksége lesz egy kék vagy fekete (könnyebben kezelhető) pirula STM32F103C8 táblára, amelyet 2 dollár alatt kaphat meg az Aliexpress -en. Itt leírom, hogyan kell előkészíteni a táblát az Arduino környezettel való használatra, és itt vázlatokat telepíteni.

Töltse le ezt a vázlatot a tábláról, amely a Pingumacpenguin STM32-O-Scope vázlatának módosított változata. Szerkessze a #define BOARD_LED sort, hogy megfeleljen a táblájának. Fekete pirulát használok, amelynek LED -je PB12. A kék pirulákon (és néhány fekete pirulán, amely megegyezik a kék pirulával) a LED a PC13 -on van.

Csatlakoztasson egy vezetéket-földelő szondát-a kártya testéhez, egy másik vezetéket pedig a tábla B0 érintkezőjéhez. Csatlakoztassa a táblát egy Android -eszközhöz, amelyen a VectorDisplay fut, és van egy hordozható, elemmel működő oszcilloszkópja.

A képen az oszcilloszkóp egy fototranzisztorhoz van csatlakoztatva. A nyomkövetés a képernyőn egy TV infravörös távirányítójáról származik.

Ajánlott: