Orodha ya maudhui:

Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2: Hatua 4
Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2: Hatua 4

Video: Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2: Hatua 4

Video: Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2: Hatua 4
Video: Extract GPS location in Arduino with NEO-6m module 2024, Julai
Anonim
Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2
Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2
Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2
Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2
Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2
Ubao / Simu kama Screen Arduino, na Oscilloscope ya $ 2

Wakati mtu anaweza kununua skrini ya kugusa ya bei nafuu ya 320x240 LCD kwa mradi unaotegemea Arduino, inaweza kuwa rahisi zaidi - haswa kwa kuiga na kupima mchoro - kutumia kompyuta kibao au simu kama skrini ya kugusa na chanzo cha nguvu kwa mradi. Unaweza kuwa na azimio kubwa zaidi na onyesho bora kwenye kifaa chako cha Android (k.v., mistari yako yote itapigwa marufuku).

Skrini inayotegemea Android inaweza kushikamana kupitia USB Serial, Bluetooth au WiFi (kwa mfano, ESP8266).

Ili kufikia mwisho huo niliandika VectorDisplay (chanzo hapa), programu ya Android ambayo jozi na maktaba ya Arduino inayotumia sehemu ndogo ya kiolesura cha Adafruit GFX. Unaweza kuandika nambari ambayo inaweza kusafirishwa kwa urahisi kutumia skrini iliyosimama, au endelea kutumia mchoro na onyesho lenye msingi wa Android. Na unaweza kutuma amri kutoka kwa programu ya Android kudhibiti mchoro wa Arduino. Maktaba ya Arduino kwa kiasi kikubwa inajitegemea: inapaswa kufanya kazi na bodi yoyote ambayo hutoa kitu cha bandari ya USB inayoitwa Serial au na ESP8266 juu ya WiFi au na Bluetooth (unganisha bodi yako kwanza).

Kama uthibitisho wa matumizi ya dhana, nilituma mradi wa mifupa wazi STM32-O-Scope kutumia VectorDisplay badala ya onyesho la ILI9341. Matokeo yake ni (mbaya kuzunguka kingo) inayoweza kubeba, inayotumia betri 1.7MS / s oscilloscope ambayo haiitaji chochote zaidi ya $ 2 STM32F103C bodi (kwa kutumia msingi wa libmaple-based Arduino), waya mbili, kebo ya USB OTG na kifaa cha Android. Kwa kweli, unapata na hii ni anuwai kutoka 0 hadi karibu 3.3V.

Hatua ya 1: Sakinisha Programu

Nadhani una Arduino IDE iliyowekwa kwa bodi yako uipendayo na kwamba bodi yako uipendayo ina kiolesura cha serial cha USB.

Nenda kwa Mchoro | Jumuisha maktaba | Dhibiti maktaba. Weka "VectorDisplay" katika eneo la utaftaji na bonyeza "Sakinisha" mara tu itakapopatikana.

Pakua zip ya maktaba kutoka hapa.

Unzip kwenye folda ndani ya folda yako ya Arduino / maktaba.

Pakua VectorDisplay kutoka Google Play na usakinishe kwenye kifaa chako cha Android. Huenda ukahitaji kuwezesha usakinishaji kutoka kwa vyanzo visivyojulikana kwenye kifaa chako cha Android. Programu ya Android hutumia maktaba ya UsbSerial na mahali pa kuanzia ilikuwa moja wapo ya programu za mfano za maktaba.

Hatua ya 2: Mchoro wa Maonyesho

Mchoro wa Maonyesho
Mchoro wa Maonyesho
Mchoro wa Maonyesho
Mchoro wa Maonyesho
Mchoro wa Maonyesho
Mchoro wa Maonyesho
Mchoro wa Maonyesho
Mchoro wa Maonyesho

Unganisha bodi yako (katika hali ya kupakia ikiwa inahitajika) na kompyuta yako na nenda kwenye Faili | Mifano | VectorDisplay | miduara katika IDE yako ya Arduino. Bonyeza kitufe cha kupakia (mshale wa kulia).

Anza programu ya VectorDisplay kwenye kifaa chako cha Android. Chomeka ubao wako kwenye kifaa cha Android kupitia kebo ya USB OTG. (Ikiwa bodi yako ina bandari ndogo ya USB, hakikisha upande wako wa mwenyeji wa USB OTG huenda kwenye kifaa cha Android). Sasa unapaswa kupata swala ya ruhusa ya VectorDisplay. Bonyeza OK.

Ikiwa yote yanaenda vizuri, VectorDisplay sasa itaonyesha vifungo viwili upande wa kushoto wa skrini: Mzunguko na Rangi. Mzunguko wa kubonyeza huchora duara isiyo ya kawaida kwenye skrini na Rangi hubadilisha rangi kuwa rangi ya nasibu kabla ya duara inayofuata.

Ukiangalia mchoro wa miduara kwenye IDE, utaona kuwa onyesho la mfululizo la vector limetangazwa na:

Maonyesho ya SerialDisplayClass;

na kisha kuanza kwa kuanzisha () na:

Onyesha.anza ();

Kisha vifungo vya amri vinaombwa na Display.addButton (). Kisha kitanzi () huita Display.readMessage () kutafuta amri zinazotumwa kupitia vifungo vya amri.

Kwa chaguo-msingi, mfumo wa uratibu wa onyesho ni 240x320. Walakini, mistari na maandishi yote yametolewa kwa kutumia azimio kamili la skrini ya kifaa chako cha Android, na kuzuia uonekano mzuri. Ndio sababu programu inaitwa Uonyesho wa Vector.

Hatua ya 3: API

API katika maktaba iko kwenye faili ya VectorDisplay.h. Unahitaji kwanza kuanzisha kitu cha Onyesha. Kwa matumizi ya USB, fanya hivyo na:

Maonyesho ya SerialDisplayClass;

Anzisha unganisho na Display.begin ().

Kuna seti mbili za njia zinazopatikana kwenye kitu cha SerialDisplayClass: seti moja hutumia rangi 32-bit (pamoja na alpha) na amri ambazo ziko karibu sana na itifaki ya serial ya USB ambayo programu yangu ya VectorDisplay hutumia, na seti nyingine ni seti ndogo ya kiwango Njia za maktaba ya Adafruit GFX, kwa kutumia rangi 16-bit. Kwa sehemu kubwa unaweza kuchanganya kwa hiari seti mbili za amri, isipokuwa kwamba ukitumia njia zinazofaa za Adafruit, unapaswa kutumia amri za rangi 16-bit ambazo majina yake yanaishia na 565 badala ya zile 32-bit.

Unaweza kuweka mfumo wa kuratibu na Display.coordinates (upana, urefu). Chaguo-msingi ni upana = 240 na urefu = 320. Ikiwa unataka kuiga onyesho na saizi zisizo za mraba, unaweza kutumia Display.pixelAspectRatio (ratio).

Njia chache, pamoja na pixelAspectRatio (), chukua hoja ya FixedPoint32. Hii ni nambari 32-bit inayowakilisha nambari ya kuelea, ambapo 65536 inawakilisha 1.0. Kubadilisha nambari ya kuelea x kuwa FixedPoint32, fanya: (FixedPoint32) (65536. * X) (au tu TO_FP32 (x)).

Mbali na kuweza kutuma amri kutoka kwa vifungo vya Android, hafla za kugusa skrini pia zinatumwa kwa MCU.

Kwa matumizi ya WiFi, angalia duru_esp8266 mfano. Utahitaji kubonyeza kitufe cha USB katika programu kubadili mode ya WiFi.

Kwa Bluetooth, unapaswa kufanya:

Maonyesho ya SerialDisplayClass (MyBluetoothSerial);

… MyBluetoothSerial.begin (115200); Onyesha.anza ();

na kisha endelea kama ilivyo kwenye kesi ya serial ya USB, ambapo MyBluetoothSerial ni kitu chochote cha Mkondo (kwa mfano, Serial2) kimeunganishwa na adapta yako ya Bluetooth.

Hatua ya 4: Oscilloscope ya $ 2

Oscilloscope ya $ 2
Oscilloscope ya $ 2
Oscilloscope ya $ 2
Oscilloscope ya $ 2
Oscilloscope ya $ 2
Oscilloscope ya $ 2

Kwa oscilloscope ya haraka na chafu, utahitaji bodi ya samawati au nyeusi (rahisi kushughulika nayo) bodi ya STM32F103C8, ambayo unaweza kupata kwenye Aliexpress kwa chini ya $ 2. Ninaelezea jinsi ya kuandaa bodi kwa matumizi na mazingira ya Arduino kwa hiyo na kusanikisha michoro hapa.

Pakua mchoro huu kwenye ubao, ambayo ni toleo lililobadilishwa la mchoro wa Pingumacpenguin STM32-O-Scope. Hariri laini ya #fafanua BODI_IWEKE ili kufanana na bodi yako. Ninatumia kidonge nyeusi ambacho LED yake ni PB12. Vidonge vya hudhurungi (na vidonge vingine vyeusi ambavyo vina pini sawa na kidonge cha hudhurungi) vina LED kwenye PC13.

Unganisha uchunguzi mmoja wa waya - kwenye ardhi ya bodi na waya mwingine kwenye pini ya B0 ya bodi. Chomeka ubao kwenye kifaa cha Android na VectorDisplay inayoendesha, na una oscilloscope inayoweza kubebeka na inayotumia betri.

Kwenye picha nina oscilloscope iliyounganishwa na phototransistor. Ufuatiliaji kwenye skrini unatoka kwa udhibiti wa kijijini wa infrared TV.

Ilipendekeza: