Obsah:

Prenosný pracovný stôl Arduino, časť 3: 11 krokov
Prenosný pracovný stôl Arduino, časť 3: 11 krokov

Video: Prenosný pracovný stôl Arduino, časť 3: 11 krokov

Video: Prenosný pracovný stôl Arduino, časť 3: 11 krokov
Video: Высокая плотность 2022 2024, Júl
Anonim
Prenosný pracovný stôl Arduino, časť 3
Prenosný pracovný stôl Arduino, časť 3
Prenosný pracovný stôl Arduino, časť 3
Prenosný pracovný stôl Arduino, časť 3

Ak ste si prezerali časti 1, 2 a 2B, potom v tomto projekte nebolo veľa Arduina, ale len pár káblov dosky atď. O tom nie je a časť infraštruktúry musí byť postavená pred oddychové práce.

Toto je elektronika a kód Arduino. Predchádzajúci pokyn 2B uvádza podrobnosti o napájacom zdroji.

Táto časť obsahuje prenosný pracovný stôl s nasledujúcimi funkciami

Dotyková obrazovka TFT poskytujúca displej poháňaný zariadením Arduino Mega, ktorý zaisťuje nasledujúce

  1. 8 digitálnych displejov, vypnuté/zapnuté/oscilačné
  2. 4 displeje napätia
  3. 3 displeje prúdu/napätia
  4. Merač odporu E24 (pretože už nemôžem čítať farebné pásy)

Budú ďalšie veci, ktoré pridám, ale toto bol môj pôvodný cieľ. Kód Arduino obsahuje aj sériový displej, displej I2C, kapacitný merač, digitálne prepínače a osciloskop, ktoré časom doplním. Tiež som sa celkom nerozhodol, či stojí za to pridať napájací zdroj 3V3, variabilný napájací zdroj alebo monitorovanie napätia/prúdu napájacieho zdroja. Doteraz to bolo postavené na Mega, ale tiež sa zameriavam na presun niektorých funkcií na oddelenie obvodov prístupných k I2C, buď vyhradených čipov alebo naprogramovaných Atmel 328, ktoré ľahšie umiestnia iný ovládač.

Zásoby

Zásuvky záhlavia 5 x 16 smerov

5 x 8 -cestné dupontové zásuvky, v skutočnosti vyrobené z dlhých 40 -cestných jednoradových zásuviek rozrezaných na požadovanú dĺžku

1 x 3,5 palcový dotykový displej TFT ILI9486

1 x Arduino Mega 2650

Jednotlivé komponenty

Podľa textu hodnota niektorých z nich nie je úplne stanovená a ak vám chýba, funkcia nebude vôbec potrebná:)

Digitálny vstup

Rezistory 16 x 10 K.

Analógový vstup

1 x TL074 a quad jfet opamp, toto som mal ako rezervu, postačí čokoľvek podobné:)

Ako rozdeľovače napätia slúžia odpory 4 x 68K a 4 x 430k.

4 x 1N4001 alebo podobný

Merač odporu

1 x TL072 a duálny jfet operačný zosilňovač, toto som mal ako rezervu, postačí čokoľvek podobné:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (Ak sú tieto hodnoty zmenené, je potrebné aktualizovať kód Arduino)

Krok 1: Prehľad elektroniky

Prehľad elektroniky
Prehľad elektroniky
Prehľad elektroniky
Prehľad elektroniky
Prehľad elektroniky
Prehľad elektroniky
Prehľad elektroniky
Prehľad elektroniky

Šedú konzolu som vyrobil pred 30 rokmi a stále sa bežne používa, ale doba pokročila. Vľavo ponúka duálne napájacie zdroje, v strede centrálny zvukový zosilňovač s vnútorným reproduktorom a oscilátor vľavo. V dnešnej dobe väčšina mojich obvodov potrebuje iba napájanie a to iba kladnú koľajnicu. Bolo potrebné niečo iné, rovnako ako označovanie, bez ktorého som žil, ale dokázal som to.

Hlavnými požiadavkami na projektovú elektroniku bolo napájanie novších obvodov pomocou Arduino alebo Raspberry PI, takže 5 V bolo nevyhnutné, rovnako ako zásuvky USB. Osvetlené spínače mi hovoria, či je napájanie zapnuté alebo nie a pri testovaní musím pravidelne stavať malé pomocné obvody, ktoré dočasne zobrazujú stav. Mám krabicu objemných metrov, ktoré zaberajú veľa miesta na lavičke, a predovšetkým potrebujem displej, ktorý môžem ľahko čítať, pretože sa mi zhoršuje zrak, niečo s veľkými jasnými znakmi. Potrebujem teda digitálne displeje, merače napätia, prúdové merače a v tomto prípade malý luxus v podobe odporového merača na rýchlu identifikáciu odporov radu E24, a to všetko do 15 cm od projektového poľa a v kompaktnom prenosnom kufríku.

Hlavný zdroj napájania, popísaný v predchádzajúcom článku, dodáva veku napájanie pomocou 40 -žilového plochého kábla, ktorý umožňuje ich pripojenie pri zatvorenom veku. To poskytuje spínané 5 V a 12 V zdroje pre panelovú elektroniku a pre napájanie nepájivého poľa.

Všetky napájacie a signálne vstupy sú zaistené 2x8-cestnými zásuvkami PCB paralelne s 8-cestnou dupontovou zásuvkou. Toto je pravdepodobne prehnané, väčšina breadboardov má napájacie koľajnice, ale dalo sa to ľahko urobiť.

Na napájacích zásuvkách je hlavná 0V koľajnica zdroja napájania spoločná pre všetky zdroje a je k dispozícii. Nad tým je 5V napájací zdroj, zapnutý na základnej jednotke, a nad tým sú dva napájané +12 V a -12 V zdroje, ktoré sú v súčasnej dobe opravené, aj keď mám nápad hacknúť napájanie, aby bolo variabilné a poskytovalo 3,3 -20 V variabilné zásobovanie.

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Zverejnil som výtlačky rozloženia breadboardu, ako obvod vyzerá, keď je postavený na maticovej doske, schému ako PDF a pôvodné súbory Fritzing. Nie je to obzvlášť zložitá elektronika a je tu na to, aby ste na dosku Arduino namontovali obmedzujúce odpory, zosilňovače nárazníkov a výstupy ventilátora. Existuje však niekoľko obrázkov, ktoré ukazujú mnohé súvislosti o niečo jasnejšie. Väčšina káblov bola vytvorená zo štandardných dĺžok vopred zvinutého plochého dvojitého kábla, ktorý bol znova zmontovaný do viaccestných puzdier, aby bolo jednoduchšie ich opätovné zapojenie a spoľahlivosť.

Arduino Mega 2650 je namontovaný vo veku s konektorom USB, ktorý je k dispozícii na programovanie. Poháňa dotykový displej TFT slúžiaci na zobrazenie všetkých výstupov a vstupov.

K dispozícii je 8 digitálnych vstupov prostredníctvom 2 x 8-cestného konektora PCB a ich stav sa zobrazí na obrazovke, ak je zvolená táto funkcia. Jedná sa o jednoduchý displej zapnutia/vypnutia, červený zhasnutý, zelený zapnutý. Ako budúcu zmenu môžem pridať osciláciu.

K dispozícii sú tiež 4 napäťové vstupy cez konektor PCB a delič napätia, napätie zobrazené na obrazovke. Každé vstupné napätie na prednom paneli, s odkazom na spoločnú zem, je vedené do deliča napätia 7 a potom uložené do vyrovnávacej pamäte jedným zo štyroch operačných zosilňovačov v TL074 nakonfigurovaných ako usmerňovací zosilňovač, aby sa predišlo nehodám so záporným napätím.. Bolo by pekné pridať v určitom štádiu označenie polarity, ale nie tentokrát. Výstup z každého operačného zosilňovača je na jeden z ADC vstupov Arduina.

Ďalšia hlavička DPS odhalí sériové aj I2C pripojenia. To sa uskutočnilo s cieľom umožniť implementáciu konzoly sériového displeja a základnej identifikačnej funkcie I2C.

Napäťové/digitálne vstupy nemusia byť všetky potrebné, takže môžu byť prekonfigurované tak, aby poskytovali digitálne spínacie výstupy.

Arduino napája odporové pole na rozdeľovači napätia, aby poskytovalo funkciu merača odporu. Výstup tohto je pred načítaním Arduinom uložený do operačného zosilňovača (polovica TL072) a vypočítaný odpor. Účelom nie je presné meranie odporu, ale rýchla identifikácia hodnôt radu E24, aj keď s určitou kalibráciou by mohol byť použitý ako základný merač. Jeho úlohou je zistiť, či je na dvoch pružinách namontovaných na prednom paneli prítomný odpor menší ako 9 M9, a potom selektívne prepínať 5 V na každý odpor v deličovom poli, kým sa nezmeria hodnota najbližšia k 2,5 V alebo kým sa nevyberie posledný odpor, a potom sa vykoná výpočet a porovnanie, aby sa určila hodnota E24 najbližšie. 5V pochádza z digitálnych výstupov 3-10 na Arduine, ktoré sú medzi každým meraním prekonfigurované ako vstupy s vysokou impedanciou, aby sa minimalizovali chyby. Piny Arduino D3-10 boli zámerne použité, pretože budúcim doplnkom môže byť kapacitný merač využívajúci schopnosť PWM týchto výstupov, čo by potenciálne mohla byť iba zmena softvéru.

Upravená doska INA3221 poskytuje dodatočné merania napätia a prúdu prostredníctvom rozhrania I2C so vstupmi z predného panela. Všetko je zapojené pomocou prepojovacích káblov, aby bolo v budúcnosti ľahké opätovné priradenie funkcií.

Krok 3: Vstup napätia/prúdu INA3221

INA3221 Vstup napätie/prúd
INA3221 Vstup napätie/prúd

Toto bolo určené ako rýchle riešenie na poskytnutie meraní napätia/prúdu v krabici, ale ukázalo sa, že ako bolo implementované na doske, ktorú som kúpil, bolo určené na monitorovanie nabíjania batérie, takže bolo potrebné ho upraviť tak, aby poskytoval tri nezávislé merania. Ak pri vytváraní tohto projektu môžete získať dosku INA3221, ktorá implementuje tento čip podľa technického listu, nie je to potrebné.

Pri pohľade na obrázok je potrebné urobiť tri zárezy v stopách DPS na oddelenie meracích odporov. Podložky pre tieto tri odpory je tiež potrebné rezať, aby sa oddelili od zvyšku DPS. Rezistory sa potom spoja s podložkami spájkovaním ďalších vodičov ako mostíkov. Dokumentujem to, pretože toto je bežná doska a môže byť jediná dostupná.

Pripojenie k doske z predného panelu sa potom vykoná prepojovacími káblami cez meracie odpory.

Napájanie dosky je odoberané z 5V kolíkov Arduino rovnako ako uzemnenie, pričom pripojenia I2C idú na dosku elektroniky.

Krok 4: Obrazovka displeja

Displej
Displej

Toto bol nákup na eBay a je k dispozícii z mnohých zdrojov a je displejom poháňaným ILI9486. Zistil som, že to najlepšie funguje s knižnicami MCUFRIEND Davida Prenticeho, ale musí byť pred použitím kalibrované, čo vyžaduje, aby bol jeden z príkladov knižníc poskytovaných Davidom spustený s pripojenou obrazovkou, postupujte podľa pokynov na obrazovke a zapíšte si ich. zobrazené parametre, vložením do súboru kódu Arduino_Workstation_v01, ak je odlišný.

Pre tento projekt je dotyková obrazovka zásadná, pretože sa točí bez vyhradených prepínačov a možnosti jednoducho v budúcnosti pridať ponuky a funkcie bez veľkého prepájania.

Krok 5: Spojte to dohromady

Spojiť to dohromady
Spojiť to dohromady
Spojiť to dohromady
Spojiť to dohromady
Spojiť to dohromady
Spojiť to dohromady

Arduino Mega sa nachádza na LHS veka a jeho porty USB a napájanie sú prístupné zvonku puzdra. Na RHS vedľa Arduina je elektronika namontovaná na maticovej doske a nad ňou je na zadnej strane veka namontovaná doska INA3221.

Tiež na zadnej strane veka na LHS nad Arduinom je spoločná doska uzemnenia, ku ktorej sú pripojené všetky dôvody.

Čo najviac zvodov bolo zlúčených do viaccestných konektorov. Vďaka tomu je zapojenie obvodov oveľa jednoduchšie a spoľahlivejšie a vzájomná podpora konektorov vo viaccestnom puzdre poskytuje zvýšenú odolnosť proti uvoľneniu. Nasleduje zoznam týchto konsolidácií.

Všetky konektory boli pridané logickým spôsobom, aby poskytovali najlepší prístup k vytváraniu spojení s mojimi nešikovnými prstami, pričom spojenia predného panela boli ponechané až do konca, pričom konečné pripojenia displeja prechádzali montážnym otvorom, ktorý sa mal dokončiť ako posledný. Obrazovka bola upevnená na svojom mieste pomocou 3D tlačenej lunety.

Krok 6: Konsolidované potenciálne zákazníkov

Konsolidované vývody
Konsolidované vývody
  1. Vstupy napätia a odporu do portov ADC Arduino, päť káblov s priemerom 20 cm s individuálnymi konektormi na jednom konci, sú zlúčené do šesťcestného puzdra s medzerou na prispôsobenie medzery v hlavičkách Arduino.
  2. 4 -cestný 10 cm kábel zo štvorcestného puzdra do dvoch 2 -cestných puzdier na pripojenie kolíkov napätia na prednom paneli k doske plošných spojov.
  3. 8-cestný 10 cm kábel z 2 x 4-kolíkového konektora samec na 8-smerný konektor samice
  4. 4 -cestný 10 cm kábel zo 4 -cestného ženského puzdra na 4 -cestný ženský kryt na pripojenie sériového a I2C k prednému panelu
  5. Štvorcestný 10 cm kábel zo 4 -cestného puzdra do štyroch samostatných konektorov na pripojenie INA3221 k prednému panelu
  6. Štvorcestný 20 cm kábel na pripojenie štvorcestného ženského puzdra k štvorcestnému mužskému puzdru, pomocou ktorého je možné zapojiť sériový a I2C výstup z Arduina do ventilátora plošných spojov.
  7. 8 -cestný 10 cm kábel z 8 -cestného ženského puzdra na 8 -cestný ženský kryt na prenos digitálnych vstupov z predného panela na dosku s plošnými spojmi.
  8. 8 -cestný 10 cm kábel na prepojenie 8 -cestného samičieho puzdra s jedným 3 -cestným mužským puzdrom a jedným 5 -cestným mužským puzdrom na pripojenie deliča odporu k doske plošných spojov. Dva kryty slúžia na umiestnenie neštandardnej medzery v záhlaví na doske Arduino.
  9. 2 -cestný 20 cm kábel na prepojenie 2 -cestného ženského krytu s dvoma samostatnými konektormi pre napájanie INA3221.
  10. 2-cestný 10 cm kábel na prepojenie 2-cestného ženského puzdra s dvoma samostatnými ženskými krytmi na pripojenie tretieho pripojenia monitora INA3221 k prednému panelu.
  11. 2-cestný 10 cm kábel na prepojenie 2-cestného ženského puzdra na 2-cestný ženský kryt na pripojenie INA3221 k konektorom IO-C pre výstup ventilátora.

Krok 7: Kód Arduino

Arduino kód
Arduino kód
Arduino kód
Arduino kód

Tento projekt je založený na Arduino Mega 2650 z jednoduchého dôvodu, pretože som chcel veľa I/O portov určených na úlohy v jednoduchom formáte. Knižnice pre dotykový displej TFT predvolene podporujú Arduino Uno a je potrebné ich upraviť tak, aby podporovali Mega. Úpravy knižníc je podporované pôvodným autorom kódu TFT, je jednoduché a popísané v nasledujúcom kroku.

Použitie dotykového displeja je základom tejto časti projektu, ale keďže displej, ktorý niekto nakoniec použije, sa môže líšiť od toho, ktorý som použil, kód umiestňuje funkcie špecifické pre hardvér iba do samostatných rutín, aby bolo možné identifikovať všetky potrebné úpravy.

Tu je zahrnutá funkčná verzia kódu, ktorá sa bude aktualizovať, ale najnovšie aktualizácie budú na github.

Hlavná funkcia kódu sa točí okolo displeja, pričom každý prvok na displeji má záznam v jednom poli, ktoré obsahuje typ prvku, kde na obrazovke zobrazuje, farbu a ďalšie parametre, ako je vstupný zdroj. Snímka obrazovky tohto poľa s komentármi je uvedená vyššie. Obsahuje tiež pole na ovládanie, či sa má alebo nemá zobrazovať na obrazovke. Úpravou tohto poľa je možné pridávať nové funkcie alebo ich odstraňovať. Rutina „slučky“kódu prechádza týmto poľom nepretržite, pričom každý spôsobilý prvok spracúva postupne a potom sa opakuje. V súčasnosti existuje 6 rôznych prvkov.

Prvky ponuky - tieto nezobrazujú informácie, ale pri dotyku vykonajú priradený podprogram identifikovaný v parametroch prvku

Digitálne prvky - zobrazujú sa ako polia na obrazovke buď červené alebo zelené v závislosti od stavu priradeného digitálneho vstupného kolíka. Príklad konzoly je zapojený pre 8 digitálnych pinov, ale je možné ho podľa potreby zvýšiť alebo znížiť.

Analógové prvky - zobrazuje približné napätie merané na príslušnom analógovom pine. Pôvodne boli špecifikované štyri.

Presné prvky - vstup displeja z externého presného modulu volt/prúdový merač. Existujú iba tri z nich, ale mohol by byť pridaný druhý alebo tretí modul.

Odporový prvok - jedná sa o jeden prvok zobrazujúci vstup z merača odporu.

Dotyk - toto je jediná rutina, ktorá sa vždy vykoná, aby zistila, či sa dotkla obrazovky, a potom sa rozhodla podľa toho, čoho sa dotkla. tj. Ak je položka ponuky, čo to znamená, že sa zobrazí ďalej.

Obrazovka má tri stavové režimy, normálny, veľký a celú obrazovku a všetky prvky menia svoju činnosť v závislosti od stavu. Tri režimy sú voliteľné z ponuky dotykom na prvok a s ním spojenou možnosťou ponuky.

Normálny režim - zobrazuje 8 digitálnych vstupov, štyri analógové napäťové vstupy, tri presné prvky, odporový prvok a štyri prvky ponuky. Výberom položky Normálne z ponuky sa displej prepne do tohto režimu.

Veľký režim - vyberie sa dotykom na ktorýkoľvek z prvkov na obrazovke a potom na Veľký. Keď je vybratý, tento typ prvku je jediným vybraným typom a prvky tohto typu sú usporiadané tak, aby vyplnili celú obrazovku.

Režim celej obrazovky - vyberá sa dotykom na ktorýkoľvek z prvkov na obrazovke a potom na celú obrazovku. Keď je vybratý, tento prvok je jediným zobrazeným prvkom a je usporiadaný tak, aby vyplnil celú obrazovku, čím sa maximalizuje viditeľnosť tejto jednej položky.

Ak chcete pridať ďalšie funkcie, je potrebné pridať nasledujúce rutiny

„kresliaca“rutina, ktorá sa volá na získanie informácií o tomto prvku, zavolajte príslušnú rutinu aktualizácie obrazovky a zaregistrujte vrátené dotykové informácie

„logická“rutina, ktorá prijíma informácie z rutiny kreslenia a používa vhodné rutiny ovládača obrazovky na vloženie informácií na obrazovku a vrátenie správnych dotykových informácií pre oblasť nakreslenej obrazovky

'setup' rutina, ktorá sa nazýva ako súčasť nastavenia Arduino

Môžu byť zahrnuté aj iné rutiny, ale nemala by existovať žiadna vzájomná závislosť medzi kódom prvku, ak prvok nie je povolený, potom by sa nemal spustiť jeho kód a jednoduchá multifunkčná štruktúra si zachovala integritu.

Krok 8: Úprava knižníc Arduino

Úpravy knižníc Arduino
Úpravy knižníc Arduino
Úpravy knižníc Arduino
Úpravy knižníc Arduino

Displej, ktorý som použil, funguje veľmi dobre s Arduino Uno a základnými knižnicami preňho napísanými, ale pri prenose do Arduino Mega funguje pomaly. Na správnu funkciu displeja je potrebné použiť inú sadu dátových pinov a túto zmenu použitia je potrebné nastaviť v knižniciach. Ide o jednoduchú zmenu a jej zámerom bol autor. Obrázky zvýrazňujú vykonané zmeny.

Dva súbory sú uložené v priečinku / MCUFRIEND_kbv / utility ako mcufriend_shield.h a mcufriend_special.h. Potrebné zmeny sú najskôr v hlavičkovom súbore „štít“, aby sa zabezpečilo čítanie v prvom riadku

#define USE_SPECIAL

aby sa zabezpečilo načítanie „špeciálneho“hlavičkového súboru.

Je tiež potrebné aktualizovať „špeciálny“súbor hlavičky, aby sa zabezpečilo, že riadok

#define USE_MEGA_8BIT_PROTOSHIELD

je nekomentovaný.

Tieto dve zmeny znamenajú, že kód zobrazenia pre tento displej bude fungovať pomocou pinov 20-29 na Arduino Mega namiesto predvolených 3-10 na Uno.

Krok 9: Snímky obrazovky

Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky
Snímky obrazovky

Vložil som sem zábery obrazovky, aby bolo ľahké pochopiť, čo by mala konzola robiť. Nasledujúca časť sa týka načítania kódu do Arduina.

Prvá obrazovka zobrazuje „normálnu“obrazovku s ponukami navrchu, merania napätia na LHS, merania napätia a prúdu na RHS a stav digitálneho pinu v spodnej časti, červená pre „falošný/nízky“, zelená pre „pravdivý/vysoký“'. Nakoniec je v strede meranie odporu.

Druhá obrazovka zobrazuje digitálne vstupy povolené v režime Veľkého, pričom každý vstup je jasne zobrazený.

Tretia obrazovka zobrazuje napäťové vstupy vo veľkom režime.

Krok 10: Načítanie kódu Arduino

Kód je priložený, ale ako už bolo spomenuté, bude niekedy vložený do githubu a tu bude pridané miesto. Hlavným súborom zdrojového kódu je Arduino_Workbench_v01.ino a ostatné rutiny majú poskytovať rôzne funkcie.

Ak boli knižnice upravené v poriadku a Arduino Mega2650 bolo nastavené ako cieľová platforma v Arduino IDE, kód by sa mal kompilovať prvýkrát.

Knižnice, ktoré bude potrebné načítať, sú knižnice Adafruit GFX a Touchscreen, ktoré by mali byť k dispozícii u správcu knižníc Arduino, kópiu MCUFRIEND_kbv stiahnuteľnú z github a pre INA3221 knižnicu SwitchDocLabs SDL_Arduino_INA3221 tiež stiahnuteľnú z github, obe sa rýchlo načítajú google vyhľadávanie.

Krok 11: Záverečné dotyky

Záverečné dotyky
Záverečné dotyky
Záverečné dotyky
Záverečné dotyky
Záverečné dotyky
Záverečné dotyky
Záverečné dotyky
Záverečné dotyky

Cieľom je použiť ho na projektové práce, takže bol vyrobený odnímateľný panel obsahujúci montážne skrutky pre dosky Arduino a nepájivú dosku, celé pripevnené k veku suchým zipsom, aby boli odnímateľné a aby bolo možné vyrobiť rôzne dosky tak, aby obsahovali projekty a že box je možné znova použiť na rôzne projekty bežiace súčasne.

Očakávam, že toto bude zdrojom niekoľkých myšlienok na vytvorenie niečoho iného, lepšieho alebo oboch. Budem pridávať ďalšie funkcie, ktoré som spomenul, a pridám ich, ale ak vám to pomôže, vezmite si, čo chcete, a užívajte si to. Ak máte nejaké očividné problémy, dajte nám prosím vedieť.

Práve teraz to budem používať a používať, mám niekoľko projektov, na ktorých musím pracovať!

Odporúča: