Satura rādītājs:

Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops: 4 soļi
Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops: 4 soļi

Video: Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops: 4 soļi

Video: Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops: 4 soļi
Video: CS50 2015 - Week 8, continued 2024, Novembris
Anonim
Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops
Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops
Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops
Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops
Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops
Planšetdators/tālrunis kā Arduino ekrāns un 2 ASV dolāru osciloskops

Lai gan projektam, kas balstīts uz Arduino, var iegādāties lētu 320x240 LCD skārienekrānu, planšetdatoru vai tālruni kā skārienekrānu un barošanas avotu var būt ērtāk izmantot, īpaši prototipu izstrādei un skices testēšanai. projekts. Android ierīcē var būt daudz augstāka izšķirtspēja un labāks izskats (piemēram, visas jūsu līnijas būs pret aliased).

Android ekrānu var savienot, izmantojot USB seriālo, Bluetooth vai WiFi (piemēram, ESP8266).

Šim nolūkam es uzrakstīju VectorDisplay (avots šeit), Android lietotni, kas ir savienota pārī ar Arduino bibliotēku, kas īsteno lielu Adafruit GFX saskarnes apakškopu. Varat rakstīt kodu, kuru pēc tam var viegli pārvietot, lai izmantotu atsevišķu ekrānu, vai turpināt izmantot skici ar Android displeju. Un jūs varat nosūtīt komandas no Android lietotnes, lai kontrolētu Arduino skici. Arduino bibliotēka lielā mērā nav atkarīga no tāfeles: tai vajadzētu strādāt ar jebkuru dēli, kas nodrošina USB seriālā porta objektu ar nosaukumu Serial vai ar ESP8266, izmantojot WiFi vai Bluetooth (vispirms savienojiet pārī savu dēli).

Lai pierādītu koncepcijas pielietojumu, es pārnesu kailu STM32-O-Scope projektu, lai ILI9341 displeja vietā izmantotu VectorDisplay. Rezultāts ir (aptuvens ap malām) pārnēsājams 1.7MS/s osciloskops, kas darbināms ar akumulatoru un kuram nav nepieciešams nekas vairāk kā 2 ASV dolāru vērtā STM32F103C plate (izmantojot uz Libmaple balstītu Arduino kodolu), divi vadi, USB OTG kabelis un Android ierīce. Protams, viss, ko jūs saņemat, ir diapazons no 0 līdz aptuveni 3,3 V.

1. darbība: instalējiet programmatūru

Es pieņemu, ka jūsu iecienītākajai plāksnei ir iestatīts Arduino IDE un jūsu iecienītajai plāksnei ir USB seriālais interfeiss.

Dodieties uz skici | Iekļaut bibliotēku | Pārvaldiet bibliotēkas. Meklēšanas apgabalā ievietojiet "VectorDisplay" un noklikšķiniet uz "Instalēt", kad tas ir atrasts.

Lejupielādējiet bibliotēkas zip no šejienes.

Izsaiņojiet mapi Arduino/bibliotēku mapē.

Lejupielādējiet VectorDisplay no Google Play un instalējiet to savā Android ierīcē. Iespējams, Android ierīcē būs jāiespējo instalēšana no nezināmiem avotiem. Android lietotnē tiek izmantota bibliotēka UsbSerial, un sākumpunkts bija viena no bibliotēkas lietotņu paraugām.

2. darbība. Demo skice

Demo skice
Demo skice
Demo skice
Demo skice
Demo skice
Demo skice
Demo skice
Demo skice

Pievienojiet savu dēli (ja nepieciešams, augšupielādes režīmā) ar datoru un dodieties uz failu | Piemēri | VectorDisplay | lokos jūsu Arduino IDE. Noklikšķiniet uz augšupielādes pogas (labā bultiņa).

Sāciet lietotni VectorDisplay savā Android ierīcē. Pievienojiet savu dēli Android ierīcei, izmantojot USB OTG kabeli. (Ja jūsu panelī ir USB mikro ports, pārliecinieties, vai USB OTG resursdatora puse tiek novirzīta uz Android ierīci). Tagad jums vajadzētu saņemt atļaujas vaicājumu VectorDisplay. Nospiediet OK.

Ja viss ir kārtībā, VectorDisplay tagad ekrāna kreisajā pusē parādīs divas pogas: aplis un krāsa. Nospiežot apli, ekrānā tiek uzzīmēts nejaušs aplis, un krāsa pirms nākamā apļa maina krāsu uz nejaušu krāsu.

Ja aplūkojat apļu skici IDE, jūs redzēsit, ka sērijveida vektora displejs ir deklarēts ar:

SerialDisplayClass Display;

un pēc tam inicializēts iestatīšanā () ar:

Display.begin ();

Pēc tam komandu pogas tiek pieprasītas ar Display.addButton (). Pēc tam cilpa () izsauc Display.readMessage (), lai meklētu komandas, kas tiek nosūtītas, izmantojot komandu pogas.

Pēc noklusējuma displeja koordinātu sistēma ir 240x320. Tomēr līnijas un teksts tiek zīmēts, izmantojot pilnu Android ierīces ekrāna izšķirtspēju, izmantojot antialiasing, lai iegūtu labu izskatu. Tāpēc lietotni sauc par vektoru displeju.

3. darbība: API

Bibliotēkas API atrodas failā VectorDisplay.h. Vispirms jāinicializē displeja objekts. USB lietošanai dariet to ar:

SerialDisplayClass Display;

Inicializējiet savienojumu ar Display.begin ().

SerialDisplayClass objektā ir pieejamas divas metožu kopas: viena kopa izmanto 32 bitu krāsu (ieskaitot alfa) un komandas, kas ir diezgan tuvu USB sērijas protokolam, ko izmanto mana lietotne VectorDisplay, bet otra kopa ir standarta apakškopa. Adafruit GFX bibliotēkas metodes, izmantojot 16 bitu krāsu. Lielākoties jūs varat brīvi sajaukt abas komandu kopas, izņemot to, ka, ja izmantojat ar Adafruit saderīgas metodes, jums jāizmanto 16 bitu krāsu komandas, kuru nosaukumi beidzas ar 565, nevis 32 bitu.

Jūs varat iestatīt koordinātu sistēmu ar Display.coordinates (platums, augstums). Noklusējums ir platums = 240 un augstums = 320. Ja vēlaties atdarināt displeju ar pikseļiem, kas nav kvadrātveida, varat izmantot Display.pixelAspectRatio (attiecība).

Dažas metodes, tostarp pixelAspectRatio (), izmanto FixedPoint32 argumentu. Šis ir 32 bitu vesels skaitlis, kas apzīmē peldošā komata skaitli, kur 65536 ir 1,0. Lai peldošā komata skaitli x pārvērstu par FixedPoint32, rīkojieties šādi: (FixedPoint32) (65536. * X) (vai vienkārši TO_FP32 (x)).

Papildus iespējai nosūtīt komandas no Android pogām, ekrāna skāriena notikumi tiek nosūtīti arī uz MCU.

Lai izmantotu Wi -Fi, skatiet piemēru circles_esp8266. Lai pārslēgtos uz WiFi režīmu, lietotnē būs jānospiež USB poga.

Izmantojot Bluetooth, jums vajadzētu būt iespējai veikt šādas darbības:

SerialDisplayClass displejs (MyBluetoothSerial);

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

un pēc tam rīkojieties tāpat kā USB sērijas korpusā, kur MyBluetoothSerial ir kāds straumes objekts (piemēram, Serial2), kas ir pievienots jūsu Bluetooth adapterim.

4. solis: Osciloskops par 2 USD

Osciloskops 2 USD vērtībā
Osciloskops 2 USD vērtībā
Osciloskops 2 USD vērtībā
Osciloskops 2 USD vērtībā
Osciloskops 2 USD vērtībā
Osciloskops 2 USD vērtībā

Lai iegūtu ātru un netīru osciloskopu, jums būs nepieciešama zila vai melna (vieglāk lietojama) tablete STM32F103C8, kuru varat iegādāties vietnē Aliexpress par mazāk nekā 2 ASV dolāriem. Šeit es aprakstīju, kā sagatavot dēli lietošanai ar Arduino vidi, un šeit instalēt skices.

Lejupielādējiet šo skici uz tāfeles, kas ir modificēta Pingumacpenguin STM32-O-Scope skices versija. Rediģējiet #define BOARD_LED rindu, lai tā atbilstu jūsu dēlam. Es izmantoju melnu tableti, kuras gaismas diode ir PB12. Zilajām tabletēm (un dažām melnām tabletēm, kurām ir tāda pati zīme kā zilajām tabletēm) ir gaismas diode PC13.

Pievienojiet vienu vadu-zemējuma zondi-plāksnes zemei un otru vadu-plāksnes B0 tapai. Pievienojiet dēli Android ierīcei, kurā darbojas VectorDisplay, un jums ir pārnēsājams, ar baterijām darbināms osciloskops.

Fotogrāfijā osciloskops ir pievienots fototransistoram. Ekrāna pēdas ir no televizora infrasarkanās tālvadības pults.

Ieteicams: