Obsah:

Hodiny späť do budúcnosti: 8 krokov (s obrázkami)
Hodiny späť do budúcnosti: 8 krokov (s obrázkami)

Video: Hodiny späť do budúcnosti: 8 krokov (s obrázkami)

Video: Hodiny späť do budúcnosti: 8 krokov (s obrázkami)
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, November
Anonim
Hodiny späť do budúcnosti
Hodiny späť do budúcnosti

Tento projekt začal život ako budík pre môjho syna. Urobil som to tak, aby to vyzeralo ako časový obvod od Návratu do budúcnosti. Displej môže zobrazovať čas v rôznych formátoch, vrátane formátu z filmov. Je možné ho konfigurovať pomocou tlačidiel v hornej časti krytu, ale aj prostredníctvom webovej stránky, ktorú vo vnútri používa Raspberry Pi Zero. V jednom z režimov zobrazenia zobrazí miestne počasie (z mojej meteorologickej stanice napájanej Arduino), ako aj predpoveď a všetky denné pripomienky nakonfigurované prostredníctvom webového rozhrania. Má tiež zvuk vďaka DAC a bude streamovať hudbu pomocou protokolu AirPlay. Zvuk budíka môže byť ľubovoľný zvukový súbor, ktorý si vyberiete. V určitých častiach dňa (napr. Za svitania a súmraku) displej automaticky stmaví a rozjasní.

Krok 1: Pozadie

Minulý rok som hľadal nový projekt Arduino, ktorý práve dokončil môj vôbec prvý, domácu meteorologickú stanicu. Môj 11-ročný syn práve prvýkrát pozeral filmy Návrat do budúcnosti, a tak som si povedal, že by bolo zábavné postaviť mu na narodeniny budík, ktorý by vyzeral ako časový obvod v Deloreane. Nie je to nová myšlienka, podobných projektov je dosť (napríklad tento), a tak som si povedal, že by bolo dobré naučiť sa niečo od ostatných a získať nové zručnosti.

Prvá verzia fungovala celkom dobre (nebola pripravená na jeho narodeniny: mal som ju hotovú do Vianoc), ale bol som dosť ambiciózny v tom, čo som chcel, a zistil som, že moja skica stále naráža na limit pamäte Arduina. Mal som tiež niekoľko malých externých hardvérových modulov (WiFi, prehrávač MP3, zvukový zosilňovač, RTC atď.), Takže sa všetko začínalo trochu ťažkopádne. Nakoniec som sa rozhodol prejsť na platformu Raspberry Pi, ktorá zjednodušila hardvér a umožnila mi zabaliť oveľa viac funkcií a funkcií.

Krok 2: Hlavné hardvérové komponenty

Vnútri boxu

Tu sú použité elektronické súčiastky. Väčšina z nich boli zdroje od spoločnosti Core Electronics v Austrálii, ale samozrejme sú ľahko dostupné aj inde:

  • 4 x Quad Alfanumerický displej -žltozelený
  • Raspberry Pi Zero W
  • Pimoroni pHAT DAC pre Raspberry Pi Zero
  • Zvukový zosilňovač (PAM8403 IC)
  • Napájanie Raspberry Pi 3+
  • 4 x prepojovací kábel - 0,1 ", 5 -pólový, 12"
  • 40 pinový (2 x 20) plochý kábel
  • Mužská hlavička Raspberry Pi GPIO
  • Raspberry Pi Model B - GPIO krytý záhlavie (2 x 20)
  • Stohovací konektor GPIO pre Pi A+/B+/PI 2/PI 3 - extra dlhý 2X20
  • 4 x 5 kolíková zástrčka samca
  • 2 malé 3W reproduktory
  • 2 x koaxiálny kábel pre analógové audio pripojenie DAC k zosilňovaču
  • Veraboard alebo vlastná doska plošných spojov na spracovanie Rpi na zosilňovač, LED diódy, tlačidlá
  • 5 x okamžité tlačidlové spínače
  • 4 x 2-cestné skrutkové svorkovnice namontovateľné na PCB

Box

  • Kusy a kúsky MDF, skrutky a skrutky na výrobu „podvozku“
  • Zelený tónovaný perspex, miestny dodávateľ
  • Styrén, modelovacie lepidlo, farba v spreji (farba hliníka) z miestneho hobby obchodu
  • Samolepky (súbor k dispozícii na požiadanie - vytlačené spoločnosťou Redbubble)

Krok 3: Dajte to všetko dohromady

Dávať to všetko dokopy
Dávať to všetko dokopy

LED displej pre hodiny pozostáva z 16 x 14 segmentových alfanumerických displejov, našťastie rovnakého počtu znakov ako časový obvod Späť do budúcnosti. Aj keď iba prvé tri znaky musia byť alfanumerické a ostatné môžu byť 7-segmentové numerické displeje na napodobnenie rekvizity filmu, rozhodol som sa ich všetky vytvoriť alfanumerické, aby bola zaistená určitá flexibilita v tom, čo je možné zobraziť, a aby všetky vyzerali. to isté. Štvorlôžkové batohy Adafruit sú tu skvelým riešením a dajú sa prevádzkovať na autobuse I2C Raspberry Pi. Viac informácií o týchto jednotkách a spôsobe ich zapojenia nájdete tu na webovej stránke Adafruit. Jediná mierne neštandardná vec, ktorú som musel urobiť, bolo zmeniť adresy troch z nich, aby bol každý batoh jedinečný.

Na prehrávanie zvuku (stereofónne) som zaradil Pimoroni pHAT DAC a stereo zosilňovač 2 x 3 W na základe čipu PAM8403. PHAT DAC je skutočne ľahké pripojiť k Pi. Na Pi som vložil 2 x 20 kolíkový konektor samca a na DAC stohovaciu hlavičku GPIO, aby ich bolo možné spojiť na seba. Samčie kolíkové kolíky prechádzajú hornou časťou DAC, čo mi umožňuje viesť plochý kábel so zásuvkami, spočiatku k prerušeniu Raspberry Pi na testovanie dosky, ale nakoniec k zahalenému záhlaviu na doske PCB vyrobenej na mieru.

Pokiaľ ide o zvukový zosilňovač, existuje veľa možností (vrátane získania čipu a zostavenia vlastného). Ten má možnosť stlmiť výstup jednoduchou zmenou stavu jedného z pinov (vysoký je zapnutý, nízky je vypnutý) a zapojil som ho tak, aby sa dal ovládať z Pi. Pri mojich počiatočných pokusoch o prepojenie som zistil, že keď bol zvuk zapnutý, zistil som veľa hluku v pozadí. Po dlhom hraní s uzemnením som sa nakoniec pokúsil presunúť vstupné napájacie napätie z 5V na Pi na 3,3V a tým sa to vyriešilo. Myslím, že je tu dosť veľa hluku generovaného rôznymi digitálnymi signálmi, ktoré lietajú okolo, ale zdá sa, že napájanie 3,3 V je nejako izolované.

Medzi ďalšie pripojenia patrí analógový zvuk z DAC na zosilňovač (tu som použil koaxiálny kábel, ktorý pomáha zvládať zachytávanie šumu) a výstup zvuku do dvojice malých 3W reproduktorov, ktoré sa hodia do skrinky. K dispozícii sú aj pripojenia GPIO pre štyri chvíľkové prepínače v hornej časti škatule a chvíľkové tlačidlo som zapojil do kolíkov tvrdého resetu „RUN“(pozrite si časť Ďalšie pripojenia na tejto stránke). Resetovacie tlačidlo je namontované mimo dohľadu v zadnej časti krytu. Tu je diagram znázorňujúci spojenia:

Krok 4: Vlastná doska plošných spojov

Vlastná doska plošných spojov
Vlastná doska plošných spojov

Aj keď na obvode nie je nič príliš komplikované, je tu dosť zapojenia a doska na pečenie môže veľmi rýchlo vyzerať ako špagety. Tak som navrhol DPS, aby to malo všetko pod kontrolou. Je to jednostranná domáca varná doska a pri výrobe mi pomohol priateľ. Potom, čo bol vyrobený a zapojený, som si uvedomil, že som zabudol zahrnúť pripojenia pre svorkovnice pre zvuk a neskôr som zmenil, aby sa napájanie zosilňovača presunulo z 5V na 3,3V, takže to nie je ideálne a musel som zapnúť nejaký Veroboard na povolenie zvukových spojení. Tiež vývody na doske zvukového zosilňovača sú neštandardné (dokonca sa líšia medzi kolíkmi), takže pripojenie k tomuto hlavnému PCB je trochu hrozné s 11 krátkymi ~ 1 cm pripájacími vodičmi.

Ak by som urobil inú dosku, zahrnul by som všetky tieto úpravy a tiež by som zmenil konektor pre štyri tlačidlá na niečo krajšie. DAC a Pi by stohovali priamo na vrch, takže nie je potrebný žiadny plochý kábel. Vyššie uvedený diagram ukazuje, ako by to mohlo vyzerať.

Krok 5: Príloha

Príloha
Príloha
Príloha
Príloha
Príloha
Príloha

Chcel som vytvoriť ohradu, ktorá by vyzerala ako jeden rad časového obvodu filmu. Tri rady LED displejov by boli na budík príliš veľa a výrazne by zvýšili náklady. Uvažoval som o vyrobení krytu z hliníka, ale nemám v tejto oblasti žiadne znalosti. V živote som však vyrobil niekoľko plastových modelov a mám skúsenosti s prácou s drevom, preto som sa rozhodol vytvoriť rám z MDF na pripevnenie diód LED a reproduktorov a pripevnenie plexiskla na prednú stranu a potom ho zakryť 5-stranným styrénom. krabica s lunetou na prednej strane, lakovaná hliníkovou metalickou farbou v spreji. Plast a farby boli získané z miestneho modelárstva. Pozorne som sa pozrel na štítky na rekvizite filmu a snažil som sa skopírovať farby, typ a veľkosť písma. Na zostavenie štítkov som použil Photoshop a nechal som ich vytlačiť ako nálepky z Redbubble.

Obrázky vyššie ukazujú:

  1. Predná časť podvozku MDF. 4 batohy LED sú namontované vpredu so zeleným tónovaným plexisklom
  2. Vnútri krabice. Batohy všetky namontované a zoradené, Raspberry Pi a vlastný PCB, reproduktory na oboch stranách.
  3. Zapojenie je nainštalované a vonkajší plášť je pripravený pokračovať. Bolo to trochu žmýkanie!

Krok 6: Nastavenie Raspberry Pi

Mal som nejaké problémy s kompatibilitou s Raspbian Stretch (ktoré mohli byť vyriešiteľné, ak by som vytrval), ale Jessie s ním pracuje dobre, tak som sa rozhodol ísť s tým.

Pi som nastavil ako bezhlavú jednotku s prístupom VNC a SSH. To sa dalo urobiť bez zapojenia klávesnice alebo monitora, ale ja som si požičal televízor a odložil klávesnicu a celkom rýchlo to išlo bez hlavy. Od tej doby som od tej doby skoro používal VNC.

Môj kód hodín používa Python 2.7.9 a spolieha sa na niekoľko knižníc, uvedených nižšie. Okrem toho prevádzkujem webový server Flask a MQTT na diaľkové ovládanie a Shairplay na streamovanie hudby. Pri všetkých týchto krokoch som sa riadil pokynmi k inštalácii online a nemal som žiadne problémy. Tu sú knižnice pythonu a ďalšie balíky atď. Potreboval som nainštalovať odkazy na poznámky k inštalácii alebo iba príkaz, ktorý musíte spustiť, aby ste to získali:

Knižnice Pythonu

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

Ďalšie balíky atď

  • komár (vhodne nainštalujte komára)
  • shairport
  • Webová stránka Pimoroni má dobrú dokumentáciu o nastavení DAC, takže som s tým bežal.

Krok 7: Softvér

Image
Image
Softvér
Softvér

Hodinový kód bol napísaný v Pythone a používa závitovanie na spustenie alarmu a občasné pípnutie na pozadí bez blokovania aktualizácií displeja. Použil som knižnicu ConfigParser a konfiguračný súbor, ktorý udržiava, je čítaný a zapísaný kódom hodín, ako aj webovou aplikáciou Flask, takže vždy, keď sa konfigurácia zmení prostredníctvom webového rozhrania alebo hodín, dôjde k jej synchronizácii. Hodinový softvér tiež obsahuje makléra MQTT, ktorý umožňuje diaľkové ovládanie režimu zobrazenia a stlmenia. Mojím postranným motívom je nakoniec napísať aplikáciu pre iOS na diaľkové ovládanie, ale webové rozhranie zatiaľ funguje dostatočne dobre.

Prvý obrázok vyššie ukazuje, ako hodiny vyzerajú v rôznych režimoch zobrazenia, a v režime posúvania je k dispozícii aj krátke video.

Aj keď kód nie je pekný na pohľad, je pekný a stabilný. Som rád, že ho pošlem každému, kto oň požiada a dá ho online, keď bude lepšie zorganizovaný a okomentovaný.

Webová aplikácia

Nasledujúci obrázok ukazuje, ako vyzerá webové rozhranie hodín. K dispozícii sú tiež konfiguračné a kontrolné stránky, ktoré výrazne uľahčujú hranie s hodinami bez veľkého tlačenia tlačidiel:-).

Krok 8: Čo ďalej?

Čo ďalej?
Čo ďalej?

K dispozícii je dekodér metadát zdieľanejportu Pythonu, takže si myslím, že pri prehrávaní hudby pridám kód na zobrazenie informácií, ako je názov a interpret. Tiež by bolo celkom jednoduché vypočítať časy východu a západu slnka, aby bolo možné displej automaticky zosvetľovať a stmievať, a nie ho ručne nastavovať. Možno by bolo zábavné aj pridanie funkcie internetového rádia. Rolovateľný displej by tiež mohol byť konfigurovateľnejší.

Odporúča: