Obsah:

Hodiny zpět do budoucnosti: 8 kroků (s obrázky)
Hodiny zpět do budoucnosti: 8 kroků (s obrázky)

Video: Hodiny zpět do budoucnosti: 8 kroků (s obrázky)

Video: Hodiny zpět do budoucnosti: 8 kroků (s obrázky)
Video: Je možné cestovat časem? 2024, Listopad
Anonim
Hodiny zpět do budoucnosti
Hodiny zpět do budoucnosti

Tento projekt odstartoval život jako budík pro mého syna. Udělal jsem to tak, aby to vypadalo jako časový okruh z Návratu do budoucnosti. Displej může ukazovat čas v různých formátech, včetně samozřejmě z filmů. Je konfigurovatelný pomocí tlačítek v horní části krytu, ale také prostřednictvím webové stránky obsluhované Raspberry Pi Zero uvnitř. V jednom z režimů zobrazení zobrazí místní počasí (z mé meteorologické stanice napájené Arduinem) a také předpověď a jakékoli denní připomenutí, konfigurované prostřednictvím webového rozhraní. Má také zvuk díky DAC a bude streamovat hudbu pomocí protokolu AirPlay. Zvukem alarmu může být jakýkoli zvukový soubor, který si vyberete. V dané denní době (např. Za úsvitu a soumraku) se automaticky ztmaví a zesvětlí displej.

Krok 1: Pozadí

V loňském roce jsem hledal nový projekt Arduino, který právě dokončil svůj vůbec první projekt, domácí meteorologickou stanici. Můj jedenáctiletý syn právě poprvé viděl filmy Návrat do budoucnosti, takže jsem si řekl, že by bylo zábavné postavit mu k jeho narozeninám budík, který by vypadal jako časový obvod v Deloreanu. Není to nová myšlenka, podobných projektů je docela dost (například tento), a tak jsem si řekl, že by to byl pěkný projekt, učit se od ostatních a nabrat nové dovednosti.

První verze fungovala docela dobře (nebyla připravena na jeho narozeniny: zvládl jsem to do Vánoc), ale začal jsem být docela ambiciózní v tom, co jsem chtěl, a zjistil jsem, že moje skica stále naráží na limit paměti Arduina. Měl jsem také několik malých externích hardwarových modulů (WiFi, MP3 přehrávač, audio zesilovač, RTC atd.), Takže to všechno bylo trochu nepraktické. Nakonec jsem se rozhodl přejít na platformu Raspberry Pi, která zjednodušila hardware a umožnila mi nabalit mnohem více funkcí a funkcí.

Krok 2: Hlavní hardwarové součásti

Uvnitř krabice

Zde jsou elektronické komponenty, které jsem použil. Většina z nich byly zdroje od Core Electronics v Austrálii, ale samozřejmě jsou snadno dostupné i jinde:

  • 4 x Čtyřčlenný alfanumerický displej -žlutozelený
  • Raspberry Pi Zero W
  • Pimoroni pHAT DAC pro Raspberry Pi Zero
  • Zesilovač zvuku (PAM8403 IC)
  • Napájení Raspberry Pi 3+
  • 4 x propojovací vodič - 0,1 ", 5pinový, 12"
  • 40kolíkový (2 x 20) plochý kabel
  • Male Header Raspberry Pi GPIO
  • Raspberry Pi Model B - GPIO Shrouded Header (2X20)
  • Stohovací záhlaví GPIO pro Pi A+/B+/PI 2/PI 3 - extra dlouhý 2X20
  • 4 x 5kolíkový konektor
  • 2 malé 3W reproduktory
  • 2 x koaxiální kabely pro analogové audio připojení DAC k zesilovači
  • Veraboard nebo vlastní PCB pro zpracování Rpi na zesilovač, LED, tlačítka
  • 5 x okamžité tlačítkové spínače
  • 4 x 2cestné šroubové svorkovnice montovatelné na PCB

Krabice

  • Kousky MDF, šrouby a šrouby pro vytvoření „podvozku“
  • Zeleně zabarvený perspex, místní dodavatel
  • Styren, modelovací lepidlo, barva ve spreji (barva hliníku) z místního hobby obchodu
  • Samolepky (soubor dostupný na vyžádání - vytištěno Redbubble)

Krok 3: Dát to všechno dohromady

Dát to všechno dohromady
Dát to všechno dohromady

LED displej pro hodiny se skládá z 16x14-segmentových alfanumerických displejů, naštěstí stejného počtu znaků jako časový obvod Zpátky do budoucnosti. Zatímco pouze první tři znaky musí být alfanumerické a zbytek by mohl být 7segmentový numerický displej, který by napodoboval filmovou rekvizitu, rozhodl jsem se je udělat všechny alfanumerické, aby byla zajištěna určitá flexibilita v tom, co lze zobrazit, a aby všechny vypadaly jako stejný. Čtyři batohy Adafruit jsou skvělým řešením a lze je provozovat na sběrnici Raspberry Pi I2C. Více informací o těchto jednotkách a o tom, jak je zapojit, najdete zde na webu Adafruit. Jedinou mírně nestandardní věcí, kterou jsem musel udělat, bylo změnit adresy tří z nich, takže každý batoh byl jedinečný.

Pro přehrávání zvuku (stereofonně) jsem zahrnoval Pimoroni pHAT DAC a 2 x 3W stereo audio zesilovač založený na čipu PAM8403. PHAT DAC je opravdu snadné připojit k Pi. Na Pi jsem vložil 2 x 20 pinovou samčí hlavičku a na DAC stohovací hlavičku GPIO, aby mohly být zapojeny dohromady na druhou. Samčí kolíkové záhlaví prochází horní částí DAC, což mi umožňuje vést plochý kabel se zásuvkami, zpočátku k vylomení Raspberry Pi pro testování na desce, ale nakonec k zakrytému záhlaví na zakázkové desce plošných spojů.

Pro zvukový zesilovač existuje spousta možností (včetně získání čipu a sestavení vlastního). Tenhle má možnost ztlumit výstup pouhou změnou stavu jednoho z pinů (vysoký je zapnutý, nízký je vypnutý) a zapojil jsem jej, aby to bylo možné ovládat z Pi. Při mých počátečních pokusech zapojit to, když byl zapnutý zvuk, jsem objevil docela dost šumu v pozadí. Po dlouhém hraní s uzemněním jsem nakonec zkusil přesunout vstupní napájecí napětí z 5V na Pi na 3,3V a tím to bylo opraveno. Myslím, že kolem létá různé digitální signály, ale zdá se, že napájení 3,3 V je nějak izolováno.

Další připojení zahrnuje analogový zvuk z DAC do zesilovače (zde jsem použil koaxiální kabel, abych pomohl zvládnout zachytávání šumu) a výstup zvuku do dvojice malých 3W reproduktorů, které se vejdou do skříně. K dispozici jsou také připojení GPIO pro čtyři momentální přepínače v horní části krabice a já jsem připojil chvilkové tlačítko k tvrdým resetovacím kolíkům „RUN“(viz část Další připojení na této stránce). Tlačítko reset je namontováno mimo dohled v zadní části skříně. Zde je diagram zobrazující připojení:

Krok 4: Vlastní PCB

Vlastní PCB
Vlastní PCB

I když na okruhu není nic příliš komplikovaného, je tam docela dost kabeláže a prkénko může vypadat jako špagety docela rychle. Navrhl jsem tedy desku plošných spojů, aby to všechno bylo pod kontrolou. Je to jednostranná deska pro domácí vaření a já jsem dostal přítele, který mi ji pomohl vyrobit. Poté, co byl vyroben a zapojen, jsem si uvědomil, že jsem zapomněl zahrnout připojení pro svorkovnice pro zvuk a později jsem provedl změnu, abych přesunul napájení audio zesilovače z 5V na 3,3V, takže to není ideální a musel jsem se zapojit některé Veroboard umožňující připojení zvuku. Pinouty desky zvukového zesilovače jsou také na nestandardním oddělení (dokonce se liší mezi piny), takže připojení k tomuto hlavnímu PCB je trochu hrozné s 11 krátkými ~ 1 cm připojovacími vodiči.

Pokud bych udělal další desku, zahrnoval bych všechny tyto úpravy a také změnil konektor pro čtyři tlačítka na něco hezčího. DAC a Pi by stohovaly přímo nahoře, takže není potřeba žádný plochý kabel. Výše uvedený diagram ukazuje, jak by to mohlo vypadat.

Krok 5: Příloha

Příloha
Příloha
Příloha
Příloha
Příloha
Příloha

Chtěl jsem udělat ohradu, která vypadala jako jedna řada filmového časového okruhu. Tři řady LED displejů by byly na budík příliš a výrazně by zvýšily náklady. Přemýšlel jsem o výrobě skříně z hliníku, ale v této oblasti nemám žádné dovednosti. Za svůj život jsem však vyrobil několik plastových modelů a mám nějaké zkušenosti se zpracováním dřeva, a tak jsem se rozhodl vytvořit rámeček pomocí MDF pro montáž LED a reproduktorů a upevnění plexi na přední stranu a poté jej zakrýt 5stranným styrenem. krabice s čelem na přední straně, natřená hliníkovou metalickou barvou ve spreji. Plast a barvy byly získány z místního modelářského obchodu. Podrobně jsem se podíval na štítky na filmové rekvizitě a snažil jsem se kopírovat barvy, typ a velikost písma. Štítky jsem vytvořil pomocí Photoshopu a nechal jsem je vytisknout jako nálepky z Redbubble.

Obrázky výše ukazují:

  1. Přední část šasi MDF. 4 LED batohy jsou namontovány vpředu se zeleným tónovaným plexisklem
  2. Uvnitř krabice. Batohy všechny namontované a seřazené, Raspberry Pi a vlastní PCB, reproduktory na obou stranách.
  3. Instalovaná kabeláž a vnější plášť připraven k provozu. Bylo to trochu mačkání!

Krok 6: Nastavení Raspberry Pi

Měl jsem nějaké problémy s kompatibilitou s Raspbian Stretch (což by mohlo být řešitelné, kdybych trval), ale Jessie s tím pracuje dobře, takže jsem se rozhodl jít s tím.

Nastavil jsem Pi jako bezhlavou jednotku s přístupem VNC a SSH. To se dalo zvládnout i bez připojení klávesnice nebo monitoru, ale já jsem si jen vypůjčil televizi a přikryl klávesnici a docela rychle to šlo bez hlavy. Od té doby jsem od té doby do značné míry používal VNC.

Můj hodinový kód používá Python 2.7.9 a spoléhá na několik knihoven uvedených níže. Kromě toho provozuji webový server Flask a MQTT pro dálkové ovládání a Shairplay pro streamování hudby. Právě jsem se řídil on-line instalačními poznámkami pro všechny z nich a neměl jsem vůbec žádné problémy. Zde jsou knihovny pythonu a další balíčky atd.

Knihovny Pythonu

  • Adafruit_LED_Batoh
  • Rpi. GPIO (apt-get install python-rpi.gpio)
  • alsaaudio
  • paho.mqtt.client (pip install paho-mqtt)
  • baňka (apt-get install python-flask)

Jiné balíčky atd

  • mosquito (apt-get install mosquito)
  • shairport
  • Web Pimoroni má dobrou dokumentaci k nastavení DAC, takže jsem s tím běžel.

Krok 7: Software

Image
Image
Software
Software

Kód hodin byl napsán v Pythonu a používá vlákno pro spuštění alarmu a občasné pípnutí na pozadí bez blokování aktualizací displeje. Použil jsem knihovnu ConfigParser a konfigurační soubor, který udržuje, je čten a zapsán kódem hodin i webovou aplikací Flask, takže kdykoli se konfigurace změní prostřednictvím webového rozhraní nebo hodin, dojde k synchronizaci. Hodinový software také obsahuje broker MQTT, který umožňuje dálkové ovládání režimu zobrazení a ztlumení. Mým postranním motivem je nakonec napsat aplikaci pro iOS pro dálkové ovládání, ale webové rozhraní zatím funguje dostatečně dobře.

První obrázek výše ukazuje, jak hodiny vypadají v různých režimech zobrazení, a v režimu posouvání je k dispozici krátké video.

I když kód není hezký na pohled, je pěkný a stabilní. Rád to pošlu každému, kdo o to požádá a dá to online, až to bude lépe zorganizované a okomentované.

Webová aplikace

Následující obrázek ukazuje, jak vypadá webové rozhraní hodin. K dispozici jsou také konfigurační a kontrolní stránky a díky nim je mnohem snazší hrát si s hodinami bez velkého mačkání tlačítek:-).

Krok 8: Co dál?

Co dále?
Co dále?

K dispozici je dekodér metadat sdílené metadata Pythonu, takže si myslím, že při přehrávání hudby přidám nějaký kód pro zobrazení informací, jako je název a interpret. Bylo by také docela snadné vypočítat časy východu a západu slunce, aby bylo možné displej automaticky zesvětlit a ztlumit, než jej nastavovat ručně. Možná by také bylo zábavné přidat funkci internetového rádia. Rolovací displej by také mohl být konfigurovatelnější.

Doporučuje: