Kazalo:

Prenosna delovna miza Arduino 3. del: 11 korakov
Prenosna delovna miza Arduino 3. del: 11 korakov

Video: Prenosna delovna miza Arduino 3. del: 11 korakov

Video: Prenosna delovna miza Arduino 3. del: 11 korakov
Video: Высокая плотность 2022 2024, Julij
Anonim
Prenosna delovna miza Arduino 3. del
Prenosna delovna miza Arduino 3. del
Prenosna delovna miza Arduino 3. del
Prenosna delovna miza Arduino 3. del

Če ste gledali dele 1, 2 in 2B, do zdaj v tem projektu ni bilo veliko Arduina, vendar le nekaj žic itd. Ni za kaj gre in infrastrukturni del je treba zgraditi pred dela za počitek.

To je koda elektronike in Arduino. Prejšnji pouk 2B navaja podrobnosti o napajanju.

Ta razdelek vsebuje prenosno delovno mizo z naslednjimi funkcijami

TFT zaslon na dotik z zaslonom, ki ga poganja Arduino Mega in zagotavlja naslednje

  1. 8 digitalnih prikazovalnikov, izklop/vklop/nihanje
  2. 4 prikazovalniki napetosti
  3. 3 prikaza toka/napetosti
  4. Merilnik upora E24 (ker ne morem več brati barvnih pasov)

Bom še kaj dodal, toda to je bil moj začetni cilj. Koda Arduino vsebuje tudi serijski zaslon, zaslon I2C, merilnik kapacitivnosti, digitalna stikala in osciloskop, ki jih bom dodal s časom. Prav tako se nisem čisto odločil, ali je vredno dodati napajalnik 3V3, spremenljivo napajanje ali nadzor napetosti/toka napajalnika. Doslej je bilo to zgrajeno z uporabo Mega, vendar razmišljam tudi o tem, da bi nekatere funkcije premaknil v ločena vezja za dostop do I2C, bodisi namenske čipe bodisi programirane Atmel 328, ki bodo lažje namestili drugačen krmilnik.

Zaloge

5 x 16 -smerne vtičnice za glavo

5 x 8 -smerne dupont vtičnice, dejansko narejene iz dolgih 40 -polnih enojnih vtičnic, razrezanih do zahtevane dolžine

1 x 3,5 -palčni zaslon na dotik ILI9486 TFT

1 x Arduino Mega 2650

Posamezne komponente

V skladu z besedilom vrednost nekaterih od teh ni povsem fiksna in če zamudite funkcijo, sploh ne bo potrebna:)

Digitalni vhod

16 x 10K upori

Analogni vhod

1 x TL074 quad jfet opamp, to sem imel kot rezervo, kaj podobnega bo naredilo:)

4 x 68K in 4 x 430k upori, ki se uporabljajo kot delilniki napetosti.

4 x 1N4001 ali podobno

Merilnik upora

1 x TL072 dvojni jfet opamp, to sem imel kot rezervo, kaj podobnega bo naredilo:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (če se te vrednosti spremenijo, je treba kodo Arduino posodobiti)

1. korak: Pregled elektronike

Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike

Sivo konzolo sem naredil pred 30 leti in se še vedno redno uporablja, vendar so se časi premaknili. Zagotavlja dvojna napajanja na levi strani, osrednji zvočni ojačevalnik na sredini z notranjim zvočnikom in oscilator na levi. Danes večina mojih vezij potrebuje le napajanje, od tega pa le pozitivno vodilo. Nekaj drugega je bilo potrebno, pa tudi označevanje, brez katerega sem živel, pa mi je uspelo.

Glavne zahteve za elektroniko projektne škatle so bile napajanje novejših vezij z uporabo Arduino ali Raspberry PI, zato je bilo 5 V nujno, kot tudi vtičnice USB. Osvetljena stikala mi povedo, ali je napajanje vklopljeno ali ne, pri testiranju pa moram redno graditi majhna pomožna vezja, ki dajejo začasne prikaze stanja. Imam škatlo zajetnih merilnikov, ki zavzamejo veliko prostora na klopi, predvsem pa potrebujem zaslon, ki ga lahko zlahka preberem, ko se mi slabša vid, nekaj z velikimi svetlimi liki. Zato potrebujem digitalne zaslone, merilnike napetosti, merilnike toka in v tem primeru malo razkošja v obliki merilnika upora za hitro prepoznavanje uporov serije E24, vse znotraj 15 cm od projektne plošče in v kompaktnem prenosnem ohišju.

Glavni napajalnik, opisan v prejšnjem članku, napaja pokrov s 40 -smernim trakovnim kablom, ki omogoča povezavo obeh, medtem ko je pokrov zaprt. To zagotavlja zamenjano napajanje 5v in 12V za elektroniko plošče in za dobavo plošče.

Vse napajalne in signalne vhode zagotavljajo 2x8-kanalne vtičnice za PCB vzporedno z 8-smerno dupont vtičnico. To je verjetno preveč, večina ploščic ima napajalne tirnice, vendar je bilo to enostavno narediti.

Na vtičnicah je glavna 0 -voltna tirnica napajalnika skupna vsem napajalnikom in je na voljo. Nad tem je 5V napajalnik, vklopljen na osnovno enoto, nad tem pa sta dva dobavljena napajanja +12V in -12V, ki sta trenutno fiksna, čeprav imam idejo, da vtaknem napajanje, da bo spremenljivo in zagotavlja 3.3-320V variabilna ponudba.

2. korak: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Objavil sem zaslonske odtise postavitve plošče, kako izgleda vezje, ko je zgrajeno na matrični plošči, shemo kot PDF in izvirne datoteke Fritzing. To ni posebej zapletena elektronika in namenjena je namestitvi omejevalnih uporov, ojačevalnikov medpomnilnika in odzračevanja povezav za ploščo Arduino. Obstaja pa več slik, ki nekoliko jasneje prikazujejo številne povezave. Večina ožičenja je bila sestavljena iz standardnih dolžin vnaprej stisnjenega tračnega kabla iz duponta, ki je bil ponovno sestavljen v večstopenjska ohišja, da sta oba lažje ponovno priključena in bolj zanesljiva.

Arduino Mega 2650 je nameščen v pokrovu z vtičnico USB, ki je na voljo za programiranje. Poganja zaslon na dotik TFT, ki se uporablja za prikaz vseh izhodov in vhodov.

8 digitalnih vhodov je na voljo prek 2 x 8-smerne glave tiskanega vezja, njihovo stanje pa je prikazano na zaslonu, če je izbrana ta funkcija. To je preprost zaslon za vklop/izklop, rdeč ugasnjen, zelen vklopljen. Kot prihodnjo spremembo lahko dodam nihanje.

4 napetostni vhodi so na voljo tudi preko glave tiskanega vezja in delilnika napetosti, napetosti, prikazane na zaslonu. Vsaka vhodna napetost na sprednji plošči se glede na skupno ozemljitev prenese na delitelj s 7 napetostnim delilnikom in nato medpomni z enim od štirih op-ojačevalnikov v TL074, konfiguriranem kot usmerjevalni ojačevalnik, samo da bi se izognili nesrečam z negativno napetostjo. Lepo bi bilo na neki stopnji dodati oznako polarnosti, tokrat pa ne. Izhod iz vsakega op-amp-a je na enega od ADC vhodov Arduina.

Nadaljnja glava tiskanega vezja razkriva serijske in I2C povezave. To je bilo storjeno, da se omogoči izvedba serijske konzole za prikaz in osnovne identifikacijske funkcije I2C.

Napetostni/digitalni vhodi morda niso vsi potrebni, zato jih je mogoče znova konfigurirati za zagotavljanje digitalnih preklopnih izhodov.

Arduino napaja uporni niz na delilniku napetosti, da zagotovi funkcijo merilnika upora. Izhod tega je medpomnilnik op-amp (pol TL072), preden ga Arduino prebere in izračuna upor. Namen tega ni natančno merjenje upora, ampak hitro prepoznavanje vrednosti serije E24, čeprav bi ga z nekaj umerjanjem lahko uporabili kot osnovni števec. Njegova naloga je odkriti, ko je na obeh vzmeth, nameščenih na sprednji plošči, upor manjši od 9M9, nato pa selektivno preklopite 5V na vsak upor v razdelilni matrici, dokler se ne izmeri vrednost, ki je najbližja 2,5 V, ali pa je izbran zadnji upor. nato se izračuna in primerja, da se določi vrednost E24 najbližje. 5V se napaja iz digitalnih izhodov 3-10 na Arduinu, ki so med vsakim merjenjem konfigurirani kot vhodi z visoko impedanco za zmanjšanje napak. Arduino zatiči D3-10 so bili namerno uporabljeni kot prihodnji dodatek, ki bi lahko bil merilnik kapacitivnosti z uporabo PWM zmogljivosti teh izhodov, kar bi lahko bila le sprememba programske opreme.

Spremenjena plošča INA3221 zagotavlja dodatne meritve napetosti in toka prek vmesnika I2C z vhodi s sprednje plošče. Vse je ožičeno s skakalnimi kabli, tako da bo v prihodnje preprosta dodelitev funkcij.

3. korak: Vhod napetosti/toka INA3221

INA3221 Vhod za napetost/tok
INA3221 Vhod za napetost/tok

To je bilo mišljeno kot hitra rešitev za zagotovitev meritev napetosti/toka v škatli, vendar se je izkazalo, da je bil nameščen na plošči, ki sem jo kupil, namenjen spremljanju polnjenja baterije, zato ga je bilo treba spremeniti tako, da je omogočil tri neodvisne meritve. Če lahko pri gradnji tega projekta pridobite ploščo INA3221, ki uporablja ta čip po podatkovnem listu, potem to ni potrebno.

Če pogledamo sliko, je treba v sledovih tiskanih vezij narediti tri reze, da ločimo merilne upore. Blazinice za te tri upore je treba tudi razrezati, da se ločijo od preostalega tiskanega vezja. Upori se nato povežejo z blazinicami s spajkanjem dodatnih žic kot mostov. To dokumentiram, ker je to skupna tabla in je morda edina na voljo.

Povezava s ploščo s sprednje plošče se nato izvede prek mostičnih vodnikov preko merilnih uporov.

Napajanje za ploščo se črpa iz zatičev Arduino 5V, enako kot tla, pri čemer povezave I2C gredo na elektronsko tiskano vezje.

4. korak: Zaslon

Zaslon
Zaslon

To je bil nakup eBay -a in je na voljo iz številnih virov in je zaslon z napajanjem ILI9486. Ugotovil sem, da je najbolje deloval s knjižnicami MCUFRIEND Davida Prenticeja, vendar ga je treba pred uporabo umeriti, kar je zahtevalo le, da je eden od primerov knjižnic, ki jih je dal David, zagnan s priključenim zaslonom, sledite navodilom na zaslonu in zapišite prikazane parametre in jih vstavite v kodno datoteko Arduino_Workstation_v01, če je drugačna.

Za ta projekt je bistven zaslon na dotik, ki se vrti, ker nima namenskih stikal in omogoča dodajanje menijev in funkcij v prihodnosti brez veliko ponovnega ožičenja.

5. korak: Povežite ga skupaj

Povezujemo skupaj
Povezujemo skupaj
Povezujemo skupaj
Povezujemo skupaj
Povezujemo skupaj
Povezujemo skupaj

Arduino Mega se nahaja na LHS -ju pokrova, USB in napajalna vrata pa so dostopna zunaj ohišja. Na RHS poleg Arduina je elektronika, nameščena na matrični plošči, nad tem pa je nameščena plošča INA3221 na zadnji strani pokrova.

Tudi na zadnji strani pokrova pri LHS nad Arduinom je skupna ozemljitvena plošča za ozemljitev, na katero so priključeni vsi temelji.

Čim več možnih kablov je bilo združenih skupaj v večstopenjske priključke. Zaradi tega je povezovanje vezij veliko lažje in zanesljivejše, medsebojna podpora konektorjev v večstopenjskem ohišju pa zagotavlja večjo odpornost proti popuščanju. Sledi seznam teh konsolidacij.

Vsi priključki so bili dodani na logičen način, kar je omogočilo največji dostop do povezav z mojimi nespretnimi prsti, pri čemer so povezave na sprednji plošči ostale do konca, končne povezave zaslona pa so speljane skozi montažno luknjo, ki jih je treba dokončati zadnje. Zaslon je bil pritrjen s 3D -tiskanim okvirjem.

Korak 6: Konsolidirani potencialni kupci

Konsolidirani potencialni kupci
Konsolidirani potencialni kupci
  1. Napetostni in uporni vhodi na vrata Arduino ADC, pet vodnikov 20 cm s posameznimi moškimi konektorji na enem koncu, združeni v šeststopenjsko ohišje z režo za prilagoditev vrzeli v glavi Arduino.
  2. 4 -smerni 10 -milimetrski kabel iz štirismernega ohišja v dva dvosmerna ohišja za priključitev napetostnih zatičev na sprednji plošči na vezje.
  3. 8-smerni 10-centimetrski kabel od 2x4-moške moške glave do 8-smerne ženske glave
  4. 4 -smerni 10 -cm kabel od 4 -stranskega ženskega ohišja do 4 -stranskega ženskega ohišja za priključitev serijskega in I2C na sprednjo ploščo
  5. 4 -smerni 10 -milimetrski kabel od 4 -smernega ohišja do štirih enojnih priključkov za priključitev INA3221 na sprednjo ploščo
  6. 4-smerni 20-centimetrski kabel za priključitev štirismernega ženskega ohišja na štirismerno moško ohišje za prenos Serial in I2C iz Arduina na odzračevanje vezja.
  7. 8 -stranski kabel 10 cm od 8 -stranskega ženskega ohišja do 8 -stranskega ženskega ohišja za digitalne vhode s sprednje plošče na vezje.
  8. 8 -smerni 10 -cm kabel za 8 -smerno žensko ohišje v eno 3 -smerno moško ohišje in eno 5 -smerno moško ohišje za priključitev razdelilnika upora na vezje. Dva ohišja se uporabljata za prilagoditev nestandardne vrzeli v naslovih na plošči Arduino.
  9. Dvosmerni kabel 20 cm za 2 -smerno žensko ohišje do dveh enojnih moških konektorjev za napajanje INA3221.
  10. Dvosmerni kabel 10 cm za priključitev dvosmernega ženskega ohišja na dve enojni ženski ohišji za povezavo tretjega priključka monitorja INA3221 s sprednjo ploščo.
  11. Dvosmerni kabel 10 cm za priklop dvosmernega ženskega ohišja na dvosmerno žensko ohišje za priključitev INA3221 na priključke ventilatorja I2C.

Korak 7: Koda Arduino

Koda Arduino
Koda Arduino
Koda Arduino
Koda Arduino

Ta projekt temelji na Arduino Mega 2650 iz preprostega razloga, ker sem želel veliko V/I vrat, namenjenih nalogam v preprosti obliki. Knjižnice za zaslon na dotik TFT privzeto podpirajo Arduino Uno in jih je treba urediti, da podpirajo Mega. Urejanje knjižnic podpira avtor originalne kode TFT, je preprosto in opisano v naslednjem koraku.

Uporaba zaslona na dotik je osnova tega dela projekta, toda ker je zaslon, ki ga nekdo konča, drugačen od tistega, ki sem ga uporabil, koda samo funkcije strojne opreme postavi v ločene rutine, tako da se lahko prepoznajo vse potrebne spremembe.

Delovna različica kode je vključena tukaj in bo posodobljena, vendar bodo najnovejše posodobitve na githubu.

Glavna funkcija kode se vrti okrog zaslona, pri čemer ima vsak element na zaslonu vnos v eno samo matriko, ki vsebuje vrsto elementa, kjer se na zaslonu prikaže, barvo in dodatne parametre, kot je vhodni vir. Posnetek zaslona tega niza s komentarji je prikazan zgoraj. Ima tudi polje za nadzor, ali naj se prikaže na zaslonu ali ne. Z urejanjem tega niza lahko dodate nove funkcije ali odstranite. Rutina zanke kode teče skozi to matriko neprekinjeno, pri čemer vsak primerni element obdeluje zaporedno in se nato ponavlja. Trenutno obstaja 6 različnih elementov.

Elementi menija - ti ne prikazujejo informacij, vendar se ob dotiku izvedejo povezane podprograme, opredeljene v parametrih elementa

Digitalni elementi - prikazani kot okvir na zaslonu bodisi rdeči ali zeleni, odvisno od stanja povezanega vhoda za digitalni vhod. Primer konzole je povezan z 8 digitalnimi zatiči, vendar jo lahko po želji povečate ali zmanjšate.

Analogni elementi - prikažejo približno napetost, izmerjeno na pripadajočem analognem zatiču. Sprva so navedene štiri.

Natančni elementi - prikaz vhoda iz zunanjega natančnega merilnika volt/tok. Obstajajo le trije, vendar bi lahko dodali drugi ali tretji modul.

Element upora - to je en sam element, ki prikazuje vhod iz merilnika upora.

Dotik - to je edina rutina, ki se vedno izvede, da zazna, ali se je zaslon dotaknil, in nato sprejme odločitev glede na to, kaj se je dotaknilo. če je element menija, kaj to pomeni, da je prikazano naslednje.

Zaslon ima tri načine stanja, običajen, velik in celozaslonski, vsi elementi pa spreminjajo svoje delovanje glede na stanje. Tri načine lahko izberete v meniju, tako da se dotaknete elementa in z njim povezane možnosti menija.

Običajni način - prikaže 8 digitalnih vhodov, štiri analogne napetostne vhode, tri natančne elemente, element upora in štiri elemente menija. Če v meniju izberete Normalno, se zaslon preklopi v ta način.

Veliki način - izberete ga tako, da se dotaknete katerega koli elementa na zaslonu, ki mu sledi Veliko. Ko je izbrana, je ta vrsta elementa edina izbrana in elementi te vrste so preurejeni tako, da zapolnijo celoten zaslon.

Celozaslonski način - izberete ga tako, da se dotaknete katerega koli elementa na zaslonu, ki mu sledi celozaslonski. Ko je izbran, je ta element edini prikazani element in je preurejen tako, da zapolni celoten zaslon, kar daje največjo vidnost enemu elementu.

Za dodajanje dodatne funkcionalnosti je treba dodati naslednje rutine

rutina 'draw', ki je poklicana, da pridobi informacije o tem elementu, pokliče ustrezno rutino za posodobitev zaslona in registrira vrnjene podatke o dotiku

"logična" rutina, ki sprejema informacije iz rutine risanja in uporablja ustrezne rutine gonilnika zaslona, da te informacije prikaže na zaslonu in vrne pravilne podatke o dotiku za območje narisanega zaslona

'setup' rutina, ki se imenuje kot del nastavitve Arduino

Vključene so lahko druge rutine, vendar med kodo elementa ne sme biti nobene soodvisnosti. Če element ni omogočen, se njegova koda ne bi smela izvesti, preprosta večnamenska struktura pa ohrani svojo integriteto.

8. korak: Urejanje knjižnic Arduino

Urejanje knjižnic Arduino
Urejanje knjižnic Arduino
Urejanje knjižnic Arduino
Urejanje knjižnic Arduino

Zaslon, ki sem ga uporabil, deluje zelo dobro z Arduino Uno in osnovnimi knjižnicami, ki so zanj napisane, vendar deluje počasi, ko ga neposredno prenesemo na Arduino Mega. Za pravilno upravljanje zaslona je treba uporabiti drugačen nabor podatkovnih zatičev in to spremembo uporabe je treba nastaviti v knjižnicah. To je preprosta sprememba, ki jo je avtor nameraval. Slike poudarjajo izvedene spremembe.

Dve datoteki sta shranjeni v mapi MCUFRIEND_kbv / utility kot mcufriend_shield.h in mcufriend_special.h. Potrebne spremembe so najprej v datoteki glave "ščita", da se zagotovi branje prve vrstice

#define USE_SPECIAL

zagotoviti, da je naložena "posebna" datoteka glave.

Datoteko z glavo "posebno" je treba tudi posodobiti, da se zagotovi, da vrstica

#define USE_MEGA_8BIT_PROTOSHIELD

je brez komentarja.

Ti dve spremembi pomenita, da bo koda zaslona za ta zaslon delovala z zatiči 20-29 na Arduino Mega namesto privzetih 3-10 na Uno.

9. korak: Posnetki zaslona

Posnetki zaslona
Posnetki zaslona
Posnetki zaslona
Posnetki zaslona
Posnetki zaslona
Posnetki zaslona

Sem sem dal posnetke zaslona, tako da je enostavno videti, kaj bi morala narediti konzola. Naslednji razdelek se nanaša na nalaganje kode v Arduino.

Prvi zaslon prikazuje "običajen" zaslon z meniji na vrhu, meritve napetosti na LHS, meritve napetosti in toka na RHS ter stanje digitalnega zatiča vzdolž dna, rdeče za "napačno/nizko", zeleno za "resnično/visoko" '. Končno v središču je merjenje upora.

Drugi zaslon prikazuje digitalne vhode, ki so omogočeni v velikem načinu, vsak vhod je jasno prikazan.

Tretji zaslon prikazuje napetostne vhode v velikem načinu.

10. korak: Nalaganje kode Arduino

Koda je priložena, vendar bo, kot je bilo že omenjeno, nekoč prenesena v github in tukaj dodana lokacija. Glavna datoteka izvorne kode je Arduino_Workbench_v01.ino, druge rutine pa ponujajo različne funkcije.

Če so bile knjižnice v redu spremenjene in je bila Arduino Mega2650 nastavljena kot ciljna platforma v Arduino IDE, se mora koda prvič prevesti.

Knjižnice, ki jih bo treba naložiti, so knjižnice Adafruit GFX in zaslon na dotik, ki bi morale biti na voljo pri upravitelju knjižnice Arduino, kopijo MCUFRIEND_kbv, ki jo lahko naložite iz github, za INA3221 pa knjižnico SwitchDocLabs SDL_Arduino_INA3221, ki jo je mogoče hitro naložiti tudi iz github Googlovo iskanje.

11. korak: Zadnji dotiki

Zadnji dotiki
Zadnji dotiki
Zadnji dotiki
Zadnji dotiki
Zadnji dotiki
Zadnji dotiki
Zadnji dotiki
Zadnji dotiki

Zamisel je, da bi jo uporabili za projektna dela, zato je bila izdelana odstranljiva plošča, ki vsebuje pritrdilne vijake za Arduino plošče in ploščo, celoto pritrjeno na pokrov z velcro, da jih je mogoče odstraniti in tako, da lahko različne plošče vsebujejo projekte in da je polje mogoče znova uporabiti za različne projekte, ki se izvajajo hkrati.

Pričakujem, da bo to vir za nekaj idej, da bi naredili nekaj drugačnega, boljšega ali oboje. Dodal bom dodatne funkcije, ki sem jih omenil, in jih dodal, če pa vam to kaj pomaga, vzemite, kar želite, in uživajte. Če obstajajo očitne težave, mi to sporočite.

Zdaj se bom lotil in ga uporabil, moram delati na nekaj projektih!

Priporočena: