Obsah:

Poziční multifunkční kostkové hodiny: 5 kroků (s obrázky)
Poziční multifunkční kostkové hodiny: 5 kroků (s obrázky)

Video: Poziční multifunkční kostkové hodiny: 5 kroků (s obrázky)

Video: Poziční multifunkční kostkové hodiny: 5 kroků (s obrázky)
Video: Sugatsune - Pant poziční - MAREK Industrial a.s. 2024, Červenec
Anonim
Image
Image
Multifunkční kostkové hodiny založené na poloze
Multifunkční kostkové hodiny založené na poloze
Multifunkční kostkové hodiny založené na poloze
Multifunkční kostkové hodiny založené na poloze

Projekty Fusion 360 »

Jedná se o hodiny založené na Arduinu s OLED displejem, které fungují jako hodiny s datem, jako časovač spánku a jako noční světlo. Různé „funkce“jsou ovládány akcelerometrem a jsou voleny otáčením hodin kostky.

Chtěl jsem nový noční stolek, ale nechtěl jsem utrácet peníze za efektní hodiny, které měly spoustu funkcí, které bych nevyužil. Kromě toho jsem sbíral komponenty a senzory, které právě ležely kolem, a tak jsem se rozhodl použít je k výrobě vlastních hodin!

Pro tento projekt jsem měl několik cílů:

  1. Zobrazte ten čas s možností vypnout
  2. Zahrnout funkci nočního světla
  3. Včetně 15minutového časovače spánku s alarmem
  4. Umět zobrazit datum

Zásoby

  • Arduino Pro Mini 5V
  • 3osý akcelerometr ADXL335
  • Přesné hodiny reálného času DS3231 AT24C32 IIC
  • Mini reproduktor
  • OLED displej SSD1306 IIC 0,96 palce
  • Napájení 5V DC
  • LED x 2
  • Rezistory 220ohm x 2
  • DC barel jack
  • Drát
  • Nástroje

    • Střihače/odizolovače drátu
    • Páječka/pájka
    • 3D tiskárna (volitelně)
    • Programátor FTDI pro rozhraní mezi Pro mini a Arduino IDE

Krok 1: Prototypujte a otestujte obvod

Prototypujte a otestujte obvod
Prototypujte a otestujte obvod
Prototypujte a otestujte obvod
Prototypujte a otestujte obvod
Prototypujte a otestujte obvod
Prototypujte a otestujte obvod

Připojte komponenty k Arduinu. Uspořádání nebo schematické pole je uvedeno výše. RTC a OLED používají protokol I2C k propojení s Arduinem a využití pinů A4 a A5. Akcelerometr používá 3 analogové piny. Použil jsem A0, A1, A2. LED diody a Piezo mohou používat jakýkoli z digitálních pinů, použil jsem 4 a 8.

Rozhraní s každou komponentou. Musel jsem nainstalovat nějaké knihovny Arduino pro rozhraní s každou komponentou. Jsou zobrazeny na obrázku výše.

Kódujte pomocí Arduino IDE. Prošel jsem několik příkladů skic poskytnutých každou knihovnou, abych zjistil správnou syntaxi pro každou komponentu na základě toho, co jsem chtěl, aby dělali. Ke každé komponentě jsem vymyslel náčrt, abych je jednotlivě otestoval. Jsou uvedeny níže. Začal jsem s piezo reproduktorem, protože to bylo nejjednodušší. Ve skutečnosti nepotřebovala speciální knihovnu, jen konkrétní funkci, která nastavuje frekvenci a zvuk. Aby LED diody fungovaly, bylo nutné vytáhnout jeden z digitálních pinů vysoko a nízko. Dále jsem přešel na OLED a nastavení bylo také docela jednoduché. Níže uvedená skica je ukázkou Adafruit, která prochází všemi animacemi/texty, které lze zobrazit. Pak jsem se pokusil dostat RTC do práce. Náčrt, který jsem poskytl, byl součástí příkladu v knihovně, který získá aktuální čas a vytiskne jej na sériový monitor. Nakonec jsem pomocí uvedeného příkladu otestoval akcelerometr. Výstupy každé osy jsou vytištěny na sériovém monitoru.

Nyní je čas dát vše dohromady!

Krok 2: Hlavní program

Hlavní program
Hlavní program
Hlavní program
Hlavní program

Nyní, když vím, že vše funguje individuálně, mohu začít vymýšlet program, který vše spojí. Níže budu diskutovat o svém postupu při psaní programu, ale můžete si stáhnout níže uvedený úplný kód a použít jej pro svůj vlastní projekt. Snažil jsem se zanechat konkrétní komentáře, abyste si kód mohli projít sami.

Potřeboval jsem zobrazit čas a datum na OLED, což bylo docela jednoduché. Jen jsem musel vytisknout aktuální čas na displej místo sériového monitoru. Bylo několik věcí týkajících se formátování, které jsem musel zohlednit, aby zobrazoval 12hodinový formát namísto 24 a přidával/odstraňoval 0, kde to bylo vhodné. Datum bylo podobné s přidáním zobrazení měsíce a dne v obdélnících nakreslených na obrazovce. Použil jsem vnořenou smyčku FOR k vytvoření časovače a po skončení smyčky jsem spustil piezo. Rozhodl jsem se nechat blikat obrazovku, když se rozezněl bzučák, což byla základní animace převzatá z demo Adafruit. Otočením kostky zpět do polohy hodin jsem jediným způsobem vypnul bzučák. Nakonec jsem chtěl způsob, jak vypnout obrazovku, což bylo dosaženo pouhým vymazáním displeje. Nyní jsem potřeboval, aby všechny tyto funkce fungovaly na základě výstupů z akcelerometru. Pomocí skriptu Accel_Test jsem určil souřadnice os každé polohy, ve které jsem chtěl, aby se každá funkce spustila. Ručně jsem přesunul čip akcelerometru a zaznamenal údaje na sériový monitor. Výše uvedený diagram udává výstupní souřadnice každé polohy v ŠEDÉ. Souřadnice v ČERVENÉ jsou hranice mezi každou pozicí a já jsem tato čísla použil pro svůj program. Ve 4 pozicích zobrazení jsou potřeba pouze souřadnice osy X a Y. Pátá poloha nočního světla využívá osu Z. Použil jsem jednoduché příkazy IF pro polohy akcelerometru před každým funkčním blokem. Pokud použijete jiný akcelerometr, mohou se tyto souřadnice lišit a bude třeba je v programu upravit.

Krok 3: 3D tisk kostky

3D tisk kostky
3D tisk kostky
3D tisk kostky
3D tisk kostky
3D tisk kostky
3D tisk kostky

Myslel jsem, že kostka bude nejlepší design, který by vyhovoval tomu, jak chci, aby hodiny fungovaly. K výrobě modelu jsem použil fusion360. Potřeboval jsem výřez pro OLED a barel jack. Také jsem chtěl snadný přístup k výměně článkové baterie v RTC poté, co bylo vše zapojeno. Potřeboval jsem slot, abych udržel Arduino v orientaci, kterou by bylo možné v případě potřeby snadno přeprogramovat. Navíc musel být kryt snadno odstranitelný, abych měl přístup k Arduinu. Model CAD můžete vidět výše a soubory STL jsou níže.

Tělo jsem vytiskl černou PLA s 20% výplní, rozlišením 0,2 mm.

Pouzdro nebo objímka byla potištěna pružným filamentem Solutech se 100% výplní, rozlišení 0,3 mm. Použil jsem tento materiál, protože má určitou flexibilitu, díky které se snadno protáhne přes tělo. Má také měkčí pocit při otáčení hodin. Nakonec jsem vybral čiré vlákno, aby prosvítaly LED diody pro noční světla.

Krok 4: Sestavení

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

Zapojil jsem vše dohromady pomocí schématu z kroku 1. Použil jsem malý kousek perfboardu k připojení všech běžných vodičů, takže jsem nemusel pájet více vodičů na jeden pin na Arduinu. K zajištění všeho na svém místě kromě Arduina bylo použito horké lepidlo. Bylo to jen zasunuto do určeného slotu. Ujistil jsem se, že deska akcelerometru je kolmá a rovná na spodní části těla, takže souřadnice v kódu není třeba měnit.

Krok 5: Nahrajte a jste hotovi

Nahrajte a jste hotovi!
Nahrajte a jste hotovi!
Nahrajte a jste hotovi!
Nahrajte a jste hotovi!
Nahrajte a jste hotovi!
Nahrajte a jste hotovi!
Nahrajte a jste hotovi!
Nahrajte a jste hotovi!

Nyní lze konečný program nahrát do hodin a nastavit správný čas. Akumulátor by měl udržovat čas i při odpojeném napájení. Nasuňte 3D vytištěný rukáv přes tělo a skryjte všechny součásti a máte kompletní kostkové hodiny!

Doufám, že vás tento projekt baví a bude pro vás stejně užitečný jako mě. Hezkou součástí tohoto projektu je, že je velmi přizpůsobitelný. Nebojte se přidat své vlastní různé funkce, jako je funkce alarmu, používat různé komponenty jako větší OLED, FM rádiový přijímač atd. Šťastné tvoření!

Doporučuje: