INHOUDSOPGAWE:

Tablet/telefoon as 'n Arduino -skerm en 'n $ 2 -ossilloskoop: 4 stappe
Tablet/telefoon as 'n Arduino -skerm en 'n $ 2 -ossilloskoop: 4 stappe

Video: Tablet/telefoon as 'n Arduino -skerm en 'n $ 2 -ossilloskoop: 4 stappe

Video: Tablet/telefoon as 'n Arduino -skerm en 'n $ 2 -ossilloskoop: 4 stappe
Video: удаление неизвестного объекта 2024, November
Anonim
Tablet/telefoon as 'n Arduino -skerm, en 'n $ 2 -ossilloskoop
Tablet/telefoon as 'n Arduino -skerm, en 'n $ 2 -ossilloskoop
Tablet/telefoon as 'n Arduino -skerm, en 'n $ 2 -ossilloskoop
Tablet/telefoon as 'n Arduino -skerm, en 'n $ 2 -ossilloskoop
Tablet/telefoon as 'n Arduino -skerm en 'n $ 2 -ossilloskoop
Tablet/telefoon as 'n Arduino -skerm en 'n $ 2 -ossilloskoop

Alhoewel u 'n goedkoop 320x240 LCD-aanraakskerm vir 'n Arduino-projek kan koop, kan dit geriefliker wees-veral vir prototipering en toets van 'n skets-om 'n tablet of telefoon as 'n aanraakskerm en 'n kragbron vir 'n projek. U kan 'n baie hoër resolusie en 'n beter vertoning op u Android-toestel hê (byvoorbeeld, al u reëls sal anti-alias wees).

Die Android-gebaseerde skerm kan verbind word via USB Serial, Bluetooth of WiFi (bv. ESP8266).

Vir hierdie doel het ek VectorDisplay (bron hier) geskryf, 'n Android -app wat gekoppel is aan 'n Arduino -biblioteek wat 'n groot deelversameling van die Adafruit GFX -koppelvlak implementeer. U kan kode skryf wat dan maklik oorgedra kan word om 'n selfstandige skerm te gebruik, of die skets kan gebruik met 'n Android-gebaseerde skerm. En u kan opdragte vanaf die Android -app stuur om die Arduino -skets te beheer. Die Arduino-biblioteek is grootliks onafhanklik van die bord: dit moet werk met enige bord wat 'n USB-seriële poortvoorwerp met die naam Serial of 'n ESP8266 via WiFi of met Bluetooth bied (koppel eers u bord).

As bewys van die konseptoepassing, het ek die kaalbene STM32-O-Scope-projek oorgedra om VectorDisplay te gebruik in plaas van die ILI9341-skerm. Die resultaat is 'n (ruwe rand) draagbare, battery-aangedrewe 1.7MS/s-ossilloskoop wat niks meer benodig as 'n $ 2 STM32F103C-bord (met behulp van die libmaple-gebaseerde Arduino-kern), twee drade, 'n USB OTG-kabel en 'n Android-toestel. Al wat u hiermee kry, is natuurlik 'n reeks van 0 tot ongeveer 3.3V.

Stap 1: Installeer sagteware

Ek neem aan dat u 'n Arduino IDE vir u gunsteling bord opgestel het en dat u gunsteling bord 'n USB -seriële koppelvlak het.

Gaan na Skets | Sluit biblioteek in | Bestuur biblioteke. Plaas 'VectorDisplay' in die soekgebied en klik op 'Installeer' sodra dit gevind is.

Laai die zip -biblioteek hier af.

Pak die rits in 'n gids in u gids Arduino/biblioteke.

Laai VectorDisplay af van Google Play en installeer dit op u Android -toestel. Miskien moet u die installasie vanaf onbekende bronne op u Android -toestel moontlik maak. Die Android -app gebruik die UsbSerial -biblioteek en die beginpunt was een van die voorbeeldprogramme vir die biblioteek.

Stap 2: Demoskets

Demoskets
Demoskets
Demoskets
Demoskets
Demoskets
Demoskets
Demoskets
Demoskets

Koppel u bord (indien nodig in die oplaai -modus) aan u rekenaar en gaan na File | Voorbeelde | Vectorvertoning | kringe in u Arduino IDE. Klik op die oplaai -knoppie (pyltjie regs).

Begin die VectorDisplay -app op u Android -toestel. Koppel u kaart aan die Android -toestel via 'n USB -OTG -kabel. (As u kaart 'n USB -mikropoort het, maak seker dat u USB OTG -gasheerkant na die Android -toestel gaan). U behoort nou 'n toestemmingsnavraag vir VectorDisplay te kry. Druk OK.

As alles goed gaan, sal VectorDisplay nou twee knoppies aan die linkerkant van die skerm vertoon: sirkel en kleur. Deur op Circle te druk, word 'n ewekansige sirkel op die skerm geteken en Color verander die kleur na 'n ewekansige kleur voor die volgende sirkel.

As u na die sirkelskets in die IDE kyk, sal u sien dat die seriële vektorvertoning verklaar word met:

SerialDisplayClass -skerm;

en dan geïnitialiseer in setup () met:

Display.begin ();

Dan word opdragknoppies aangevra met Display.addButton (). Skakel dan lus () Display.readMessage () om opdragte te soek wat via die opdragknoppies gestuur word.

Die koördinaatstelsel vir die skerm is standaard 240x320. Lyne en teks word egter almal geteken met behulp van die volledige resolusie van die skerm van u Android -toestel, met antialiasing vir 'n goeie voorkoms. Daarom word die app Vector Display genoem.

Stap 3: API

Die API in die biblioteek is in die VectorDisplay.h -lêer. U moet eers 'n Display -voorwerp initialiseer. Vir USB -gebruik, doen dit met:

SerialDisplayClass -skerm;

Begin die verbinding met Display.begin ().

Daar is twee stelle metodes beskikbaar in die SerialDisplayClass-voorwerp: een stel gebruik 32-bis kleur (insluitend alfa) en opdragte wat redelik naby is aan die USB-seriële protokol wat my VectorDisplay-app gebruik, en die ander stel is 'n deelversameling van die standaard Adafruit GFX biblioteekmetodes, met 16-bis kleur. U kan meestal die twee stelle opdragte vrylik meng, met die uitsondering dat as u die met Adafruit-versoenbare metodes gebruik maak, u die 16-bis kleuropdragte moet gebruik waarvan die name eindig met 565 in plaas van die 32-bis.

U kan die koördinaatstelsel instel met Display Coordinates (breedte, hoogte). Die standaard is breedte = 240 en hoogte = 320. As u 'n skerm met nie-vierkante pixels wil navolg, kan u Display.pixelAspectRatio (verhouding) gebruik.

'N Paar van die metodes, insluitend pixelAspectRatio (), neem 'n FixedPoint32 -argument. Dit is 'n 32-bis-heelgetal wat 'n drywende puntgetal verteenwoordig, waar 65536 1.0 voorstel. Om 'n drywende punt nommer x na FixedPoint32 om te skakel, doen: (FixedPoint32) (65536. * X) (of net TO_FP32 (x)).

Behalwe dat u opdragte vanaf Android -knoppies kan stuur, word skermaanvalgebeurtenisse ook na die MCU gestuur.

Sien die voorbeeld van sirkels_esp8266 vir WiFi -gebruik. U moet op die USB -knoppie in die app druk om oor te skakel na die WiFi -modus.

Vir Bluetooth moet u die volgende kan doen:

SerialDisplayClass -skerm (MyBluetoothSerial);

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

en gaan dan voort, net soos in die USB -seriële omhulsel, waar MyBluetoothSerial die Stream -voorwerp (bv. Serial2) aan u Bluetooth -adapter gekoppel is.

Stap 4: 'n Osilloskoop van $ 2

'N Osilloskoop van $ 2
'N Osilloskoop van $ 2
'N Osilloskoop van $ 2
'N Osilloskoop van $ 2
'N Osilloskoop van $ 2
'N Osilloskoop van $ 2

Vir die vinnige en vuil ossilloskoop benodig u 'n blou of swart (makliker om te hanteer) pil STM32F103C8 -bord, wat u op Aliexpress vir minder as $ 2 kan kry. Ek beskryf hoe om die bord voor te berei vir gebruik in die Arduino -omgewing daarvoor en sketse hier te installeer.

Laai hierdie skets op die bord af, 'n aangepaste weergawe van Pingumacpenguin se STM32-O-Scope-skets. Wysig die #definieer BOARD_LED -reël om by u bord te pas. Ek gebruik 'n swart pil waarvan die LED PB12 is. Die blou pille (en 'n paar swart pille met dieselfde pinout as die blou pil) het die LED op PC13.

Koppel een draad-grondsonde-aan die bord se grond en 'n ander draad aan die bord se B0-pen. Koppel die bord aan op 'n Android -toestel met VectorDisplay, en u het 'n draagbare, battery -aangedrewe ossilloskoop.

Op die foto het ek die ossilloskoop gekoppel aan 'n fototransistor. Die spoor op die skerm is van 'n TV -infrarooi afstandsbediening.

Aanbeveel: