Sadržaj:

Arduino prijenosni radni stol, dio 3: 11 koraka
Arduino prijenosni radni stol, dio 3: 11 koraka

Video: Arduino prijenosni radni stol, dio 3: 11 koraka

Video: Arduino prijenosni radni stol, dio 3: 11 koraka
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Srpanj
Anonim
Arduino prijenosni radni stol, dio 3
Arduino prijenosni radni stol, dio 3
Arduino prijenosni radni stol, dio 3
Arduino prijenosni radni stol, dio 3

Ako ste gledali dijelove 1, 2 i 2B, do sada u ovom projektu nije bilo mnogo Arduina, ali samo nekoliko žica ploča itd. Nije o čemu se radi, a infrastrukturni dio mora biti izgrađen prije radovi na odmoru.

Ovo je elektronika i Arduino kod. Prethodni 2B instruktori navode pojedinosti o napajanju.

Ovaj odjeljak opisuje prijenosni radni stol sa sljedećim značajkama

TFT zaslon osjetljiv na dodir koji pruža zaslon, a pokreće ga Arduino Mega kako bi omogućio sljedeće

  1. 8 digitalnih zaslona, isključeno/uključeno/oscilira
  2. 4 pokazivača napona
  3. 3 prikaza struje/napona
  4. E24 mjerač otpora (jer više ne mogu čitati trake u boji)

Bit će još stvari koje ću dodati, ali ovo mi je bila početna meta. Arduino kôd također navodi serijski zaslon, I2C zaslon, mjerač kapaciteta, digitalne prekidače i osciloskop koje ću dodati kako vrijeme prolazi. Također nisam sasvim odlučio je li vrijedno dodati napajanje 3V3, promjenjivo napajanje ili nadzor napona/struje napajanja. Do sada je ovo bilo izgrađeno pomoću Mega -e, ali također razmatram premještanje nekih funkcija u zasebne krugove kojima pristupa I2C, bilo namjenske čipove ili programirane Atmel 328 -e koji će lakše prilagoditi drugi kontroler.

Pribor

5 x 16 smjera utičnica za glavu

Dupont utičnice 5 x 8 smjerova, zapravo izrađene od dugih 40 -strukih jednorednih utičnica izrezanih do potrebne duljine

1 x 3,5 ILI9486 TFT zaslon osjetljiv na dodir

1 x Arduino Mega 2650

Pojedinačne komponente

Prema tekstu, vrijednost nekih od njih nije apsolutno fiksna, a ako propustite funkciju, uopće neće biti potrebna:)

Digitalni ulaz

16 x 10K otpornici

Analogni ulaz

1 x TL074 quad jfet opamp, ovo sam imao kao rezervu, sve slično će poslužiti:)

4 x 68K i 4 x 430k otpornici koji se koriste kao razdjelnici napona.

4 x 1N4001 ili slično

Mjerač otpora

1 x TL072 dvostruki jfet opamp, ovo sam imao kao rezervu, sve slično će poslužiti:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (Ako se ove vrijednosti promijene, Arduino kôd se mora ažurirati)

Korak 1: Pregled elektronike

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

Sivu konzolu sam napravio prije 30 godina i još uvijek se redovito koristi, ali vremena su se pomaknula. Omogućuje dvostruko napajanje na lijevoj strani, središnje audio pojačalo u sredini, s unutarnjim zvučnikom i oscilator na lijevoj strani. Ovih dana većini mojih krugova treba samo napajanje, a od toga samo pozitivna vodilica. Bilo je potrebno nešto drugačije, kao i etiketiranje bez kojeg sam živio, pa uspio sam.

Glavni zahtjevi za elektroniku projektne kutije bili su napajanje novijih krugova pomoću Arduina ili Raspberry PI -ja tako da je 5 V bilo bitno kao i USB utičnice. Svijetleći prekidači govore mi je li napajanje uključeno ili ne, a pri testiranju moram redovito graditi male pomoćne krugove kako bih privremeno prikazao status. Imam kutiju glomaznih brojila koja zauzimaju puno prostora na klupi, a prije svega potreban mi je zaslon koji mogu lako čitati jer mi se vid pogoršava, nešto s velikim, svijetlim likovima. Zato su mi potrebni digitalni zasloni, mjerači napona, mjerači struje, a u ovom slučaju malo luksuza u obliku mjerača otpora za brzu identifikaciju otpornika serije E24, sve unutar 15 cm od projektne ploče i u kompaktnom, prijenosnom kućištu.

Glavni izvor napajanja, opisan u prethodnom članku, napaja poklopac pomoću 40 -putnog vrpčnog kabela koji omogućuje njihovo spajanje dok je poklopac zatvoren. Time se osigurava izmjenjivo napajanje 5v i 12V za elektroniku ploče i za napajanje matične ploče.

Svi ulazi za napajanje i signal osigurani su 2x8-putnim utičnicama za PCB-u paralelno s 8-smjernom dupont utičnicom. Ovo je vjerojatno pretjerano, većina matičnih ploča ima vodilice, ali to je bilo jednostavno učiniti.

Na utičnicama za napajanje, glavna 0V vodilica napajanja zajednička je svim opskrbama i dostupna je. Iznad ovoga je napajanje od 5 V, uključeno na osnovnoj jedinici, a iznad toga su dva isporučena napajanja +12V i -12V, koja su trenutno fiksna, iako imam ideju hakirati napajanje kako bi bilo promjenjivo i osiguralo 3,3-20 V promjenjiva opskrba.

Korak 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Objavio sam otiske zaslona izgleda matične ploče, kako krug izgleda kada je izgrađen na matričnoj ploči, shemu kao PDF i izvorne datoteke Fritzing. Ovo nije osobito složena elektronika i tu je za ugradnju ograničavajućih otpornika, međuspremnika i pojačavanja priključaka za Arduino ploču. No, postoji nekoliko slika koje jasnije prikazuju mnoge veze. Većina ožičenja sastavljena je od standardnih duljina unaprijed presavijenog dupont vrpčnog kabela koji je ponovno sastavljen u višesmjerna kućišta kako bi ih bilo lakše ponovno spojiti i bili pouzdaniji.

Arduino Mega 2650 montiran je u poklopac s USB utičnicom dostupnom za programiranje. Pokreće TFT zaslon osjetljiv na dodir koji se koristi za prikaz svih izlaza i ulaza.

8 digitalnih ulaza dostupno je putem 2 x 8-smjernog PCB zaglavlja, a njihov status se prikazuje na zaslonu ako je odabrana ta funkcija. Ovo je jednostavan zaslon za uključivanje/isključivanje, crveno isključeno, zeleno uključeno. Mogu dodati oscilirajuće kao buduću promjenu.

4 naponska ulaza također su dostupna putem zaglavlja PCB -a i razdjelnika napona, napona prikazanog na ekranu. Svaki ulazni napon na prednjoj ploči, u odnosu na zajedničko uzemljenje, prenosi se na razdjelnik napona 7 podijeljen, a zatim se međuspremnik uključuje u jedno od četiri op-pojačala u TL074 konfiguriranom kao ispravljačko pojačalo, samo kako bi se izbjegle nezgode s negativnim naponima. Bilo bi lijepo dodati indikaciju polariteta u nekoj fazi, ali ne ovaj put. Izlaz iz svakog op-pojačala ide na jedan od ADC ulaza Arduina.

Daljnje zaglavlje PCB -a otkriva i serijske i I2C veze. To je učinjeno kako bi se omogućila implementacija konzole za serijski zaslon i osnovne funkcije identifikacije I2C.

Napon/digitalni ulazi mogu se pokazati kao da nisu svi potrebni pa se mogu ponovno konfigurirati za pružanje digitalnih sklopnih izlaza.

Arduino pokreće niz otpora na razdjelniku napona kako bi osigurao funkcionalnost mjerača otpora. Izlaz ovoga je međuspremnik op-amp-a (pola TL072) prije nego ga Arduino pročita i izračuna otpor. Svrha ovoga nije točno mjerenje otpora, već brzo identificiranje vrijednosti serije E24, iako bi se uz određenu kalibraciju moglo koristiti kao osnovni mjerač. Njegova je operacija otkriti kada je otpor manji od 9M9 prisutan na dvije opruge postavljene na prednjoj ploči, a zatim selektivno prebaciti 5V na svaki otpornik u nizu razdjelnika dok se ne izmjeri vrijednost najbliža 2,5 V ili odabere zadnji otpornik, a zatim se vrši izračun i usporedba kako bi se odredila najbliža vrijednost E24. 5V se napaja iz digitalnih izlaza 3-10 na Arduinu koji su konfigurirani kao visoko impedancijski ulazi između svakog mjerenja kako bi se smanjile pogreške. Arduino pinovi D3-10 namjerno su korišteni kao budući dodatak koji bi mogao biti mjerač kapaciteta pomoću PWM sposobnosti ovih izlaza, što bi potencijalno moglo biti samo promjena softvera.

Modificirana ploča INA3221 pruža dodatna mjerenja napona i struje putem I2C sučelja s ulazima s prednje ploče. Sve je ožičeno pomoću kratkospojnih kabela tako da će ponovna dodjela funkcija u budućnosti biti jednostavna.

Korak 3: INA3221 Ulaz napona/struje

INA3221 Ulaz napona/struje
INA3221 Ulaz napona/struje

Ovo je bilo zamišljeno kao brzo rješenje za osiguravanje mjerenja napona/struje u kutiji, ali pokazalo se da je, kao što je implementirano na ploči koju sam kupio, namjeravalo pratiti punjenje baterije pa se moralo izmijeniti kako bi omogućilo tri neovisna mjerenja. Ako pri izgradnji ovog projekta možete nabaviti ploču INA3221 koja implementira ovaj čip prema podatkovnoj tablici, to nije potrebno.

Gledajući sliku, potrebno je napraviti tri reza na tragovima PCB -a kako bi se odvojili mjerni otpornici. Jastučići za ova tri otpornika također se moraju izrezati kako bi se odvojili od ostatka PCB -a. Otpornici se zatim spajaju s pločicama lemljenjem dodatnih žica kao mostovi. Dokumentiram ovo jer je ovo uobičajena ploča i možda je jedina dostupna.

Spajanje na ploču s prednje ploče tada se vrši preko kratkospojnih vodova preko mjernih otpornika.

Napajanje ploče uzima se iz Arduino 5V pinova kao i uzemljenje, a I2C veze idu na elektroničku tiskanu ploču.

Korak 4: Zaslon zaslona

Zaslon
Zaslon

Ovo je bila kupnja na eBayu i dostupna je iz mnogih izvora, a zaslon je zasnovan na ILI9486. Otkrio sam da je najbolje funkcionirao s MCUFRIEND knjižnicama Davida Prenticea, ali mora se kalibrirati prije uporabe, što je samo zahtijevalo da se jedan od primjera knjižnice koje je David dao pokrene sa spojenim zaslonom, slijedite upute na ekranu i zapišite prikazane parametre, umetanjem u datoteku koda Arduino_Workstation_v01 ako se razlikuje.

Za ovaj projekt zaslon osjetljiv na dodir je bitan, on se vrti bez namjenskih prekidača i mogućnosti za dodavanje izbornika i funkcija u budućnosti bez mnogo ponovnog ožičenja.

Korak 5: Povežite ga zajedno

Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno

Arduino Mega nalazi se na LHS poklopcu, a njegovi USB i priključci za napajanje dostupni su izvan kućišta. Na RHS -u pored Arduina nalazi se elektronika postavljena na matričnu ploču, a iznad toga je montirana ploča INA3221 na stražnjoj strani poklopca.

Također na stražnjoj strani poklopca u LHS -u iznad Arduina nalazi se zajednička ploča za uzemljenje na koju su spojena sva uzemljenja.

Što je više moguće kabela spojeno je zajedno u višeputne konektore. To čini spajanje krugova mnogo lakšim i pouzdanim, a međusobna podrška konektora u višesmjernom kućištu osigurava poboljšanu otpornost na olabavljenje. Slijedi popis ovih konsolidacija.

Svi su konektori dodani na logičan način dajući najveći pristup za povezivanje mojim nespretnim prstima, ostavljajući veze prednje ploče do kraja, a posljednji spojevi zaslona prolaze kroz rupu za montažu kako bi se posljednji dovršili. Zaslon je fiksiran na mjestu s 3D tiskanim okvirom.

Korak 6: Konsolidirani potencijalni klijenti

Konsolidirani potencijalni klijenti
Konsolidirani potencijalni klijenti
  1. Ulazi napona i otpora na Arduino ADC priključke, pet kabela 20 cm s pojedinačnim muškim konektorima na jednom kraju konsolidiranim u šesterostruko kućište s razmakom za smještaj razmaka u Arduino zaglavljima.
  2. 4 -smjerni kabel od 10 cm od četverosmjernog kućišta do dva 2 -smjerna kućišta za spajanje naponskih pinova na prednjoj ploči na ploču.
  3. 8-kraki kabel 10 cm od 2x4-stranog muškog zaglavlja do 8-smjernog ženskog priključka
  4. 4 -smjerni kabel 10 cm od 4 -ženskog ženskog kućišta do 4 -stranog ženskog kućišta za spajanje serijskog i I2C -a na prednju ploču
  5. 4 -smjerni kabel 10 cm od 4 -smjernog kućišta do četiri pojedinačna priključka za spajanje INA3221 na prednju ploču
  6. Četverostrani kabel od 20 cm za spajanje četverosmjernog ženskog kućišta na četverostrano muško kućište za odvođenje Serial i I2C od Arduina do ventilatora na ploči.
  7. 8 -kraki kabel 10 cm od 8 -ženskog ženskog kućišta do 8 -smjernog ženskog kućišta za prijenos digitalnih ulaza s prednje ploče na ploču.
  8. 8 -kraki kabel od 10 cm za povezivanje 8 -ženskog ženskog kućišta u jedno 3 -smjerno muško kućište i jedno 5 -smjerno muško kućište za spajanje razdjelnika otpora na ploču. Dva kućišta koriste se za prilagođavanje nestandardnog zazora u zaglavljima na Arduino ploči.
  9. 2 -smjerni kabel od 20 cm za 2 -smjerno žensko kućište s dva pojedinačna muška priključka za napajanje INA3221.
  10. 2-smjerni kabel od 10 cm za odvođenje 2-smjernog ženskog kućišta do dva pojedinačna ženska kućišta za spajanje trećeg priključka monitora INA3221 na prednju ploču.
  11. 2-smjerni kabel od 10 cm za povezivanje 2-smjernog ženskog kućišta na 2-smjerno žensko kućište za spajanje INA3221 na I2C ventilacijske priključke.

Korak 7: Arduino kod

Arduino kod
Arduino kod
Arduino kod
Arduino kod

Ovaj projekt temelji se na Arduinu Mega 2650 iz jednostavnog razloga što sam želio mnogo I/O portova posvećenih zadacima u jednostavnom formatu. Knjižnice za TFT zaslon osjetljiv na dodir zadano podržavaju Arduino Uno i moraju se urediti kako bi podržale Mega. Uređivanje knjižnica podržava izvorni autor TFT koda, jednostavno je i opisano u sljedećem koraku.

Korištenje zaslona osjetljivog na dodir osnova je ovog dijela projekta, ali kako zaslon koji netko završi može biti drugačiji od onog koji sam ja koristio, kôd postavlja samo hardverske funkcije u zasebne rutine kako bi se mogle identificirati sve potrebne izmjene.

Radna verzija koda uključena je ovdje i bit će ažurirana, ali najnovija ažuriranja bit će na githubu.

Glavna funkcija koda vrti se oko zaslona, a svaki element na zaslonu ima unos u jedan niz koji sadrži vrstu elementa, gdje se na ekranu prikazuje, boju i dodatne parametre, poput izvora unosa. Snimak zaslona ovog niza s komentarima prikazan je gore. Također sadrži polje za kontrolu hoće li se prikazati na ekranu ili ne. Uređivanjem ovog niza mogu se dodati nove značajke ili ukloniti značajke. Rutina 'petlje' koda prolazi kroz ovaj niz kontinuirano, obrađujući svaki prihvatljivi element sekvencijalno, a zatim se ponavljajući. Trenutno postoji 6 različitih elemenata.

Elementi izbornika - oni ne prikazuju informacije, ali kada se dodirnu, izvršavaju povezanu potprogram, identificiranu u parametrima elementa

Digitalni elementi - prikazuju se kao okvir na ekranu u obliku crvene ili zelene boje, ovisno o statusu pridružene iglice za digitalni ulaz. Primjer konzole ožičen je za 8 digitalnih pinova, no to se po želji može povećati ili smanjiti.

Analogni elementi - prikazuju približni napon izmjeren na pridruženom analognom pinu. Četiri su izvorno navedene.

Precizni elementi - prikaz na zaslonu iz vanjskog preciznog modula mjerača volta/struje. Postoje samo tri od njih, ali bi se mogao dodati drugi ili treći modul.

Element otpora - ovo je jedan element koji prikazuje ulaz sa mjerača otpora.

Dodir - ovo je jedina rutina koja se uvijek izvršava kako bi se otkrilo je li dodirnut zaslon, a zatim donijela odluka na temelju onoga što je dodirnuto. tj. ako je stavka izbornika, što to podrazumijeva sljedeće prikazivanje.

Zaslon ima tri načina statusa, normalni, veliki i cijeli zaslon, a svi elementi mijenjaju svoj rad ovisno o statusu. Tri načina rada mogu se odabrati u izborniku dodirom na element i pripadajuću opciju izbornika.

Normalni način rada - prikazuje 8 digitalnih ulaza, četiri analogna naponska ulaza, tri precizna elementa, element otpora i četiri elementa izbornika. Odabirom Normal iz izbornika zaslon se prebacuje u ovaj način rada.

Veliki način rada - odabire se dodirom bilo kojeg elementa na zaslonu, a zatim velikim. Kada je odabrana, ta vrsta elementa je jedina odabrana vrsta, a elementi te vrste preuređuju se tako da ispune cijeli zaslon.

Način prikaza preko cijelog zaslona - odabire se dodirom bilo kojeg elementa na zaslonu, a zatim i prikaz preko cijelog zaslona. Kada je odabran, taj je element jedini prikazani element i preuređen je tako da ispuni cijeli zaslon dajući maksimalnu vidljivost te jedne stavke.

Za dodavanje dodatne funkcionalnosti potrebno je dodati sljedeće rutine

'draw' rutina koja se poziva za dobivanje informacija za taj element, pozovite odgovarajuću rutinu ažuriranja zaslona i registrirajte vraćene informacije o dodiru

'logička' rutina koja prihvaća informacije iz rutine crtanja i koristi odgovarajuće rutine upravljačkog programa za zaslon kako bi stavila informacije na zaslon i vratila točne podatke o dodir za područje nacrtanog zaslona

'setup' rutina koja se poziva kao dio Arduino postavke

Mogu se uključiti i druge rutine, ali ne bi trebalo biti nikakve međuovisnosti između koda elementa, ako element nije omogućen, tada se njegov kôd ne bi trebao izvršavati, a jednostavna višenamjenska struktura zadržava svoj integritet.

Korak 8: Uređivanje Arduino knjižnica

Uređivanje Arduino knjižnica
Uređivanje Arduino knjižnica
Uređivanje Arduino knjižnica
Uređivanje Arduino knjižnica

Zaslon koji sam koristio radi jako dobro s Arduino Uno i osnovnim knjižnicama za njega napisanim, ali radi sporo kada se izravno prenese na Arduino Mega. Da biste ispravno pokrenuli zaslon, morate upotrijebiti drugačiji set podatkovnih pinova i tu promjenu uporabe morate postaviti u knjižnicama. Ovo je jednostavna promjena koju je autor zamislio. Slike ističu izvršene promjene.

Dvije su datoteke spremljene u mapu MCUFRIEND_kbv / utility kao mcufriend_shield.h i mcufriend_special.h. Potrebne promjene su prvo u datoteci zaglavlja 'shield' kako bi se osiguralo čitanje prvog retka

#define USE_SPECIAL

kako bi se osiguralo učitavanje 'posebne' datoteke zaglavlja.

"Posebna" datoteka zaglavlja također se mora ažurirati kako bi se osiguralo da linija

#define USE_MEGA_8BIT_PROTOSHIELD

je bez komentara.

Ove dvije promjene znače da će kôd zaslona za ovaj zaslon raditi pomoću pinova 20-29 na Arduino Mega umjesto zadanih 3-10 na Uno-u.

Korak 9: Snimke zaslona

Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona

Ovdje sam stavio snimke zaslona tako da je lako vidjeti što bi konzola trebala raditi. Sljedeći odjeljak odnosi se na učitavanje koda u Arduino.

Prvi zaslon prikazuje 'normalni' zaslon s izbornicima na vrhu, mjerenjima napona na LHS -u, mjerenjima napona i struje na RHS -u i statusom digitalnog pina pri dnu, crveno za 'lažno/nisko', zeleno za 'istinito/visoko' '. Konačno u središtu je mjerenje otpora.

Na drugom zaslonu prikazani su digitalni ulazi omogućeni u načinu rada Large, pri čemu je svaki ulaz jasno prikazan.

Treći zaslon prikazuje naponske ulaze u načinu rada Veliki.

Korak 10: Učitavanje Arduino koda

Kôd je u privitku, ali kao što je ranije spomenuto, neko će vrijeme biti postavljen na github, a mjesto će se dodati ovdje. Glavna datoteka izvornog koda je Arduino_Workbench_v01.ino, a ostale rutine pružaju različite značajke.

Ako su knjižnice u redu izmijenjene i Arduino Mega2650 je postavljen kao ciljna platforma u Arduino IDE -u, tada bi se kôd trebao kompajlirati prvi put.

Knjižnice koje će se morati učitati su biblioteke Adafruit GFX i ekrani osjetljive na dodir koje bi trebale biti dostupne od upravitelja knjižnice Arduino, kopija MCUFRIEND_kbv koja se može preuzeti s githuba, a za INA3221, biblioteka SwitchDocLabs SDL_Arduino_INA3221 također se može brzo preuzeti, obje se brzo preuzimaju google pretraživanje.

Korak 11: Završni dodiri

Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri

Ideja je da se koristi za projektne radove pa je napravljena odvojiva ploča koja sadrži pričvrsne vijke za Arduino ploče i ploču za kruh, cijelu pričvršćenu na poklopac pomoću čičak trake kako bi se odvojile i tako da se mogu napraviti različite ploče koje sadrže projekte i da se okvir može ponovno koristiti za različite projekte koji se izvode istodobno.

Očekujem da će ovo biti izvor za nekoliko ideja kako bi se učinilo nešto drugačije, bolje ili oboje. Dodati ću dodatne značajke koje sam spomenuo i dodati ih, ali ako vam ovo može pomoći, uzmite što želite i uživajte. Ako postoje neki ozbiljni problemi, molim vas da me obavijestite.

Trenutno ću se snalaziti i koristiti, moram raditi na nekoliko projekata!

Preporučeni: