Sisukord:

Arduino kaasaskantav töölaud Osa 3: 11 sammu
Arduino kaasaskantav töölaud Osa 3: 11 sammu

Video: Arduino kaasaskantav töölaud Osa 3: 11 sammu

Video: Arduino kaasaskantav töölaud Osa 3: 11 sammu
Video: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, Juuli
Anonim
Arduino kaasaskantav töölaud 3. osa
Arduino kaasaskantav töölaud 3. osa
Arduino kaasaskantav töölaud 3. osa
Arduino kaasaskantav töölaud 3. osa

Kui olete vaadanud osi 1, 2 ja 2B, siis siiani pole selles projektis palju Arduinot olnud, kuid vaid mõned laudade juhtmed jne pole see, mis see on, ja infrastruktuuri osa tuleb ehitada enne puhkus töötab.

See on elektroonika ja Arduino kood. Eelmises 2B juhendis on loetletud toiteallika üksikasjad.

Selles jaotises on kaasaskantav töölaud järgmiste funktsioonidega

TFT puuteekraan, mis pakub ekraani, mida juhib Arduino Mega, et pakkuda järgmist

  1. 8 digitaalset ekraani, välja/sisse/võnkuvad
  2. 4 pinge näidikut
  3. 3 voolu/pinge näidikut
  4. E24 takistusmõõtur (kuna ma ei saa enam värviribasid lugeda)

Lisan veel midagi, kuid see oli mu esialgne eesmärk. Arduino koodis on loetletud ka jadaekraan, I2C -ekraan, mahtuvusmõõtur, digitaalsed lülitid ja ostsilloskoop, mida aja jooksul lisan. Samuti pole ma täpselt otsustanud, kas tasub lisada 3V3 toiteallikas, muutuv toiteallikas või toitepinge/voolu jälgimine. Siiani on see loodud Mega abil, kuid ma vaatan ka mõningate funktsioonide teisaldamist I2C -juurdepääsetavate ahelate eraldamiseks, kas spetsiaalsed kiibid või programmeeritud Atmel 328, mis hõlpsamini mahutavad erinevat kontrollerit.

Tarvikud

5 x 16 -suunalised pistikupesad

5 x 8 -suunalised dupont -pistikupesad, mis on tegelikult valmistatud pikkadest 40 -suunalisest ühe rea pistikupesast, mis on lõigatud vajaliku pikkusega

1 x 3,5 -tolline puutetundlik ekraan ILI9486 TFT

1 x Arduino Mega 2650

Üksikud komponendid

Teksti kohaselt ei ole mõnede nende väärtus absoluutselt fikseeritud ja kui jätate funktsiooni kasutamata, pole seda üldse vaja:)

Digitaalne sisend

16 x 10K takistid

Analoogsisend

1 x TL074 quad jfet opamp, see oli mul varuks, kõik sarnane teeb:)

Pingejaguritena kasutatakse 4 x 68K ja 4 x 430k takistit.

4 x 1N4001 vms

Vastupidavusmõõtur

1 x TL072 kahekordne jfet opamp, see oli mul varuks, kõik sarnane teeb:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (kui neid väärtusi muudetakse, tuleb Arduino koodi värskendada)

1. samm: elektroonika ülevaade

Elektroonika ülevaade
Elektroonika ülevaade
Elektroonika ülevaade
Elektroonika ülevaade
Elektroonika ülevaade
Elektroonika ülevaade
Elektroonika ülevaade
Elektroonika ülevaade

Hall konsool on minu tehtud 30 aastat tagasi ja on siiani regulaarselt kasutusel, kuid ajad on edasi läinud. See pakub topelttoiteallikaid vasakul, keskmist helivõimendit keskel, sisemise kõlariga ja ostsillaatorit vasakul. Tänapäeval vajab enamik minu ahelaid ainult toiteallikat ja sellest ainult positiivset rööpa. Vaja oli midagi teistsugust, aga ka märgistamist, ilma milleta olen elanud, aga sain hakkama.

Projekti kasti elektroonika põhinõuded olid uuemate vooluahelate toide Arduino või Raspberry PI -de abil, nii et 5 V oli hädavajalik, nagu ka USB -pistikupesad. Valgustatud lülitid ütlevad mulle, kas toide on sisse lülitatud või mitte, ja katsetades pean regulaarselt ehitama väikseid abiahelaid, et anda ajutisi olekunäitusi. Mul on mahukate arvestite karp, mis kulutab palju pingipinda ja mis kõige tähtsam - mul on vaja kuvarit, mida saaksin silmanägemise halvenedes hõlpsasti lugeda, midagi eredat. Nii et mul on vaja digitaalseid kuvareid, pingemõõtureid, voolumõõtjaid ja sel juhul väikest luksust takistusmõõturi kujul, et kiiresti tuvastada E24 -seeria takistid, kõik 15 cm kaugusel projekti leivaplaadist ja kompaktses kaasaskantavas korpuses.

Peamine toiteplokk, mida on kirjeldatud eelmises artiklis, annab kaanele toite, kasutades 40 -suunalist lintkaablit, mis võimaldab kahte ühendada kaane sulgemise ajal. See tagab paneelielektroonika ja leivaplaadi varustamise lülitatud 5v ja 12V toiteallikaga.

Kõik toite- ja signaali sisendid on varustatud 2x8-teedega PCB-päisepesadega paralleelselt 8-suunalise duponti pesaga. See on ilmselt üleliigne, enamikul leivaplaatidel on elektrirööpad, kuid seda oli lihtne teha.

Pistikupesades on toiteallika peamine 0 V rööp kõigi toiteallikate jaoks ühine ja kättesaadav. Selle kohal on 5 V toiteallikas, sisse lülitatud põhiseade, ja selle kohal on kaks tarnitud +12 V ja -12 V toiteallikat, mis on praegu fikseeritud, kuigi mul on idee toite häkkimiseks muutuvaks muuta ja pakkuda 3,3-20 V varieeruv pakkumine.

2. samm: elektroonika

Elektroonika
Elektroonika
Elektroonika
Elektroonika
Elektroonika
Elektroonika

Olen postitanud leivaplaadi paigutuse ekraanipildid, milline näeb välja skeem maatriksplaadile ehitatud, skeem PDF -failina ja originaalsed Fritzingi failid. See pole eriti keeruline elektroonika ja on mõeldud Arduino plaadi jaoks piiravate takistite, puhvervõimendite ja ventilaatorühenduste paigaldamiseks. Kuid on mitmeid pilte, mis näitavad paljusid seoseid veidi selgemalt. Suurem osa juhtmestikust koosnes standardpikkustest eelklammerdatud dupont-lintkaablist, mis oli kokku pandud mitmeotstarbelisteks korpusteks, et muuta need lihtsamaks ja usaldusväärsemaks.

Arduino Mega 2650 on paigaldatud kaanesse koos programmeerimiseks saadaval oleva USB -pesaga. See juhib TFT puuteekraani, mida kasutatakse kõigi väljundite ja sisendite kuvamiseks.

Kaheksa 8-suunalise PCB-päise kaudu tehakse kättesaadavaks 8 digitaalsisendit ja nende olek kuvatakse ekraanil, kui see funktsioon on valitud. See on lihtne sisse/välja lülitatud ekraan, punane välja lülitatud, roheline sisse lülitatud. Võin tulevikumuudatuseks lisada võnkumise.

PCB päise kaudu tehakse kättesaadavaks ka 4 pingesisendit ja ekraanil kuvatav pingejagur. Iga esipaneeli sisendpinge, viidates ühisele maapinnale, jagatakse jagamiseks 7 pingejaguriga ja puhverdatakse seejärel ühega neljast op-võimendist TL074, mis on konfigureeritud alaldusvõimendiks, et vältida negatiivse pingega õnnetusi. Oleks tore lisada polaarsuse märge mingil etapil, kuid mitte seekord. Iga op-võimendi väljund on ühele Arduino ADC sisendile.

Veel üks trükkplaadi päis paljastab nii seeria- kui ka I2C -ühendused. Seda tehti, et võimaldada seeriaekraanikonsooli ja I2C põhifunktsiooni rakendamist.

Pinge-/digitaalsisendid ei pruugi olla kõik vajalikud, nii et need võidakse ümber konfigureerida digitaalsete lülitusväljundite pakkumiseks.

Arduino toidab pingejaguri takistustaadiumit, et tagada takistusmõõturi funktsionaalsus. Selle väljund puhverdatakse op-võimendiga (pool TL072), enne kui Arduino seda loeb ja takistus arvutatakse. Selle eesmärk ei ole täpne takistuse mõõtmine, vaid E24 seeria väärtuste kiire tuvastamine, kuigi mõningase kalibreerimise korral võib seda kasutada põhiarvestina. Selle ülesanne on tuvastada, kui esipaneelile paigaldatud kahel vedrul on takistus alla 9M9, ja seejärel lülitada valikuliselt 5V jaotusmassiivi igale takistile, kuni mõõdetakse väärtus 2,5V lähim või viimane takisti on valitud, seejärel arvutatakse ja võrreldakse, et teha kindlaks lähim E24 väärtus. 5 V pärineb Arduino digitaalsetest väljunditest 3-10, mis on vigade minimeerimiseks iga mõõtmise vahel ümber konfigureeritud suure takistusega sisenditeks. Arduino tihvte D3-10 kasutati teadlikult tulevase lisandina, näiteks mahtuvusmõõtur, mis kasutab nende väljundite PWM-funktsiooni, mis võib olla ainult tarkvara muutus.

Modifitseeritud INA3221 plaat pakub täiendavaid pinge ja voolu mõõtmisi I2C liidese kaudu koos sisenditega esipaneelilt. Kõik juhtmed on ühendatud hüppakaablitega, nii et funktsioonide ümberjaotamine on tulevikus lihtne.

Samm: INA3221 pinge/voolu sisend

INA3221 Pinge/voolu sisend
INA3221 Pinge/voolu sisend

See oli mõeldud kiireks lahenduseks, et pakkuda kasti pinge/voolu mõõtmisi, kuid selgus, et ostetud plaadil oli see mõeldud aku laadimise jälgimiseks, nii et seda tuli muuta kolme sõltumatu mõõtmise saamiseks. Kui selle projekti ehitamisel saate hankida INA3221 plaadi, mis rakendab seda kiipi vastavalt andmelehele, pole see vajalik.

Pilti vaadates tuleb mõõtetakistite eraldamiseks trükkplaatide jälgedes teha kolm lõiget. Ka nende kolme takisti padjad tuleb lõigata, et eraldada need ülejäänud PCB -st. Seejärel ühendatakse takistid padjadega, jootes sildadena täiendavaid juhtmeid. Ma dokumenteerin selle, sest see on tavaline tahvel ja võib -olla ainus saadaval.

Seejärel ühendatakse esipaneelilt plaadiga ühendused mõõtetakistite džemprijuhtmete kaudu.

Plaadi võimsus võetakse Arduino 5V tihvtidelt ja maapinnalt, I2C ühendused lähevad elektroonika trükkplaadile.

Samm 4: kuvar

Ekraan
Ekraan

See oli eBay ost ja saadaval paljudest allikatest ning see on ILI9486 toitega ekraan. Leidsin, et see toimis kõige paremini koos David Prentice'i MCUFRIENDi raamatukogudega, kuid see tuleb enne kasutamist kalibreerida, mis nõudis lihtsalt, et üks Davidi esitatud raamatukogunäidetest käivitatakse ühendatud ekraaniga, järgige ekraanil kuvatavaid juhiseid ja kirjutage see üles kuvatud parameetrid, lisades Arduino_Workstation_v01 koodifaili, kui see on erinev.

Selle projekti jaoks on puutetundlik ekraan hädavajalik, see pöörleb ringi ilma spetsiaalsete lülititeta ja võimalusega tulevikus lihtsalt menüüsid ja funktsioone lisada ilma palju ümberjuhtimiseta.

Samm: ühendage see kokku

Selle ühendamine
Selle ühendamine
Selle ühendamine
Selle ühendamine
Selle ühendamine
Selle ühendamine

Arduino Mega asub kaane LHS -il, selle USB- ja toiteportidele on juurdepääs väljastpoolt korpust. Arduino kõrval asuvas RHS -is on maatriksplaadile paigaldatud elektroonika ja selle kohal on kaane tagaküljel INA3221 plaat.

Ka Arduino kohal asuva LHS -i kaane tagaküljel on ühine maaühendusplaat, millega on ühendatud kõik alused.

Võimalikult palju juhtmeid koondati mitmikühendusteks. See muudab vooluahelate ühendamise palju lihtsamaks ja usaldusväärsemaks ning mitmikkorpuse pistikute vastastikune tugi tagab parema vastupidavuse lahtitulekule. Nende konsolideerimiste loend on järgmine.

Kõik pistikud lisati loogilisel viisil, andes suurima juurdepääsu oma kohmakate sõrmedega ühendamiseks, jättes esipaneeli ühendused lõpuni, kusjuures viimased ekraaniühendused lastakse läbi paigaldusava, mis tuleb lõpetada viimasena. Ekraan kinnitati paika 3D prinditud raamiga.

6. toiming: konsolideeritud müügivihjed

Konsolideeritud müügivihjed
Konsolideeritud müügivihjed
  1. Pinge ja takistuse sisendid Arduino ADC -portidesse, viis 20 cm pikkust juhtmest, mille ühes otsas on üksikud isased pistikud, koondatud kuuepoolseks korpuseks, mille vahe on Arduino päiste vahe jaoks.
  2. 4 -suunaline 10 cm kaabel neljapoolse korpuse ja kahe kahesuunalise korpuse vahel, et ühendada esipaneelil olevad pingetahvlid trükkplaadiga.
  3. 8-suunaline 10 cm kaabel 2x4-suunalisest meessoost päisest 8-suunaliseks naissoost päiseks
  4. 4 -suunaline 10 cm kaabel 4 -suunalisest korpusest kuni 4 -osalise korpuseni, et ühendada Serial ja I2C esipaneeliga
  5. 4 -suunaline 10 cm kaabel 4 -suunalisest korpusest kuni nelja üksikühenduseni, et ühendada INA3221 esipaneeliga
  6. 4-suunaline 20 cm kaabel neljapoolse naissoost korpuse ühendamiseks neljasuunalise isase korpusega, et võtta Serial ja I2C Arduinost trükkplaadi ventilaatori välja.
  7. 8 -suunaline 10 cm kaabel 8 -suunalisest naiskorpusest kuni 8 -suunalise naissoost korpuseni, et viia digitaalsisendid esipaneelilt trükkplaadile.
  8. 8 -suunaline 10 cm kaabel 8 -osalise naissoost korpuse ühendamiseks ühe 3 -suunalise isaskorpusega ja üks 5 -suunaline isaskorpus, et ühendada takistusjaotur trükkplaadiga. Neid kahte korpust kasutatakse Arduino tahvli päistes asuva mittestandardse vahe täitmiseks.
  9. 2 -suunaline 20 cm kaabel, et viia 2 -suunaline naissoost korpus kahe ühe isase pistikuga INA3221 toiteallika jaoks.
  10. Kahepoolne 10 cm kaabel 2-suunalise naissoost korpuse viimiseks kahe üksiku korpusesse, et ühendada kolmas INA3221 monitori ühendus esipaneeliga.
  11. Kahepoolne 10 cm kaabel 2-suunalise naissoost korpuse ühendamiseks 2-suunalise korpusesse, et ühendada INA3221 I2C ventilaatoriühendustega.

Samm: Arduino kood

Arduino kood
Arduino kood
Arduino kood
Arduino kood

See projekt põhineb Arduino Mega 2650 ümber sel lihtsal põhjusel, et tahtsin palju lihtsas vormingus ülesannete jaoks mõeldud sisend-/väljundporte. TFT puuteekraani teegid toetavad vaikimisi Arduino Uno ja neid tuleb muuta, et toetada Mega. Raamatukogude redigeerimist toetab algne TFT -koodi autor, see on lihtne ja seda kirjeldatakse järgmises etapis.

Puutetundliku ekraani kasutamine on selle projekti osa aluseks, kuid kuna ekraan, mida keegi lõpuks kasutab, võib erineda minu kasutatavast, paigutab kood ainult riistvarapõhised funktsioonid eraldi rutiinidesse, nii et kõik vajalikud muudatused on tuvastatavad.

Siin on koodi tööversioon ja seda värskendatakse, kuid viimased värskendused on saadaval githubis.

Koodi põhifunktsioon pöörleb ümber ekraani, kusjuures igal kuvarielemendil on kirje ühes massiivis, mis hoiab elemendi tüüpi, kus ekraanil see kuvatakse, värv ja muud parameetrid, näiteks sisendallikas. Selle massiivi ekraanipilt koos kommentaaridega on näidatud ülal. Samuti on sellel väli, et kontrollida, kas seda kuvatakse ekraanil või mitte. Seda massiivi muutes saab uusi funktsioone lisada või eemaldada. Koodi tsüklirutiin jookseb sellest massiivist pidevalt läbi, töödeldes iga kõlblikku elementi järjestikku ja seejärel kordades. Praegu on 6 erinevat elementi.

Menüüelemendid - need ei kuva teavet, kuid puudutamisel käivitavad seotud alamprogrammi, mis on tuvastatud elemendi parameetrites

Digitaalsed elemendid - kuvatakse ekraanil kastina kas punase või rohelisena, sõltuvalt sellega seotud digitaalse sisendpinna olekust. Näitekonsool on ühendatud 8 digitaalse kontaktiga, kuid seda saab soovi korral suurendada või vähendada.

Analoogelemendid - kuvatakse ligikaudne pinge, mis on mõõdetud seotud analoogpistikul. Neli on algselt täpsustatud.

Täpsuselemendid - kuvatakse välise täpsuspinge/voolumõõturi mooduli sisend. Neid on ainult kolm, kuid võiks lisada teise või kolmanda mooduli.

Takistuselement - see on üks element, mis kuvab takistusmõõturi sisendi.

Puudutus - see on ainus rutiin, mida alati täidetakse, et tuvastada, kas ekraani on puudutatud, ja seejärel teha otsus puudutatu põhjal. st kui tegemist on menüüelemendiga, mida see tähendab, et seda kuvatakse järgmisena.

Ekraanil on kolm olekurežiimi: tavaline, suur ja täisekraan ning kõik elemendid muudavad olekust olenevalt oma tööd. Neid kolme režiimi saab valida menüüst, puudutades mõnda elementi ja sellega seotud menüüvalikut.

Tavaline režiim - kuvab 8 digitaalsisendit, neli analoogpinge sisendit, kolm täppis -elementi, takistuselementi ja neli menüüelementi. Kui valida menüüst Tavaline, lülitub ekraan sellesse režiimi.

Suur režiim - valitakse, puudutades ekraanil mõnda elementi ja seejärel nuppu Suur. Kui see element on valitud, on see ainus tüüp valitud ja seda tüüpi elemendid paigutatakse ümber, et täita kogu ekraan.

Täisekraanirežiim - valitakse, puudutades ekraanil mõnda elementi ja seejärel täisekraani. Kui see element on valitud, on see ainus kuvatav element ja see on ümber paigutatud nii, et see täidaks kogu ekraani, andes selle üksuse maksimaalse nähtavuse.

Täiendavate funktsioonide lisamiseks tuleb lisada järgmised rutiinid

joonistamisrutiin, mida kutsutakse selle elemendi teabe hankimiseks, helistage sobivale ekraanivärskendusrutiinile ja registreerige tagastatud puuteteave

„loogika” rutiin, mis võtab joonistamisrutiinist saadud teabe vastu ja kasutab ekraanile teabe paigutamiseks ning joonistatud ekraani alale vastava puuteteabe tagastamiseks asjakohaseid ekraanidraiveri tavasid

seadistamisrutiin, mida nimetatakse Arduino seadistamise osaks

Kaasata võib ka muid rutiine, kuid elementide koodide vahel ei tohiks olla vastastikust sõltuvust. Kui elementi pole lubatud, ei tohiks selle koodi käivitada ja lihtne multifunktsionaalne struktuur säilitab oma terviklikkuse.

Samm: Arduino raamatukogude redigeerimine

Arduino raamatukogude toimetamine
Arduino raamatukogude toimetamine
Arduino raamatukogude toimetamine
Arduino raamatukogude toimetamine

Ekraan, mida ma kasutasin, töötab väga hästi koos Arduino Uno ja selle jaoks kirjutatud baasraamatukogudega, kuid toimib Arduino Mega otse ülekandmisel aeglaselt. Ekraani nõuetekohaseks juhtimiseks tuleb kasutada teistsugust andmeklemmide komplekti ja see kasutusmuutus tuleb teekides seadistada. See on lihtne muudatus ja see oli mõeldud autorile. Piltidel on esile toodud tehtud muudatused.

Need kaks faili salvestatakse MCUFRIEND_kbv / utiliidi kausta nimega mcufriend_shield.h ja mcufriend_special.h. Vajalikud muudatused tehakse esmalt päisefaili „kilp”, et tagada esimese rea lugemine

#defineeri USE_SPECIAL

et tagada spetsiaalse päisefaili laadimine.

Rida tagamiseks tuleb värskendada ka spetsiaalset päisefaili

#define USE_MEGA_8BIT_PROTOSHIELD

on kommenteerimata.

Need kaks muudatust tähendavad, et selle ekraani kuvamiskood töötab Arduino Mega tihvtide 20–29 abil, mitte Uno vaikeseade 3–10.

9. samm: ekraanipildid

Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid

Olen siia pannud ekraanipildid, et oleks lihtne näha, mida konsool peaks tegema. Järgmine jaotis viitab koodi laadimisele Arduinosse.

Esimesel ekraanil kuvatakse "tavaline" ekraan, mille ülaosas on menüüd, pinge mõõtmised LHS -is, pinge ja voolu mõõtmised RHS -is ja digitaalse tihvti olek all, punane "vale/madal", roheline "õige/kõrge" '. Lõpuks on keskel takistuse mõõtmine.

Teisel ekraanil kuvatakse suures režiimis lubatud digitaalsisendid, kus iga sisend kuvatakse selgelt.

Kolmas ekraan näitab pinge sisendeid suures režiimis.

Samm: laadige Arduino kood

Kood on lisatud, kuid nagu varem mainitud, pannakse see mingil ajal githubile üles ja asukoht lisatakse siia. Peamine lähtekoodi fail on Arduino_Workbench_v01.ino ja muud rutiinid on pakkuda erinevaid funktsioone.

Kui raamatukogusid on muudetud ja Arduino Mega2650 on Arduino IDE sihtplatvormiks seatud, peaks kood esmakordselt kompileerima.

Laaditavad teegid on Adafruit GFX ja puuteekraaniga raamatukogud, mis peaksid olema saadaval Arduino raamatukoguhaldurilt, MCUFRIEND_kbv koopia, mida saab alla laadida githubist, ja INA3221 jaoks SwitchDocLabsi teek SDL_Arduino_INA3221, mida saab ka githubist alla laadida, mõlemad ilmuvad kiiresti google otsing.

11. samm: viimased puudutused

Viimased puudutused
Viimased puudutused
Viimased puudutused
Viimased puudutused
Viimased puudutused
Viimased puudutused
Viimased puudutused
Viimased puudutused

Idee on kasutada seda projektitöödeks, nii et on valmistatud eemaldatav paneel, mis koosneb Arduino plaatide kinnituspoltidest ja leivaplaadist, mis on kogu kaane külge kinnitatud takjakinnitusega, et need oleksid eemaldatavad ja et oleks võimalik valmistada erinevaid plaate projektide ja et kasti saab uuesti kasutada erinevate samaaegsete projektide jaoks.

Ma eeldan, et see on mõne idee allikas, et muuta midagi teistsugust, paremat või mõlemat. Lisan lisatud funktsioonid, mida olen maininud, ja lisan need sisse, kuid kui sellest on abi, võtke palun see, mida soovite ja naudi. Kui teil on hämmastavaid probleeme, andke mulle sellest teada.

Praegu hakkan seda kasutama ja kasutama, mul on paar projekti, millega töötada!

Soovitan: