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: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Studeni
Anonim
Sat Povratak u budućnost
Sat Povratak u budućnost

Ovaj projekt započeo je ž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 poslužuje Raspberry Pi Zero iznutra. U jednom od načina prikaza prikazat će lokalno vrijeme (s moje meteorološke postaje s pogonom na Arduinu), kao i prognozu i sve dnevne podsjetnike, konfigurirane putem web sučelja. Također ima zvuk zahvaljujući DAC -u i emitirat će glazbu koristeći AirPlay protokol. Zvuk alarma može biti bilo koja audio datoteka koju odaberete. Automatski će zatamniti i osvijetliti zaslon u određeno doba dana (npr. U zoru i sumrak).

Korak 1: Pozadina

Prošle godine tražio sam novi Arduino projekt, upravo sam završio svoj prvi, kućnu meteorološku stanicu. Moj 11-godišnji sin je upravo prvi put gledao filmove Povratak u budućnost pa sam pomislila da bi mu bilo zabavno izgraditi budilicu koja je izgledala kao vremenski krug 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: odradio sam to do Božića), ali sam postala prilično ambiciozna u onome što sam htjela učiniti 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 značajki.

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 zaslon -žuto -zelen
  • Malina 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 dugo 2X20
  • 4 x 5 pinsko muško zaglavlje
  • 2 mala 3W zvučnika
  • 2 x koaksijalni kabeli za analogno audio spajanje DAC -a na pojačalo
  • Veraboard ili prilagođena PCB za rukovanje Rpi na pojačalo, LED, tipke
  • 5 x kratkih prekidača s tipkama
  • 4 x 2-smjerne vijčane stezaljke koje se mogu montirati na PCB

Kutija

  • 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 - otisnuo Redbubble)

Korak 3: Sve spojite

Spajajući sve zajedno
Spajajući sve zajedno

LED zaslon za sat sastoji se od alfanumeričkih zaslona 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 bi mogli biti 7-segmentni numerički zasloni za oponašanje rekvizita filma, odlučio sam ih sve učiniti alfanumeričkim kako bi se omogućila određena fleksibilnost u onome što bi se moglo prikazati i kako bi svi izgledali isti. Četvero ruksaci Adafruit ovdje su odlično rješenje i mogu se koristiti na Raspberry Pi-jevom I2C autobusu. Više informacija o tim jedinicama i kako ih povezati možete pronaći ovdje na web stranici Adafruit. Jedino pomalo nestandardno što sam morao učiniti je promijeniti tri od njih tako da je svaki ruksak jedinstven.

Za reprodukciju zvuka (u stereo) uključio sam Pimoroni pHAT DAC i stereo audio pojačalo od 2 x 3 W 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. Pinovi muškog zaglavlja prolaze kroz vrh DAC-a, omogućujući mi da provedem vrpčani kabel sa ženskim konektorima, isprva 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 početnim pokušajima da to povežem, otkrio sam dosta pozadinske buke kada je zvuk bio uključen. Nakon puno igranja s uzemljenjem, na kraju sam pokušao premjestiti ulazni napon napajanja s Pi -ovih 5V na 3.3V i to ga je popravilo. Pretpostavljam da postoji dosta buke koju stvaraju različiti digitalni signali koji lete uokolo, 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. Postoje i GPIO priključci za četiri trenutna prekidača na vrhu kutije, a ja sam ožičio trenutačni gumb na pinove "RUN" za resetiranje (pogledajte odjeljak Dodatne veze na ovoj stranici). Gumb za resetiranje montiran 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 prilično brzo izgledati kao špageti. Stoga sam dizajnirao PCB kako bi sve držao pod kontrolom. To je jednostrana ploča za domaće kuhanje i dobio sam prijatelja koji će mi pomoći u izradi. Nakon što je napravljen i ožičen, shvatio sam da sam zaboravio uključiti priključke za priključne blokove za zvuk, a kasnije sam promijenio promjenu napajanja audio pojačala s 5 V na 3,3 V, 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 složili bi se točno na vrh, tako da nije potreban vrpčni kabel. Gornji dijagram prikazuje kako bi to moglo izgledati.

Korak 5: Ograđivanje

Kućište
Kućište
Kućište
Kućište
Kućište
Kućište

Htio sam napraviti kućište koje je izgledalo kao jedan red vremenskog kruga filma. Tri reda LED zaslona 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 nikakvih vještina u tom području. U životu sam ipak 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 s okvirom na prednjoj strani, obojena metalnom bojom u boji metala. Plastika i boja nabavljeni su u lokalnoj trgovini 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 ispisao ih kao naljepnice iz Redbubblea.

Gornje slike prikazuju:

  1. Prednji dio šasije od MDF -a. 4 LED ruksaka montirana su sprijeda sa zeleno obojenim staklom
  2. Unutar kutije. Ruksaci montirani i postavljeni, Raspberry Pi i prilagođena PCB, zvučnici s obje strane.
  3. Instalirano ožičenje i vanjska ljuska spremna za nastavak. Bilo je malo stisnuti!

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 se s tim odlično slaže, pa sam odlučio nastaviti s tim.

Postavio sam Pi kao jedinicu bez glave s VNC i SSH pristupom. To se moglo učiniti bez ikakvog priključivanja tipkovnice ili monitora, ali samo sam posudio televizor i izbacio tipkovnicu, i brzo sam uspio. Od tada sam od tada prilično koristio VNC.

Moj kôd sata koristi Python 2.7.9 i oslanja se na dosta biblioteka, dolje navedenih. Osim toga, pokrećem web poslužitelj Flask i MQTT za daljinsko upravljanje i Shairplay za streaming glazbe. Samo sam slijedio upute za instalaciju na mreži za sve to i nisam imao nikakvih problema. Ovdje su knjižnice python i drugi paketi itd. Koje sam trebao instalirati s vezama na bilješke o instalaciji ili samo naredbom koju trebate pokrenuti da biste je dobili:

Python knjižnice

  • 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
  • Pimoronijevo web mjesto ima dobru dokumentaciju o postavljanju DAC -a, pa sam upravo to i pročitao.

Korak 7: Softver

Image
Image
Softver
Softver

Kôd sata napisan je na Pythonu i koristi nit za reprodukciju alarma i povremene zvukove u pozadini bez blokiranja ažuriranja zaslona. Koristio sam biblioteku ConfigParser i konfiguracijska datoteka koju održava čita i piše pomoću sata, kao i web aplikacije Flask, tako da se sinkronizira kad god se konfiguracija promijeni putem web sučelja ili sata. Softver za sat također uključuje posrednika MQTT koji omogućuje 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 kôd 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. Tu su i stranice za konfiguriranje i kontrolu, koje znatno olakšavaju igru sa satom bez puno gnječenja gumba:-).

Korak 8: Što je sljedeće?

Što dalje?
Što dalje?

Dostupan je dekoder metapodataka Python shareport pa mislim da ću dodati neki kôd za prikaz informacija poput naslova i izvođača tijekom reprodukcije glazbe. 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 značajke internetskog radija bilo zabavno. Pomakni zaslon također bi se mogao više konfigurirati.

Preporučeni: