Satura rādītājs:

Oled modinātājs: 8 soļi (ar attēliem)
Oled modinātājs: 8 soļi (ar attēliem)

Video: Oled modinātājs: 8 soļi (ar attēliem)

Video: Oled modinātājs: 8 soļi (ar attēliem)
Video: 8 Часов Музыка для Глубокого Сна, Расслабляющая, Медитации, Музыка для сна и медитации, ☯159 2024, Novembris
Anonim
Oled modinātājs
Oled modinātājs

Apkārt ir daudz arduino/ESP32 pulksteņu, bet vai tie izmanto šos jaukos un kraukšķīgos OLED?

Es jau kādu laiku eksperimentēju ar arduinos un ESP32, bet nekad neesmu panācis līdz gatavam produktam. Esmu izgatavojis modinātāju ar 4 1,3 collu vienkrāsainiem OLED. Pulkstenī ir arī aptumšojama naktslampa un USB uzlādes ports (nevienam nav rezerves kontaktligzdas blakus viņa gultai). Arī OLED ir aptumšojami, tas tika pievienots pēdējā brīdī pēc tam, kad mana draudzene draudēja manam projektam. Ja draudzenes balss nav pietiekami blāva, es varu arī nodrošināt koda versiju, kurā noteiktos laikos ir ieslēgti 3 displeji. Mērķis bija izveidot viegli lietojamu pulksteni ar izskatu, kas pārsniedz “prototipu”. Gatavojot pulksteni, es saskāros ar dažām grūtībām, kas man bija jāatrisina, tāpēc es domāju, ka ar šo pamācību ir vērts dalīties. Pulksteni var izgatavot ar maziem instrumentiem, man nepatīk "un nākamajā solī es izmantoju savas 10.000 €/USD CNC dzirnavas" pamācības.

Dažas lietas, kas tiks paskaidrotas šajā pamācībā (strukturējamā veidā):

- Kā lietot/pieslēgt I2C OLED displeju ar arduino/ESP32

- Kā izmantot vairākus I2C objektus ar vienu arduino/ESP32

- Kā izveidot "ritināmu" izvēlni, izmantojot rotējošo kodētāju (+ kā izmantot kodētāju ar ESP32/arduino)

- Kā izveidot un pasūtīt pielāgotu PCB, izmantojot fritēšanu.

- Pulkstenis izmanto arī RTC (reālā laika pulksteni), vadītu draiveri, atkāpjas no sprieguma moduļa … Es īsti neiedziļināšos šajos, jo šiem moduļiem patiešām ir daudz informācijas.

Vēlos atzīmēt, ka neesmu profesionāls programmētājs. Mana pamācības mērķis ir izskaidrot iepriekš minētos punktus. Tas, kā es to visu saliku savam galaproduktam, varētu nebūt tīrākais veids. Tas ir veids, kas ļāva man tam visam izsekot.

Piegādes

Pērkot preces, es vienmēr cenšos izvērtēt kvalitātes/dokumentācijas un cenas nozīmi. Mani krājumi ir A zīmolu un lētāku ķīniešu detaļu sajaukums. Mouser ir lielisks piegādātājs, ja kvalitāte ir svarīga, lētākas detaļas es pasūtu no Banggood/Aliexpress.

- ESP32 tāfele, es izmantoju Huzzah32 no adafruit, bet ir daudz citu (lētāku) iespēju. Es izvēlējos Huzzah32, jo tas ir ļoti labi dokumentēts.

- 4 1,3 collu I2C OLED displeji (128x64, ar SH1106 draiveri), 0,96 collu diski ir biežāk sastopami, taču šim projektam es dodu priekšroku 1,3 collu displejiem

- Sparkfun femtobuck draiveris, lai vadītu LED

- RTC pulkstenis, es izmantoju vienu ar litija elementu

- Arduino nano

-Sievietes USB 2.0 ports (es izmantoju: SS-52200-002 no Stewart Connector)

- sieviešu līdzstrāvas ligzda (es izmantoju: L722A no Switchcraft)

- 12V 3A līdzstrāvas adapteris (GST36E12-P1J no Mean Well)

- Pielāgota PCB, pēc izvēles, taču tas padara projektu daudz kompaktāku un vieglāk apkalpojamu, ja detaļa nomirst, + lielāku uzticamību, jo mazāk vadu (jlcpcb.com)

- M3 skrūves un skrūves

- M3 misiņa ieliktņi

- 12V līdz 5V atkāpšanās modulis no Pololu (DF24V22F5)

- 3 vati ar radiatoru

- Jumper vadi

- skaņas signāls

- I2C multipleksors (TCA9548A no adafruit)

- 2 rotējošie kodētāji (esmu izmēģinājis dažus, ne visi darbojas ar manu kodu. DFrobot kods darbojas, tāpat kā viens no apaļā PCB no "DIYmore". Mans kods, šķiet, nedarbojas spiedpogai. no KY-040 tipa. Mans modinātājs izmanto DIYmore modinātāju, jo tos ir ļoti viegli piestiprināt pie paneļa (nav vajadzīgas papildu skrūves/caurumi).

- sieviešu virsrakstu sortiments (pēc izvēles)

- Koks rāmim: 18mmx18mmx2400mm

- pauspapīrs

Es izmantoju arī dažus instrumentus (lodāmuru, trešo roku, zāģi …), taču nekas īsti eksotisks.

1. solis: Oled izmantošana

Oled izmantošana
Oled izmantošana
Oled izmantošana
Oled izmantošana
Oled izmantošana
Oled izmantošana

Lai izmantotu OLED, jums jāinstalē bibliotēka. Es izmantoju Oli Kraus U8G2lib, tas ir ļoti saprotams, un tajā ir uzziņu ceļvedis ar skaidriem piemēriem.

Lai savienotu savu dēli (ESP vai arduino), jums jāatrod SDA un SCL tapas. Šīs tapas ir I2C sakaru tapas. Ja nevarat tos atrast, meklējiet Google īpašā dēļa “pinout”.

Esmu pievienojis koda piemēru. Kods darbojas gan arduino, gan ESP32, taču retāk ESP32 atmiņa beigsies. Visi līdz šim izmēģinātie esat ar 3.3v (ESP32) un 5V.

2. darbība. Vairāki OLED

Vairāki OLED
Vairāki OLED

Šeit mans projekts sāk atšķirties no daudziem citiem modinātājiem. Lielākajai daļai arduinos/ESP ir tikai viena vai divas I2C tapas. Šis veids ierobežo I2C detaļu izmantošanu. Ko darīt, ja man ir 4 I2C sensori un es vēlos parādīt to rādījumus I2C displejā? Ievadiet multipleksoru. Muliplekseris ļauj adresēt 7 dažādas I2C daļas. Tas ļauj manam ESP32 izmantot I2C reāllaika pulksteni un atkal parādīt laiku, izmantojot I2C četros displejos (vai vairāk, neļaujiet mani apturēt).

Esmu pievienojis kādu ESP32 koda piemēru, no šī brīža es neesmu pārliecināts, ka arduino var sekot līdzi. Piemērā tiek izmantoti tikai displeji, tās var būt arī citas lietas, piemēram, I2C sensori utt. Princips vienmēr ir vienāds, jūs izsaucat pareizo kanālu ar "tcaselect (#);" funkciju, tad jūs izpildāt jebkuru kodu, kas jums nepieciešams I2C objektam.

3. darbība. Ritināmas izvēlnes izveide ar rotējošu kodētāju

Ritināmas izvēlnes izveide ar rotējošu kodētāju
Ritināmas izvēlnes izveide ar rotējošu kodētāju
Ritināmas izvēlnes izveide ar rotējošu kodētāju
Ritināmas izvēlnes izveide ar rotējošu kodētāju
Ritināmas izvēlnes izveide ar rotējošu kodētāju
Ritināmas izvēlnes izveide ar rotējošu kodētāju

Vispirms pārbaudiet kodētājus. Esmu pievienojis kodu, lai pārbaudītu jūsu kodētāja moduļus. Kā norādīts piegādēs: esmu veiksmīgi pārbaudījis savu kodu tikai ar rotējošā kodētāja moduļiem no DF robota un moduli ar apaļo PCB no DIYmore. Pareizos kodētājus skatiet iepriekš redzamajos attēlos.

Bibliotēka, kuru izmantoju, ir šāda:

Pievienotais PDF fails, cerams, palīdz manam pulkstenim izmantotajai izvēlnes struktūrai.

Lai kodētājs darbotos, man bija visgrūtākā šī projekta daļa. Ir daudz dažādu kodētāju un daudz dažādu bibliotēku, kas ne vienmēr ir saderīgas ar ESP32. Bet es domāju, ka (strādājošs) rotējošais kodētājs ir elegants risinājums, ja vēlaties kaut ko ievadīt. Ja es būtu izmantojis tikai pogas, man būtu vajadzējis vairāk nekā 1, un laika iestatīšana prasītu daudz preses.

4. darbība. Iepriekšējā koda salikšana

Iepriekšējā koda savienošana
Iepriekšējā koda savienošana

Nosaukums apkopo to, ko es darīju. Es mēģināju daļēji un tad visu saliku kopā. Bet, tā kā nekas nav viegli, man bija jāmaina dažas lietas. Sērijveida saziņa ir lēns process. Tas traucē pareizi nolasīt kodētāju. Lai to pārvarētu, es pievienoju kodētāja tapām pārtraukumus. Kodētāja nolasīšanas kods tiek nekavējoties izsaukts, ja nospiežat vai pagriežat kodētāju.

Kad esat sapratis, kā tiek veidota izvēlne, jūs atradīsit, ka ir ļoti viegli pievienot vai noņemt funkcijas pēc jūsu vēlmēm. Varbūt vēlaties no interneta izgūt pašreizējos laika apstākļus vai laiku un parādīt to?

Es esmu izlaidis daudzas šādas idejas, jo es galvenokārt gribēju uzticamu laika mieru. Tāds, kas neko nedara automātiski. Es strādāju ļoti nepāra stundās vasaras laika zonā. Katru reizi, kad tiek mainīta stunda, es nervozēju, lai pārgulētu. Vai mans tālrunis automātiski mainīs stundu? Vai mans pulkstenis? Nu, mans pulkstenis to nedarīs, ja vien pats to nemainīšu. Bet varbūt jūs vēlaties ievietot savu pulksteni virtuvē? Dažāds scenārijs, pievienojiet funkcijas, līdz atmiņa ir beigusies!

5. solis: pielāgota PCB ar Fritzing + shematisku shēmu

Pielāgota PCB ar Fritzing + shematisku shēmu
Pielāgota PCB ar Fritzing + shematisku shēmu
Pielāgota PCB ar Fritzing + shematisku shēmu
Pielāgota PCB ar Fritzing + shematisku shēmu
Pielāgota PCB ar Fritzing + shematisku shēmu
Pielāgota PCB ar Fritzing + shematisku shēmu

Uzmanības punkts: Adafruit norāda, ka, lai gan jūs varat barot huzzah32, izmantojot USB tapu, jums jābūt uzmanīgiem, lai vienlaikus neizmantotu mikro USB barošanas avotu. Mana PCB tiek darbināta, izmantojot atkāpšanās pogu, kas pēc tam baro huzzah, izmantojot USB tapu. Tāpēc augšupielādes laikā vienmēr atvienojiet ārējo barošanu/noņemiet huzzah no tāfeles.

Es nolēmu lodēt sieviešu galvenes uz PCB, jo tas atvieglo detaļas nomaiņu vai, piemēram, pievieno papildu I2C sensoru. Tas arī ļauj man viegli noņemt nano vai ESP32, lai ielādētu programmas.

Esmu pievienojis Frizting failu, varu šeit ierakstīt romānu, bet, manuprāt, piemērs runā vislabāk. Es sāku ar visas iestatīšanas shēmu. Lai gan Fritzing tvertnēs ir daudz detaļu, viss nav tur. Dažreiz jūs varat atrast Fritzing daļu internetā, dažreiz jūs nevarat. Daļas, kuras es nevarēju atrast, es vienkārši aizstāju ar sieviešu galvenes daļu. Ja ar peles labo pogu noklikšķiniet uz tā, varat rediģēt galveni līdz vajadzīgajam tapas daudzumam un piešķirt tai pinout. Es to darīju ar katru daļu, kuru nevarēju atrast. Tā kā gandrīz visos moduļos tiek izmantots vienāds 0,1 collas (2,54 mm) solis, tas nodrošinās pareizu detaļas atstarpi.

Tālāk jūs pārslēdzaties uz fritēšanas lietotnes PCB skatu. Tiks ievietots PCB, uzklikšķinot uz tā, varat iestatīt tā izmēru un izvēlēties viena vai divu slāņu PCB. Manējais izmanto 2 slāņus. Fritzing ieteiks savienojumus, ko esat izveidojis shematiskajā skatā. Programmai ir autoroute iespēja, bet es to nekad neizmantoju. Man patīk manuāli sakārtot savus savienojumus. PCB skatā dzeltenie savienojumi atrodas augšējā slānī, oranžie - apakšējā slānī. Atkal, noklikšķinot uz savienojuma, varat izvēlēties tā īpašības.

Lai izveidotu faktisko PCB, tas ir jāeksportē kā gerber fails. Pirms jūs to darāt, cilnē "maršrutēšana" varat pārbaudīt dizaina noteikumus. Ja viss ir pārbaudīts, varat noklikšķināt uz "eksportēt uz PCB". Lielākā daļa ražotāju pieprasīs gerber failu, tāpēc izvēlieties eksportu uz gerber.

Es pasūtīju savu PCB no JLCPCB, man patīk, ka viņi nekavējoties nosauc jums cenu. Protams, ir daudz citu iespēju.

Par shēmu: tiek izmantoti 2 spriegumi. Gaismas diodi un femtobuck baro tieši no 12 V barošanas avota. Pārējais tiek darbināts, izmantojot pazeminošo sprādzi ar 5 voltiem.

6. solis: dizains + lāzera griezējs

Dizains + lāzergriešana
Dizains + lāzergriešana
Dizains + lazergriezējs
Dizains + lazergriezējs

Pirmajā dizainā es mēģināju izmantot masīvu ozolu (sekoju kokapstrādes nodarbībām), taču ātri kļuva skaidrs, ka tas nav ideāli. Koksne ir pārāk bieza, tādēļ ir grūti uzstādīt detaļas. 3 mm bērza multiplekss ļauj vienkāršāk piestiprināt kodētājus un displejus.

Es atradu tiešsaistes lasercut pakalpojumu snijlab.nl, kas pieejams hobijiem Roterdamā (tie tiek nosūtīti uz Beļģiju, Nīderlandi un Vāciju). Viņu vietnē jūs varat augšupielādēt savus zīmējumus, un viņi nekavējoties norāda jūsu cenu. Es izmantoju Autocad, kas man ir darbā, bet programmatūrai nav īstas nozīmes. Tam vienkārši jābūt vektoru zīmējumam (Vectr, Illustrator, Inkscape …). Lielākā daļa veikalu izmanto krāsas, lai noteiktu, vai vēlaties griezt vai gravēt.

Dažas lietas, kas jāpatur prātā:

- Maks. lāzera griezēja izmēri (es uzzīmēju rāmi ap savām detaļām)

- Min. attālums starp griezumiem

- Pārliecinieties, ka nevelciet dubultās līnijas, lāzers veiks papildu piespēli, kas jums izmaksās vairāk.

- Plānojot PDF formātā, noteikti zīmējiet 1: 1. Jūs nevēlaties samazināt vai pielāgot papīram.

7. solis: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža

Es uzbūvēju pulksteni ap koka rāmi, paneļi tiek turēti vietā ar M3 skrūvēm un ieliktņiem rāmī. Ja es kādreiz izveidotu 2. versiju, paneļu piestiprināšanai izmantotu alumīnija "L" profilus. Bija ļoti grūti precīzi izurbt caurumus misiņa ieliktņiem. Man bija vajadzīgs ļoti ilgs laiks, lai sasniegtu tikai pieņemamu rezultātu. Tas, protams, nozīmētu, ka ir jāpārskata lazergriezuma zīmējums. Es domāju, ka ar alumīnija profiliem un tikai uzgriežņiem un skrūvēm jūs iegūtu labāku rezultātu.

Lai labāk izkliedētu gaismu, perforāciju iekšpusē esmu pielīmējis pauspapīru. Tas piešķir gaismai jauku mirdzumu.

8. solis: neapstājieties šeit

Neapstājieties šeit
Neapstājieties šeit
Neapstājieties šeit
Neapstājieties šeit
Neapstājieties šeit
Neapstājieties šeit

Projekta centrā ir ESP32, es to tik tikko neesmu izmantojis. Manas guļamistabas apgaismojumu pašlaik var attālināti vadīt, izmantojot blynk. To vadīšana ar pulksteni ir tikai neliels solis tālāk. Varbūt vēlaties papildu displejus, kas parāda temperatūru jūsu mājā? Vai daži vietējie sensori (šajā multipleksorā joprojām ir rezerves I2C savienojumi!). Varbūt iestatīt laiku/modinātāju, izmantojot lietotni un Bluetooth?

Ļaujiet man zināt, ko jūs mainījāt, ko jūs mainītu, kas man būtu jāmaina…

Ieteicams: