Obsah:

Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre: 4 kroky
Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre: 4 kroky

Video: Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre: 4 kroky

Video: Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre: 4 kroky
Video: How I Play Games in 2022!! Modern CRT Gaming! 2024, Júl
Anonim
Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre
Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre
Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre
Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre
Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre
Tablet/telefón ako obrazovka Arduino a osciloskop v cene 2 doláre

Aj keď je možné kúpiť lacný dotykový displej LCD s rozlíšením 320 x 240 pixlov pre projekt založený na Arduine, môže byť pohodlnejšie-najmä pre prototypovanie a testovanie náčrtu-používať tablet alebo telefón ako dotykový displej aj ako zdroj energie pre projekt. Na svojom zariadení s Androidom môžete mať oveľa vyššie rozlíšenie a lepšie vyzerajúci displej (napríklad všetky vaše riadky budú vyhladené).

Obrazovku so systémom Android je možné pripojiť pomocou USB Serial, Bluetooth alebo WiFi (napr. ESP8266).

Za týmto účelom som napísal VectorDisplay (zdroj tu), aplikáciu pre Android, ktorá sa páruje s knižnicou Arduino, ktorá implementuje veľkú podmnožinu rozhrania Adafruit GFX. Môžete napísať kód, ktorý potom bude možné ľahko preniesť, aby ste mohli používať samostatnú obrazovku, alebo skicu naďalej používať s displejom založeným na systéme Android. A z aplikácie pre Android môžete odosielať príkazy na ovládanie náčrtu Arduino. Knižnica Arduino je do značnej miery nezávislá na doske: mala by fungovať s akoukoľvek doskou, ktorá poskytuje objekt sériového portu USB s názvom Sériový, alebo s ESP8266 cez WiFi alebo Bluetooth (najskôr spárujte dosku).

Ako dôkaz koncepčnej aplikácie som preniesol projekt STM32-O-Scope s holými kosťami, aby namiesto displeja ILI9341 použil VectorDisplay. Výsledkom je (drsný okolo okrajov) prenosný osciloskop poháňaný batériami s frekvenciou 1,7 ms/s, ktorý nevyžaduje nič viac ako dosku STM32F103C v cene 2 doláre (s využitím jadra Arduino na báze libmaple), dva vodiče, kábel USB OTG a zariadenie Android. Všetko, čo s tým získate, je samozrejme rozsah od 0 do asi 3,3 V.

Krok 1: Nainštalujte softvér

Predpokladám, že pre svoju obľúbenú dosku máte nastavené IDE Arduino a že vaša obľúbená doska má sériové rozhranie USB.

Prejsť na Skicu | Zahrnúť knižnicu | Spravovať knižnice. Do vyhľadávacej oblasti vložte „VectorDisplay“a po nájdení kliknite na „Inštalovať“.

Stiahnite si zip knižnice odtiaľto.

Rozbaľte do priečinka v priečinku Arduino/knižnice.

Stiahnite si VectorDisplay z Google Play a nainštalujte si ho do svojho zariadenia s Androidom. Na svojom zariadení s Androidom možno budete musieť povoliť inštaláciu z neznámych zdrojov. Aplikácia pre Android používa knižnicu UsbSerial a východiskovým bodom bola jedna z ukážkových aplikácií pre knižnicu.

Krok 2: Ukážka náčrtu

Ukážka náčrtu
Ukážka náčrtu
Ukážka náčrtu
Ukážka náčrtu
Ukážka náčrtu
Ukážka náčrtu
Ukážka náčrtu
Ukážka náčrtu

Pripojte dosku (v prípade potreby v režime nahrávania) k počítaču a prejdite na položku Súbor | Príklady | Vektorový displej | kruhy vo vašom IDE Arduino. Kliknite na tlačidlo nahrávania (šípka doprava).

Spustite aplikáciu VectorDisplay na svojom zariadení s Androidom. Pripojte dosku k zariadeniu Android pomocou kábla USB OTG. (Ak má vaša doska mikroport USB, uistite sa, že hostiteľská strana USB OTG smeruje k zariadeniu Android). Teraz by ste mali dostať žiadosť o povolenie pre VectorDisplay. Stlačte tlačidlo OK.

Ak všetko pôjde dobre, VectorDisplay teraz zobrazí dve tlačidlá na ľavej strane obrazovky: Kruh a Farba. Stlačením kruhu nakreslíte náhodný kruh na obrazovku a farba zmení farbu na náhodnú farbu pred ďalším kruhom.

Ak sa pozriete na náčrt kruhov v IDE, uvidíte, že sériové vektorové zobrazenie je deklarované pomocou:

Displej SerialDisplayClass;

a potom sa inicializuje v setup () pomocou:

Display.begin ();

Potom sú požadované príkazové tlačidlá pomocou Display.addButton (). Potom loop () zavolá Display.readMessage (), aby vyhľadal príkazy odosielané prostredníctvom príkazových tlačidiel.

Štandardne je súradnicový systém pre displej 240 x 320. Riadky a text sú však kreslené v plnom rozlíšení obrazovky vášho zariadenia s Androidom s dobrým vyhladením. Preto sa aplikácia nazýva Vector Display.

Krok 3: API

Rozhranie API v knižnici je v súbore VectorDisplay.h. Najprv musíte inicializovať objekt Display. Ak chcete použiť USB, urobte to pomocou:

Displej SerialDisplayClass;

Inicializujte spojenie s Display.begin ().

V objekte SerialDisplayClass sú k dispozícii dve sady metód: jedna sada používa 32-bitovú farbu (vrátane alfa) a príkazy, ktoré sú veľmi podobné sériovému protokolu USB, ktorý používa moja aplikácia VectorDisplay, a druhá sada je podmnožinou štandardu Metódy knižnice Adafruit GFX pomocou 16-bitovej farby. Väčšinou môžete tieto sady príkazov ľubovoľne kombinovať, s výnimkou toho, že ak používate metódy kompatibilné s Adafruit, mali by ste použiť 16-bitové farebné príkazy, ktorých názvy končia 565 namiesto 32-bitových.

Súradnicový systém môžete nastaviť pomocou súradníc Display.coordinates (šírka, výška). Predvolená hodnota je šírka = 240 a výška = 320. Ak chcete napodobniť zobrazenie s inými ako štvorcovými pixelmi, môžete použiť Display.pixelAspectRatio (pomer).

Niektoré z metód, vrátane pixelAspectRatio (), používajú argument FixedPoint32. Toto je 32-bitové celé číslo predstavujúce číslo s pohyblivou rádovou čiarkou, kde 65536 predstavuje 1,0. Ak chcete číslo x s pohyblivou rádovou čiarkou previesť na FixedPoint32, postupujte takto: (FixedPoint32) (65536. * X) (alebo len TO_FP32 (x)).

Okrem možnosti odosielať príkazy z tlačidiel systému Android sa udalosti dotyku obrazovky odosielajú aj na MCU.

Informácie o použití WiFi nájdete v príklade circle_esp8266. Na prepnutie do režimu WiFi budete musieť v aplikácii stlačiť tlačidlo USB.

Pokiaľ ide o Bluetooth, mali by ste byť schopní urobiť:

Displej SerialDisplayClass (MyBluetoothSerial);

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

a potom postupujte rovnako ako v sériovom prípade USB, kde je k MyBluetoothSerial pripojený akýkoľvek objekt Stream (napr. Serial2) k vášmu adaptéru Bluetooth.

Krok 4: Osciloskop A $ 2

Osciloskop 2 doláre
Osciloskop 2 doláre
Osciloskop 2 doláre
Osciloskop 2 doláre
Osciloskop 2 doláre
Osciloskop 2 doláre

Na rýchly a špinavý osciloskop budete potrebovať modrú alebo čiernu (ľahšie zvládnuteľnú) dosku STM32F103C8, ktorú dostanete na Aliexpress za menej ako 2 doláre. Popisujem, ako pripraviť dosku na použitie v prostredí Arduino a nainštalovať tu náčrty.

Stiahnite si tento náčrt na tabuľu, ktorá je upravenou verziou náčrtu Pingumacpenguin STM32-O-Scope. Upravte riadok #define BOARD_LED tak, aby zodpovedal vášmu plánu. Používam čiernu pilulku, ktorej LED je PB12. Modré pilulky (a niektoré čierne pilulky, ktoré majú rovnaký vývod ako modrá pilulka) majú LED na PC13.

Pripojte jeden vodič-uzemňovaciu sondu-k uzemneniu dosky a ďalší vodič ku kolíku B0 dosky. Pripojte dosku k zariadeniu Android so spusteným VectorDisplay a máte prenosný osciloskop napájaný batériami.

Na fotografii mám osciloskop pripojený k fototranzistoru. Stopa na obrazovke pochádza z infračerveného diaľkového ovládača televízora.

Odporúča: