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, Juli
Anonim
Tablet/telefon kao Arduino ekran i osciloskop od 2 USD
Tablet/telefon kao Arduino ekran i osciloskop od 2 USD
Tablet/telefon kao Arduino ekran i osciloskop od 2 USD
Tablet/telefon kao Arduino ekran i osciloskop od 2 USD
Tablet/telefon kao Arduino ekran i osciloskop od 2 USD
Tablet/telefon kao Arduino ekran i osciloskop od 2 USD

Iako se može kupiti jeftin LCD ekran 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 ekran osjetljiv na dodir i izvor napajanja za projekt. Na Android uređaju možete imati mnogo veću rezoluciju i ljepši ekran (na primjer, sve vaše linije bit će uklonjene sa zamjenskog naziva).

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

U tu svrhu napisao sam VectorDisplay (izvor ovdje), Android aplikaciju koja se uparuje s Arduino bibliotekom koja implementira veliki podskup Adafruit GFX sučelja. Možete napisati kôd koji se zatim može lako prenijeti na samostalni ekran ili nastaviti koristiti skicu s ekranom zasnovanim na Androidu. I možete slati naredbe iz Android aplikacije za kontrolu Arduino skice. Arduino biblioteka u velikoj je mjeri neovisna o ploči: trebala bi raditi sa bilo kojom pločom koja pruža 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 projekat STM32-O-Scope sa golim kostima da koristim VectorDisplay umjesto ekrana ILI9341. Rezultat je (grubi po rubovima) prijenosni, osciloskop sa pogonom na bateriju od 1,7MS/s koji ne zahtijeva ništa više od 2 USD STM32F103C ploče (koristeći jezgro Arduino zasnovano 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 biblioteku | Upravljajte bibliotekama. Stavite "VectorDisplay" u područje pretraživanja i kliknite na "Install" kada se pronađe.

Zip biblioteke preuzmite odavde.

Raspakirajte u fasciklu u mapi 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. Android aplikacija koristi biblioteku UsbSerial, a početna točka bila je jedna od primjera aplikacija za biblioteku.

Korak 2: Demo skica

Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch

Povežite svoju ploču (u načinu učitavanja ako je potrebno) sa računarom i idite na Datoteka | Primjeri | VectorDisplay | krugova u vašem Arduino IDE -u. Kliknite na dugme za otpremanje (strelica nadesno).

Pokrenite aplikaciju VectorDisplay na svom Android uređaju. Uključ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 host strana ide na Android uređaj). Sada biste trebali dobiti upit za dozvolu za VectorDisplay. Pritisnite OK.

Ako sve prođe dobro, VectorDisplay će sada prikazati dva dugmeta na lijevoj strani ekrana: Krug i Boja. Pritiskom na krug iscrtava se nasumični krug na ekranu, 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 Display;

a zatim inicijaliziran u setup () sa:

Display.begin ();

Zatim se traže komandni tasteri sa Display.addButton (). Zatim loop () poziva Display.readMessage () da traži naredbe koje se šalju putem komandnih dugmadi.

Prema zadanim postavkama, koordinatni sistem za prikaz je 240x320. Međutim, sve linije i tekst iscrtani su punom rezolucijom ekrana vašeg Android uređaja, sa antialiasingom za dobar izgled. Zato se aplikacija naziva Vector Display.

Korak 3: API

API u biblioteci se nalazi u datoteci VectorDisplay.h. Morate prvo inicijalizirati Display objekt. Za upotrebu USB -a učinite to sa:

SerialDisplayClass Display;

Inicijalizirajte vezu pomoću 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. U većini slučajeva možete slobodno miješati dva skupa naredbi, s izuzetkom da, ako koristite metode kompatibilne s Adafruit-om, trebate koristiti 16-bitne naredbe u boji čija imena završavaju s 565 umjesto 32-bitnih.

Koordinatni sistem možete postaviti pomoću Display.coordinates (širina, visina). Zadana vrijednost je width = 240 i height = 320. Ako želite oponašati ekran 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 ekrana šalju se i na MCU.

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

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

SerialDisplayClass Display (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 u Arduino okruženju i ovdje instalirati skice.

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

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

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

Preporučuje se: