Cuprins:

Proiect Oasis: Voice Terrarium: 9 Pași (cu imagini)
Proiect Oasis: Voice Terrarium: 9 Pași (cu imagini)

Video: Proiect Oasis: Voice Terrarium: 9 Pași (cu imagini)

Video: Proiect Oasis: Voice Terrarium: 9 Pași (cu imagini)
Video: Presidents Fail A Group Project 📚📋 2024, Iulie
Anonim

Project Oasis este un terariu vocal cu care poți vorbi. Este un ecosistem închis autosuficient, care imită vremea de afară, dar în interiorul unei cutii. Puteți întreba terariul despre „Vremea din Seattle” ca răspuns la care ar putea începe să se revarsă în cutie. Terariul poate genera, de asemenea, nori, ceață sau poate schimba iluminatul pentru a reprezenta alte condiții meteorologice.

Pasul 1: Motivație

Mediul conversației noastre cu natura este atât de vizual și multimodal, spre deosebire de ceea ce facem cu tehnologia de astăzi. Vremea de pe telefoane sau computere nu invocă aceleași simțuri ca a vedea sau simți literalmente vremea. M-am gândit la asta în timpul petrecut la Google Creative Lab și am creat Project Oasis.

Este un terariu cu care poți vorbi cu el folosind Asistentul Google. Îi puteți cere să creeze anumite condiții sau să vă arate vremea într-un anumit loc. Acest experiment extinde conversația noastră cu tehnologia și lumea naturală. Trăim între natură și tehnologie și în mod tradițional le privim ca pe două lumi foarte diferite. Oasis este o conversație ecologică, dar într-un mod natural; nici programat, nici haotic. Urmează pașii pentru a crea unul dintre propriile terarii active.

Pasul 2: Mecanism general

Terariul menționat creează condiții de ploaie, ceață și lumină. Partea superioară a terariului are LED-uri, o tavă de ploaie plus o mică incintă cu rezonatoare ceramice în contact cu apa. Aceste discuri mici rezonează la ~ 1-1,7Mhz pentru a atomiza apa la ceea ce pare a fi ceață.

Fundul terariului găzduiește două pompe peristaltice și alte electronice. Un rezervor din partea de jos a terariului reține excesul de apă. Apa este reciclată / fitlerată și este pompată până la tava de ploaie folosind una dintre pompele peristaltice silențioase.

Pasul 3: Proiectarea incintei

Image
Image

Link către CAD

Lista instrumentelor / materialelor:

  1. Foi acrilice / plexiglas grosime 0,25 "(24" x 18 "- Cantitate: 4)
  2. Lipici acrilic
  3. Set de burghiu cu 1/4 "și biți inferiori gradați
  4. Bandă de măsurare + etriere
  5. Adeziv epoxidic (~ 15min timp drăguț)
  6. Etanșant GE pentru impermeabilizare
  7. Tuburi din PVC transparent 1/4 "OD + Conectori cu bară

Orientările de proiectare pentru acest terariu sunt flexibile și nu reguli dure și rapide. Am ales să construiesc una pe care să o țin pe birou sau una care să arate frumos pe un blat. În plus, am avut o idee generală despre spațiul pe care l-ar ocupa electronica, instalațiile și rezervorul de apă. Am decis ca întreaga incintă să fie H: 15 "W: 6" L: 10"

Dimensiunile CAD din figura de mai sus arată separarea generală; în general, componentele electronice superioare și inferioare ocupă fiecare 4 "înălțime. Rezervorul ocupă 4" L în partea inferioară, lăsând 6 "L pentru electronică (mai multe despre electronică mai târziu).

Am decis să folosesc acrilic / plexiglas pentru această versiune de terariu, deoarece este ușor disponibil, foarte ușor de prelucrat pe laser, iar piesele pot fi lipite / sudate împreună cu o varietate de cimenturi acrilice. Sticla sau materialele plastice transparente sunt candidați buni în funcție de cât de departe doriți să mergeți cu aspectul, mai ales dacă terariul va avea curbe. În plus, versiunile rezistente la zgârieturi ale plexiglasului sunt, de asemenea, disponibile în multe magazine, ceea ce ar putea lăsa o alegere ideală.

Am proiectat modelul 3D pentru terariul meu în Fusion 360, doar pentru că am vrut să-i dau o lovitură. Fișierele CAD pentru acest proiect sunt atașate la acest pas. Am aplatizat toate schițele pentru a obține fișiere Laser Machine și urmează procesul standard de prelucrare cu laser. Configurați laserul (Epilog în cazul meu), deschideți fișierele din Corel Draw și rulați prelucrarea.

Acum ar trebui să aveți piesele acrilice necesare pentru asamblarea carcasei. Consultați CAD și mergând de jos în sus, asamblați piesele cu ciment acrilic împreună pentru a obține o cutie, cu schele în partea de sus / jos. Utilizați etriere și covor de riglă (deoarece cutia dvs. este transparentă) ca ghid pentru un proces de asamblare mai ușor.

Pasul 4: Proiectare electronică

Proiectare electronică
Proiectare electronică
Proiectare electronică
Proiectare electronică
Proiectare electronică
Proiectare electronică

Lista componentelor / electronice:

  1. Alimentare 5V / 10A (Cantitate: 1)
  2. Convertor Boost 3V-35V (Cantitate: 2)
  3. Pompa peristaltică de dozare 12V DC (Cantitate: 1)
  4. 2200 ml / min pompă peristaltică (cantitate: 1)
  5. Icstation 20mm Ceramic Discs freq = 113KHz, cu plăci de driver (Cantitate: 2)
  6. Benzi LED RGB (Cantitate: 1)
  7. Set de sârmă de 18 AWG și 24 AWG
  8. Sârmă de țesut 1/4"
  9. Raspberry Pi 3 + Google Voice Hat (ai nevoie doar de pălăria vocală + microfon aici și nu de difuzorul în sine)
  10. Arduino Nano cu cablu Mini USB
  11. Relee SSR de tensiune-sarcină de 3-24V ~
  12. Protoboard pe jumătate

De asemenea, veți avea nevoie de o sursă de alimentare cu tensiune variabilă, un multimetru, un fier de călcat și un pistol de adeziv fierbinte în tot acest proces.

Notă: Acesta este un prototip rapid și există alternative mai bune la unele componente și conexiuni. Dacă știți ce faceți, nu ezitați să vă schimbați cu alternative viabile.

Am spart sursa de alimentare cu o singură ieșire de 5V / 10A într-o sursă de muti-ieșire, deconectând fișa și adăugând propriile mele cabluri multi-catenare pentru componente individuale.

  • Linie de 5V pentru plăcile de driver Icstation
  • Linie de 5V pentru LED-uri RGB
  • Linie 5V pentru Raspberry Pi 3
  • Linie de 12V (variabilă prin intermediul Boost Converter) pentru dozarea pompei peristaltice
  • Linie de 24 V (variabilă prin intermediul Boost Converter) pentru debit mare pompa peristaltică de ploaie

Am luat liniile individuale și le-am pus împreună într-un război de sârmă pentru un aspect ordonat. Am adăugat, de asemenea, un capac în linia de 5V pentru a preveni valurile de putere, deoarece se conectează direct la Raspberry Pi.

Conexiuni de bază:

Am conectat una dintre liniile de 5V direct la Raspberry Pi - partea din spate a plăcii la PP1 și PP6 pentru a nu folosi cablu mini USB din cauza spațiului limitat. Pi are o pălărie Google Voice așezată deasupra. Am luat un program deja existent pe care îl aveam pentru comutarea serială și l-am portat pe un Arduino Nano. Acest Nano este conectat la Pi 3 printr-un scurt cablu mini USB. Arduino Nano are conexiuni la un protoboard pentru pornirea / oprirea releelor care la rândul său alimentează / oprește pompele / producătorul de ceață.

Protoboardul are trei relee cu 5V, 12V și 24V linii de încărcare fiecare. Fiecare releu este, de asemenea, conectat la un pin separat pe Arduino (D5, D7 și D8). Consultați schema releului despre cum să conectați contactele releului pentru o acțiune de comutare. A1 / A2 vor fi liniile de la Arduino, în timp ce 13+, 14 vor fi liniile dvs. pentru a finaliza circuitul pentru încărcare. Folosesc relee pentru o bună izolare, dar le puteți înlocui și cu tranzistoare. Nu uitați să aveți o împământare comună între sarcină și Arduino pentru ca circuitul să funcționeze.

Rezonatoare ceramice

Rezonatoarele ceramice / piezo-uri vin cu o placă de control pe care o puteți verifica individual pe o sursă de alimentare variabilă. Suprafața ceramică superioară trebuie să fie în contact cu apa pentru a crea ceață. După ce ați testat plăcile driverului, conectați-le direct cu linia de alimentare de 5V, cu un releu între ele (ca mai sus). Pe măsură ce releul este pornit și circuitul este finalizat, veți vedea apa transformată în ceață.

LED-uri

LED-urile Neopixel de la Adafruit sunt controlate direct cu o linie de control către Arduino, fără a utiliza relee. Am tăiat această bandă lungă în mai multe secțiuni de ~ 15 LED-uri fiecare. Consultați această pagină despre cum să tăiați și să conectați aceste LED-uri. După crearea mai multor secțiuni de LED-uri (așa cum se vede și în imagine), am păstrat acoperirea din silicon și am adăugat adeziv fierbinte pe capete pentru a impermeabiliza totul. Am lipit secțiuni individuale pe fundul plăcii de ploaie pentru o distribuție frumoasă și uniformă a iluminatului.

Pompe peristaltice

După cum sa menționat anterior, există două pompe peristaltice în acest terariu. Peristalticul de dozare furnizează doar cantități mici de apă pentru generatorul de ceață. Rezervorul de ceață are doi rezonatori ceramici în contact cu apa, dar apa nu se termină foarte repede. Ca urmare, această pompă nu funcționează foarte des pentru a umple rezervorul de ceață cu apă. (De fapt, chiar am ajuns să-l scot din cod și doar să-l umplu manual rezervorul de ceață, uneori doar ridicând capacul superior al terariului)

Pe de altă parte, peristalticul de 24 V, 2200 ml / min este utilizat pentru ploaie și este astfel ales pentru acest volum ridicat. În timp ce 24V în sine va produce un debit prea mare pentru terariu, puteți schimba tensiunea pe convertorul Boost pentru a schimba debitul acestei pompe la o setare optimă.

Pasul 5: Asamblare și testare

Image
Image

Asamblare

Foraj

Componentele electronice (2 pompe peristaltice, RPi + Voice Hat / Microphone, Nano, Piezo Driver Boards, Relay Protoboard) rămân în partea inferioară de 6 "L a terariului. Am mers pentru asamblare de jos în sus, conform modelului 3D. două găuri (aproximativ 1/4 "fiecare) în partea din spate a secțiunilor electronice inferioare - una dintre găuri este pentru liniile de alimentare ale tuturor componentelor, în timp ce cealaltă este pentru tubularea pompelor peristaltice.

Găuriți o gaură lăsând 1/4 de la capacul superior pentru a permite pătrunderea tubului de apă de ploaie. Găsește o altă gaură mică pentru ca cablajul LED să iasă și să intre în Nano din partea de jos. Testați toate componentele electronice ultima dată înainte punându-le în interiorul cutiei.

Amplasare și impermeabilizare

Până acum, toate secțiunile acrilice ar fi trebuit blocate la locul lor de la etapa de proiectare a incintei. Așezați electronica menționată mai sus în carcasa inferioară și puneți capacul pe ea. Este important să sigilați cu atenție acest capac pentru a fi impermeabil. Capacul nu se potrivește în interiorul cutiei, astfel încât să ofere un spațiu pentru adezivul să curgă ușor și să închidă golurile. Am folosit Epoxy, l-am turnat peste părțile laterale ale capacului și l-am lăsat să ruleze pe schela făcută pentru a ține capacul. Adezivul ar trebui să ruleze și să închidă perfect golurile. Lăsați-l să stea pentru întărirea peste noapte și apoi faceți un alt strat de impermeabilizare cu sigilantul GE.

Adunarea de ploaie și ceață

Ansamblul tăvii de ploaie cu rezervorul de ceață (cu discuri ceramice în partea de jos) ar fi trebuit să se reunească în etapa de proiectare a incintei. LED-urile ar trebui să fie, de asemenea, lipite în partea inferioară a plăcii de ploaie de la pasul anterior și firele pentru rezonatoarele ceramice care ies din gaura respectivă din partea superioară / posterioară a cutiei. Puteți lăsa acest ansamblu de ploaie + ceață să stea pe schele din partea de sus a cutiei. Înainte de a închide capacul superior, introduceți tubulatura pompei prin orificiul forat anterior deasupra plăcii de ploaie în acest scop. Tăiați secțiuni mici de tuburi și utilizați conectori cu gheare pentru a crea mai multe prize pentru distribuția uniformă a apei atunci când intră în tavă. Ploaia va avea un aspect uniform în terariu. Puteți utiliza o sticlă de distribuire a apei pentru a adăuga apă în rezervorul de ceață înainte de a pune capacul pentru testare, odată ce totul este în cutie.

Testarea

Am conectat alimentarea care face ca RPi să fie online. Anterior fusese configurat pentru a mă conecta la rețeaua mea locală de wifi. Pot interoga rețeaua pentru IP-ul Pi, după care folosesc partajarea integrată a ecranului pe Mac pentru a mă conecta la Pi. Acest lucru îmi permite să testez și să rulez lucrurile de la distanță și să nu trebuiască să conectez un cablu HDMI în cutie. Folosesc programele mele presetate (consultați Pasul software pentru programele care rulează pe Pi / Arduino pentru componente diferite) pentru a testa totul este în loc înainte de a trece la pașii următori.

Pasul 6: Proiectarea terariului (amenajare a teritoriului)

Proiectarea terariului (amenajare a teritoriului)
Proiectarea terariului (amenajare a teritoriului)

Aceasta este probabil cea mai distractivă parte a întregului proces. Ajungi să vânezi sau să cumperi plante! M-am plimbat prin centre de grădină locale, inclusiv cel din Home Depot local, magazinele de plante din apropiere și chiar m-am plimbat în cartierul meu, care are o mulțime de spații verzi. Deoarece clima este umedă, închisă și se schimbă foarte mult în interiorul terariului, încercam să găsesc plante rezistente la climatul tropical. Ați avea nevoie de următoarele articole pentru ca patul să fie pregătit pentru plantare:

  • Sol negru
  • Perlit
  • Pietriş
  • Cărbune activat

Apa se filtrează prin patul de sol până la rezervor pentru a fi reciclată ca ploaie din nou. Utilizați o plasă de sârmă fină (plasă din fibră de sticlă, de exemplu) ca bază înainte de a pune pe patul de sol. Așezați cărbunele activ ca cel mai jos strat din terariu. Acest lucru previne formarea mucegaiurilor în interiorul terariului și, de asemenea, ține sub control orice miros urât. Acoperiți acest strat cu niște pietriș, astfel încât apa să aibă un alt strat de filtrare și murdăria să nu curgă liber către rezervor. Amestecați solul negru și perlitul într-un raport 1: 1, astfel încât să aveți un mediu de creștere foarte aerisit și drenat. Acum sunteți gata pentru plantare.

Notă: Pentru a arunca toate aceste lucruri în cutie fără a atinge pereții, am făcut o formă de pâlnie cu o hârtie și am turnat material în cutie prin acea deschidere și nu l-am aruncat direct.

Am adunat bușteni mici și mușchi din trunchiurile de copaci din cartierul meu și mai multă varietate de plante tropicale mici în magazinele de plante locale. Am găsit un copac Bonsai Orange care se potrivește nevoilor mele de aspect și ceva care ar supraviețui într-un climat actual la Home Depot. Folosesc niște mușchi de foi și niște mușchi spanioli (ambii se găsesc frecvent în centrele de grădină) pentru un aspect verde natural deasupra solului din terariu.

În ceea ce privește plantarea, trec de la dimensiunea mică la cea mare. Folosesc o pensetă pentru a introduce plantele mici și așezat mușchi / bușteni doar cu mâinile, înainte de a ajunge la aspectul cu care am fost în cele din urmă mulțumit. Ar trebui să udăm o dată udarea ușoară a terariului și lăsați-l să stea o zi sau două pentru ca plantele să se aclimatizeze și să crească rădăcini în acest nou pat.

Pasul 7: Software

Aceste instrucțiuni provin în mare parte din github aici cu tot codul. Încă o să le las aici pentru finalizare. În timp ce folosesc Asistentul Google așa cum se vede în videoclip, terariul este, de asemenea, o cască Google Voice cu un microfon în terariu, ascultând comenzile. Puteți alege să utilizați pur și simplu AIR Voice Hat conform instrucțiunilor de aici.

Inainte sa incepi

DialogFlow / Acțiuni pe Google

Urmați pașii de aici pentru a crea un agent Dialogflow. Folosim o intenție de bun venit care permite utilizatorului să înceapă să vorbească cu terariul. Utilizatorul are intenții suplimentare de a întreba despre vremea la anumite locații, ore (de exemplu: „arată-mi vremea în Seattle”) sau invocă o acțiune explicită (de exemplu: „face să plouă”)

Va trebui să implementați funcțiile cloud care sunt mapate la acțiunile utilizatorului.

-> Urmați instrucțiunile de aici pentru a activa funcțiile cloud pentru firebase. -> Pașii pentru implementarea funcțiilor din CLI se află în Deploy Your Functions with the Firebase CLI on the same link as above

Cloud PubSub Configurați un proiect Cloud PubSub ca în acest link

Urmați pașii pentru a crea un subiect. Am creat un subiect numit „Vremea” în proiectul nostru, la care am adăugat abonamentele noastre. Folosim abonamente pull doar în acest proiect. Abonamentul la terariu a fost numit detaliu despre vreme

Rețineți ID-ul proiectului pentru acest proiect, deoarece va fi util să rulați clientul ascultător mai târziu.

Openweather APIGetați cheia API de la openweathermap.org. Adăugați această tastă în funcțiile cloud, astfel încât aceste funcții să poată face ping pe serverele meteo atunci când utilizatorul solicită informații specifice

Instalați NodeJS pe RPi

Cum se execută aceste module

Implementarea funcției Dialogflow Cloud

Navigați la directorul funcțiilor dvs. și executați următoarele în ordine

Instalare $ npm

$ firebase autentificare

$ firebase init

Și, în cele din urmă, executați următoarele pentru a vă implementa funcțiile:

$ firebase deploy

Link-ul funcțiilor implementate devine URL-ul webhook pentru Dialogflow. Cloud PubSub

Naivgate în directorul fișierului subscription.js & package.json și rulați npm install pentru a instala dependențele. Când sunteți gata, rulați node subscritpions.js ascult-mesaje weather-detail unde weather-detail este abonamentul pe care l-ați creat dintr-un pas anterior. Asistent Google / AIY Voice Kit implementare test

Puteți utiliza fie Google Home, fie un kit vocal AIY pentru a interacționa cu terariul. Configurarea aplicației de mai sus rămâne aceeași pentru ambele.

Urmați instrucțiunile de aici pentru a testa și implementa aplicația dvs. pe Asistentul Google. Puteți utiliza apoi un Asistent Google asociat contului dvs. vorbind cu acesta pentru a declanșa terariul și întrebându-l despre vreme.

Pasul 8: Rulați terariul

Urmarea acestei configurări pare dificilă, dar este de fapt distractivă și antrenantă în timp ce lucrați cu plantele. Dacă se face bine, în sfârșit ar trebui să puteți spune ceva de genul

„Hei Google, care este vremea în Seattle?”, „Hei Google, Make it Rain” etc. și vezi rezultatul magic în terariul tău.

Bucurați-vă de noul terariu și arătați-l prietenilor!

Pasul 9: Colaboratori / NOTĂ

  • Realizat de Harpreet Sareen și prietenii de la Google Creative Lab.
  • Acest proiect respectă liniile directoare ale comunității Google Open Source. Consultați aici pentru licență și alte linii directoare.
  • Notă: acesta nu este un produs Google acceptat oficial.

Recomandat: