Përmbajtje:

Ora e kthimit në të ardhmen: 8 hapa (me fotografi)
Ora e kthimit në të ardhmen: 8 hapa (me fotografi)

Video: Ora e kthimit në të ardhmen: 8 hapa (me fotografi)

Video: Ora e kthimit në të ardhmen: 8 hapa (me fotografi)
Video: Omegle but Polyglot MELTS Hearts of Strangers in Their Native Language! 2024, Nëntor
Anonim
Një orë mbrapa në të ardhmen
Një orë mbrapa në të ardhmen

Ky projekt filloi jetën si një orë alarmi për djalin tim. Unë e bëra atë të dukej si qarku kohor nga Kthimi në të Ardhmen. Ekrani mund të tregojë kohën në formate të ndryshme, duke përfshirë atë nga filmat natyrisht. It'sshtë e konfigurueshme përmes butonave në pjesën e sipërme të rrethimit, por edhe përmes një uebfaqeje të shërbyer nga Raspberry Pi Zero brenda. Në njërën nga mënyrat e shfaqjes do të tregojë motin lokal (nga stacioni im i motit me Arduino) si dhe parashikimin dhe çdo kujtesë ditore, të konfiguruar përmes ndërfaqes në internet. Ai gjithashtu ka audio falë një DAC dhe do të transmetojë muzikë duke përdorur protokollin AirPlay. Tingulli i alarmit mund të jetë çdo skedar audio që zgjidhni. Do të zbehë dhe ndriçojë ekranin automatikisht në periudhat e caktuara të ditës (p.sh. agimi dhe muzgu).

Hapi 1: Sfondi

Vitin e kaluar po kërkoja një projekt të ri Arduino pasi sapo përfundova projektin tim të parë, një stacion moti në shtëpi. Djali im 11-vjeçar sapo kishte parë filmat Kthimi në të Ardhmen për herë të parë, kështu që mendova se do të ishte kënaqësi t’i ndërtoja atij një orë me zile që dukej si qarku i kohës në Delorean për ditëlindjen e tij. Kjo nuk është një ide e re, ka mjaft projekte të ngjashme atje (ky për shembull), kështu që mendova se do të ishte një projekt i bukur për të mësuar nga të tjerët dhe për të marrë disa aftësi të reja.

Versioni i parë funksionoi mjaft mirë (nuk ishte gati për ditëlindjen e tij: e bëra deri në Krishtlindje) por u bëra mjaft ambicioz në atë që doja të bënte dhe zbulova se skica ime vazhdonte të vinte drejt kufirit të kujtesës së Arduino. Unë gjithashtu kisha disa module të vogla të jashtme harduerike (WiFi, MP3 player, përforcues audio, RTC etj), kështu që gjithçka po bëhej pak e rëndë. Në fund, vendosa të kaloj në një platformë Raspberry Pi e cila thjeshtoi harduerin dhe më lejoi të paketoja shumë më tepër funksionalitete dhe veçori.

Hapi 2: Përbërësit kryesorë të harduerit

Brenda Kutisë

Këtu janë përbërësit elektronikë që kam përdorur. Shumica e tyre ishin burime nga Core Electronics në Australi, por natyrisht ato janë lehtësisht të disponueshme edhe diku tjetër:

  • 4 x Shfaqje Katër Alfanumerike -Verdhë -Gjelbër
  • Raspberry Pi Zero W
  • Pimoroni pHAT DAC për Raspberry Pi Zero
  • Audio Amp (IC PAM8403)
  • Furnizimi me energji Raspberry Pi 3+
  • 4 x tela bluzë - 0.1 ", 5 -pin, 12"
  • Kabllo fjongo 40 pin (2 x 20)
  • Koka e meshkujve Raspberry Pi GPIO
  • Raspberry Pi Model B - Koka e mbuluar me GPIO (2X20)
  • Koka e grumbullimit GPIO për Pi A+/B+/PI 2/PI 3 - 2X20 ekstra e gjatë
  • Koka mashkullore 4 x 5 pin
  • 2 altoparlantë të vegjël 3W
  • 2 x kabllo koaksial për lidhjen analoge audio DAC me Amp
  • Veraboard ose PCB e personalizuar për të trajtuar Rpi në një buton amplifikues, LED
  • 5 x ndërprerës të çastit të butonit
  • Blloqe terminale me vidë 4 x me 2 drejtime të montueshme në PCB

Kutia

  • Pjesë dhe pjesë të MDF, vida dhe bulona për të bërë 'shasinë'
  • Perspeks me ngjyrë të gjelbër, furnizues lokal
  • Stiren, ngjitës modelimi, bojë llak (ngjyrë alumini) nga një dyqan hobi lokal
  • Ngjitëset (skedari i disponueshëm sipas kërkesës - shtypur nga Redbubble)

Hapi 3: Vendosja e të gjitha së bashku

Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku

Ekrani LED për orën përbëhet nga ekrane alfanumerike me segment 16x14, për fat të njëjtin numër karakteresh si qarku kohor Kthimi në të Ardhmen. Ndërsa vetëm tre personazhet e parë duhet të jenë alfanumerike dhe pjesa tjetër mund të jenë shfaqje numerike me 7 segmente për të imituar mbështetësin e filmit, unë vendosa t'i bëj të gjithë alfanumerikë për të lejuar një fleksibilitet në atë që mund të shfaqet dhe për t'i mbajtur të gjithë në pamje njësoj. Katër çantat Adafruit janë një zgjidhje e shkëlqyer këtu dhe mund të funksionojnë në autobusin Raspberry Pi's I2C. Më shumë informacion mbi këto njësi dhe si t'i lidhni ato mund të gjenden këtu në faqen e internetit të Adafruit. E vetmja gjë paksa jo standarde që duhej të bëja ishte të ndryshoja adresat e tre prej tyre kështu që çdo çantë shpine ishte unike.

Për të luajtur audio (në stereo), përfshiva Pimoroni pHAT DAC dhe një përforcues stereo audio 2 x 3W bazuar në çipin PAM8403. PHAT DAC është vërtet e lehtë për t'u lidhur me Pi. Vendosa një kokë mashkullore 2 x 20 pin në Pi dhe një kokë GPIO të grumbulluar në DAC, në mënyrë që ato të lidheshin së bashku mbi tjetrën. Kunjat e kokës mashkullore kalojnë në majë të DAC, duke më lejuar të drejtoj një kabllo fjongo me lidhje femra, fillimisht në një dalje Raspberry Pi për testimin e bukës, por përfundimisht në një kokë të mbuluar në një PCB të bërë me porosi.

Për amplifikatorin audio, ka shumë mundësi (duke përfshirë marrjen e çipit dhe montimin tuaj). Ky ka opsionin e zhurmës së prodhimit vetëm duke ndryshuar gjendjen e njërës prej kunjave (e lartë është e ndezur, e ulët është e fikur) dhe unë e lidhja atë në mënyrë që kjo të mund të kontrollohej nga Pi. Në përpjekjet e mia fillestare për ta lidhur këtë, zbulova mjaft zhurmë në sfond kur audio ishte ndezur. Pas shumë lojërave me tokëzimin, përfundimisht u përpoqa të lëvizja tensionin e furnizimit nga 5V e Pi në 3.3V dhe kjo e rregulloi atë. Unë mendoj se ka shumë zhurmë të krijuar nga sinjalet e ndryshme dixhitale që fluturojnë përreth, por duket se furnizimi me 3.3V është disi i izoluar.

Lidhjet e tjera përfshijnë audio analoge nga DAC në amplifikator (kam përdorur kabllo koaksial këtu për të ndihmuar në menaxhimin e marrjes së zhurmës) dhe daljen e audios në një palë altoparlantësh të vegjël 3W që përshtaten në rrethim. Ekzistojnë gjithashtu lidhje GPIO për katër çelsin e çastit në krye të kutisë dhe unë vendosa një buton të çastit në kunjat e rivendosjes së fortë "RUN" (shiko seksionin Lidhjet shtesë në këtë faqe). Butoni i rivendosjes është montuar jashtë shikimit në pjesën e pasme të rrethimit. Këtu është një diagram që tregon lidhjet:

Hapi 4: Një PCB e personalizuar

Një PCB e personalizuar
Një PCB e personalizuar

Ndërsa nuk ka asgjë shumë të komplikuar në qark, ka mjaft instalime elektrike dhe një dërrasë buke mund të duket si spageti shumë shpejt. Kështu që unë projektova një PCB për t'i mbajtur të gjitha nën kontroll. Boardshtë një dërrasë e njëanshme e përgatitur në shtëpi dhe kam një mik për të ndihmuar në bërjen e saj. Pasi u bë dhe u lidh, kuptova se harrova të përfshija lidhjet për blloqet e terminalit për audion dhe më vonë bëra një ndryshim për të zhvendosur furnizimin me amplifikator audio nga 5V në 3.3V, kështu që nuk është ideale dhe më duhej të lidhesha disa Veroboard për të lejuar lidhjet audio. Gjithashtu, pinoutet e bordit të amplifikatorit audio janë në një ndarje jo standarde (ato madje ndryshojnë midis kunjave) kështu që lidhja për këtë me PCB-në kryesore është pak e tmerrshme me 11 tela të shkurtër lidhës ~ 1cm.

Nëse do të bëja një tabelë tjetër, do t'i përfshija të gjitha këto modifikime dhe gjithashtu do të ndryshoja lidhësin për katër butonat në diçka pak më të bukur. DAC dhe Pi do të vendoseshin pikërisht në majë, kështu që nuk nevojitet kabllo fjongo. Diagrami i mësipërm tregon se si mund të duket.

Hapi 5: Mbyllja

Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi
Rrethimi

Doja të bëja një rrethim që dukej si një rresht i qarkut kohor të filmit. Tre rreshta të ekraneve LED do të ishin shumë për një orë me zile dhe do t'i kishin shtuar ndjeshëm kostos. Mendova të bëja rrethimin nga alumini, por nuk kam ndonjë aftësi në atë fushë. Unë kam bërë mjaft modele plastike në jetën time, dhe kam një përvojë në përpunimin e drurit, kështu që vendosa të bëj një kornizë duke përdorur MDF për të montuar LED dhe altoparlantët dhe për të rregulluar perspeksin në pjesën e përparme, pastaj mbulojeni atë me një stiren 5-anësh kuti me një kornizë në pjesën e përparme, të lyer me një bojë llak metalike alumini. Plastika dhe bojë janë marrë nga një dyqan lokal modelesh. Hodha një vështrim të afërt në etiketat në pjesën e filmit dhe bëra çmos për të kopjuar ngjyrat, llojin dhe madhësinë e shkronjave. Kam përdorur Photoshop për të ndërtuar etiketat dhe i kam shtypur si afishe nga Redbubble.

Imazhet e mësipërme tregojnë:

  1. Pjesa e përparme e shasisë MDF. 4 çantat e shpinës LED janë montuar në pjesën e përparme me perspeks me ngjyrë të gjelbër
  2. Brenda kutisë. Çanta shpine të gjitha të montuara dhe të rreshtuara, Raspberry Pi dhe PCB të personalizuar, altoparlantë në të dyja anët.
  3. Instalimet e instaluara dhe guaska e jashtme gati për të vazhduar. Ishte pak shtrëngim!

Hapi 6: Vendosja e Raspberry Pi

Unë kisha disa çështje të pajtueshmërisë me Raspbian Stretch (të cilat mund të ishin të zgjidhshme nëse do të vazhdoja), por Jessie punon me të mirë, kështu që vendosa të vazhdoj me këtë.

Unë e vendosa Pi si një njësi pa kokë me qasje VNC dhe SSH. Kjo mund të ishte bërë pa e lidhur kurrë tastierën ose monitorin, por unë huazova televizorin dhe fshiva një tastierë, dhe e bëra atë pa kokë shumë shpejt. Që atëherë, kam përdorur shumë VNC që atëherë e tutje.

Kodi im i orës përdor Python 2.7.9 dhe mbështetet në mjaft biblioteka, të listuara më poshtë. Përveç kësaj, unë jam duke drejtuar një web server Flask dhe MQTT për telekomandë dhe Shairplay për transmetimin e muzikës. Unë thjesht ndoqa shënimet e instalimit on-line për të gjitha këto dhe nuk kisha probleme fare. Këtu janë bibliotekat python dhe paketat e tjera, etj. Që më duheshin për të instaluar me lidhje me shënimet e instalimit ose thjesht komandën që ju nevojitet për të ekzekutuar për ta marrë atë:

Bibliotekat Python

  • Adafruit_LED_Backpack
  • Rpi. GPIO (apt-get install python-rpi.gpio)
  • alsaaudio
  • paho.mqtt.client (instaloni pip paho-mqtt)
  • balonë (apt-get install python-flask)

Paketa të tjera etj

  • mushkonja (apt-get install mushkonja)
  • sheirport
  • Faqja e internetit në Pimoroni ka një dokumentacion të mirë për ngritjen e DAC, kështu që unë thjesht vrapova me të.

Hapi 7: Softueri

Image
Image
Softuer
Softuer

Kodi i orës është shkruar në Python dhe përdor filetimin për të luajtur alarmin dhe bie herë pas here në sfond pa bllokuar përditësimet e ekranit. Kam përdorur bibliotekën ConfigParser dhe skedari i konfigurimit që ruan lexohet dhe shkruhet me kodin e orës, si dhe aplikacionin në internet Flask, në mënyrë që sa herë që konfigurimi të ndryshojë përmes ndërfaqes në internet ose orës, të sinkronizohet. Softueri i orës gjithashtu përfshin një ndërmjetës MQTT për të lejuar kontrollin e modalitetit të shfaqjes dhe zhurmën të kontrollohen nga distanca. Motivi im i fshehtë është përfundimisht të shkruaj një aplikacion iOS për telekomandën, por ndërfaqja në internet funksionon mjaft mirë tani për tani.

Imazhi i parë më sipër tregon se si duket ora në mënyrat e ndryshme të shfaqjes, dhe ka një video të shkurtër që e tregon atë në modalitetin e rrotullimit.

Ndërsa kodi nuk është i bukur për tu parë është i bukur dhe i qëndrueshëm. Jam i lumtur t'ia dërgoj kujtdo që e kërkon dhe do ta vendosë në internet kur të organizohet dhe komentohet më mirë.

Aplikacioni në internet

Imazhi tjetër tregon se si duket ndërfaqja në internet me orën. Ekzistojnë gjithashtu faqe konfigurimi dhe kontrolli dhe këto e bëjnë shumë më të lehtë të luash me orën pa shumë përzierje të butonave:-).

Hapi 8: Çfarë tjetër?

Cfare tjeter?
Cfare tjeter?

Ekziston një deshifrues i meta të dhënave të aksioneve Python në dispozicion, kështu që unë mendoj se do të shtoj një kod për të shfaqur informacione si titulli dhe artisti kur muzika po luhet. Gjithashtu do të ishte mjaft e lehtë për të llogaritur kohën e lindjes dhe perëndimit të diellit në mënyrë që ekrani të ndriçohet dhe zbehet automatikisht, në vend që ta vendosni manualisht. Ndoshta shtimi i një veçorie të radios në internet do të ishte gjithashtu argëtuese. Ekrani i rrotullimit gjithashtu mund të jetë më i konfigurueshëm.

Recommended: