Sisukord:

Tagasi tulevikukella juurde: 8 sammu (piltidega)
Tagasi tulevikukella juurde: 8 sammu (piltidega)

Video: Tagasi tulevikukella juurde: 8 sammu (piltidega)

Video: Tagasi tulevikukella juurde: 8 sammu (piltidega)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
A Tagasi tulevikukella juurde
A Tagasi tulevikukella juurde

See projekt alustas elu minu poja äratuskellana. Ma panin selle välja nägema nagu ajaskeem Tagasi tulevikku. Ekraan võib näidata aega erinevates vormingutes, sealhulgas muidugi filmidest. Seda saab konfigureerida korpuse ülaosas asuvate nuppude kaudu, aga ka veebilehe Raspberry Pi Zero kaudu. Ühes kuvarežiimis näitab see kohalikku ilma (minu Arduino toitega ilmajaamast), samuti prognoosi ja igapäevaseid meeldetuletusi, mis on konfigureeritud veebiliidese kaudu. Sellel on ka heli tänu DAC -ile ja see voogesitab muusikat AirPlay protokolli abil. Äratusheli võib olla ükskõik milline teie valitud helifail. See hämardab ja helendab ekraani automaatselt teatud kellaaegadel (nt koidikul ja videvikus).

Samm: taust

Eelmisel aastal otsisin uut Arduino projekti, mille lõpetasin just oma esimese, koduilmajaama. Minu 11-aastane poeg vaatas just esimest korda Tagasi tulevikku filme, nii et ma arvasin, et oleks lõbus ehitada talle äratuskell, mis nägi välja nagu Deloreani ajaring tema sünnipäevaks. See pole uus idee, sarnaseid projekte on seal päris palju (näiteks see), nii et ma arvasin, et see oleks tore projekt teistelt õppida ja uusi oskusi omandada.

Esimene versioon töötas üsna hästi (see polnud tema sünnipäevaks valmis: sain selle jõuludeks valmis), kuid sain oma soovidega üsna ambitsioonikaks ja leidsin, et minu visand jooksis pidevalt Arduino mälu piirini. Mul oli ka mitu väikest välist riistvara moodulit (WiFi, MP3 -mängija, helivõimendi, RTC jne), nii et see kõik muutus natuke raskeks. Lõpuks otsustasin liikuda Raspberry Pi platvormile, mis lihtsustas riistvara ja võimaldas mul pakkida palju rohkem funktsioone ja funktsioone.

Samm: riistvara peamised komponendid

Kasti sees

Siin on elektroonilised komponendid, mida ma kasutasin. Enamik neist olid Austraalia Core Electronics'i allikad, kuid loomulikult on need kergesti kättesaadavad ka mujal:

  • 4 x nelja tähtnumbrilist ekraani -kollane -roheline
  • Vaarika Pi Zero W
  • Pimoroni pHAT DAC Raspberry Pi Zero jaoks
  • Helivõimendi (PAM8403 IC)
  • Raspberry Pi 3+ toiteallikas
  • 4 x hüppaja traat - 0,1 ", 5 -pin, 12"
  • 40 kontaktiga (2 x 20) lintkaabel
  • Raspberry Pi GPIO isane päis
  • Raspberry Pi mudel B - GPIO varjatud päis (2X20)
  • GPIO virnastamispäis Pi A+/B+/PI 2/PI 3 jaoks - eriti pikk 2X20
  • 4 x 5 kontaktiga isane päis
  • 2 väikest 3W kõlarit
  • 2 x koaksiaalkaablit analoogheliühenduseks DAC võimendiga
  • Veraboard või kohandatud trükkplaat, mis käsitleb Rpi võimendit, LED -i, nuppe
  • 5 x hetkelist vajutusnuppu
  • 4 x kahesuunalist trükkplaadile paigaldatavat kruviklemmiplokki

Kast

  • Killud ja tükid MDF -i, kruvid ja poldid šassii valmistamiseks
  • Roheline toonitud perspex, kohalik tarnija
  • Stüreen, modelleerimisliim, pihustusvärv (alumiiniumvärv) kohalikust hobipoest
  • Kleebised (fail on saadaval nõudmisel - trükitud Redbubble'i poolt)

3. samm: pange see kõik kokku

Kõike kokku panema
Kõike kokku panema

Kella LED-ekraan koosneb 16x14-segmendilisest tähtnumbrilisest ekraanist, õnneks sama palju tähemärke kui ajaskeem Tagasi tulevikku. Kuigi ainult kolm esimest tähemärki peavad olema tähtnumbrilised ja ülejäänud võiksid olla 7-segmendilised numbrinäidikud, et jäljendada filmi rekvisiiti, otsustasin need kõik tähtnumbriliseks muuta, et võimaldada kuvamisel teatavat paindlikkust ja hoida neid kõiki sama. Adafruit quad-seljakotid on siin suurepärane lahendus ja nendega saab sõita Raspberry Pi I2C bussiga. Lisateavet nende üksuste ja nende ühendamise kohta leiate siit Adafruit'i veebisaidilt. Ainus veidi mittestandardne asi, mida ma pidin tegema, oli kolme aadressi muutmine, nii et iga seljakott oli ainulaadne.

Heli (stereo) esitamiseks kaasasin Pimoroni pHAT DAC ja 2 x 3W stereohelivõimendi, mis põhineb PAM8403 kiibil. PHAT DAC -i on tõesti lihtne Pi -ga ühendada. Panin Pi -le 2 x 20 -pin isase päise ja DAC -ile GPIO virnastamispäise, et need saaks üksteise peale ühendada. Isased päisepoldid läbivad DAC-i ülaosa, võimaldades mul juhtida naissoost pistikutega lintkaablit, esialgu Raspberry Pi katkestuseni leivaplaadi testimiseks, kuid lõpuks eritellimusel valmistatud PCB varjatud päiseni.

Helivõimendi jaoks on palju võimalusi (sealhulgas lihtsalt kiibi hankimine ja enda kokkupanek). Sellel on võimalus väljund vaigistada, muutes lihtsalt ühe tihvti olekut (kõrge on sisse lülitatud, madal on välja lülitatud) ja ma ühendasin selle nii, et seda saaks juhtida Pi -st. Esialgsetel katsetel seda ühendada avastasin heli sisselülitamisel üsna palju taustamüra. Pärast palju maandamisega mängimist proovisin lõpuks sisendtoite pinget nihutada Pi 5 V -lt 3,3 V -le ja see parandas selle. Ma arvan, et mitmesuguste digitaalsete signaalide tekitatud müra on üsna palju, kuid tundub, et 3,3 V toide on kuidagi isoleeritud.

Muud ühendused hõlmavad analoogheli DAC -st võimendisse (ma kasutasin siin koaksiaalkaablit, et aidata hallata müra vastuvõtmist) ja väljastada heli paarile väikesele 3 W kõlarile, mis mahuvad korpusesse. Samuti on karbi peal olevate nelja hetkelise lüliti jaoks GPIO -ühendused ja ühendasin hetke nupu kõva lähtestamise "RUN" tihvtidega (vt selle lehe jaotist Täiendavad ühendused). Lähtestusnupp on paigaldatud korpuse tagant silma alt ära. Siin on diagramm, mis näitab ühendusi:

Samm: kohandatud trükkplaat

Kohandatud trükkplaat
Kohandatud trükkplaat

Kuigi vooluringis pole midagi liiga keerulist, on juhtmeid üsna vähe ja leivaplaat võib üsna kiiresti spagettide moodi välja näha. Nii et ma kavandasin trükkplaadi, et seda kõike kontrolli all hoida. See on kodus valmistatud ühepoolne laud ja sain sõbra, kes aitaks seda teha. Pärast selle loomist ja ühendamist mõistsin, et unustasin heli klemmliistude ühendused lisada ja tegin hiljem muudatuse, et muuta helivõimendi toide 5 V -lt 3,3 V -ni, nii et see pole ideaalne ja pidin jätkama mõni Veroboard võimaldab heliühendusi. Samuti on helivõimendi plaadi pistikud mittestandardsel kaugusel (need erinevad isegi tihvtide vahel), nii et selle ühendamine peamise trükkplaadiga on natuke kohutav 11 lühikese ~ 1 cm ühendusjuhtmega.

Kui ma teeksin teise plaadi, lisaksin kõik need muudatused ja muudaksin ka nelja nupu pistiku mõneks toredamaks. DAC ja Pi oleksid üksteise peale virnastatud, nii et lintkaablit pole vaja. Ülaltoodud diagramm näitab, kuidas see välja võib näha.

5. samm: ümbris

Aedik
Aedik
Aedik
Aedik
Aedik
Aedik

Tahtsin teha korpuse, mis nägi välja nagu üks rida filmi ajaringist. Kolm rida LED -ekraane oleks äratuskella jaoks liiga palju olnud ja oleks oluliselt lisanud kulusid. Mõtlesin teha korpuse alumiiniumist, kuid mul pole selles vallas mingeid oskusi. Olen oma elus siiski valmistanud üsna palju plastmudeleid ja mul on puidutöökogemus, nii et otsustasin MDF-plaadi abil raami teha LED-ide ja kõlarite kinnitamiseks ning esiosa kinnitamiseks, seejärel katke see viiepoolse stüreeniga karp, mille esikülg on äärisega, värvitud alumiiniumist metallist pihustusvärviga. Plast ja värv saadi kohalikust mudelipoest. Vaatasin tähelepanelikult filmi rekvisiidi silte ja andsin endast parima, et kopeerida värvid, fondi tüüp ja suurus. Kasutasin siltide loomiseks Photoshopi ja printisin need kleebistena Redbubble'ist.

Ülaltoodud pildid näitavad:

  1. MDF šassii esikülg. 4 LED-seljakotti on paigaldatud esiküljele rohelise tooniga perspex
  2. Karbi sees. Kõik seljakotid on paigaldatud ja rivistatud, Raspberry Pi ja kohandatud PCB sisse, kõlarid mõlemal küljel.
  3. Juhtmed on paigaldatud ja väliskest on jätkamiseks valmis. See oli natuke pigistamine!

Samm: Raspberry Pi seadistamine

Mul oli Raspbian Stretchiga mõningaid ühilduvusprobleeme (mis oleks võinud olla lahendatavad, kui oleksin püsinud), kuid Jessie töötab sellega suurepäraselt, nii et otsustasin sellega minna.

Ma seadistasin Pi kui peata seadme VNC ja SSH juurdepääsuga. Seda oleks saanud teha ilma klaviatuuri või kuvarit ühendamata, aga ma laenasin teleri ja kraapisin klaviatuuri ning sain selle üsna kiiresti peata. Sellest ajast alates kasutasin VNC -d üsna palju.

Minu kella kood kasutab Python 2.7.9 ja tugineb üsna paljudele allpool loetletud teekidele. Lisaks sellele kasutan Flaski veebiserverit ja MQTT kaugjuhtimiseks ning Shairplay muusika voogesituseks. Ma lihtsalt järgisin nende kõigi installipõhiseid märkmeid ja mul polnud üldse probleeme. Siin on pythoni teegid ja muud paketid jne, mida ma pidin installima koos linkidega installimärkmetele või lihtsalt käsuga, mille peate selle saamiseks käivitama:

Pythoni raamatukogud

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

Muud paketid jne

  • sääsk (apt-get install mosquito)
  • shairport
  • Pimoroni veebisaidil on häid dokumente DAC -i seadistamise kohta, nii et ma lihtsalt kasutasin seda.

Samm 7: Tarkvara

Image
Image
Tarkvara
Tarkvara

Kellakood on kirjutatud Pythonis ja see kasutab niidistamist äratuse esitamiseks ja aeg -ajalt helisemist taustal ilma ekraani värskendusi blokeerimata. Kasutasin teeki ConfigParser ja selle hooldatavat konfiguratsioonifaili loevad ja kirjutavad kellakood ja veebirakendus Flask, nii et kui konfiguratsiooni muudetakse veebiliidese või kella kaudu, sünkroonitakse see. Kella tarkvara sisaldab ka MQTT maaklerit, mis võimaldab kuvamisrežiimi juhtimist ja vaigistamist kaugjuhtida. Minu varjatud motiiv on lõpuks kirjutada kaugjuhtimispuldi jaoks iOS -i rakendus, kuid veebiliides töötab praegu piisavalt hästi.

Ülaltoodud esimene pilt näitab, kuidas kell erinevates kuvarežiimides välja näeb, ja seal on lühike video, mis näitab seda kerimisrežiimis.

Kuigi kood ei ole ilus vaadata, on see kena ja stabiilne. Mul on hea meel saata see kõigile, kes seda taotlevad, ja panen selle võrku, kui see on paremini korraldatud ja kommenteeritud.

Veebirakendus

Järgmine pilt näitab, kuidas kella veebiliides välja näeb. Samuti on olemas seadistus- ja juhtlehed ning need muudavad kellaga palju lihtsamaks mängimiseks palju nupuvajutusi:-).

8. samm: mis edasi?

Mis edasi?
Mis edasi?

Saadaval on Pythoni aktsiaporti metaandmete dekooder, nii et ma arvan, et lisan muusika esitamise ajal mõne koodi, et kuvada teavet, näiteks pealkiri ja esitaja. Samuti oleks üsna lihtne arvutada päikesetõusu ja -loojangu aegu, et ekraani saaks automaatselt heledamaks muuta ja hämardada, mitte käsitsi seadistada. Võib -olla oleks ka Interneti -raadio funktsiooni lisamine lõbus. Keritav kuva võiks olla ka paremini konfigureeritav.

Soovitan: