Kazalo:

Tablica/telefon kot zaslon Arduino in osciloskop za 2 USD: 4 koraki
Tablica/telefon kot zaslon Arduino in osciloskop za 2 USD: 4 koraki

Video: Tablica/telefon kot zaslon Arduino in osciloskop za 2 USD: 4 koraki

Video: Tablica/telefon kot zaslon Arduino in osciloskop za 2 USD: 4 koraki
Video: ESP8266 ESP01 WI-FI-UART | Программирование LDmicro-Roboremo 2024, November
Anonim
Tablični računalnik/telefon kot zaslon Arduino in osciloskop za 2 USD
Tablični računalnik/telefon kot zaslon Arduino in osciloskop za 2 USD
Tablični računalnik/telefon kot zaslon Arduino in osciloskop za 2 USD
Tablični računalnik/telefon kot zaslon Arduino in osciloskop za 2 USD
Tablični računalnik/telefon kot zaslon Arduino in osciloskop za 2 USD
Tablični računalnik/telefon kot zaslon Arduino in osciloskop za 2 USD

Čeprav lahko za projekt, ki temelji na Arduinu, kupite poceni zaslon na dotik velikosti 320x240, je lahko bolj priročno-zlasti za izdelavo prototipov in preizkušanje skice-uporabljati tablični računalnik ali telefon kot zaslon na dotik in vir energije za projekt. V napravi Android imate lahko veliko višjo ločljivost in lepši zaslon (na primer, vse vaše vrstice bodo uglašene).

Zaslon, ki temelji na sistemu Android, je mogoče povezati prek zaporedne povezave USB, Bluetooth ali WiFi (npr. ESP8266).

V ta namen sem napisal VectorDisplay (vir tukaj), aplikacijo za Android, ki je povezana s knjižnico Arduino, ki izvaja veliko podskupino vmesnika Adafruit GFX. Lahko napišete kodo, ki jo lahko nato preprosto prenesete za uporabo samostojnega zaslona, ali še naprej uporabljate skico z zaslonom, ki temelji na sistemu Android. Iz aplikacije za Android lahko pošiljate ukaze za nadzor skice Arduino. Knjižnica Arduino je v veliki meri neodvisna od plošče: delovati mora s katero koli ploščo, ki ponuja objekt serijskih vrat USB z imenom Serial, ali z ESP8266 prek WiFi ali Bluetooth (najprej seznanite svojo ploščo).

Kot dokaz uporabe koncepta sem portretiral projekt STM32-O-Scope z golimi kostmi, da sem namesto zaslona ILI9341 uporabil VectorDisplay. Rezultat je (grobo okrog robov) prenosni osciloskop z močjo 1,7 ms/s, ki deluje na baterije in ne potrebuje nič več kot 2 USD vredna plošča STM32F103C (z uporabo jedra Arduino na osnovi libmaple), dve žici, kabel USB OTG in napravo Android. Seveda s tem dobite le razpon od 0 do približno 3,3 V.

1. korak: Namestite programsko opremo

Predvidevam, da imate za svojo najljubšo ploščo nastavljen Arduino IDE in da ima vaša najljubša plošča serijski vmesnik USB.

Pojdi na Skico | Vključi knjižnico | Upravljajte knjižnice. V iskalno polje vnesite "VectorDisplay" in kliknite "Namesti", ko ga najdete.

Zip knjižnice prenesite od tukaj.

Razpakirajte v mapo v mapi Arduino/knjižnice.

Prenesite VectorDisplay iz Googla Play in ga namestite v napravo Android. Morda boste morali v napravi Android omogočiti namestitev iz neznanih virov. Aplikacija za Android uporablja knjižnico UsbSerial, izhodišče pa je bila ena od primerov aplikacij za knjižnico.

2. korak: Demo skica

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

Ploščo (po potrebi v načinu nalaganja) povežite z računalnikom in pojdite na Datoteka | Primeri | VectorDisplay | krogih v vašem Arduino IDE. Kliknite gumb za nalaganje (puščica desno).

Zaženite aplikacijo VectorDisplay v napravi Android. Ploščo priključite v napravo Android prek kabla USB OTG. (Če ima vaša plošča mikro vrata USB, se prepričajte, da je gostiteljska stran USB OTG nameščena v napravi Android). Zdaj bi morali dobiti poizvedbo o dovoljenju za VectorDisplay. Pritisnite OK.

Če bo vse v redu, bo VectorDisplay zdaj prikazal dva gumba na levi strani zaslona: krog in barvo. S pritiskom na krog se na zaslonu prikaže naključni krog, Barva pa spremeni barvo v naključno pred naslednjim krogom.

Če pogledate skico krogov v IDE, boste videli, da je serijski vektorski prikaz deklariran z:

Zaslon SerialDisplayClass;

in nato inicializiran v setup () z:

Display.begin ();

Nato se z Display.addButton () zahtevajo ukazni gumbi. Nato loop () pokliče Display.readMessage (), da poišče ukaze, poslane prek ukaznih gumbov.

Koordinatni sistem zaslona je privzeto 240x320. Vse črte in besedilo pa so narisani s polno ločljivostjo zaslona naprave Android z antialiasingom za dober videz. Zato se aplikacija imenuje Vector Display.

3. korak: API

API v knjižnici je v datoteki VectorDisplay.h. Najprej morate inicializirati objekt Display. Za uporabo USB naredite to z:

Zaslon SerialDisplayClass;

Inicializirajte povezavo z Display.begin ().

V objektu SerialDisplayClass sta na voljo dva niza metod: en niz uporablja 32-bitno barvo (vključno z alfa) in ukaze, ki so precej blizu serijskemu protokolu USB, ki ga uporablja moja aplikacija VectorDisplay, drugi niz pa je podmnožica standarda Metode knjižnice Adafruit GFX z uporabo 16-bitnih barv. Večinoma lahko prosto mešate oba niza ukazov, z izjemo tega, da če uporabljate združljive metode Adafruit, uporabite 16-bitne barvne ukaze, katerih imena se končajo s 565 namesto 32-bitnih.

Koordinatni sistem lahko nastavite z Display.coordinates (širina, višina). Privzeto je širina = 240 in višina = 320. Če želite posnemati zaslon z ne kvadratnimi pikami, lahko uporabite Display.pixelAspectRatio (razmerje).

Nekaj metod, vključno s pixelAspectRatio (), sprejme argument FixedPoint32. To je 32-bitno celo število, ki predstavlja število s plavajočo vejico, kjer 65536 predstavlja 1,0. Če želite pretvoriti število s plavajočo vejico x v FixedPoint32, naredite: (FixedPoint32) (65536. * X) (ali samo TO_FP32 (x)).

Poleg tega, da lahko pošiljate ukaze z gumbov Android, se dogodki ob dotiku zaslona pošiljajo tudi v MCU.

Za uporabo WiFi si oglejte primer krogov_esp8266. Če želite preklopiti v način WiFi, morate v aplikaciji pritisniti gumb USB.

Za Bluetooth morate narediti naslednje:

Zaslon SerialDisplayClass (MyBluetoothSerial);

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

in nato nadaljujte tako kot v serijskem ohišju USB, kjer je MyBluetoothSerial kateri koli predmet Stream (npr. Serial2), priključen na vaš adapter Bluetooth.

4. korak: Osciloskop za 2 USD

Osciloskop za 2 USD
Osciloskop za 2 USD
Osciloskop za 2 USD
Osciloskop za 2 USD
Osciloskop za 2 USD
Osciloskop za 2 USD

Za hiter in umazan osciloskop boste potrebovali modro ali črno tableto (z njo je lažje ravnati) tableto STM32F103C8, ki jo lahko dobite na Aliexpressu za manj kot 2 USD. Opisujem, kako pripraviti ploščo za uporabo v okolju Arduino in namestiti skice tukaj.

Prenesite to skico na ploščo, ki je spremenjena različica skice STM32-O-Scope podjetja Pingumacpenguin. Uredite vrstico #define BOARD_LED tako, da ustreza vaši deski. Uporabljam črno tableto, katere LED je PB12. Modre tablete (in nekatere črne tablete, ki imajo enak pinout kot modra tableta) imajo LED na PC13.

Priključite eno žico-ozemljitveno sondo-na ozemljitev plošče, drugo žico pa na pin B0 plošče. Ploščo priključite v napravo Android s programom VectorDisplay in imate prenosni osciloskop z baterijskim napajanjem.

Na fotografiji imam osciloskop priklopljen na fototranzistor. Sled na zaslonu je iz infrardečega daljinskega upravljalnika televizorja.

Priporočena: