Obsah:

Přenosný pracovní stůl Arduino Část 3: 11 kroků
Přenosný pracovní stůl Arduino Část 3: 11 kroků

Video: Přenosný pracovní stůl Arduino Část 3: 11 kroků

Video: Přenosný pracovní stůl Arduino Část 3: 11 kroků
Video: CO JSEM NESNÁŠELA JAKO MALÁ 2024, Červenec
Anonim
Přenosný pracovní stůl Arduino, část 3
Přenosný pracovní stůl Arduino, část 3
Přenosný pracovní stůl Arduino, část 3
Přenosný pracovní stůl Arduino, část 3

Pokud jste si prohlédli části 1, 2 a 2B, pak v tomto projektu dosud nebylo mnoho Arduina, ale jen pár vodičů desek atd. O tom není a část infrastruktury musí být postavena před odpočinek funguje.

Toto je elektronika a kód Arduino. Předchozí instrukce 2B uvádí podrobnosti o napájecím zdroji.

Tato část obsahuje přenosný pracovní stůl s následujícími funkcemi

Dotyková obrazovka TFT poskytující displej poháněný Arduino Mega, který poskytuje následující

  1. 8 digitálních displejů, vypnuto/zapnuto/oscilační
  2. 4 displeje napětí
  3. 3 displeje proudu/napětí
  4. Měřič odporu E24 (protože již nedokážu číst barevné pásy)

Budu přidávat další věci, ale toto byl můj počáteční cíl. Kód Arduino také uvádí sériový displej, I2C displej, kapacitní měřič, digitální přepínače a osciloskop, které přidám časem. Také jsem se úplně nerozhodl, jestli stojí za to přidat napájecí zdroj 3V3, variabilní napájecí zdroj nebo monitorování napětí/proudu napájecího zdroje. Zatím to bylo postaveno pomocí Mega, ale také se dívám na přesun některých funkcí k oddělení obvodů přístupných k I2C, buď vyhrazených čipů, nebo naprogramovaných Atmel 328, které snadněji pojmou jiný ovladač.

Zásoby

Zásuvky záhlaví 5 x 16

5 x 8cestné dupontové zásuvky, ve skutečnosti vyrobené z dlouhých 40cestných jednořadých zásuvek rozřezaných na požadovanou délku

1 x 3,5 dotykový displej TFT ILI9486

1 x Arduino Mega 2650

Jednotlivé komponenty

Podle textu není hodnota některých z nich zcela fixní a pokud vám nějaká funkce chybí, nebude vůbec potřeba:)

Digitální vstup

16 x 10K odpory

Analogový vstup

1 x TL074 a quad jfet operační zesilovač, to je to, co jsem měl jako náhradní, něco podobného bude stačit:)

Jako děliče napětí slouží odpory 4 x 68K a 4 x 430k.

4 x 1N4001 nebo podobný

Měřič odporu

1 x TL072 duální operační zesilovač jfet, to je to, co jsem měl jako rezervní, něco podobného bude dělat:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (Pokud jsou tyto hodnoty změněny, musí být aktualizován kód Arduino)

Krok 1: Přehled elektroniky

Přehled elektroniky
Přehled elektroniky
Přehled elektroniky
Přehled elektroniky
Přehled elektroniky
Přehled elektroniky
Přehled elektroniky
Přehled elektroniky

Šedou konzolu jsem vyrobil před 30 lety a stále se pravidelně používá, ale doba se posunula. Poskytuje duální napájecí zdroje vlevo, centrální zesilovač zvuku uprostřed, s vnitřním reproduktorem a oscilátorem vlevo. V dnešní době většina mých obvodů potřebuje pouze napájecí zdroj a z toho pouze kladnou kolejnici. Bylo potřeba něco jiného, stejně jako označení, bez kterého jsem žil, ale zvládl jsem to.

Hlavními požadavky na elektroniku projektového boxu bylo napájení novějších obvodů pomocí Arduino nebo Raspberry PI, takže 5V bylo zásadní, stejně jako zásuvky USB. Osvětlené spínače mi říkají, zda je napájení zapnuté nebo ne, a při testování musím pravidelně stavět malé pomocné obvody, které dočasně zobrazují stav. Mám krabici objemných metrů, které zabírají spoustu místa na lavičce, a hlavně potřebuji displej, který snadno čtu, jak se můj zrak zhoršuje, něco s velkými jasnými znaky. Potřebuji tedy digitální displeje, měřiče napětí, měřiče proudu a v tomto případě trochu luxusu v podobě měřiče odporu pro rychlou identifikaci odporů řady E24, a to vše do 15 cm od prkénka projektu a v kompaktním přenosném pouzdře.

Hlavní napájecí zdroj, popsaný v předchozím článku, poskytuje napájení víku pomocí 40páskového plochého kabelu, který umožňuje jejich připojení, když je víko zavřené. To poskytuje spínané napájení 5 V a 12 V pro elektroniku panelu a pro napájení prkénka.

Všechny napájecí a signální vstupy zajišťují 2x8-cestné zásuvkové konektory PCB paralelně s 8-cestnou dupontní zásuvkou. To je pravděpodobně přehnané, většina prkénka mají napájecí lišty, ale bylo snadné to udělat.

Na napájecích zásuvkách je hlavní 0V kolejnice napájecího zdroje společná pro všechny zdroje a je k dispozici. Nad tím je 5V napájecí zdroj, zapnutý na základní jednotce, a nad tím jsou dva dodávané +12 V a -12 V zdroje, které jsou v současné době opraveny, i když mám nápad hacknout zdroj, aby byl variabilní a poskytoval 3,3 -20 V variabilní nabídka.

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Zveřejnil jsem otisky obrazovky rozložení prkénka, jak obvod vypadá, když je postaven na maticové desce, schéma jako PDF a původní soubory Fritzing. Toto není nijak zvlášť složitá elektronika a je zde pro montáž omezujících odporů, zesilovačů vyrovnávací paměti a připojení ventilátoru pro desku Arduino. Existuje však několik obrázků, které ukazují tato spojení trochu jasněji. Většina kabeláže byla vytvořena ze standardních délek předem zvlněného plochého kabelu dupont, který byl znovu sestaven do vícecestných pouzder, aby bylo jednodušší je znovu zapojit a být spolehlivější.

Arduino Mega 2650 je namontován ve víku pomocí USB zásuvky dostupné pro programování. Pohání dotykovou obrazovku TFT používanou k zobrazení všech výstupů a vstupů.

Je-li zvolena tato funkce, je k dispozici 8 digitálních vstupů prostřednictvím 2 x 8cestného konektoru desky plošných spojů a jejich stav se zobrazí na obrazovce. Jedná se o jednoduché zobrazení zapnutí/vypnutí, červené vypnuto, zelené zapnuto. Jako budoucí změnu mohu přidat oscilaci.

Prostřednictvím konektoru desky plošných spojů jsou také k dispozici 4 napěťové vstupy a dělič napětí, napětí zobrazené na obrazovce. Každé vstupní napětí na předním panelu, s odkazem na společnou zem, je předáno do děliče napětí 7 a poté uloženo do vyrovnávací paměti jedním ze čtyř operačních zesilovačů v TL074 konfigurovaném jako usměrňovací zesilovač, aby se předešlo nehodám se záporným napětím. Bylo by hezké přidat v určité fázi označení polarity, ale ne tentokrát. Výstup z každého operačního zesilovače je na jeden ze vstupů ADC Arduina.

Další záhlaví desky plošných spojů odhaluje sériové i I2C připojení. To bylo provedeno za účelem umožnění implementace konzoly sériového displeje a základní identifikační funkce I2C.

Ukázalo se, že napěťové/digitální vstupy nejsou všechny potřebné, takže je lze znovu nakonfigurovat tak, aby poskytovaly digitální spínací výstupy.

Arduino napájí odporové pole na dělič napětí, aby poskytovalo funkci měřiče odporu. Výstup z toho je uložen do vyrovnávací paměti op-amp (polovina TL072), než je načte Arduino a vypočítá se odpor. Účelem není přesné měření odporu, ale rychlá identifikace hodnot řady E24, ačkoli s určitou kalibrací by mohl být použit jako základní měřič. Jeho funkcí je detekovat, když je na dvou pružinách namontovaných na předním panelu přítomen odpor menší než 9 M9, a poté selektivně přepínat 5 V na každý odpor v děličovém poli, dokud nebude změřena hodnota nejblíže 2,5 V nebo dokud nebude vybrán poslední odpor, a poté se provede výpočet a srovnání, aby se určila nejbližší hodnota E24. 5V pochází z digitálních výstupů 3-10 na Arduinu, které jsou překonfigurovány jako vstupy s vysokou impedancí mezi každým měřením, aby se minimalizovaly chyby. Piny Arduino D3-10 byly záměrně použity jako budoucí přírůstek může být kapacitní měřič využívající schopnost PWM těchto výstupů, což by potenciálně mohla být pouze softwarová změna.

Upravená deska INA3221 poskytuje další měření napětí a proudu prostřednictvím rozhraní I2C se vstupy z předního panelu. Vše je propojeno pomocí propojovacích kabelů, takže přeřazení funkcí bude v budoucnu snadné.

Krok 3: Vstup napětí/proudu INA3221

INA3221 Vstup napětí/proud
INA3221 Vstup napětí/proud

Toto bylo zamýšleno jako rychlá oprava k zajištění měření napětí/proudu v krabici, ale ukázalo se, že jak bylo implementováno na desce, kterou jsem koupil, byla určena ke sledování nabíjení baterie, takže musela být upravena tak, aby poskytovala tři nezávislá měření. Pokud při vytváření tohoto projektu můžete získat desku INA3221, která implementuje tento čip podle datového listu, pak to není nutné.

Při pohledu na obrázek musí být na deskách plošných spojů provedeny tři řezy k oddělení měřicích odporů. Podložky pro tyto tři odpory je také nutné nařezat, aby se oddělily od zbytku desky plošných spojů. Rezistory jsou poté spojeny s podložkami pájením dalších vodičů jako můstků. Dokumentuji to, protože se jedná o běžnou desku a může být jedinou dostupnou.

Připojení k desce z předního panelu se pak provádí propojovacími kabely přes měřicí odpory.

Napájení desky je odebíráno z 5V kolíků Arduino stejně jako uzemnění, přičemž připojení I2C směřuje na desku elektroniky.

Krok 4: Obrazovka displeje

Obrazovka displeje
Obrazovka displeje

Toto byl nákup na eBay a je k dispozici ze spousty zdrojů a jedná se o displej poháněný ILI9486. Zjistil jsem, že to nejlépe fungovalo s knihovnami MCUFRIEND Davida Prentice, ale před použitím to musí být kalibrováno, což vyžaduje pouze to, aby jeden z příkladů knihoven poskytovaných Davidem byl spuštěn s připojenou obrazovkou, postupujte podle pokynů na obrazovce a zapište si zobrazené parametry, vložením do souboru kódu Arduino_Workstation_v01, pokud se liší.

Pro tento projekt je zásadní dotyková obrazovka, která se točí kolem toho, že nemá vyhrazené přepínače a zařízení, které by v budoucnu přidávalo nabídky a funkce bez spousty přepojování.

Krok 5: Spojte to dohromady

Spojit to dohromady
Spojit to dohromady
Spojit to dohromady
Spojit to dohromady
Spojit to dohromady
Spojit to dohromady

Arduino Mega se nachází na LHS víka a jeho USB a napájecí porty jsou přístupné zvenčí. Na RHS vedle Arduina je elektronika namontovaná na maticové desce a nad ní je na zadní straně víka namontována deska INA3221.

Také na zadní straně víka na LHS nad Arduinem je společná deska pro připojení uzemnění, ke které jsou připojeny všechny důvody.

Bylo spojeno co nejvíce svodů do vícecestných konektorů. Díky tomu je zapojení obvodů k sobě mnohem jednodušší a spolehlivější a vzájemná podpora konektorů ve vícecestném pouzdru poskytuje lepší odolnost proti uvolnění. Následuje seznam těchto konsolidací.

Všechny konektory byly přidány logickým způsobem, což poskytovalo nejlepší přístup pro navazování spojení s mými neohrabanými prsty, takže připojení předního panelu zůstalo až do konce, přičemž poslední připojení displeje prošlo montážním otvorem, který měl být dokončen jako poslední. Obrazovka byla upevněna na svém místě pomocí 3D tištěné lunety.

Krok 6: Konsolidované potenciální zákazníky

Konsolidované potenciální zákazníky
Konsolidované potenciální zákazníky
  1. Vstupy napětí a odporu do portů ADC Arduino, pět vývodů 20 cm s jednotlivými zástrčkami na jednom konci, konsolidované do šestipásmového pouzdra s mezerou pro přizpůsobení mezery v záhlaví Arduino.
  2. 4cestný 10cm kabel ze čtyřcestného pouzdra do dvou obousměrných pouzder pro připojení napěťových kolíků na předním panelu k desce s obvody.
  3. 8pásmový 10cm kabel z 2x4-cestného samčího konektoru na 8-cestný samičí konektor
  4. 4pásmový 10cm kabel od 4cestného pouzdra pro ženy k 4pásmovému pouzdru pro připojení sériového a I2C k přednímu panelu
  5. Čtyřcestný 10cm kabel od 4cestného pouzdra ke čtyřem jednoduchým konektorům pro připojení INA3221 k přednímu panelu
  6. Čtyřcestný 20cm kabel pro připojení čtyřcestného samičího krytu k čtyřcestnému samčímu pouzdru pro přenos sériového a I2C z Arduina do ventilátoru obvodové desky.
  7. 8 -cestný 10cm kabel z 8 -cestného samičího krytu na 8 -cestný samičí kryt pro přenos digitálních vstupů z předního panelu na desku s obvody.
  8. 8pólový 10 cm kabel pro připojení 8cestného pouzdra samice k jednomu 3cestnému pouzdru pro zástrčku a jednomu 5pásmovému pouzdru pro připojení odporového děliče k desce s obvody. Dvě pouzdra slouží k umístění nestandardní mezery v záhlaví na desce Arduino.
  9. 2pásmový 20cm kabel pro připojení 2cestného pouzdra samice ke dvěma samostatným konektorům pro napájecí zdroj INA3221.
  10. 2pásmový 10cm kabel pro připojení 2cestného pouzdra samice ke dvěma samostatným pouzdrům pro připojení třetího připojení monitoru INA3221 k přednímu panelu.
  11. 2cestný 10cm kabel pro připojení 2cestného samičího krytu k 2cestnému samičímu pouzdru pro připojení INA3221 k připojení I2C ventilátoru.

Krok 7: Arduino kód

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, protože jsem chtěl spoustu I/O portů věnovaných úkolům v jednoduchém formátu. Knihovny pro dotykovou obrazovku TFT standardně podporují Arduino Uno a musí být upraveny tak, aby podporovaly Mega. Úpravy knihoven jsou podporovány původním autorem kódu TFT, jsou jednoduché a popsané v dalším kroku.

Používání dotykového displeje je základem této části projektu, ale protože displej, který někdo nakonec používá, se může lišit od toho, který jsem použil, kód pouze umístí funkce specifické pro hardware do samostatných rutin, takže lze identifikovat všechny potřebné úpravy.

Zde je zahrnuta pracovní verze kódu, která bude aktualizována, ale nejnovější aktualizace budou na github.

Hlavní funkce kódu se točí kolem displeje, každý prvek na displeji má záznam v jednom poli, které obsahuje typ prvku, kde na obrazovce zobrazuje, barvu a další parametry, jako je vstupní zdroj. Snímek obrazovky s tímto polem s komentáři je uveden výše. Obsahuje také pole, které určuje, zda se má na obrazovce zobrazit nebo ne. Úpravou tohoto pole lze přidávat nové funkce nebo je odstraňovat. Rutina 'smyčky' kódu prochází tímto polem nepřetržitě, zpracovává každý způsobilý prvek postupně a poté se opakuje. V současné době existuje 6 různých prvků.

Prvky nabídky - nezobrazují informace, ale po dotyku provedou přidružený podprogram identifikovaný v parametrech prvku

Digitální prvky - zobrazí se jako pole na obrazovce buď červené nebo zelené v závislosti na stavu příslušného digitálního vstupního pinu. Příklad konzoly je zapojen pro 8 digitálních pinů, ale lze jej podle potřeby zvýšit nebo snížit.

Analogové prvky - zobrazí přibližné napětí měřené na příslušném analogovém pinu. Čtyři jsou původně specifikovány.

Přesné prvky - vstup displeje z externího přesného modulu měřiče voltů/proudu. Jsou tam jen tři, ale mohl by být přidán druhý nebo třetí modul.

Odporový prvek - jedná se o jeden prvek zobrazující vstup z měřiče odporu.

Dotek - toto je jediná rutina, která je vždy prováděna, aby zjistila, zda se dotkla obrazovky, a poté se rozhodla podle toho, čeho se dotkla. tj. pokud jde o položku nabídky, co to znamená, že se zobrazí dále.

Obrazovka má tři stavové režimy, normální, velkou a celou obrazovku a všechny prvky mění svůj provoz v závislosti na stavu. Tyto tři režimy lze vybrat z nabídky dotykem na prvek a související možností nabídky.

Normální režim - zobrazuje 8 digitálních vstupů, čtyři analogové napěťové vstupy, tři přesné prvky, odporový prvek a čtyři prvky nabídky. Výběrem položky Normální z nabídky se displej přepne do tohoto režimu.

Velký režim - je vybrán dotykem na kterýkoli z prvků na obrazovce a následně na Velký. Když je vybrán, je tento typ prvku jediným vybraným typem a prvky tohoto typu jsou uspořádány tak, aby vyplnily celou obrazovku.

Režim celé obrazovky - je vybrán dotykem na kterýkoli z prvků na obrazovce a následně na celou obrazovku. Je -li vybrán, je tento prvek jediným zobrazeným prvkem a je uspořádán tak, aby vyplňoval celou obrazovku a poskytoval maximální viditelnost této jedné položky.

Chcete -li přidat další funkce, je třeba přidat následující rutiny

'draw' rutina, která je volána k získání informací o tomto prvku, zavolá příslušnou rutinu aktualizace obrazovky a zaregistruje vrácené dotykové informace

„logická“rutina, která přijímá informace z rutiny kreslení a pomocí příslušných rutin ovladače obrazovky vkládá informace na obrazovku a vrací správné dotykové informace pro oblast kreslené obrazovky

'setup' rutina, která se nazývá jako součást nastavení Arduina

Mohou být zahrnuty další rutiny, ale neměla by existovat žádná vzájemná závislost mezi kódem prvku, pokud prvek nebyl povolen, pak by jeho kód neměl být spuštěn a jednoduchá multifunkční struktura si zachovává svoji integritu.

Krok 8: Úpravy knihoven Arduino

Úpravy knihoven Arduino
Úpravy knihoven Arduino
Úpravy knihoven Arduino
Úpravy knihoven Arduino

Displej, který jsem použil, funguje velmi dobře s Arduino Uno a základními knihovnami pro něj napsanými, ale při přímém přenosu do Arduino Mega funguje pomalu. Pro správnou funkci displeje je třeba použít jinou sadu datových pinů a tuto změnu použití je třeba nastavit v knihovnách. Jedná se o jednoduchou změnu, kterou autor zamýšlel. Obrázky zvýrazňují provedené změny.

Dva soubory jsou uloženy ve složce MCUFRIEND_kbv / utility jako mcufriend_shield.h a mcufriend_special.h. Požadované změny jsou nejprve v souboru záhlaví 'štít', aby se zajistilo čtení prvního řádku

#define USE_SPECIAL

aby bylo zajištěno, že je načten „speciální“záhlaví.

Soubor záhlaví „speciální“musí být také aktualizován, aby se zajistilo, že řádek

#define USE_MEGA_8BIT_PROTOSHIELD

je nekomentován.

Tyto dvě změny znamenají, že kód displeje pro tento displej bude fungovat pomocí pinů 20-29 na Arduino Mega namísto výchozí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 jsem sem snímky obrazovky, takže je snadné zjistit, co by konzole měla dělat. Další část se týká načtení kódu do Arduina.

První obrazovka zobrazuje 'normální' obrazovku s nabídkami v horní části, měření napětí na LHS, měření napětí a proudu na RHS a stav digitálního pinu ve spodní části, červená pro 'falešná/nízká', zelená pro 'skutečná/vysoká '. Nakonec je ve středu měření odporu.

Druhá obrazovka zobrazuje digitální vstupy povolené v režimu Large, každý vstup je jasně zobrazen.

Třetí obrazovka zobrazuje napěťové vstupy ve velkém režimu.

Krok 10: Načtení kódu Arduino

Kód je přiložen, ale jak již bylo zmíněno dříve, bude někdy umístěn na github a zde bude přidáno umístění. Hlavním souborem zdrojového kódu je Arduino_Workbench_v01.ino a ostatní rutiny mají poskytovat různé funkce.

Pokud byly knihovny upraveny v pořádku a Arduino Mega2650 bylo nastaveno jako cílová platforma v Arduino IDE, měl by se kód zkompilovat poprvé.

Knihovny, které bude nutné načíst, jsou knihovny Adafruit GFX a Touchscreen, které by měly být k dispozici u správce knihoven Arduino, kopie MCUFRIEND_kbv ke stažení z github a pro INA3221 knihovna SwitchDocLabs SDL_Arduino_INA3221 také stahovatelná z github, obě se rychle objeví vyhledávání google.

Krok 11: Poslední dotyky

Poslední dotyky
Poslední dotyky
Poslední dotyky
Poslední dotyky
Poslední dotyky
Poslední dotyky
Poslední dotyky
Poslední dotyky

Cílem je použít jej pro projektové práce, takže byl vyroben odnímatelný panel obsahující montážní šrouby pro desky Arduino a prkénko, celé připevněné k víku suchým zipem, aby byly odnímatelné, a aby bylo možné vyrobit různé desky tak, aby obsahovaly projekty a že krabici lze znovu použít pro různé projekty běžící souběžně.

Očekávám, že toto bude zdrojem několika nápadů, jak vytvořit něco jiného, lepšího nebo obojího. Budu přidávat další funkce, které jsem zmínil, a přidám je, ale pokud to pomůže, vezměte si, co chcete, a užijte si to. Pokud máte nějaké do očí bijící problémy, dejte mi prosím vědět.

Právě teď to budu používat a používat, mám několik projektů, na kterých musím pracovat!

Doporučuje: