Obsah:

Tablet/telefon jako obrazovka Arduino a osciloskop $ 2: 4 kroky
Tablet/telefon jako obrazovka Arduino a osciloskop $ 2: 4 kroky

Video: Tablet/telefon jako obrazovka Arduino a osciloskop $ 2: 4 kroky

Video: Tablet/telefon jako obrazovka Arduino a osciloskop $ 2: 4 kroky
Video: BTT - Manta E3EZ - CB1 with EMMc install 2024, Červenec
Anonim
Tablet/telefon jako obrazovka Arduino a osciloskop 2 $
Tablet/telefon jako obrazovka Arduino a osciloskop 2 $
Tablet/telefon jako obrazovka Arduino a osciloskop 2 $
Tablet/telefon jako obrazovka Arduino a osciloskop 2 $
Tablet/telefon jako obrazovka Arduino a osciloskop 2 $
Tablet/telefon jako obrazovka Arduino a osciloskop 2 $

I když je možné koupit levný dotykový displej LCD 320 x 240 pro projekt založený na Arduinu, může být pohodlnější-zejména pro prototypování a testování náčrtu-používat tablet nebo telefon jako dotykový displej i jako zdroj napájení pro projekt. Na svém zařízení Android můžete mít mnohem vyšší rozlišení a lépe vypadající displej (např. Všechny vaše řádky budou vyhlazeny).

Obrazovku se systémem Android lze připojit přes USB Serial, Bluetooth nebo WiFi (např. ESP8266).

Za tímto účelem jsem napsal VectorDisplay (zdroj zde), aplikaci pro Android, která se páruje s knihovnou Arduino, která implementuje velkou podmnožinu rozhraní Adafruit GFX. Můžete napsat kód, který lze pak snadno přenést na samostatnou obrazovku, nebo skicu dále používat s displejem se systémem Android. A z aplikace pro Android můžete odesílat příkazy k ovládání skici Arduino. Knihovna Arduino je do značné míry nezávislá na desce: měla by fungovat s jakoukoli deskou, která poskytuje objekt sériového portu USB s názvem Serial nebo s ESP8266 přes WiFi nebo s Bluetooth (nejprve spárujte desku).

Jako důkaz koncepční aplikace jsem přenesl projekt STM32-O-Scope s holými kostmi, abych místo displeje ILI9341 použil VectorDisplay. Výsledkem je (drsný kolem okrajů) přenosný osciloskop napájený bateriemi 1,7 MS/s, který nevyžaduje nic jiného než desku STM32F103C v hodnotě 2 $ (využívající jádro Arduino založené na libmaple), dva vodiče, kabel USB OTG a zařízení Android. Samozřejmě vše, co s tím získáte, je rozsah od 0 do přibližně 3,3 V.

Krok 1: Nainstalujte software

Předpokládám, že pro svou oblíbenou desku máte nastaveno Arduino IDE a vaše oblíbená deska má sériové rozhraní USB.

Přejít na Sketch | Zahrnout knihovnu | Spravovat knihovny. Do vyhledávací oblasti vložte „VectorDisplay“a po nalezení klikněte na „Instalovat“.

Stáhněte si zip knihovny odtud.

Rozbalte do složky ve složce Arduino/knihovny.

Stáhněte si VectorDisplay z Google Play a nainstalujte jej do svého zařízení Android. Možná budete muset na svém zařízení Android povolit instalaci z neznámých zdrojů. Aplikace pro Android používá knihovnu UsbSerial a výchozím bodem byla jedna z ukázkových aplikací pro knihovnu.

Krok 2: Ukázka skici

Demo skica
Demo skica
Demo skica
Demo skica
Demo skica
Demo skica
Demo skica
Demo skica

Připojte desku (v případě potřeby v režimu nahrávání) k počítači a přejděte na Soubor | Příklady | Vektorové zobrazení | kruhy ve vašem Arduino IDE. Klikněte na tlačítko pro nahrání (šipka vpravo).

Spusťte na svém zařízení Android aplikaci VectorDisplay. Připojte desku k zařízení Android pomocí kabelu USB OTG. (Pokud má vaše deska mikro port USB, ujistěte se, že vaše hostitelská strana USB OTG směřuje k zařízení Android). Nyní byste měli dostat dotaz na povolení pro VectorDisplay. Stiskněte OK.

Pokud vše půjde dobře, VectorDisplay nyní zobrazí dvě tlačítka na levé straně obrazovky: Kruh a Barva. Stisknutím kruhu nakreslíte na obrazovku náhodný kruh a Color změní barvu na náhodnou barvu před dalším kruhem.

Když se podíváte na skicu kruhů v IDE, uvidíte, že zobrazení sériového vektoru je deklarováno pomocí:

Displej SerialDisplayClass;

a poté inicializován v setup () pomocí:

Display.begin ();

Potom jsou požadována příkazová tlačítka pomocí Display.addButton (). Poté loop () zavolá Display.readMessage (), aby vyhledal příkazy odesílané pomocí příkazových tlačítek.

Ve výchozím nastavení je souřadnicový systém pro displej 240x320. Řádky a text jsou však kresleny v plném rozlišení obrazovky zařízení Android s dobrým vyhlazováním. Proto se aplikace jmenuje Vector Display.

Krok 3: API

Rozhraní API v knihovně je v souboru VectorDisplay.h. Nejprve musíte inicializovat objekt Display. Pro použití USB to proveďte pomocí:

Displej SerialDisplayClass;

Inicializujte připojení pomocí Display.begin ().

V objektu SerialDisplayClass jsou k dispozici dvě sady metod: jedna sada používá 32bitové barvy (včetně alfa) a příkazy, které jsou velmi podobné sériovému protokolu USB, který používá moje aplikace VectorDisplay, a druhá sada je podmnožinou standardu Metody knihovny Adafruit GFX s použitím 16bitové barvy. Z větší části můžete obě sady příkazů libovolně kombinovat, s výjimkou toho, že pokud používáte metody kompatibilní s Adafruit, měli byste použít 32bitové barevné příkazy, jejichž názvy končí na 325, místo 32bitových.

Souřadnicový systém můžete nastavit pomocí Display.coordinates (šířka, výška). Výchozí hodnota je width = 240 a height = 320. Chcete-li emulovat displej s nečtvercovými pixely, můžete použít Display.pixelAspectRatio (poměr).

Několik metod, včetně pixelAspectRatio (), používá argument FixedPoint32. Toto je 32bitové celé číslo představující číslo s plovoucí desetinnou čárkou, kde 65536 představuje 1,0. Chcete -li převést číslo x s plovoucí desetinnou čárkou na FixedPoint32, postupujte takto: (FixedPoint32) (65536. * X) (nebo jen TO_FP32 (x)).

Kromě možnosti odesílat příkazy z tlačítek Android jsou události dotyku obrazovky odesílány také do MCU.

Pokud jde o použití WiFi, podívejte se na příklad circle_esp8266. K přepnutí do režimu WiFi budete muset v aplikaci stisknout tlačítko USB.

V případě Bluetooth byste měli umět:

Displej SerialDisplayClass (MyBluetoothSerial);

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

a poté postupujte stejně jako v případě USB, kde je MyBluetoothSerial jakýkoli objekt Stream (např. Serial2) připojený k vašemu adaptéru Bluetooth.

Krok 4: Osciloskop A $ 2

Osciloskop 2 $
Osciloskop 2 $
Osciloskop 2 $
Osciloskop 2 $
Osciloskop 2 $
Osciloskop 2 $

K rychlému a špinavému osciloskopu budete potřebovat modrou nebo černou (snáze řešitelnou) pilulku STM32F103C8, kterou seženete na Aliexpressu za méně než 2 dolary. Popisuji, jak připravit desku pro použití s prostředím Arduino a nainstalovat zde skici.

Stáhněte si tuto skicu na tabuli, což je upravená verze skici Pingumacpenguin STM32-O-Scope. Upravte řádek #define BOARD_LED tak, aby odpovídal vaší desce. Používám černou pilulku, jejíž LED je PB12. Modré pilulky (a některé černé pilulky, které mají stejný vývod jako modrá pilulka) mají LED na PC13.

Připojte jeden vodič-zemnící sondu-k uzemnění desky a další vodič ke kolíku B0 desky. Připojte desku k zařízení Android se spuštěným VectorDisplay a máte přenosný osciloskop napájený bateriemi.

Na fotografii mám osciloskop připojený k fototranzistoru. Stopa na obrazovce pochází z infračerveného dálkového ovládání televizoru.

Doporučuje: