Sadržaj:

Sat za povratak u budućnost: 8 koraka (sa slikama)
Sat za povratak u budućnost: 8 koraka (sa slikama)

Video: Sat za povratak u budućnost: 8 koraka (sa slikama)

Video: Sat za povratak u budućnost: 8 koraka (sa slikama)
Video: Obraćanje Aleksandra Vučića, predsednika Republike Srbije - Srbija 2027 - Skok u budućnost 2024, Juli
Anonim
Sat Povratak u budućnost
Sat Povratak u budućnost

Ovaj projekat je započeo život kao budilica za mog sina. Učinio sam da izgleda kao vremenski krug od Povratak u budućnost. Zaslon može prikazati vrijeme u različitim formatima, uključujući onaj iz filmova, naravno. Može se konfigurirati pomoću gumba na vrhu kućišta, ali i putem web stranice koju unutar nje poslužuje Raspberry Pi Zero. U jednom od načina prikaza prikazat će lokalno vrijeme (s moje meteorološke stanice s pogonom na Arduinu), kao i prognozu i sve dnevne podsjetnike, konfigurirane putem web sučelja. Takođe ima zvuk zahvaljujući DAC -u i reprodukuje muziku koristeći AirPlay protokol. Zvuk alarma može biti bilo koja audio datoteka koju odaberete. Automatski će zatamniti i posvijetliti ekran u određeno doba dana (npr. U zoru i sumrak).

Korak 1: Pozadina

Prošle godine sam tražio novi Arduino projekt, upravo sam završio svoj prvi, kućnu meteorološku stanicu. Moj jedanaestogodišnji sin je upravo prvi put gledao filmove Povratak u budućnost pa sam pomislio da bi bilo zabavno izgraditi mu budilicu koja je izgledala kao vremensko kolo u Deloreanu za njegov rođendan. Ovo nije nova ideja, postoji dosta sličnih projekata (na primjer ovaj), pa sam mislio da bi to bio lijep projekt naučiti od drugih i steći neke nove vještine.

Prva verzija je radila prilično dobro (nije bila spremna za njegov rođendan: završila sam to do Božića), ali sam postala prilično ambiciozna u onome što sam htjela da uradim i otkrila sam da moja skica neprestano nailazi na ograničenje memorije Arduina. Imao sam i nekoliko malih vanjskih hardverskih modula (WiFi, MP3 player, audio pojačalo, RTC itd.), Pa je sve postalo pomalo nezgrapno. Na kraju sam odlučio prijeći na Raspberry Pi platformu koja je pojednostavila hardver i omogućila mi da unesem puno više funkcionalnosti i mogućnosti.

Korak 2: Glavne hardverske komponente

Unutar kutije

Evo elektroničkih komponenti koje sam koristio. Većina njih bili su izvori iz Core Electronics -a u Australiji, ali su naravno dostupni i drugdje:

  • 4 x četvero -alfanumerički ekran -žuto -zelen
  • Raspberry Pi Zero W
  • Pimoroni pHAT DAC za Raspberry Pi Zero
  • Audio pojačalo (PAM8403 IC)
  • Napajanje Raspberry Pi 3+
  • 4 x kratkospojna žica - 0,1 ", 5 -pinski, 12"
  • 40 -polni (2 x 20) trakasti kabel
  • Raspberry Pi GPIO muško zaglavlje
  • Raspberry Pi model B - GPIO zakrivljeno zaglavlje (2X20)
  • Zaglavlje za slaganje GPIO za Pi A+/B+/PI 2/PI 3 - izuzetno dugačko 2X20
  • 4 x 5 pin muško zaglavlje
  • 2 mala 3W zvučnika
  • 2 x koaksijalni kabeli za analogno audio povezivanje DAC -a s pojačalom
  • Veraboard ili prilagođena PCB ploča za rukovanje Rpi pojačalom, LED diodama, tipkama
  • 5 x kratkih prekidača na dugme
  • 4 x 2-smjerne vijčane stezaljke koje se mogu montirati na PCB

Kutije

  • Komadići MDF -a, vijci i vijci za izradu "šasije"
  • Zeleni tonirani perspeks, lokalni dobavljač
  • Stiren, ljepilo za modeliranje, boja u spreju (boja aluminija) iz lokalne hobi trgovine
  • Naljepnice (datoteka dostupna na zahtjev - štampa Redbubble)

Korak 3: Sastavite sve zajedno

Spajajući sve zajedno
Spajajući sve zajedno

LED displej za sat sastoji se od alfanumeričkih ekrana od 16 x 14 segmenata, na sreću isti broj znakova kao vremenski krug Povratak u budućnost. Iako samo prva tri znaka moraju biti alfanumerička, a ostali mogu biti 7-segmentni numerički ekrani za emulaciju rekvizita filma, odlučio sam da ih sve napravim alfanumeričkim kako bi se omogućila određena fleksibilnost u onome što se može prikazati i kako bi svi izgledali isto. Četvero ruksaci Adafruit ovdje su odlično rješenje i mogu se koristiti na Raspberry Pi I2C magistrali. Više informacija o ovim jedinicama i kako ih povezati možete pronaći ovdje na web stranici Adafruit. Jedino pomalo nestandardno što sam trebao učiniti je promijeniti tri od njih tako da je svaki ruksak jedinstven.

Za reprodukciju zvuka (stereo) uključio sam Pimoroni pHAT DAC i 2 x 3W stereo audio pojačalo zasnovano na čipu PAM8403. PHAT DAC je zaista jednostavno spojiti na Pi. Stavio sam 2 x 20 pinsko muško zaglavlje na Pi i GPIO zaglavlje za slaganje na DAC tako da se mogu spojiti jedan na drugi. Muški pinovi zaglavlja prolaze kroz vrh DAC-a, omogućujući mi da vodim vrpčani kabel sa ženskim konektorima, u početku do Raspberry Pi proboja za testiranje matične ploče, ali na kraju do zakrivljenog zaglavlja na PCB-u po mjeri.

Za audio pojačalo postoji mnogo mogućnosti (uključujući samo nabavku čipa i sastavljanje vlastitog). Ovaj ima mogućnost utišavanja izlaza samo promjenom stanja jednog od pinova (visoko je uključeno, nisko je isključeno), a ja sam ga povezao tako da se to može kontrolirati s Pi -a. U svojim prvim pokušajima da ovo povežem, otkrio sam dosta pozadinske buke kada je zvuk bio uključen. Nakon puno igranja sa uzemljenjem, na kraju sam pokušao premjestiti ulazni napon napajanja sa Pi -ovih 5V na 3.3V i to ga je popravilo. Pretpostavljam da postoji dosta buke koju stvaraju različiti digitalni signali koji lete okolo, ali čini se da je napajanje od 3,3 V nekako izolirano.

Ostale veze uključuju analogni zvuk iz DAC -a na pojačalo (ovdje sam koristio koaksijalni kabel za pomoć pri preuzimanju šuma) i izlaz zvuka na par malih 3W zvučnika koji stanu u kućište. Tu su i GPIO veze za četiri trenutna prekidača na vrhu kutije, a ja sam ožičio kratko dugme na pinove "RUN" za hard reset (pogledajte odjeljak Dodatne veze na ovoj stranici). Dugme za poništavanje postavljeno je izvan vidokruga na stražnjoj strani kućišta. Evo dijagrama koji prikazuje veze:

Korak 4: Prilagođena PCB

Prilagođena PCB
Prilagođena PCB

Iako nema ništa previše komplicirano u vezi sa krugom, postoji prilično malo ožičenja, a ploča može vrlo brzo izgledati kao špageti. Zato sam dizajnirao PCB kako bi sve držao pod kontrolom. To je jednostrana ploča za domaće kuhanje i dobio sam prijatelja da mi pomogne u izradi. Nakon što je napravljen i ožičen, shvatio sam da sam zaboravio uključiti priključke za terminalne blokove za zvuk, a kasnije sam promijenio promjenu napajanja audio pojačala sa 5V na 3.3V, tako da nije idealno i morao sam se uključiti neki Veroboard koji dopušta audio veze. Također, spojevi na ploči audio pojačala nalaze se na nestandardnoj razdvojenosti (čak se razlikuju i između pinova) pa je veza s glavnom PCB-om pomalo užasna s 11 kratkih žica za povezivanje ~ 1 cm.

Da sam napravio drugu ploču, uključio bih sve ove izmjene i također promijenio konektor za četiri gumba u nešto malo ljepše. DAC i Pi bi se slagali na vrhu, tako da nije potreban vrpčni kabel. Gornji dijagram prikazuje kako bi to moglo izgledati.

Korak 5: Ograđivanje

The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure
The Enclosure

Htio sam napraviti kućište koje je izgledalo kao jedan red vremenskog kruga filma. Tri reda LED ekrana bili bi previše za budilicu i značajno bi povećali troškove. Razmišljao sam o tome da napravim kućište od aluminija, ali nemam nikakve vještine u tom području. U životu sam napravio dosta plastičnih modela i imam iskustva u obradi drveta, pa sam odlučio napraviti okvir od MDF-a za postavljanje LED dioda i zvučnika i fiksirati perspeks na prednju stranu, a zatim to prekriti petostranom stirolom kutija sa okvirom na prednjoj strani, obojena metalnom bojom u boji metala. Plastika i boja su nabavljene u lokalnoj prodavaonici modela. Pomno sam pogledao naljepnice na rekvizitu za film i dao sve od sebe da kopiram boje, vrstu fonta i veličinu. Koristio sam Photoshop za izradu naljepnica i odštampao ih kao naljepnice iz Redbubble -a.

Slike iznad pokazuju:

  1. Prednji dio šasije od MDF -a. Četiri LED ruksaka montirana su sprijeda sa zeleno obojenim perspeksom
  2. Unutar kutije. Ruksaci svi montirani i postavljeni, Raspberry Pi i prilagođena PCB unutra, zvučnici sa obje strane.
  3. Instalirano ožičenje i vanjski omotač spreman za rad. Malo sam stisnuo!

Korak 6: Postavljanje Raspberry Pi

Imao sam nekih problema s kompatibilnošću s Raspbian Stretch -om (što bi se moglo riješiti da sam ustrajao), ali Jessie s njim odlično radi, pa sam odlučio nastaviti s tim.

Postavio sam Pi kao jedinicu bez glave sa VNC i SSH pristupom. To se moglo učiniti bez ikakvog uključivanja tastature ili monitora, ali samo sam posudio televizor i izbacio tastaturu, i brzo sam bez problema. Od tada nadalje, prilično sam koristio VNC od tada nadalje.

Moj kôd sata koristi Python 2.7.9 i oslanja se na dosta biblioteka, dolje navedenih. Osim toga, pokrećem i Flask web server i MQTT za daljinsko upravljanje i Shairplay za streaming glazbe. Samo sam slijedio upute za instalaciju na mreži za sve ovo i nisam imao nikakvih problema. Evo python biblioteka i drugih paketa itd. Koje sam trebao instalirati s vezama do napomena o instalaciji ili samo naredbom koju trebate pokrenuti da biste je dobili:

Python biblioteke

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

Ostali paketi itd

  • komarac (apt-get install komarac)
  • shairport
  • Pimoronijeva web stranica ima dobru dokumentaciju o postavljanju DAC -a, pa sam se time pozabavio.

Korak 7: Softver

Image
Image
Softver
Softver

Kôd sata je napisan na Pythonu i koristi nit za reprodukciju alarma i povremene zvučne signale u pozadini bez blokiranja ažuriranja ekrana. Koristio sam biblioteku ConfigParser i konfiguraciona datoteka koju održava čita i piše pomoću koda sata, kao i web aplikacije Flask, tako da se sinhronizuje kad god se konfiguracija promijeni putem web sučelja ili sata. Softver za sat također uključuje posrednika MQTT koji omogućava daljinsku kontrolu načina prikaza i isključivanja zvuka. Moj skriveni motiv je na kraju napisati iOS aplikaciju za daljinski upravljač, ali web sučelje za sada radi dovoljno dobro.

Prva gornja slika prikazuje kako sat izgleda u različitim načinima prikaza, a tu je i kratki video zapis koji ga prikazuje u načinu pomicanja.

Iako kod nije lijep za pogledati, lijep je i stabilan. Rado ću ga poslati svima koji to zatraže i staviti ga na mrežu kad bude bolje organiziran i komentiran.

Web aplikacija

Sljedeća slika prikazuje kako izgleda web sučelje sata. Postoje i stranice za konfiguriranje i kontrolu, koje znatno olakšavaju igru sa satom bez puno gnječenja tipki:-).

Korak 8: Šta je sljedeće?

Šta dalje?
Šta dalje?

Dostupan je dekoder metapodataka Python shareport pa mislim da ću dodati neki kôd za prikaz informacija poput naslova i izvođača kada se pušta muzika. Također bi bilo prilično lako izračunati vrijeme izlaska i zalaska sunca tako da se zaslon može automatski posvijetliti i zatamniti, umjesto da ga ručno postavljate. Možda bi i dodavanje funkcije internetskog radija bilo zabavno. Ekran za pomicanje također bi se mogao više konfigurirati.

Preporučuje se: