Satura rādītājs:
- Piegādes
- 1. solis: Oled izmantošana
- 2. darbība. Vairāki OLED
- 3. darbība. Ritināmas izvēlnes izveide ar rotējošu kodētāju
- 4. darbība. Iepriekšējā koda salikšana
- 5. solis: pielāgota PCB ar Fritzing + shematisku shēmu
- 6. solis: dizains + lāzera griezējs
- 7. solis: montāža
- 8. solis: neapstājieties šeit
Video: Oled modinātājs: 8 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
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
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
Š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
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
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
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
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
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
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:
RaspberryPi islāma lūgšanu pulkstenis un modinātājs: 15 soļi (ar attēliem)
RaspberryPi islāma lūgšanu pulkstenis un modinātājs: musulmaņiem visā pasaulē katru dienu ir piecas lūgšanas, un katrai lūgšanai ir jābūt noteiktā diennakts laikā. eliptiskais veids, kā mūsu planēta pārvietojas ap sauli, kas padara saullēkta un lejupslīdes laiku visu gadu atšķirīgu, tāpēc
Sejas pieskāriena modinātājs: 4 soļi (ar attēliem)
Sejas pieskāriena trauksme: Pieskaršanās mūsu sejai ir viens no visizplatītākajiem veidiem, kā inficēties ar tādiem vīrusiem kā Covid-19. Akadēmiskais pētījums 2015. gadā (https://www.ncbi.nlm.nih.gov/pubmed/25637115) atklāja, ka mēs pieskaramies savām sejām vidēji 23 reizes stundā. Es izlemju
Divu zvanu modinātājs no sodas kannām: 7 soļi (ar attēliem)
Dvīņu zvana modinātājs no soda kārbām: šī pamācība parāda, kā no sodas kannām izveidot modinātāju ar diviem zvaniem. Projektā tiek izmantotas sodas kannas, kurās tika noņemta tinte (saite: tintes noņemšana no sodas kannām). Lai šis modinātājs būtu pilnībā funkcionāls, tika integrēts DIY kvarca pulksteņa modulis
Burbuļu modinātājs padara pamošanos jautru (izceļas): 7 soļi (ar attēliem)
Modulis ar burbuļiem padara pamošanos jautru (izgaismojas): pamošanās pret rosīgu modinātāju ir neērta. Es esmu viens no tiem cilvēkiem, kam nepatīk pamosties, pirms saule nav (vai ir bijusi ārā daudzas stundas). Tātad, kas ir labāks veids, kā padarīt pamošanos jautru, nekā sarīkot burbuļu ballīti gultā! Izmantojot arduino un a
Viedais modinātājs: viedais modinātājs, kas izgatavots ar Raspberry Pi: 10 soļi (ar attēliem)
Viedais modinātājs: viedais modinātājs, kas izgatavots, izmantojot Raspberry Pi: Vai esat kādreiz vēlējies gudru pulksteni? Ja tā, tas ir risinājums jums! Es izveidoju viedo modinātāju, tas ir pulkstenis, ar kuru jūs varat mainīt modinātāja laiku atbilstoši vietnei. Kad modinātājs atskan, atskanēs skaņa (skaņas signāls) un iedegsies 2 gaismas