Turinys:

Oled žadintuvas: 8 žingsniai (su nuotraukomis)
Oled žadintuvas: 8 žingsniai (su nuotraukomis)

Video: Oled žadintuvas: 8 žingsniai (su nuotraukomis)

Video: Oled žadintuvas: 8 žingsniai (su nuotraukomis)
Video: В ЭТУ КУКЛУ ПОСЕЛИЛОСЬ ЧТО_ТО СТРАШНОЕ / SOMETHING TERRIBLE HAS SETTLED IN THIS DOLL 2024, Liepa
Anonim
Oled žadintuvas
Oled žadintuvas

Aplink yra daug arduino/ESP32 laikrodžių, bet ar jie naudoja tuos gražius ir trapius OLED?

Jau kurį laiką eksperimentuoju su arduinos ir ESP32, bet niekada nepasiekiau galutinio produkto. Aš padariau žadintuvą su 4 1,3 colio vienspalviais OLED. Laikrodyje taip pat yra pritemdoma naktinė lempa ir USB įkrovimo prievadas (niekas neturi atsarginių lizdų šalia jo lovos). OLED taip pat yra pritemdomi, tai buvo pridėta paskutinę minutę po to, kai mano projektui grasino mano mergina. Jei pritemdyta mergaičių balsas nėra pakankamai silpnas, aš taip pat galiu pateikti kodo versiją, kai 3 ekranai įjungiami tam tikromis valandomis. Tikslas buvo sukurti lengvai aptarnaujamą laikrodį, kuris atrodytų ne tik „prototipas“. Gamindamas laikrodį susidūriau su kai kuriais sunkumais, kuriuos turėjau išspręsti, todėl manau, kad verta pasidalinti šia pamoka. Laikrodis gali būti pagamintas naudojant nedidelius įrankius, man nepatinka „ir kitam žingsniui naudoju savo 10 000 €/USD CNC malūno“pamokas.

Kai kurie dalykai, kurie bus paaiškinti šioje instrukcijoje (nesuderinama):

- Kaip naudoti/prijungti I2C OLED ekraną su arduino/ESP32

- Kaip naudoti kelis I2C objektus su vienu arduino/ESP32

- Kaip sukurti „slinkties“meniu naudojant sukamąjį kodavimo įrenginį (+ kaip naudoti kodavimo įrenginį su ESP32/arduino)

- Kaip suprojektuoti ir užsisakyti pasirinktinę PCB naudojant fritzavimą.

- Laikrodis taip pat naudoja RTC (realaus laiko laikrodį), LED tvarkyklę, nuleiskite įtampos modulį … Aš tikrai nesileisiu į juos, nes tikrai yra daug informacijos apie šiuos modulius.

Norėčiau pažymėti, kad nesu profesionalus programuotojas. Mano instrukcijos tikslas yra paaiškinti aukščiau paminėtus dalykus. Tai, kaip viską sudėti galutiniam produktui, gali būti ne pats švariausias būdas. Tai būdas, kuris leido man visa tai sekti.

Prekės

Pirkdama reikmenis visada stengiuosi įvertinti kokybės/dokumentacijos ir kainos svarbą. Mano reikmenys yra A markių ir pigesnių kiniškų dalių mišinys. „Mouser“yra puikus tiekėjas, jei kokybė yra svarbi, aš užsisakiau „Banggood“/„Aliexpress“už pigesnes dalis.

- ESP32 plokštė, aš naudoju „Huzzah32“iš „adafruit“, tačiau yra daug kitų (pigesnių) variantų. Aš pasirinkau „Huzzah32“, nes jis labai gerai dokumentuotas.

- 4 1,3 colio I2C OLED ekranai (128x64, su SH1106 tvarkykle), 0,96 colio ekranai yra labiau paplitę, tačiau šiam projektui man labiau patinka 1,3 colio

- „Sparkfun femtobuck“tvarkyklė vairuoti šviesos diodą

- RTC laikrodis, aš naudojau vieną su ličio elementu

- „Arduino nano“

-Moteriškas USB 2.0 prievadas (naudojau: SS-52200-002 iš „Stewart Connector“)

- Moteriškas DC lizdas (naudojau: L722A iš „Switchcraft“)

- 12V 3A nuolatinės srovės adapteris (GST36E12-P1J iš „Mean Well“)

- Pasirinktinė PCB, neprivaloma, tačiau tai daro projektą daug kompaktiškesnį ir lengviau aptarnaujamą, jei dalis miršta, + daugiau patikimumo, nes mažiau laidų (jlcpcb.com)

- M3 varžtai ir varžtai

- M3 žalvariniai įdėklai

- Nuo 12V iki 5V išjungimo modulis iš „Pololu“(DF24V22F5)

- 3 vatai, maitinami radiatoriumi

- jungiamieji laidai

- Garsinis signalas

- I2C multiplekseris (TCA9548A iš adafruit)

- 2 rotaciniai kodavimo įrenginiai (kai kuriuos išbandžiau, ne visi veikia su mano kodu. Tas, kuris yra iš „DFrobot“, veikia, taip pat tas, kuris yra iš apvalios PCB iš „DIYmore“. Atrodo, kad mano kodas neveikia su mygtuku KY-040 tipo. Mano žadintuvas naudoja „pasidaryk pats“laikrodį, nes juos labai lengva pritvirtinti prie skydo (nereikia papildomų varžtų/skylių).

- Moteriškų antraščių asortimentas (neprivaloma)

- Mediena rėmui: 18mmx18mmx2400mm

- Kalkė

Aš taip pat naudoju kai kuriuos įrankius (lituoklį, trečią ranką, pjūklą …), bet nieko tikrai egzotiško.

1 žingsnis: „Oled“naudojimas

Oledo naudojimas
Oledo naudojimas
Oledo naudojimas
Oledo naudojimas
Oledo naudojimas
Oledo naudojimas

Norėdami naudoti OLED, turite įdiegti biblioteką. Aš naudoju Oli Kraus U8G2lib, jis yra labai suprantamas ir turi informacinį vadovą su aiškiais pavyzdžiais.

Norėdami prijungti lentą (ESP arba arduino), turite rasti SDA ir SCL kaiščius. Šie kaiščiai yra I2C ryšio kaiščiai. „Google“ieškokite konkrečios lentos „pinout“, jei jų nerandate.

Pridėjau kodo pavyzdį. Kodas veikia ir arduino, ir ESP32, tačiau mažiau tikėtina, kad ESP32 pritrūks atminties. Visi tie, kuriuos iki šiol bandžiau, veikia tiek su 3.3V (ESP32), tiek su 5V.

2 veiksmas: keli OLED

Keli OLED
Keli OLED

Čia mano projektas pradeda skirtis nuo daugelio kitų žadintuvų. Dauguma arduinos/ESP turi tik vieną ar du I2C kaiščius. Tai riboja I2C dalių naudojimą. Ką daryti, jei turiu 4 I2C jutiklius ir noriu parodyti jų rodmenis I2C ekrane? Įveskite multiplekserį. Muliplekseris leidžia adresuoti 7 skirtingas I2C dalis. Tai leidžia mano ESP32 naudoti I2C realaus laiko laikrodį ir vėl rodyti laiką naudojant I2C per 4 ekranus (ar daugiau, neleiskite man jūsų sustabdyti).

Aš pridėjau ESP32 kodo pavyzdį, nuo šiol nesu tikras, arduino gali neatsilikti. Pavyzdyje naudojami tik ekranai, tai gali būti ir kiti dalykai, pvz., I2C jutikliai ir kt. Principas visada tas pats, skambinate tinkamu kanalu su "tcaselect (#);" funkciją, tada vykdote bet kokį kodą, reikalingą jums I2C objektui.

3 veiksmas: slinkties meniu sukimas naudojant rotacinį kodavimo įrenginį

Slinkties meniu sukimas naudojant rotacinį kodavimo įrenginį
Slinkties meniu sukimas naudojant rotacinį kodavimo įrenginį
Slinkties meniu sukimas naudojant rotacinį kodavimo įrenginį
Slinkties meniu sukimas naudojant rotacinį kodavimo įrenginį
Slinkties meniu sukimas naudojant rotacinį kodavimo įrenginį
Slinkties meniu sukimas naudojant rotacinį kodavimo įrenginį

Pirmiausia išbandykite savo kodavimo įrenginius. Pridėjau kodą, kad išbandyčiau jūsų kodavimo modulius. Kaip nurodyta prieduose: aš sėkmingai išbandžiau savo kodą tik su sukamojo kodavimo moduliais iš DF roboto ir moduliu su apvalia PCB iš „DIYmore“. Žiūrėkite aukščiau esančias nuotraukas, kad gautumėte tinkamus koduotojus.

Mano naudojama biblioteka yra tokia:

Tikimės, kad pridėtas PDF failas padės sukurti laikrodžio meniu struktūrą.

Priversti koduotuvą dirbti man buvo sunkiausia šio projekto dalis. Yra daug įvairių koduotojų ir daug įvairių bibliotekų, kurios ne visada suderinamos su ESP32. Bet aš manau, kad (veikiantis) rotacinis kodavimo įrenginys yra elegantiškas sprendimas, jei norite ką nors įvesti. Jei būčiau naudojęs tik mygtukus, man būtų reikėję daugiau nei 1, o laiko nustatymas užtruktų daug kartų.

4 žingsnis: sujunkite ankstesnį kodą

Ankstesnio kodo sujungimas
Ankstesnio kodo sujungimas

Pavadinimas tarsi apibendrina tai, ką aš padariau. Iš dalies bandžiau ir tada viską sudėjau. Bet kadangi niekada nėra lengva, turėjau pakeisti kai kuriuos dalykus. Serijinis ryšys yra lėtas procesas. Tai trukdo tinkamai nuskaityti kodavimo įrenginį. Norėdami tai įveikti, pridėjau pertraukimus prie kodavimo kaiščių. Paspaudus ar pasukus kodavimo kodą, iš karto iškviečiamas kodavimo įrenginio skaitymo kodas.

Kai suprasite, kaip sudarytas meniu, pastebėsite, kad labai lengva pridėti ar pašalinti funkcijas pagal savo skonį. Galbūt norėtumėte pasiimti dabartinį orą ar laiką iš interneto ir jį parodyti?

Aš atsisakiau daug tokių idėjų, nes norėjau visų pirma patikimos laiko ramybės. Tas, kuris nieko nedaro automatiškai. Aš labai keistai dirbu vasaros laiko zonoje. Kaskart keičiant valandą jaudinuosi permiegoti. Ar mano telefonas automatiškai pakeis valandas? Ar mano laikrodis? Na, mano laikrodis to nepadarys, nebent pats jį pakeisiu. Bet galbūt jūs norite įdėti savo laikrodį į virtuvę? Skirtingas scenarijus, pridėkite funkcijų, kol baigsis atmintis!

5 veiksmas: pasirinktinis PCB su „Fritzing + Schematic“

Individualizuota PCB su „Fritzing +“schema
Individualizuota PCB su „Fritzing +“schema
Individualizuota PCB su „Fritzing +“schema
Individualizuota PCB su „Fritzing +“schema
Individualizuota PCB su „Fritzing +“schema
Individualizuota PCB su „Fritzing +“schema

Dėmesio taškas: „Adafruit“nurodo, kad nors „huzzah32“galite įjungti per USB kaištį, turite saugotis, kad vienu metu nenaudotumėte „micro USB“maitinimo lizdo. Mano PCB maitinamas per „down down buck“, kuris tada maitina „huzzah“per USB kaištį. Taigi įkeldami visada atjunkite išorinį maitinimą/išimkite „huzzah“nuo lentos.

Aš nusprendžiau ant PCB lituoti moterų antraštes, nes taip lengviau pakeisti dalį arba pridėti, pavyzdžiui, papildomą I2C jutiklį. Tai taip pat leidžia lengvai pašalinti „nano“arba ESP32, kad būtų galima įkelti programas.

Pridėjau „Frizting“failą, galiu čia įvesti romaną, bet manau, kad pavyzdys kalba geriausiai. Pradėjau nuo visos sąrankos schemos. Nors „Fritzing“dėžėse yra daug dalių, ne viskas yra. Kartais „Fritzing“dalį galite rasti internete, kartais ne. Dalys, kurių neradau, tiesiog pakeičiau moterišką antraštės dalį. Jei dešiniuoju pelės klavišu spustelėsite, antraštę galėsite redaguoti pagal norimą smeigtukų skaičių ir priskirti jai pinout. Aš tai padariau su kiekviena dalimi, kurios neradau. Kadangi beveik visi moduliai naudoja tą patį 0,1 colio žingsnį (2,54 mm), tai suteiks jums teisingą atstumą tarp detalės.

Toliau pereisite prie fritavimo programos PCB rodinio. Bus įdiegta PCB, jei ją spustelėsite, galėsite nustatyti jo dydį ir pasirinkti vieno arba dviejų sluoksnių PCB. Mano naudoja 2 sluoksnius. Fritzing pasiūlys sujungimus, kuriuos sukūrėte scheminiame vaizde. Programa turi automatinio maršruto parinktį, bet aš niekada jos nenaudoju. Man patinka rankiniu būdu tvarkyti ryšius. PCB rodinyje geltonos jungtys yra viršutiniame sluoksnyje, oranžinės - apatiniame sluoksnyje. Vėlgi, jei spustelėsite ryšį, galėsite pasirinkti jo savybes.

Norėdami sukurti tikrąją PCB, turite ją eksportuoti kaip gerber failą. Prieš tai darydami, skirtuke „maršrutas“galite patikrinti projektavimo taisykles. Jei viskas patikrinta, galite spustelėti „eksportuoti PCB“. Dauguma gamintojų paprašys gerber failo, todėl pasirinkite eksportą į gerber.

Aš užsisakiau savo PCB iš JLCPCB, man patinka, kad jie iš karto nurodo jums kainą. Žinoma, yra daug kitų variantų.

Apie schemą: naudojamos 2 įtampos. Šviesos diodas ir „femtobuck“yra tiesiogiai maitinami 12 V maitinimo šaltiniu. Likusi dalis yra maitinama per 5 voltų sumažinimo baką.

6 žingsnis: dizainas + lazerinis pjoviklis

Dizainas + lazerinis pjoviklis
Dizainas + lazerinis pjoviklis
Dizainas + lazerinis pjoviklis
Dizainas + lazerinis pjoviklis

Savo pirmam dizainui bandžiau naudoti ąžuolo masyvą (seku medžio apdirbimo pamokas), tačiau greitai paaiškėjo, kad tai nėra idealu. Mediena yra per stora, todėl sunku pritvirtinti jūsų dalis. 3 mm beržo multipleksas leidžia lengviau pritvirtinti kodavimo įrenginius ir ekranus.

Radau internetinę lazerinio pjovimo paslaugą snijlab.nl, prieinamą Roterdamo mėgėjams (jie siunčiami į Belgiją, Nyderlandus ir Vokietiją). Jų svetainėje galite įkelti savo piešinius ir jie iškart nurodo jūsų kainą. Aš naudojau „Autocad“, kurį turiu darbe, tačiau programinė įranga tikrai nesvarbi. Tai tiesiog turi būti vektorinis piešinys (Vectr, Illustrator, Inkscape …). Dauguma parduotuvių naudoja spalvas, kad nustatytų, ar norite pjaustyti, ar graviruoti.

Turėkite omenyje kai kuriuos dalykus:

- Maks. lazerio pjaustytuvo matmenys (aš nupiešiau rėmelį aplink savo dalis)

- Min. atstumas tarp pjūvių

- Įsitikinkite, kad nenubrėžėte dvigubų linijų, lazeris atliks papildomą praėjimą, o tai jums kainuos daugiau.

- Kai braižote į PDF, įsitikinkite, kad braižote 1: 1. Jūs nenorite sumažinti mastelio ar tilpti į popierių.

7 žingsnis: Surinkimas

Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas

Aš pastatiau laikrodį aplink medinį rėmą, plokštės laikomos vietoje su M3 varžtais ir įdėklais rėme. Jei kada nors turėčiau sukurti 2 versiją, prie plokščių pritvirtinčiau aliuminio „L“profilius. Buvo labai sunku tiksliai išgręžti žalvario įdėklų skyles. Užtrukau labai ilgai, tik priimtino rezultato. Tai, žinoma, reikštų, kad lazerio pjūvis turi būti peržiūrėtas. Manau, kad su aliuminio profiliais ir tik veržlėmis bei varžtais gautumėte geresnį rezultatą.

Norėdami geriau išsklaidyti šviesą, aš perklijavau popierių ant perforacijų vidinės pusės. Tai suteikia šviesai malonų švytėjimą.

8 žingsnis: nesustokite čia

Nesustokite čia
Nesustokite čia
Nesustokite čia
Nesustokite čia
Nesustokite čia
Nesustokite čia

Projektas orientuotas į ESP32, aš jo beveik nenaudojau. Mano miegamojo žibintus šiuo metu galima valdyti nuotoliniu būdu naudojant „blynk“. Jų valdymas laikrodžiu - tik mažas žingsnis į priekį. Galbūt norite papildomų ekranų, rodančių temperatūrą jūsų namuose? Arba kai kurie vietiniai jutikliai (tame multiplekseryje vis dar yra atsarginių I2C jungčių!). Gal nustatyti laiką/žadintuvą per programą ir „Bluetooth“?

Leiskite man žinoti, ką pakeitėte, ką pakeistumėte, ką turėčiau pakeisti…

Rekomenduojamas: