Tartalomjegyzék:

A Vissza a jövő órájához: 8 lépés (képekkel)
A Vissza a jövő órájához: 8 lépés (képekkel)

Videó: A Vissza a jövő órájához: 8 lépés (képekkel)

Videó: A Vissza a jövő órájához: 8 lépés (képekkel)
Videó: Megkérdezték ezt a ROBOTOT, hogy hisz-e ISTENBEN 2024, November
Anonim
A Vissza a jövő órájához
A Vissza a jövő órájához

Ez a projekt a fiam ébresztőórájaként kezdte az életet. Úgy néztem ki, mint a Vissza a jövőbe időáramkör. A kijelző különböző formátumokban képes megjeleníteni az időt, beleértve természetesen a filmekét is. Konfigurálható a ház tetején található gombokkal, de a Raspberry Pi Zero által kiszolgált weboldalon is. Az egyik megjelenítési módban megjeleníti a helyi időjárást (az Arduino által működtetett időjárás-állomásomról), valamint az előrejelzést és a napi emlékeztetőket, a webes felületen keresztül konfigurálva. A DAC -nak köszönhetően hangja is van, és az AirPlay protokoll segítségével továbbítja a zenét. A riasztási hang bármely tetszőleges audio fájl lehet. A nap adott időpontjában (például hajnalban és alkonyatkor) automatikusan elsötétíti és világosítja a kijelzőt.

1. lépés: Háttér

Tavaly kerestem egy új Arduino projektet, és most fejeztem be az elsőt, egy otthoni időjárás állomást. A 11 éves fiam most nézte meg először a Vissza a jövőbe filmeket, ezért úgy gondoltam, hogy szórakoztató lenne felépíteni neki egy ébresztőórát, amely úgy néz ki, mint a Delorean-i időkör a születésnapjára. Ez nem új ötlet, elég sok hasonló projekt létezik (például ez), ezért úgy gondoltam, hogy jó projekt lenne, ha másoktól tanulnánk, és új készségeket sajátítanánk el.

Az első verzió nagyon jól működött (nem volt kész a születésnapjára: karácsonyra elkészültem), de elég ambiciózus lettem, amit akartam, és megállapítottam, hogy a vázlatom folyamatosan az Arduino memóriakorlátjába fut. Több apró külső hardvermodulom is volt (WiFi, MP3 lejátszó, audió erősítő, RTC stb.), Szóval egy kicsit nehézkes lett. Végül úgy döntöttem, hogy átmegyek egy Raspberry Pi platformra, amely leegyszerűsítette a hardvert, és lehetővé tette számomra, hogy sokkal több funkciót és funkciót csomagoljak.

2. lépés: A hardver fő összetevői

A doboz belsejében

Itt vannak az általam használt elektronikus alkatrészek. Legtöbbjük a Core Electronics Ausztráliából származó forrásai voltak, de természetesen máshol is könnyen elérhetők:

  • 4 x négy alfanumerikus kijelző -sárga -zöld
  • Raspberry Pi Zero W
  • Pimoroni pHAT DAC a Raspberry Pi Zero számára
  • Audio erősítő (PAM8403 IC)
  • Raspberry Pi 3+ tápegység
  • 4 x jumper vezeték - 0,1 ", 5 tűs, 12"
  • 40 tűs (2 x 20) szalagkábel
  • Raspberry Pi GPIO férfi fejléc
  • Raspberry Pi Model B - GPIO Shrouded Header (2X20)
  • GPIO halmozási fejléc Pi A+/B+/PI 2/PI 3 - extra hosszú 2X20
  • 4 x 5 tűs dugó
  • 2 kicsi 3 W -os hangszóró
  • 2 x koaxiális kábel analóg audiocsatlakozáshoz DAC és erősítő között
  • Veraboard vagy egyedi NYÁK az Rpi erősítő, LED, gombok kezelésére
  • 5 db pillanatnyi nyomógombos kapcsoló
  • 4 db 2-utas NYÁK-ba szerelhető csavaros sorkapocs

A doboz

  • Darabok és MDF lemezek, csavarok és csavarok az "alváz" elkészítéséhez
  • Zöld színezett perspex, helyi beszállító
  • Sztirol, modellező ragasztó, spray festék (alumínium színű) a helyi hobbiboltból
  • Matricák (a fájl kérésre elérhető - a Redbubble nyomtatja)

3. lépés: Összerakni

Összerakni
Összerakni

Az óra LED-kijelzője 16x14 szegmenses alfanumerikus kijelzőből áll, szerencsére ugyanannyi karaktert, mint a Vissza a jövőbe időáramkör. Míg csak az első három karakternek kell alfanumerikusnak lennie, a többi pedig 7 szegmenses numerikus kijelzőnek kell lennie, hogy emulálja a film kellékét, úgy döntöttem, hogy mindegyiket alfanumerikusvá alakítom, hogy némi rugalmasságot biztosítsak a megjeleníthető tartalomban, és hogy mindannyian a megfelelő megjelenésűek legyenek. azonos. Az Adafruit quad-hátizsák kiváló megoldás itt, és a Raspberry Pi I2C buszán futtatható. További információ ezekről az egységekről és azok bekötéséről itt található az Adafruit weboldalán. Az egyetlen kissé nem szokványos dolog, amit meg kellett tennem, háromnak a címét kellett megváltoztatnom, hogy minden hátizsák egyedi legyen.

Hang lejátszásához (sztereóban) a Pimoroni pHAT DAC -t és a PAM8403 chipen alapuló 2 x 3 W -os sztereó audió erősítőt vettem bele. A pHAT DAC nagyon könnyen csatlakoztatható a Pi -hez. Egy 2 x 20 tűs férfi fejlécet tettem a Pi -re, és egy GPIO halmozási fejlécet a DAC -ra, hogy össze lehessen dugni őket a másikra. A férfi fejlécek a DAC tetején mennek keresztül, lehetővé téve egy szalagkábel vezetését női csatlakozókkal, kezdetben a Raspberry Pi kitöréshez a kenyértábla teszteléséhez, de végül egy burkolt fejléchez egy egyedi gyártmányú NYÁK-on.

Az audió erősítőre rengeteg lehetőség van (beleértve a chip beszerzését és a saját összeszerelését). Ennek lehetősége van elnémítani a kimenetet az egyik csap állapotának megváltoztatásával (a magas be van kapcsolva, az alacsony ki van kapcsolva), és bekötöttem, hogy ezt a Pi -ről vezérelni lehessen. A kezdeti vezetékes kísérletek során meglehetősen sok háttérzajt fedeztem fel, amikor a hang be volt kapcsolva. Miután sokat játszottam a földeléssel, végül megpróbáltam áthelyezni a bemeneti tápfeszültséget a Pi 5V -ról 3,3 V -ra, és ez megoldotta. Azt hiszem, elég sok zaj keletkezik a különböző digitális jelek körül, de úgy tűnik, hogy a 3,3 V -os táp valahogy elszigetelt.

További csatlakozások közé tartozik az analóg hang a DAC -ról az erősítőre (itt koaxiális kábelt használtam a zajszűrés kezeléséhez), és hangot ad ki a házba illeszkedő kis 3 W -os hangszóróknak. A doboz tetején található négy pillanatkapcsolóhoz GPIO -csatlakozások is rendelkezésre állnak, és egy pillanatnyi gombot csatlakoztattam a "RUN" merevlemez -visszaállításhoz (lásd ezen az oldalon a További kapcsolatok részt). A reset gomb a ház hátsó részén, látómezőn kívül van felszerelve. Itt van egy diagram, amely bemutatja a kapcsolatokat:

4. lépés: Egyéni PCB

Egyedi PCB
Egyedi PCB

Bár nincs semmi túl bonyolult az áramkörben, elég sok vezeték van, és a kenyérsütő elég gyorsan spagettinek tűnhet. Ezért úgy terveztem egy NYÁK -ot, hogy mindent kézben tarthassak. Ez egy házilag készített egyoldalas tábla, és van egy barátom, aki segít elkészíteni. Miután elkészítették és bekötötték, rájöttem, hogy elfelejtettem bekötni a csatlakozókat a hanghoz, és később módosítottam, hogy az audioerősítőt 5V -ról 3,3V -ra állítsam át, tehát nem ideális, és tovább kellett lépnem néhány Veroboard lehetővé teszi az audiocsatlakozásokat. Ezenkívül az audio erősítő kártya érintkezői nem szabványos elkülönítésben vannak (még a tűk között is változhatnak), így a fő NYÁK-hoz való csatlakozás kissé szörnyű, 11 rövid ~ 1 cm-es csatlakozóvezetékkel.

Ha elkészítenék egy másik táblát, akkor ezeket a módosításokat is belefoglalnám, és a négy gomb csatlakozóját is egy kicsit szebbre cserélném. A DAC és a Pi közvetlenül a tetején halmozódna, így nincs szükség szalagkábelre. A fenti ábra mutatja, hogyan nézhet ki.

5. lépés: A ház

A Melléklet
A Melléklet
A Melléklet
A Melléklet
A Melléklet
A Melléklet

Olyan burkolatot akartam készíteni, amely úgy nézett ki, mint a mozifilmek egy -egy sora. Három sor LED kijelző túl sok lett volna az ébresztőóra számára, és jelentősen növelte volna a költségeket. Arra gondoltam, hogy alumíniumból készítem a házat, de ezen a területen nincsenek készségeim. Elég sok műanyag modellt készítettem életemben, és van némi famegmunkálási tapasztalatom, ezért úgy döntöttem, hogy MDF-ből készítek keretet a LED-ek és a hangszórók felszerelésére, és a perspex elülső rögzítésére, majd letakarom egy 5 oldalas sztirollal doboz, előlapja előlappal, alumínium fémfestékkel festve. A műanyagot és a festéket egy helyi modellboltban szerezték be. Alaposan megnéztem a filmprofil címkéit, és mindent megtettem a színek, betűtípus és méret másolásáért. A címkék elkészítéséhez Photoshopot használtam, és matricaként kinyomtattam őket a Redbubble -től.

A fenti képeken látható:

  1. Az MDF alváz eleje. A 4 LED hátizsák elöl zöld színű perspex-el van felszerelve
  2. A doboz belsejében. A hátizsákok fel vannak szerelve és felsorakoznak, Raspberry Pi és egyedi PCB, hangszórók mindkét oldalon.
  3. A vezetékek felszerelve és a külső burkolat készen áll a folytatásra. Ez egy kis szorítás volt!

6. lépés: A Raspberry Pi beállítása

Voltak kompatibilitási problémáim a Raspbian Stretch -el (ami megoldható lett volna, ha kitartok), de Jessie remekül dolgozik vele, ezért úgy döntöttem, hogy ezzel megyek.

A Pi -t fej nélküli egységként állítottam be VNC és SSH hozzáféréssel. Ezt megtehették volna anélkül, hogy valaha csatlakoztatnának egy billentyűzetet vagy monitort, de csak kölcsönvettem a TV -t, és felmorzsoltam a billentyűzetet, és elég gyorsan fej nélkül jártam. Innentől kezdve nagyjából a VNC -t használtam.

Az óra kódom a Python 2.7.9 -et használja, és jó néhány, alább felsorolt könyvtárra támaszkodik. Ezenkívül Flask webszervert és távirányító MQTT -t, valamint zene streaminghez Shairplay -t futtatok. Mindezekhez követtem az online telepítési megjegyzéseket, és egyáltalán nem volt probléma. Itt vannak a python könyvtárak és egyéb csomagok, stb., Amelyeket telepítenem kellett a telepítési megjegyzésekre mutató hivatkozásokkal, vagy csak a futtatáshoz szükséges paranccsal:

Python könyvtárak

  • Adafruit_LED_Hátizsák
  • Rpi. GPIO (apt-get install python-rpi.gpio)
  • alsaaudio
  • paho.mqtt.client (pip install paho-mqtt)
  • lombik (apt-get install python-flask)

Más csomagok stb

  • szúnyog (apt-get install mosquito)
  • shairport
  • A Pimoroni webhelyen van néhány jó dokumentáció a DAC beállításáról, ezért csak futottam ezzel.

7. lépés: Szoftver

Image
Image
Szoftver
Szoftver

Az óra kódja Python nyelven íródott, és szálazással játssza le az ébresztést, és alkalmanként hangjelzést ad a háttérben anélkül, hogy blokkolná a kijelző frissítéseit. A ConfigParser könyvtárat használtam, és az általa karbantartott konfigurációs fájlt az óra kódja, valamint a Flask webes alkalmazás olvassa és írja, így amikor a konfigurációt megváltoztatják a webes felületen vagy az órán keresztül, az szinkronizálódik. Az óraszoftver tartalmaz egy MQTT közvetítőt is, amely lehetővé teszi a kijelző mód és a némítás távoli vezérlését. A hátsó szándékom végül az, hogy írok egy iOS alkalmazást a távirányítóhoz, de a webes felület egyelőre elég jól működik.

A fenti első kép azt mutatja, hogyan néz ki az óra különböző megjelenítési módokban, és van egy rövid videó, amely görgetési módban mutatja.

Bár a kód ránézésre nem szép, szép és stabil. Szívesen elküldöm mindenkinek, aki kéri, és felteszi az internetre, ha jobban megszervezik és megjegyzéseket fűznek hozzá.

A webalkalmazás

A következő kép azt mutatja, hogyan néz ki az óra webes kezelőfelülete. Vannak konfigurációs és vezérlőoldalak is, amelyek sokkal könnyebbé teszik az órával való játékot sok gombnyomás nélkül:-).

8. lépés: Mi a következő lépés?

Mi a következő?
Mi a következő?

Van egy Python shareport metaadat -dekódoló, ezért azt hiszem, hozzáadok néhány kódot az információk megjelenítéséhez, mint például a cím és az előadó, amikor zenét játszanak. A napfelkelte és a napnyugta időinek kiszámítása is nagyon egyszerű lenne, hogy a kijelző automatikusan világítson és elsötétüljön, ahelyett, hogy kézzel állítaná be. Talán szórakoztató lenne egy internetes rádió funkció hozzáadása is. A görgető kijelző is konfigurálható lenne.

Ajánlott: