Inhoudsopgave:

Project Oasis: Voice Terrarium - Ajarnpa
Project Oasis: Voice Terrarium - Ajarnpa

Video: Project Oasis: Voice Terrarium - Ajarnpa

Video: Project Oasis: Voice Terrarium - Ajarnpa
Video: Voice Experiments: Project Oasis 2024, Juli-
Anonim

Project Oasis is een Voice Terrarium waarmee je kunt praten. Het is een zelfvoorzienend gesloten ecosysteem dat het weer van buiten nabootst, maar dan in een doos. Je kunt het terrarium vragen naar 'Weer in Seattle' als antwoord waarop het in de doos kan gaan gieten. Het terrarium kan ook wolken, mist genereren of de verlichting veranderen om andere weersomstandigheden weer te geven.

Stap 1: Motivatie

Het medium van ons gesprek met de natuur is zo visueel en multimodaal, in tegenstelling tot wat we tegenwoordig met technologie doen. Het weer op telefoons of computers roept niet dezelfde zintuigen op als het letterlijk zien of voelen van het weer. Ik heb hier over nagedacht tijdens mijn tijd bij Google Creative Lab en heb Project Oasis gemaakt.

Het is een terrarium waarmee je kunt praten via de Google Assistent. Je kunt het vragen om bepaalde voorwaarden te creëren of je het weer op een specifieke plaats te laten zien. Dit experiment breidt ons gesprek met technologie en de natuurlijke wereld uit. We leven tussen natuur en technologie en beschouwen ze traditioneel als twee heel verschillende werelden. Oasis is een ecologisch gesprek maar op een natuurlijke manier; noch geprogrammeerd noch chaotisch. Hieronder volgen de stappen voor het maken van een van uw eigen actieve terraria.

Stap 2: Algemeen mechanisme

Het genoemde terrarium zorgt voor regen-, mist- en lichtomstandigheden. De bovenkant van het terrarium heeft LED's, een regenbak en een kleine behuizing met keramische resonatoren die in contact komen met water. Deze kleine schijven resoneren op ~1-1,7 Mhz om water te verstuiven tot wat lijkt op mist.

De onderkant van het terrarium herbergt twee slangenpompen en andere elektronica. Een reservoir op de bodem van het terrarium houdt overtollig water vast. Het water wordt gerecycled/gefiltreerd en met één van de stille peristaltische pompen naar de regenbak gepompt.

Stap 3: Behuizingsontwerp

Image
Image

Link naar CAD

Lijst met gereedschappen/materialen:

  1. Acryl/plexiglas platen 0,25" dik (24" x 18" - Aantal: 4)
  2. Acryllijm
  3. Boorset met 1/4" en gegradueerde onderste bits
  4. Meetlint + remklauwen
  5. Epoxylijm (~15min leuke tijd)
  6. GE Sealant voor waterdichting
  7. Doorzichtige PVC-slang 1/4 "OD + connectoren met weerhaken

De ontwerprichtlijnen voor dit terrarium zijn flexibel en geen vaste regels. Ik koos ervoor om er een te bouwen die ik op mijn bureau kon houden of een die er mooi uit zou zien op een aanrecht. Bovendien had ik een algemeen idee over de ruimte die mijn elektronica, planten en waterreservoir zouden innemen. Ik besloot dat de hele behuizing H:15" B: 6" L: 10" zou zijn

De CAD-afmetingen in de bovenstaande afbeelding tonen de algemene breuk; in het algemeen bezetten de boven- en onderelektronica elk 4 "hoogte. Het reservoir neemt 4" L aan de onderkant in beslag en laat 6" L over voor de elektronica (later meer over de elektronica).

Ik besloot acryl/plexiglas te gebruiken voor deze versie van het terrarium, omdat het gemakkelijk verkrijgbaar is, zeer gemakkelijk te bewerken is met laser en de onderdelen aan elkaar kunnen worden gelijmd/gelast met een verscheidenheid aan acrylcementen. Glas of transparante kunststoffen zijn goede kandidaten, afhankelijk van hoe ver je wilt gaan met het uiterlijk, vooral als het terrarium rondingen gaat hebben. Bovendien zijn er in veel winkels ook krasvaste versies van plexiglas verkrijgbaar, dus dat zou het nog steeds als een ideale keuze kunnen laten.

Ik ontwierp het 3D-model voor mijn terrarium in Fusion 360, gewoon omdat ik het een kans wilde geven. De CAD-bestanden voor dit project zijn bij deze stap bijgevoegd. Ik heb alle schetsen afgevlakt om Laser Machine-bestanden te krijgen en het standaard laserbewerkingsproces volgt. Stel de laser in (Epilog in mijn geval), Open de bestanden in Corel Draw en voer de bewerking uit.

U zou nu de acrylonderdelen moeten hebben die nodig zijn voor de montage van de behuizing. Raadpleeg CAD en ga van onder naar boven, monteer de onderdelen met acrylcement aan elkaar om een doos te krijgen, met steiger aan de boven- / onderkant. Gebruik remklauwen en liniaalmat (omdat uw doos transparant is) als richtlijn voor een eenvoudiger montageproces.

Stap 4: Elektronisch ontwerp

Elektronica ontwerp
Elektronica ontwerp
Elektronica ontwerp
Elektronica ontwerp
Elektronica ontwerp
Elektronica ontwerp

Lijst met componenten / elektronica:

  1. 5V/10A voeding (aantal: 1)
  2. 3V-35V Boost Converter (Aantal: 2)
  3. 12V DC doseer peristaltische pomp (aantal: 1)
  4. Peristaltische pomp van 2200 ml/min (aantal: 1)
  5. Icstation 20 mm keramische schijven freq = 113 KHz, met driverborden (aantal: 2)
  6. RGB LED-strip (Aantal: 1)
  7. 18 AWG en 24 AWG draadset
  8. Draad weefgetouw 1/4"
  9. Raspberry Pi 3 + Google Voice Hat (je hebt hier alleen de voice hat + microfoon nodig en niet de luidspreker zelf)
  10. Arduino Nano met mini-USB-kabel
  11. ~3-24V SSR-relais met spanningsbelasting
  12. Half-sized Protoboard

Je hebt tijdens dit hele proces ook een voeding met variabele spanning, een multimeter, een soldeerbout en een heet lijmpistool nodig.

Opmerking: dit is een snel prototype en er zijn betere alternatieven voor sommige componenten en verbindingen. Als je weet wat je doet, voel je dan vrij om te veranderen met haalbare alternatieven.

Ik heb de enkele output 5V/10A voeding gehackt in een muti-output voeding door de stekker eraf te halen en mijn eigen meeraderige kabels toe te voegen voor individuele componenten.

  • 5V lijn voor Icstation driver boards
  • 5V-lijn voor RGB-leds
  • 5V lijn voor Raspberry Pi 3
  • 12V lijn (variabel via Boost Converter) voor doseer peristaltische pomp
  • 24V lijn (variabel via Boost Converter) voor regen peristaltische pomp met hoog debiet

Ik nam de afzonderlijke lijnen en legde ze samen in een draadweefgetouw voor een nette look. Ik heb ook een dop in de 5V-lijn toegevoegd om stroomrimpelingen te voorkomen, omdat die rechtstreeks op de Raspberry Pi is aangesloten.

Basisaansluitingen:

Ik heb een van de 5V-lijnen rechtstreeks op Raspberry Pi aangesloten - achterkant van het bord op PP1 en PP6 om geen mini-USB-kabel te gebruiken vanwege de beperkte ruimte. De Pi heeft een Google Voice Hat erop. Ik nam een reeds bestaand programma dat ik had voor serieel schakelen en porteerde het naar een Arduino Nano. Deze Nano is verbonden met Pi 3 via een korte mini-USB-kabel. De Arduino Nano heeft verbindingen met een protoboard voor het in- en uitschakelen van relais die op hun beurt de pompen/mistmaker aan-/uitzetten.

Het protoboard heeft drie relais met elk 5V, 12V en 24V laadlijnen. Elk relais is ook verbonden met een aparte pin op Arduino (D5, D7 en D8). Raadpleeg het relaisdiagram voor informatie over het bedraden van de relaiscontacten voor een aantal schakelacties. A1 / A2 zijn de lijnen van Arduino, terwijl 13+, 14 je lijnen zijn om het circuit voor de belasting te voltooien. Ik gebruik relais voor een goede isolatie, maar je kunt ze ook vervangen door transistors. Vergeet niet om een gemeenschappelijke aarding te hebben tussen de belasting en Arduino om het circuit te laten werken.

Keramische resonatoren

De keramische resonatoren/piëzo's worden geleverd met elk een driverbord dat u afzonderlijk kunt controleren op een variabele voeding. Het bovenste keramische oppervlak moet in contact zijn met water om mist te creëren. Nadat u de driverboards hebt getest, sluit u ze rechtstreeks aan op een 5V-voedingslijn, met een relais ertussen (zoals hierboven). Als het relais is ingeschakeld en het circuit is voltooid, ziet u dat het water wordt omgezet in mist.

LED's

Neopixel LED's van Adafruit worden direct aangestuurd met een stuurleiding naar Arduino, zonder gebruik te maken van relais. Ik heb deze lange strip in meerdere secties van elk ~ 15 LED's gesneden. Raadpleeg deze pagina over het knippen en aansluiten van deze LED's. Nadat ik meerdere secties LED's had gemaakt (zoals ook te zien op de afbeelding), hield ik de siliconenbekleding erop en voegde ik hete lijm aan de uiteinden toe om alles waterdicht te maken. Ik heb afzonderlijke secties op de bodem van de regenbak geplakt voor een mooie en gelijkmatige lichtverdeling.

Peristaltische pompen

Zoals eerder opgemerkt zijn er twee slangenpompen in dit terrarium. De doseerperistaltiek levert slechts kleine hoeveelheden water voor de nevelgenerator. Het mistreservoir heeft twee keramische resonatoren die in contact komen met water, maar het water raakt niet zo snel op. Hierdoor draait deze pomp niet vaak om het mistreservoir met water te vullen. (In feite heb ik het zelfs uit de code verwijderd en het vernevelingsreservoir soms handmatig gevuld door gewoon het bovendeksel van het terrarium op te tillen)

De 24V, 2200mL/min peristaltiek daarentegen wordt gebruikt voor regen en is dus gekozen voor dit hoge volume. Hoewel 24V zelf een te hoog debiet voor het terrarium zal produceren, kunt u de spanning op de Boost Converter wijzigen om het debiet van deze pomp naar een optimale instelling te veranderen.

Stap 5: Montage en testen

Image
Image

samenkomst

Boren

De elektronica (2 Peristaltische pompen, RPi + Voice Hat/Microphone, Nano, Piezo Driver Boards, Relay Protoboard) blijft in de onderste 6"L van het terrarium. Ik ging voor de montage van onder naar boven volgens het 3D-model. Boor twee gaten (elk ongeveer 1/4") aan de achterkant van de onderste elektronicasecties - een van de gaten is voor de stroomkabels van alle componenten en de andere is voor de slangen van de peristaltische pompen.

Boor één gat en laat 1/4 van het bovendeksel vrij om de regenwaterslang naar binnen te laten komen. Boor nog een klein gaatje voor de LED-bedrading om naar buiten te komen en in de Nano aan de onderkant te gaan. Test alle elektronica nog een laatste keer voordat ze in de doos stoppen.

Plaatsing en waterdichting

Inmiddels zouden alle acrylsecties op hun plaats moeten zijn geplakt vanaf de stap Behuizingsontwerp. Plaats de bovengenoemde elektronica in de onderste behuizing en plaats de deksel erop. Het is belangrijk om dit deksel goed af te sluiten om waterdicht te zijn. Het deksel past niet in de doos, om wat ruimte te geven voor de lijm om gemakkelijk te vloeien en de openingen te sluiten. Ik gebruikte epoxy, goot het over de zijkanten van het deksel en liet het lopen op de steiger die was gemaakt om het deksel vast te houden. De lijm moet lopen en de gaten naadloos sluiten. Laat het een nacht staan om uit te harden en doe dan eventueel nog een laag waterdichting met de GE Sealant.

Regen en nevel montage

De montage van regenbak met nevelreservoir (met keramische schijven aan de onderkant) had samen moeten komen in de ontwerpstap van de behuizing. De LED's moeten ook aan de onderkant van de regenbak van de vorige stap worden geplakt en de draden voor keramische resonatoren komen uit het respectieve gat aan de boven- / achterkant van de doos. U kunt deze regen + mistmaker-assemblage op de steiger aan de bovenkant van de doos laten zitten. Voordat u het bovendeksel sluit, brengt u de slang van de pomp naar binnen door het hiervoor geboorde gat boven de regenbak. Snijd kleine stukjes slang en gebruik connectoren met weerhaken om meerdere uitlaten te creëren voor een gelijkmatige verdeling van water wanneer het in de bak komt. Zo krijgt de regen een uniform aanzien in het terrarium. U kunt een knijpfles met waterdispenser gebruiken om water toe te voegen aan het mistreservoir voordat u het deksel erop doet om te testen zodra alles in de doos zit.

Testen

Ik heb de stroom aangesloten waardoor de RPi online komt. Het was eerder geconfigureerd om verbinding te maken met mijn lokale wifi-netwerk. Ik kan het netwerk opvragen voor het IP-adres van Pi, waarna ik ingebouwde schermdeling op Mac gebruik om in te loggen op de Pi. Hierdoor kan ik dingen op afstand testen en uitvoeren en hoef ik geen HDMI-kabel in de doos te steken. Ik gebruik mijn vooraf ingestelde programma's (zie Software-stap voor programma's die op Pi/Arduino draaien voor verschillende componenten) om te testen of alles op zijn plaats zit voordat ik naar de volgende stappen ga.

Stap 6: Terrariumontwerp (landschapsarchitectuur)

Terrariumontwerp (landschapsarchitectuur)
Terrariumontwerp (landschapsarchitectuur)

Dit is waarschijnlijk het leukste deel van het hele proces. Je mag op planten jagen of winkelen! Ik ging rond in lokale tuincentra, waaronder die in het lokale Home Depot, nabijgelegen plantenwinkels en liep zelfs gewoon in mijn buurt met veel groen. Omdat het klimaat vochtig is, gesloten en veel verandert in het terrarium, was ik op zoek naar veerkrachtige tropische klimaatplanten. Je hebt de volgende items nodig om het bed plantklaar te maken:

  • Zwarte aarde
  • Perliet
  • Grind
  • Geactiveerde houtskool

Het water filtert door het bodembed naar het reservoir om weer als regen te worden hergebruikt. Gebruik een fijn gaas (bijv. glasvezelgaas) als basis voordat u het grondbed oplegt. Plaats actieve kool als de onderste laag in het terrarium. Dit voorkomt schimmelgroei in het terrarium en houdt ook een slechte geur onder controle. Bedek deze laag met wat grind zodat het water weer een filterlaag krijgt en vuil niet vrij naar het reservoir kan stromen. Meng zwarte aarde en perliet in een verhouding van 1:1, zodat je echt luchtige en doorlatende groeimedia hebt. U bent nu klaar om te planten.

Opmerking: om al deze spullen in de doos te laten vallen zonder de muren aan te raken, heb ik een trechterachtige vorm gemaakt met een papier en materiaal in de doos gegoten door die opening en niet direct erin gegooid.

Ik verzamelde kleine boomstammen en mos van boomstammen in mijn buurt en meer variatie aan kleine tropische planten in lokale plantenwinkels. Ik vond bij Home Depot een Bonsai-sinaasappelboom die paste bij mijn behoefte aan uiterlijk en iets dat zou overleven in een actueel klimaat. Ik gebruik wat bladmos en wat Spaans mos (beide vaak gevonden in tuincentra) voor een natuurlijke groene uitstraling boven de grond in het terrarium.

Qua beplanting ga ik van klein naar groot. Ik gebruik een pincet om de kleine planten in te brengen en plaatste mos/stammen gewoon met de handen, voordat ik de look bereikte waar ik eindelijk blij mee was. U moet het terrarium een keer licht water geven en een dag of twee laten staan zodat de planten kunnen acclimatiseren en wortels kunnen laten groeien in dit nieuwe bed.

Stap 7: Software

Deze instructies komen voor het grootste deel van de github hier met alle code. Ik laat ze nog steeds hier voor de voltooiing. Terwijl ik Google Assistant gebruik zoals te zien in de video, heeft het terrarium ook een Google Voice Hat met een microfoon in het terrarium zelf, luisterend naar commando's. U kunt ervoor kiezen om de AIR Voice Hat gewoon te gebruiken volgens de instructies hier.

Voordat je start

DialogFlow / Acties op Google

Volg de stappen hier om een Dialogflow-agent te maken. We gebruiken een welkomstintentie waarmee de gebruiker met het terrarium kan gaan praten. Er zijn aanvullende bedoelingen voor de gebruiker om te informeren naar het weer op een bepaalde locatie, tijd (bijvoorbeeld: 'toon me het weer in Seattle') of een expliciete actie aan te roepen (bijvoorbeeld: 'maak het regen')

U moet uw cloudfuncties implementeren die zijn toegewezen aan de acties van de gebruiker.

-> Volg de instructies hier om de cloudfuncties voor firebase in te schakelen. -> Stappen om de functies van CLI te implementeren staan onder Uw functies implementeren met de Firebase CLI op dezelfde link als hierboven

Cloud PubSubStel een Cloud PubSub-project in zoals in deze link

Volg de stappen om een onderwerp aan te maken. We hebben een onderwerp met de naam 'Weer' gemaakt in ons project, waaraan we onze abonnementen hebben toegevoegd. We gebruiken in dit project alleen pull-abonnementen. Het abonnement was terrarium werd genoemd als weer-detail

Noteer de project-ID voor dit project, want het is handig om de listener-client later uit te voeren.

Openweather APIVerkrijg uw API-sleutel van openweathermap.org. Voeg deze sleutel toe aan de cloudfuncties zodat die functies de weerservers kunnen pingen wanneer de gebruiker om specifieke info vraagt. Install NodeJS

Installeer NodeJS op uw RPi

Hoe u deze modules uitvoert?

Dialogflow Cloud-functie-implementatie

Navigeer naar de directory van uw functies en voer het volgende in volgorde uit:

$ npm installeren

$ firebase inloggen

$ firebase init

En voer ten slotte het volgende uit om uw functies te implementeren:

$ firebase implementeren

De link van de geïmplementeerde functies wordt de webhook-URL voor Dialogflow. Cloud PubSub

Ga naar de map van het bestand membership.js & package.json en voer npm install uit om de afhankelijkheden te installeren. Als je klaar bent, voer je node subscritpions.js listen-messages weather-detail uit waarbij weather-detail het abonnement is dat je in een vorige stap hebt gemaakt. Google Assistant / AIY Voice Kit-testimplementatie

U kunt een Google Home of een AIY Voice Kit gebruiken om met het terrarium te communiceren. De bovenstaande app-configuratie blijft voor beide hetzelfde.

Volg de instructies hier om je app te testen en te implementeren op de Google Assistent. Je kunt dan een Google Assistent gebruiken die aan je account is gekoppeld door ermee te praten om het terrarium te activeren en hem naar het weer te vragen.

Stap 8: Voer het terrarium uit

Het volgen van deze hele opzet lijkt moeilijk, maar is eigenlijk leuk en boeiend tijdens het werken met de planten. Als je het goed doet, zou je eindelijk iets moeten kunnen zeggen als

'Hey Google, hoe is het weer in Seattle?', 'Hey Google, Make it Rain' etc. en zie de magische output in je terrarium.

Geniet van je nieuwe terrarium en laat het zien aan je vrienden!

Stap 9: Bijdragers / OPMERKING

  • Gemaakt door Harpreet Sareen en vrienden in het Google Creative Lab.
  • Dit project volgt de Open Source Community-richtlijnen van Google. Raadpleeg hier voor licentie en andere richtlijnen.
  • Opmerking: dit is geen officieel ondersteund Google-product.

Aanbevolen: