Sadržaj:

Tablet/telefon kao Arduino ekran i osciloskop od 2 USD: 4 koraka
Tablet/telefon kao Arduino ekran i osciloskop od 2 USD: 4 koraka

Video: Tablet/telefon kao Arduino ekran i osciloskop od 2 USD: 4 koraka

Video: Tablet/telefon kao Arduino ekran i osciloskop od 2 USD: 4 koraka
Video: Сделайте осциллограф своими руками 10 долларов против обычного осциллографа 450 долларов с 2024, Studeni
Anonim
Tablet/telefon kao Arduino zaslon i osciloskop od 2 USD
Tablet/telefon kao Arduino zaslon i osciloskop od 2 USD
Tablet/telefon kao Arduino zaslon i osciloskop od 2 USD
Tablet/telefon kao Arduino zaslon i osciloskop od 2 USD
Tablet/telefon kao Arduino zaslon i osciloskop od 2 USD
Tablet/telefon kao Arduino zaslon i osciloskop od 2 USD

Iako se može kupiti jeftin LCD zaslon osjetljiv na dodir veličine 320x240 za projekt zasnovan na Arduinu, može biti prikladnije-posebno za izradu prototipova i testiranje skice-koristiti tablet ili telefon kao zaslon osjetljiv na dodir i izvor napajanja za projekt. Na Android uređaju možete imati puno veću razlučivost i ljepši prikaz (na primjer, sve vaše linije bit će uklonjene s druge strane).

Zaslon zasnovan na Androidu mogao bi se povezati putem USB serijske veze, Bluetootha ili WiFi-a (npr. ESP8266).

U tu svrhu napisao sam VectorDisplay (izvor ovdje), Android aplikaciju koja se uparuje s Arduino knjižnicom koja implementira veliki podskup Adafruit GFX sučelja. Možete napisati kôd koji se zatim može lako prenijeti na samostalni zaslon ili nastaviti koristiti skicu s zaslonom temeljenim na Androidu. I možete poslati naredbe iz Android aplikacije za kontrolu Arduino skice. Arduino knjižnica uvelike je neovisna o ploči: trebala bi raditi sa bilo kojom pločom koja nudi objekt serijskog USB porta pod nazivom Serial ili s ESP8266 preko WiFi-a ili Bluetooth-a (prvo uparite svoju ploču).

Kao dokaz primjene koncepta, prenio sam projekt STM32-O-Scope s golim kostima da koristim VectorDisplay umjesto zaslona ILI9341. Rezultat je (grub po rubovima) prijenosni, osciloskop s pogonom na bateriju od 1,7MS/s koji ne zahtijeva ništa više od 2 USD vrijedne ploče STM32F103C (pomoću jezgre Arduino zasnovane na libmapleu), dvije žice, USB OTG kabel i Android uređaj. Naravno, sve što dobijete s ovim je raspon od 0 do oko 3,3 V.

Korak 1: Instalirajte softver

Pretpostavljam da ste za svoju omiljenu ploču postavili Arduino IDE i da vaša omiljena ploča ima USB serijsko sučelje.

Idite na Sketch | Uključi knjižnicu | Upravljajte knjižnicama. Stavite "VectorDisplay" u područje pretraživanja i kliknite "Install" kada se pronađe.

Zip knjižnice preuzmite odavde.

Raspakirajte u mapu unutar mape Arduino/biblioteke.

Preuzmite VectorDisplay s Google Playa i instalirajte ga na svoj Android uređaj. Možda ćete morati omogućiti instalaciju iz nepoznatih izvora na svom Android uređaju. Aplikacija Android koristi biblioteku UsbSerial, a početna točka bila je jedna od primjera aplikacija za biblioteku.

Korak 2: Demo skica

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

Povežite ploču (u načinu prijenosa ako je potrebno) s računalom i idite na Datoteka | Primjeri | VectorDisplay | krugova u vašem Arduino IDE -u. Pritisnite gumb za prijenos (strelica desno).

Pokrenite aplikaciju VectorDisplay na svom Android uređaju. Priključite ploču u Android uređaj putem USB OTG kabela. (Ako vaša ploča ima USB mikro priključak, pobrinite se da vaša USB OTG strana domaćina ide na Android uređaj). Sada biste trebali dobiti upit za dopuštenje za VectorDisplay. Pritisnite OK.

Ako sve bude u redu, VectorDisplay će sada prikazati dva gumba na lijevoj strani zaslona: Krug i Boja. Pritiskom na krug na ekranu se iscrtava nasumični krug, a boja mijenja boju u nasumičnu boju prije sljedećeg kruga.

Ako pogledate skicu krugova u IDE -u, vidjet ćete da je prikaz serijskog vektora deklariran sa:

SerialDisplayClass zaslon;

a zatim inicijaliziran u setup () s:

Display.begin ();

Zatim se traže naredbeni gumbi s Display.addButton (). Zatim loop () poziva Display.readMessage () da traži naredbe koje se šalju putem naredbenih gumba.

Prema zadanim postavkama, koordinatni sustav za prikaz je 240x320. Međutim, sve linije i tekst iscrtani su punom razlučivošću zaslona vašeg Android uređaja, s antialiasingom za dobar izgled. Zato se aplikacija naziva Vector Display.

Korak 3: API

API u knjižnici nalazi se u datoteci VectorDisplay.h. Najprije morate inicijalizirati objekt prikaza. Za upotrebu USB -a učinite to s:

SerialDisplayClass zaslon;

Inicijalizirajte vezu s Display.begin ().

U objektu SerialDisplayClass dostupna su dva skupa metoda: jedan skup koristi 32-bitnu boju (uključujući alfa) i naredbe koje su prilično bliske USB serijskom protokolu koji koristi moja aplikacija VectorDisplay, a drugi skup je podskup standarda Metode biblioteke Adafruit GFX, koristeći 16-bitnu boju. Uglavnom možete slobodno miješati dva skupa naredbi, s izuzetkom da ako koristite metode kompatibilne s Adafruitom, trebate koristiti 16-bitne naredbe u boji čija imena završavaju s 565 umjesto 32-bitnih.

Koordinatni sustav možete postaviti pomoću Display.coordinates (širina, visina). Zadana vrijednost je širina = 240 i visina = 320. Ako želite oponašati zaslon s ne-kvadratnim pikselima, možete koristiti Display.pixelAspectRatio (omjer).

Nekoliko metoda, uključujući pixelAspectRatio (), uzimaju argument FixedPoint32. Ovo je 32-bitni cijeli broj koji predstavlja broj s pomičnim zarezom, gdje 65536 predstavlja 1,0. Za pretvaranje broja s pomičnim zarezom x u FixedPoint32 učinite sljedeće: (FixedPoint32) (65536. * X) (ili samo TO_FP32 (x)).

Osim što mogu slati naredbe s Android tipki, događaji dodira zaslona šalju se i na MCU.

Za korištenje WiFi -a pogledajte primjer circu_esp8266. Morat ćete pritisnuti gumb USB u aplikaciji da biste se prebacili u WiFi način.

Za Bluetooth trebali biste moći učiniti sljedeće:

Zaslon SerialDisplayClass (MyBluetoothSerial);

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

a zatim nastavite isto kao u USB serijskom kućištu, gdje je MyBluetoothSerial bilo koji Stream objekt (npr. Serial2) spojen na vaš Bluetooth adapter.

Korak 4: Osciloskop od 2 USD

Osciloskop od 2 USD
Osciloskop od 2 USD
Osciloskop od 2 USD
Osciloskop od 2 USD
Osciloskop od 2 USD
Osciloskop od 2 USD

Za brzi i prljavi osciloskop trebat će vam plava ili crna ploča (s kojom se lakše nositi) pilula STM32F103C8, koju možete nabaviti na Aliexpressu za manje od 2 USD. Opisujem kako pripremiti ploču za upotrebu s okruženjem Arduino za nju i ovdje instalirati skice.

Preuzmite ovu skicu na ploču, koja je modificirana verzija Pingumacpenguinove skice STM32-O-Scope. Uredite liniju #define BOARD_LED tako da odgovara vašoj ploči. Koristim crnu tabletu čija je LED dioda PB12. Plave pilule (i neke crne pilule koje imaju isti pinout kao plava pilula) imaju LED na PC13.

Spojite jednu žicu-sondu za uzemljenje-na masu ploče, a drugu žicu na pin B0 ploče. Uključite ploču u Android uređaj s pokrenutim VectorDisplay i imate prijenosni osciloskop na baterije.

Na fotografiji imam osciloskop spojen na fototranzistor. Trag na ekranu je s infracrvenog daljinskog upravljača televizora.

Preporučeni: