Turinys:
- Prekės
- 1 žingsnis: Prototipas ir grandinės testavimas
- 2 žingsnis: Pagrindinė programa
- 3 žingsnis: 3D kubo spausdinimas
- 4 žingsnis: Surinkimas
- 5 veiksmas: įkelkite ir viskas
Video: Pozicija pagrįstas daugiafunkcis kubo laikrodis: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
„Fusion 360“projektai »
Tai „Arduino“laikrodis su OLED ekranu, kuris veikia kaip laikrodis su data, kaip snaudimo laikmatis ir kaip naktinė lemputė. Skirtingos „funkcijos“valdomos akselerometru ir parenkamos sukant kubo laikrodį.
Norėjau naujo naktinio staliuko laikrodžio, bet nenorėjau išleisti pinigų išgalvotam laikrodžiui, turinčiam daugybę funkcijų, kurių nenaudosiu. Be to, aš kolekcionavau komponentus ir jutiklius, kurie buvo tik aplink, todėl nusprendžiau juos panaudoti savo laikrodžiui gaminti!
Šiam projektui turėjau kelis tikslus:
- Rodykite tą laiką su galimybe išjungti
- Įtraukite naktinio apšvietimo funkciją
- Įtraukite 15 minučių miego laikmatį su žadintuvu
- Galėti rodyti datą
Prekės
- „Arduino Pro Mini 5V“
- ADXL335 3 ašių akselerometras
- DS3231 AT24C32 IIC tikslumo realiojo laiko laikrodis
- Mini garsiakalbis
- OLED ekranas SSD1306 IIC 0,96 colio
- 5 V nuolatinės srovės maitinimo šaltinis
- Šviesos diodas x 2
- Rezistoriai 220 omų x 2
- DC statinės lizdas
- Viela
-
Įrankiai
- Vielos pjaustytuvai/nuėmikliai
- Lituoklis/lituoklis
- 3D spausdintuvas (neprivaloma)
- FTDI programuotojas, skirtas sąsajai tarp „Pro mini“ir „Arduino IDE“
1 žingsnis: Prototipas ir grandinės testavimas
Prijunkite komponentus prie „Arduino“. Duonos lentos išdėstymas arba schema parodyta aukščiau. RTC ir OLED naudoja I2C protokolą sąsajai su „Arduino“ir naudoti A4 ir A5 kaiščius. Akselerometras naudoja 3 analoginius kaiščius. Aš naudoju A0, A1, A2. Šviesos diodai ir pjezo gali naudoti bet kurį skaitmeninį kaištį, aš naudoju atitinkamai 4 ir 8.
Sąsaja su kiekvienu komponentu. Turėjau įdiegti kai kurias „Arduino“bibliotekas, kad būtų galima sąsaja su kiekvienu komponentu. Jie parodyti aukščiau esančiame paveikslėlyje.
Kodas naudojant „Arduino IDE“. Aš peržiūrėjau keletą pavyzdžių eskizų, kuriuos pateikė kiekviena biblioteka, kad išsiaiškinčiau tinkamą kiekvieno komponento sintaksę, atsižvelgdama į tai, ko aš norėjau. Aš sugalvojau kiekvieno komponento eskizą, kad galėčiau juos išbandyti atskirai. Jie pateikiami žemiau. Pradėjau nuo pjezo garsiakalbio, nes jis buvo lengviausias. Tam iš tikrųjų nereikėjo specialios bibliotekos, tik tam tikros funkcijos, nustatančios dažnį ir garsą. Norint, kad šviesos diodai veiktų, reikėjo ištraukti vieną iš skaitmeninių kaiščių aukštai ir žemai. Tada persikėliau į OLED ir tai buvo gana paprasta nustatyti. Žemiau eskizas yra „Adafruit“demonstracinė versija, peržiūrinti visas animacijas/tekstus, kuriuos galima rodyti. Tada aš bandžiau priversti RTC veikti. Pateiktas eskizas buvo pavyzdys bibliotekoje, kuris gauna dabartinį laiką ir spausdina jį į serijinį monitorių. Galiausiai aš panaudojau pateiktą pavyzdį, norėdamas išbandyti akselerometrą. Kiekvienos ašies išėjimai spausdinami serijiniame monitoriuje.
Dabar laikas viską sudėti!
2 žingsnis: Pagrindinė programa
Dabar, kai žinau, kad viskas veikia individualiai, galiu pradėti rengti programą, kuri sujungtų viską. Toliau aptarsiu savo programos rašymo procesą, tačiau nedvejodami atsisiųskite visą žemiau esantį kodą, kad galėtumėte jį naudoti savo projektui. Bandžiau palikti konkrečius komentarus, kad galėtumėte patys peržvelgti kodą.
Man reikėjo OLED rodyti laiką ir datą, o tai buvo gana paprasta. Aš tiesiog turėjau spausdinti dabartinį laiką ekrane, o ne serijinį monitorių. Turėjau atsižvelgti į keletą formatavimo dalykų, kad būtų rodomas 12 valandų formatas, o ne 24, ir pridėti/pašalinti 0, kur jie buvo tinkami. Data buvo panaši, pridėjus mėnesį ir dieną ekrane nubrėžtais stačiakampiais. Naudojau įdėtą FOR kilpą, kad sukurtų laikmatį, o pasibaigus ciklui įsijungiau pjezo. Nusprendžiau priversti ekraną mirksėti, kai skambėjo garsinis signalas, o tai buvo pagrindinė animacija, paimta iš „Adafruit“demonstracinės versijos. Pasukęs kubą atgal į laikrodžio padėtį, vienintelis būdas išjungti garso signalą. Galiausiai norėjau būdo, kaip išjungti ekraną, o tai buvo pasiekta tiesiog išvalydami ekraną. Dabar man reikėjo, kad visos šios funkcijos veiktų pagal akselerometro išėjimus. Aš naudoju „Accel_Test“scenarijų, kad nustatyčiau kiekvienos padėties ašių koordinates, kurias norėjau vykdyti. Aš rankiniu būdu perkėliau akselerometro lustą ir užfiksavau rodmenis serijiniame monitoriuje. Aukščiau pateiktoje diagramoje pateikiamos kiekvienos pilkos padėties išėjimo koordinatės. RED koordinatės yra ribos tarp kiekvienos pozicijos, ir aš naudoju šiuos skaičius savo programai. 4 ekrano padėtyse reikia tik X ir Y ašių koordinačių. Penktoje naktinio apšvietimo padėtyje naudojama Z ašis. Prieš kiekvieną funkcijų bloką pagreičio matuoklio padėtims naudojau paprastus IF teiginius. Jei naudojate kitą akselerometrą, šios koordinatės gali skirtis ir jas reikės koreguoti programoje.
3 žingsnis: 3D kubo spausdinimas
Aš supratau, kad kubas būtų geriausias dizainas, kuris atitiktų tai, kaip norėjau, kad laikrodis veiktų. Modelio gamybai naudojau „fusion360“. Man reikėjo iškirpti OLED ir statinės lizdą. Aš taip pat norėjau, kad viskas būtų prijungta, kad būtų galima lengvai pakeisti RTC elemento bateriją. Man reikėjo lizdo, kad „Arduino“būtų tokioje padėtyje, kurią prireikus būtų lengva perprogramuoti. Be to, gaubtas turėjo būti lengvai nuimamas, kad galėčiau pasiekti „Arduino“. Aukščiau galite pamatyti CAD modelį, o žemiau - STL failus.
Korpusą atspausdinau juodu PLA su 20% užpildu, 0,2 mm skiriamąja geba.
Korpusas arba įvorė buvo atspausdinti lanksčiu „Solutech“siūlu su 100% užpildu, 0,3 mm skiriamąja geba. Aš naudoju šią medžiagą, nes ji turi tam tikrą lankstumą, todėl buvo lengva ištempti kūną. Sukant laikrodį jis taip pat jaučiasi minkštesnis. Galiausiai pasirinkau skaidrų siūlą, kad naktinių žibintų šviesos diodai šviestų.
4 žingsnis: Surinkimas
Viską sujungiau naudodama schemą iš 1 veiksmo. Visus įprastus laidus prijungiau nedideliu gabalu plokštės, kad nereikėtų lituoti kelių laidų prie vieno „Arduino“kaiščio. Karšti klijai buvo naudojami viskam pritvirtinti savo vietoje, išskyrus „Arduino“. Jis buvo tiesiog įstumtas į jam skirtą angą. Įsitikinau, kad akselerometro plokštė yra statmena ir lygi kūno apačioje, kad nereikėtų keisti kodo koordinačių.
5 veiksmas: įkelkite ir viskas
Dabar galutinę programą galima įkelti į laikrodį, kad būtų nustatytas tinkamas laikas. Akumuliatoriaus baterija turėtų išlaikyti laiką net tada, kai maitinimas yra atjungtas. Pastumkite 3D spausdintą rankovę virš kūno, kad paslėptumėte visus komponentus, ir jūs turite pilną kubo laikrodį!
Tikiuosi, kad jums patiks kurti šį projektą ir jis bus toks pat naudingas kaip ir aš. Graži šio projekto dalis yra tai, kad jį labai galima pritaikyti. Nesivaržykite pridėti savo įvairių funkcijų, tokių kaip aliarmo funkcija, naudokite skirtingus komponentus, pvz., Didesnį OLED, FM radijo imtuvą ir pan.
Rekomenduojamas:
„Pasidaryk pats“daugiafunkcis energijos matuoklis V2.0: 12 žingsnių (su nuotraukomis)
„Pasidaryk pats“daugiafunkcis energijos matuoklis V2.0: Šioje instrukcijoje aš jums parodysiu, kaip padaryti „Wemos“(ESP8266) pagrindu pagamintą daugiafunkcį energijos matuoklį. Šis mažas matuoklis yra labai naudingas prietaisas, kuris stebi įtampą, srovę, galią, energiją ir talpą. Be to, jis taip pat stebi ambi
Pasidaryk pats „Arduino“daugiafunkcis energijos matuoklis V1.0: 13 žingsnių (su nuotraukomis)
Pasidaryk pats „Arduino“daugiafunkcis energijos matuoklis V1.0: Šioje instrukcijoje aš jums parodysiu, kaip pasigaminti „Arduino“pagrindu pagamintą daugiafunkcį energijos matuoklį. Šis mažas matuoklis yra labai naudingas prietaisas, rodantis svarbią informaciją apie elektros parametrus. Prietaisas gali išmatuoti 6 naudingus elektros parametrus
Pozicija „Con Arduino + 3G + GPS + SMS“: 4 žingsniai
Pozicija „Arduino + 3G + GPS + SMS“: „Algunos proyectos se encuentran en movimiento y se necesita saber su posici ó n en alg ú n instantes, este ya sea por sobrepasar alg ú n valor como por ejemplo de temperatura o accionados mediante“. Para este caso se puede
ESP8266 pagrįstas tinklo laikrodis ir orų monitorius: 3 žingsniai (su nuotraukomis)
ESP8266 pagrįstas tinklo laikrodis ir orų monitorius: trumpas ir paprastas savaitgalio projektas su ESP8266 ir 0,96 colio 128x64 OLED ekranu. Įrenginys yra tinklo laikrodis, ty nuskaito laiką iš ntp serverių. Jame taip pat rodoma orų informacija su piktogramomis iš openweathermap.org Būtinos dalys: 1. ESP8266 modulis (A
Daugiafunkcis skaitmeninis termometras: 5 žingsniai (su nuotraukomis)
Daugiafunkcis skaitmeninis termometras: ši instrukcija parodys, kaip sukurti daugiafunkcinę platformą su termometru, chronografu (skaičiavimo laikmatis), skaičiavimo laikmačiu ir šviesos ekranu. Jis taip pat yra platforma kitiems analoginiams jutikliams ar bet kurioms kitoms funkcijoms, kurias galite