Inhoudsopgave:

RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant - Ajarnpa
RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant - Ajarnpa

Video: RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant - Ajarnpa

Video: RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant - Ajarnpa
Video: RabbitPi - The Raspberry Pi Digital Assistant 2024, November
Anonim
Image
Image
RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant
RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant
RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant
RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant
RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant
RabbitPi - de Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant

Dit is een verouderd Nabaztag "slim konijn" uit 2005 dat ik heb omgebouwd tot een moderne IoT-assistent met behulp van een Raspberry Pi 3 en een Adafruit Motor HAT, met een webcammicrofoon en een Philips Soundshooter-luidspreker in de schattige originele behuizing. knop start spraakopdrachten met behulp van Amazon's Alexa-spraakservice, waarbij de antwoorden worden voorgelezen via de geïntegreerde luidspreker. Spraakopdrachten worden ook gebruikt om IFTTT-recepten (If This Then That) te activeren, om te communiceren met andere op internet aangesloten apparaten zoals slimme stopcontacten en mobiele telefoons. Niet genoeg? Naast het activeren van IFTTT-gebeurtenissen, ontvangt het deze ook via Gmail, waarbij de Ivona tekst-naar-spraak-engine wordt gebruikt om e-mail, sms-berichten en andere meldingen voor te lezen, bijvoorbeeld pollenwaarschuwingen of meldingen van een beveiligingscamera in huis. u visuele feedback met LEDS en gemotoriseerde oren? Oh en het heeft een V2 Raspberry Pi-camera in zijn buik voor het uploaden van spraakgestuurde selfies naar Twitter. Het is moeilijk om de schattigheid van de RabbitPi in woorden te beschrijven, bekijk de video om hem in actie te zien!

Stap 1: Een korte geschiedenis van slimme konijnen

Een korte geschiedenis van slimme konijnen
Een korte geschiedenis van slimme konijnen
Een korte geschiedenis van slimme konijnen
Een korte geschiedenis van slimme konijnen
Een korte geschiedenis van slimme konijnen
Een korte geschiedenis van slimme konijnen
Een korte geschiedenis van slimme konijnen
Een korte geschiedenis van slimme konijnen

Het originele Nabaztag "eerste slimme konijn" werd uitgebracht in 2005, aangekondigd als een ambient home-assistent (klinkt bekend bij Amazon en Google?) - het was misschien wel het eerste "Internet of Things"-ding en was in veel opzichten zijn tijd ver vooruit, Ik heb er gelijk een gekocht. Het stond op onze schoorsteenmantel en las dagelijkse weersvoorspellingen en incidentele meldingen voor, maar had nooit veel mogelijkheden, vertrouwend op een WEP wifi-verbinding en eigen software en servers om zijn tekst-naar-spraak (TTS)-services te leveren. Het is nu moeilijk voor te stellen, maar in die tijd was er niet zoveel waarmee het verbinding kon maken, sociale media was nauwelijks een ding, Nokia domineerde de smartphonewereld en LED-lampen waren een dure noviteit.

In de komende jaren volgden er nog twee versies, de Nabaztag:Tag en de Karotz, die beide verbeterde functionaliteit boden, maar geen van beide hun plaats op de markt vonden, uiteindelijk in de steek gelaten door hardware- en softwarebeperkingen. De schande was dat zodra de ondersteunende servers werden uitgeschakeld, de voorheen slimme konijnen niet meer dan ornamenten werden. Verschillende gemeenschapsprojecten probeerden de diensten van de "officiële" servers te vervangen, en we gebruikten "OpenKarotz" een tijdje, maar ook dit leek een jaar of twee geleden uit te sterven, waardoor mijn konijnen stil en onbeweeglijk bovenop mijn luidsprekers bleven.

Hoe dan ook geschiedenisles voorbij! Het resultaat is dat we met veel plezier terugdenken aan de aanwezigheid van de Nabaztag in onze woonkamer, en ik wilde hem terug, maar dan als een echt modern IoT-apparaat.

Stap 2: Nabaztag 2.0

Nabaztag 2.0
Nabaztag 2.0

Ik was geïnspireerd om eindelijk de RabbitPi te starten toen ik in maart las dat de Amazon Alexa-spraakservice beschikbaar was gesteld aan de Raspberry Pi - met als belangrijkste kenmerk dat er een knop nodig was om het "luisteren" te activeren - dit paste perfect bij de Nabaztag, omdat het een drukknop heeft die gelijk ligt met de bovenkant van zijn glanzende kleine hoofd. Ik ontmantelde mijn konijn en had al snel de uitstekende AlexaPi-code van Sam Machin op mijn Pi 3, geactiveerd door op de konijnenknop te drukken. Op dit punt raakte ik volledig afgeleid door het bouwen van de AlexaPhone, maar sprong meteen terug in het slimme konijnenhol zodra het klaar was. Ik wilde dat mijn nieuwe verbeterde Nabaztag minstens zo slim was als het origineel, dus ik wilde dat hij:

Gesproken zoekopdrachten uitvoeren en resultaten voorlezen

Meldingen voorlezen

Beweeg zijn oren en knipperende LED's

Maak foto's en sta bewaking op afstand toe

Interactie met slimme stopcontacten, gloeilampen enzovoort

Stap 3: Bunny Chop

Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop

De eerste klus was om de Nabaztag te ontmantelen en te kijken welke onderdelen hergebruikt konden worden. De oren zijn ontworpen om uitwisselbaar te zijn en worden alleen met magneten vastgehouden, dus dat was gemakkelijk, en de hoofddeksel werd alleen vastgehouden door twee (bizarre driehoekige) schroeven. Dit legde alle circuits en componenten bloot, gebouwd rond een centrale plastic pilaar. De ene kant bevatte het hoofdcircuit en de LED's, met een luidspreker aan de andere kant en motoren/knop ingebed in de pilaar aan de bovenkant.

Omdat ik alleen van plan was om de motoren te houden, knipte ik de meeste kabels door en begon ik de schroeven eruit te halen. Ik kreeg een echte verrassing op dit punt! Achter het 'hersencircuit' van het konijn bevond zich een gleuf over de hele hoogte van de pilaar, met daarin een PCMCIA-wifi-kaart op ware grootte, het soort dat je in oude laptops zou gebruiken. Ik denk dat het destijds een ontwerp- of compatibiliteitscompromis was, maar als je het in grootte vergelijkt met een moderne USB-dongle, merk je echt hoeveel technologie in de loop van 10 jaar is gekrompen.

De rest van de onderdelen waren gemakkelijk te verwijderen, waardoor alleen de kale plastic steunpilaar overbleef met toch voldoende ruimte eromheen?

Stap 4: Spreken en luisteren

Spreken en luisteren
Spreken en luisteren
Spreken en luisteren
Spreken en luisteren
Spreken en luisteren
Spreken en luisteren

Je kunt geen spraakgestuurd pratend konijn hebben zonder een luidspreker en microfoon, dus dit waren een van de eerste dingen die ik heb uitgezocht. Ik hoefde niet echt mijn best te doen, de Pi lijkt erg flexibel te zijn over USB-microfoons en ik gebruikte gewoon een oude MSI StarCam Clip-webcam voor de invoer, waarbij ik het geluidsniveau op Max afstelde in de Pi-audio-instellingen. Om ruimte te besparen heb ik de webcam gedemonteerd en de cameralens en behuizing weggegooid. Ik boorde een gat in de basis waar de microfoon doorheen kon steken en verbond het met de USB van de Pi, waarbij ik de kabels zo netjes mogelijk liet lopen.

Ik heb de KitSound MiniBuddy-luidspreker in de AlexaPhone gebruikt, omdat deze echt effectief bleek te zijn, maar toen ik er een ging kopen voor dit project, ontdekte ik dat het ontwerp was veranderd en dat ze niet langer werden opgeladen met een micro-usb-connector! Ik zocht naar iets soortgelijks en kwam op de Philips SoundShooter, een kleine handgranaat-achtige eenheid. Ik had gehoopt dat het zonder demontage in de koffer zou passen, maar het was veel te groot, dus kwam de schroevendraaier tevoorschijn om het te demonteren. Ik slaagde erin om de luidsprekerdraden in het proces te breken, dus soldeerde ik enkele startkabels in om het gemakkelijker te maken om opnieuw aan te sluiten. Dit luidsprekergedeelte was op dezelfde plaats als de originele luidspreker op de behuizing gelijmd, met het circuit en de batterij vastgemaakt aan het plankje eronder.

Achteraf zou ik willen dat ik in plaats daarvan gewoon het lef van een luidsprekerdock op netvoeding of iets dergelijks had gebruikt, omdat het niet ideaal is om de luidspreker op te laden - toch gaat hij erg lang mee en klinkt hij geweldig, en als hoofddeksel gaat gemakkelijk van start, het is niet echt een show-stop-probleem.

Stap 5: Lezen als konijnen

Lezen als konijnen
Lezen als konijnen
Lezen als konijnen
Lezen als konijnen

Nu het Alexa-gedeelte werkte, ging ik verder met het oplossen van het volgende probleem, hoe zou ik het konijn ertoe brengen om meldingen voor te lezen? De tekst-naar-spraak van de originele Nabaztag was verrassend goed, hoewel ik me herinner dat het altijd mijn sms-afmeldingen (MM) voorlas als "Millimeters" en die van mijn vrouw (CM) als "Centimeters" - ik wilde een moderne en natuurlijk klinkende engine die dingen zoals het "&"-symbool correct zou interpreteren en eenvoudige emoticons zoals:) zou begrijpen.

Zoals met alles op de Raspberry Pi zijn er heel veel verschillende opties en ik heb er verschillende bekeken voordat ik Ivona koos, wat dezelfde onderliggende motor lijkt te zijn die door de Alexa-service wordt gebruikt. Het was de beste optie voor mij omdat er een reeks beschikbare stemmen en configuratie-opties zijn - ook een groot pluspunt was dat Zachary Bears een handige Python-wrapper voor de service, Pyvona, beschikbaar had gesteld.

Om met Ivona aan de slag te gaan, moet je eerst een ontwikkelaarsaccount instellen, daarna krijg je, net als bij de Alexa-setup, inloggegevens om in je applicatie te gebruiken, in dit geval een script om meldingen voor te lezen. Je mag 50.000 zoekopdrachten per maand met een van deze accounts, wat voor mij zeker genoeg is.

De installatie van Pyvona was heel eenvoudig, binnen enkele minuten had ik een Python-script gemaakt op basis van het gegeven voorbeeld dat elke zin zou voorlezen die ik typte. Maar dat was natuurlijk maar gedeeltelijk de oplossing - ik wilde niet dat Ivona hard-coded voorlas tekst maar dynamische inkomende meldingen.

Stap 6: Zeg wat?

Wat zeg je?
Wat zeg je?
Wat zeg je?
Wat zeg je?

Dus ik had nu een konijn (in stukjes over de hele bank) dat kon praten, maar het had een mechanisme nodig om meldingen te ontvangen en door te geven aan de Ivona-service om te worden voorgelezen. Ik heb gekeken naar de mogelijkheid van sms-berichten via een online service of simkaartadapter, en ook naar Twitter en Dropbox voor het aanleveren van tekststrings/bestanden, maar besloot uiteindelijk imaplib te gebruiken, een op Python gebaseerd middel voor interactie met IMAP-e-mailaccounts. Ik heb voor deze optie gekozen, vooral omdat het goed integreerde met de IFTTT-service, je kunt heel creatief zijn met het opmaken van e-mailmeldingen. Het betekende ook dat ik e-mails rechtstreeks naar de RabbitPi kon sturen om hardop te worden voorgelezen.

Ik heb online veel imaplib-python-voorbeelden bekeken en na het combineren van stukjes en beetjes en het doornemen van de imaplib-documentatie, slaagde ik erin om een script te krijgen dat Gmail met regelmatige tussenpozen controleerde op ongelezen berichten en verschillende tekst op het scherm afdrukte, afhankelijk van de inhoud van het berichtonderwerp. Dit was erg handig, omdat ik een "IF"-instructie in de code kon aanpassen om alleen te werken als de e-mail van mezelf kwam, en dan de actie "Afdrukken" verwisselen voor de code die de Ivona-service aanroept.

Ik heb geruime tijd geprobeerd de imaplib- en Pyvona-code aan te passen om de hoofdtekst van e-mails te lezen, maar dit bleek buitengewoon ingewikkeld te zijn - ik ontdekte al snel dat de kern-e-mailvelden (Van, Aan, Onderwerp enz.) heel eenvoudig zijn opgemaakt, maar de hoofdtekst van de e-mail kan op veel verschillende manieren worden gestructureerd. Uiteindelijk maakte het niet echt uit, ik kon bereiken wat ik nodig had door het e-mailonderwerp te gebruiken als het veld waaruit de meldingstekst zou worden gelezen.

Ik heb toen het voorbeeld van de imaplib-code aangepast, zodat in plaats van te stoppen na elke controle op e-mail, het oneindig zou rondlopen, een paar keer per minuut op e-mails zou controleren en eventuele nieuwe vrijwel meteen zou voorlezen. Dit was handig om te testen, maar in de praktijk zou ik het waarschijnlijk wat minder vaak laten controleren. Het is ook vermeldenswaard dat het script het wachtwoord in platte tekst opslaat, dus er zal op een gegeven moment wat codering moeten worden toegevoegd.

Ik ben er 100% zeker van dat dit veel eleganter en efficiënter kan in Python, maar het was leuk en uitdagend om het werkend te krijgen - ik heb deze week "Python for Kids" uit de bibliotheek geleend, dus mijn code zal hopelijk verbeteren naarmate ik meer leer.

Terwijl het basisscript voor het ontvangen van een e-mail en het uitlezen werkte, voegde ik de extra stukjes code toe die de oren van het konijn zouden doen bewegen en LED's die oplichten tijdens het lezen van de meldingen. De code die ik heb gebruikt staat op GitHub, maar houd rekening met mijn huidige gebrek aan python-vaardigheid!

Stap 7: Een HOED voor de RabbitPi

Een HOED voor de RabbitPi
Een HOED voor de RabbitPi
Een HOED voor de RabbitPi
Een HOED voor de RabbitPi
Een HOED voor de RabbitPi
Een HOED voor de RabbitPi
Een HOED voor de RabbitPi
Een HOED voor de RabbitPi

Een van de meest iconische dingen aan de Nabaztag was de manier waarop hij zijn oren bewoog als er een melding binnenkwam. Ze konden in een bepaalde richting worden gezet door ze handmatig te verplaatsen of door een positie in te stellen met behulp van de besturingssoftware - mijn doel was gewoon om ze te laten bewegen.

Ik had nog nooit eerder motoren met de Raspberry Pi gebruikt, dus dit was weer een nieuw onderzoeksonderwerp voor mij - eerst moest ik uitzoeken met wat voor soort motoren ik te maken had, ik wist alleen dat er 2 motoren waren, elk met 2 draden. Toen ik online las, kwam ik tot de conclusie dat dit eenvoudige gelijkstroommotoren moeten zijn in plaats van stappenmotoren, een feit dat wordt bevestigd door deze fantastisch nuttige instructable "Hack the Nabaztag" van Liana_B, waarvan ik wou dat ik ongeveer een maand eerder had gelezen.

Nogmaals, dankzij de flexibiliteit van de Pi zijn er veel verschillende manieren waarop de motoren kunnen worden bestuurd, maar ik besloot een Adafruit DC & Stepper Motor HAT-bord te gebruiken. Ik heb eerder Adafruit-schermen en snuisterijen gebruikt en ik ben dol op de gedetailleerde instructies en voorbeelden die standaard worden meegeleverd.

Het gebruik van een bord met de HAT-standaard (Hardware Attached on Top) betekende dat de motorcontroller netjes bovenop de Pi zou passen en minimale ruimte in beslag nam, en omdat het de I2C-interface gebruikt, liet het de GPIO-pinnen vrij die ik nodig had voor de Alexa/Clap knop en LED's.

Zoals verwacht was het aan elkaar solderen van de HAT heel eenvoudig en ik had hem al snel op de PI gemonteerd en aangesloten op de twee oormotoren. Ik was van plan om de motoren van een usb-powerbank te laten werken, zodat ik maar een enkele stekker nodig zou hebben, maar dit bleek niet genoeg te knorren, het zou niet eens het "Working"-ledje op de HAT oplichten. Ik besloot in plaats daarvan een gelijkstroomadapter te gebruiken om de HOED en oren te gebruiken, ik had handig een van die universele met verwisselbare tips bij de hand. Wat ik niet had, was een DC-aansluiting om de adapter op de HAT aan te sluiten. Ik stond op het punt om (weer) naar Norwich Maplin te vertrekken toen ik me van de demontage herinnerde dat het originele netsnoer van de Nabaztag een standaard gelijkstroomstekker was - daarom kon ik gewoon het originele stopcontact opnieuw aansluiten op de HAT - netjes! Uiteindelijk heb ik ook de originele Nabaztag-voeding hergebruikt, omdat deze precies de juiste hoeveelheid stroom leverde.

Met alles bedraad en een verstandige spanning geselecteerd, heb ik voorlopig het python-voorbeeld gebruikt dat bij de DC Motor Hat is geleverd, voorbeeldcode die constant de snelheid en richting van de motor veranderde om de verschillende besturingsopties te illustreren. Ik was zo opgewonden toen het werkte, mijn eerste Pi-gestuurde motor! Maar toen merkte ik iets op - een heel luid, hoog gejank alsof iemand met een natte vinger rond een wijnglas ging. Dit was helemaal niet goed, ik wilde de oren laten bewegen terwijl meldingen werden gelezen en hoewel niet oorverdovend was het gejank echt merkbaar. Ik heb verschillende spanningen geprobeerd, maar geen verandering. Toen ik me tot Google wendde, ontdekte ik dat dit kan gebeuren door PWM (pulsbreedtemodulatie) en dat een remedie kan zijn om kleine condensatoren over de motorterminals te solderen. Kijkend naar de motoren waren deze al aanwezig. Ik heb ook geëxperimenteerd met het wijzigen van de PWM-frequentie, maar nog steeds geen verandering. Na wat experimenteren realiseerde ik me dat het gejank alleen gebeurde wanneer de snelheid van de motor door de code van laag naar hoog werd veranderd - dus door hem op een constante hoge snelheid te zetten, werd het gejammer helemaal geëlimineerd - pfff!

Ik heb een aantal python-testscripts gemaakt op basis van de Adafruit-voorbeelden, een voor beweging tijdens meldingen en een andere om de oren een volledig "circuit" te laten maken bij het opstarten, met als doel de werkcode hiervan te kopiëren naar de hoofdscripts die worden gebruikt om de Alexa en Gmail/Ivona interacties.

Stap 8: Camera en aanpassingen

Camera en aanpassingen
Camera en aanpassingen
Camera en aanpassingen
Camera en aanpassingen
Camera en aanpassingen
Camera en aanpassingen

Voordat ik met de montage begon, heb ik alles getest. Waar mogelijk heb ik bij deze build startkabels gebruikt om de afzonderlijke componenten met elkaar te verbinden, als eerdere builds me iets hebben geleerd, is het plannen voor toekomstige demontage! Ik heb er ook een punt van gemaakt om een aansluitschema te maken dat laat zien welke kleur kabels waar zijn gegaan, startkabels zijn uitstekend, maar kunnen soms gemakkelijk losraken wanneer componenten in krappe ruimtes worden gepropt!

Ik besloot vrij ver in de build om ook een Pi Camera-module op te nemen, de 8MP-versie 2 was net uitgebracht en als iets anders dat nieuw voor mij was, dacht ik dat het een goede toevoeging zou zijn. De nieuwste versie van het Karotz-konijn had een webcam in zijn maag, maar dit werkte nooit echt zo goed, ik dacht dat de Pi-camera leuk zou zijn voor spraakgestuurde selfies en misschien zelfs bewaking op afstand als de Pi de code zou kunnen uitvoeren op dezelfde tijd als al het andere.

Ik bouwde een beugel voor de camera uit met plastic omhuld meccano en plaatste deze eerst in de behuizing, daarna nauwkeurig gemeten waar ik het verzonken gat in de behuizing moest boren. Dit was absoluut een geval van "meet twee keer een keer gesneden" omdat een gat op de verkeerde plaats een ramp zou zijn geweest. Gelukkig kwam het midden in het midden uit en net iets te hoog, dus ik kon dit compenseren door ringen toe te voegen tussen de camerabeugel en de basis.

Ik heb op dit moment ook een Pimoroni Dual Micro USB-voedingskabel toegevoegd - dit gaf me een mooie micro-usb-aansluiting aan de achterkant van de behuizing en leverde een tweede voedingsstekker op. Ik was van plan de extra stekker te gebruiken om de batterij van de luidspreker op te laden, en brak erin zodat ik de originele "mute" -schakelaar van de Nabaztag kon aansluiten om het opladen te regelen.

Stap 9: Wat is Cookin' Doc? IFTTT-recepten

Wat is Cookin' Doc? IFTTT-recepten!
Wat is Cookin' Doc? IFTTT-recepten!
Wat is Cookin' Doc? IFTTT-recepten!
Wat is Cookin' Doc? IFTTT-recepten!

Het fenomenale aan het bouwen van een IoT-apparaat op dit moment is het enorme aantal beschikbare webservices, en de IFTTT-service (If This Then That) doet geweldig werk door deze allemaal samen te brengen in een eenvoudig en functioneel pakket. Als je het nog niet hebt gebruikt, is het een online service, en als je eenmaal bent aangemeld, kun je er al je andere webgebaseerde dingen op aansluiten, zoals Gmail, Facebook, Twitter en (je raadt het al) Amazon Alexa. Er is een totaal scala aan diensten om uit te kiezen, inclusief bedieningsopties voor slimme apparaten zoals gloeilampen, thermostaten en stopcontacten.

De IFTTT-regels zijn ingesteld in "recepten" - een beetje zoals een Outlook-regel of een IF-statement in SQL of Visual Basic, ik heb bijvoorbeeld een recept dat zegt: "ALS iemand me tagt in een foto op Facebook, stuur me dan een e-mail met het onderwerp " Heilige guacamole, [naam van persoon taggen] heeft je zojuist getagd in een Facebook-foto" - omdat dit naar mij is verzonden vanaf mijn eigen adres, leest de RabbitPi vervolgens de onderwerptekst voor.

Een ander geweldig gebruik van IFTTT is met de Alexa-spraakservice - voor het IF-gedeelte van een recept kun je een zin instellen, bijvoorbeeld "de laser" en als je vervolgens tegen Alexa zegt "Trigger the laser" zal ze het verzoek doorgeven aan IFTTT, die het THEN-gedeelte van het recept afvuurt, in dit geval een externe aansluiting die is aangesloten op een discolaser.

Het gaat zelfs verder dan "slimme dingen" - als je IFTTT op je telefoon hebt geïnstalleerd (de mijne is de Android-versie), dan kun je er in beide richtingen mee communiceren. Dave" naar Alexa, DAN speel ik het specifieke nummer "Rabbit" op mijn Android-telefoon. Het werkt ook andersom - de AnyMote universele afstandsbediening-app op mijn telefoon kan worden aangepast zodat een specifieke knop met het "IF"-gedeelte activeert van een recept - dus ik heb een knop op mijn scherm die de RabbitPi activeert om een selfie te maken en deze naar Twitter te uploaden.

Een andere functie stelt de RabbitPi in staat om mijn sms-berichten voor te lezen, op mijn telefoon heb ik een recept "ALS ik een nieuw sms-bericht ontvang, stuur dan mezelf een e-mail met het volgende onderwerp "Hé! [tekstverzender] zegt [tekstbericht]"

Het is gemakkelijk te gebruiken, erg leuk en werkt goed, meldingen worden heel snel heen en weer doorgegeven, vooral naar de WeMo Insight-schakelaar die ik heb, die vrijwel direct is. Het hebben van IFTTT en de RabbitPi maakt het verbinden van dingen en services heel eenvoudig.

Stap 10: Montage en testen

Assemblage & Testen
Assemblage & Testen
Assemblage & Testen
Assemblage & Testen
Assemblage & Testen
Assemblage & Testen

Nu kwam het lastige deel - alle componenten in de koffer proppen! Ik was er vrij zeker van dat het allemaal zou passen, maar de eigenlijke montage was echt onhandig, ik maakte goed gebruik van enkele chirurgische instrumenten en pincetten om kabels door kleine openingen te prikken.

Toen alles stevig vastzat, voegde ik een aantal zelfklevende kabelbinders toe, zodat de vele draden netjes bij elkaar konden worden getrokken - dit was erg belangrijk omdat ik niet per ongeluk een van hen wilde loskoppelen bij het weer in elkaar zetten van de behuizing.

Stap 11: Klaar konijn?

Klaar konijn?
Klaar konijn?
Klaar konijn?
Klaar konijn?
Klaar konijn?
Klaar konijn?
Klaar konijn?
Klaar konijn?

Nu alle fysieke bouwkant was gedaan, was het tijd om "het snoer door te snijden", de RabbitPi uit het comfort van zijn ethernetkabel, monitor en toetsenbord in de werkplaats te verwijderen, zodat ik de code elders via SSH kon afmaken (het draadloze signaal is echt zwak daar!)

Ik ging op het bureau in mijn kantoor zitten en startte het konijn op en - helemaal geen wifi-verbinding, niets. Ik wist dat er een signaal moest zijn omdat mijn telefoon goed werkte - was er een probleem met de netwerkadapter op de Pi 3 waar ik nog nooit van had gehoord? Even googelen leerde me dat de Pi 3 alleen een wifi-signaal zal vinden als de router uitzendt op kanalen 1-11 - de mijne was ingesteld op kanaal 13! Een paar aanpassingen later en we waren verbonden, grote zucht van opluchting.

Vervolgens kwam het uitzoeken van de verschillende scripts. Ten eerste heb ik het main.py-script van de AlexaPi-code aangepast door extra regels toe te voegen, zodat de RabbitPi niet alleen knippert met de LED's bij het opstarten, maar ook een mooie oorbeweging maakt. Ik heb ook het standaard 'Hallo'-bericht vervangen door een speels 'boing'-geluidseffect voor de lol.

Het tweede script heet konijn.py (SWIDT?) en bevat alle code om Gmail-berichten op te halen en uit te lezen met Pyvona. Ik heb ook wat Twython-code toegevoegd die ik heb aangepast van een Raspberry Pi "Tweeting Babbage"-tutorial, waardoor de RabbitPi een foto kan maken en deze kan uploaden naar zijn Twitter-account (@NabazPi). Ik voegde wat oorbewegingen en LED-flitsen toe om je een eerlijke waarschuwing te geven wanneer de foto op het punt staat te worden gemaakt, evenals een sluitergeluid en een door Pyvona gelezen tweetbevestiging.

Als laatste heb ik een IF-statement toegevoegd aan de imaplib Gmail-code, zodat als het e-mailonderwerp "selfie" was, de RabbitPi zijn selfie-ding zou doen, maar anders het e-mailonderwerp zoals normaal zou voorlezen.

De code die ik heb gebruikt is beschikbaar op GitHub - lees het ReadMe-bestand!

Als finishing touch printte ik een Raspberry Pi-logo op transparant papier en plakte het in de RabbitPi-behuizing, zodat de witte buik-LED het beeld zou verlichten door zijn doorschijnende huid.

Stap 12: Nabaztag is terug

Nabaztag is terug!
Nabaztag is terug!
Nabaztag is terug!
Nabaztag is terug!
Nabaztag is terug!
Nabaztag is terug!

Met alles gedaan was er alleen nog de video te maken. Het was erg leuk om de RabbitPi op de camera te testen, het enige nadeel was het later bewerken van de HD-beelden op mijn oudere laptop. Voor sommige meldingen (voornamelijk sms-berichten vanwege mijn vreselijke Vodafone-signaal) heb ik de pauzes tussen actie en melding ingekort, anders zou het een lange en saaie video zijn geweest, maar het meeste toont de ware snelheid van reageren.

Ik heb geëxperimenteerd met het gebruik van een klapsensor om de Alexa-service te activeren (zoals te zien in de Snap to it Alexa-video), maar liet het uit de uiteindelijke build omdat het niet echt betrouwbaar genoeg was als er achtergrondgeluid was. Ik weet dat andere knutselaars werken aan het gebruik van IR-afstandsbedieningen, Wii-controllers en zelfs actief luisteren met de AlexaPi-code, dus er zijn tal van opties voor de toekomst.

Ik hoop een adafruit neopixel-ring toe te voegen om de buik-LED te vervangen, omdat dit voor veel betere visuele meldingen zou zorgen, en ik zou ook graag rekening houden met het "dempen" van de spraakmeldingen 's nachts. Mijn kinderen hebben ook een aantal geweldige suggesties gegeven, en nu ik wat meer vertrouwd ben met Python, gaan we samenwerken om het aantal meldingen uit te breiden, bijvoorbeeld zodat de selfie-bevestigingstekst willekeurig uit een lijst met waarden wordt gehaald, en dus kan het konijn worden geïnstrueerd om te proberen de macarena te dansen met zijn oren en LED's.

Ik heb hier toevallig nog een Nabaztag, evenals een later Karotz-konijn, dus misschien kan ik er iets anders mee bouwen - het is verleidelijk om te experimenteren met bewaking op afstand en allerlei soorten sensoren! Het is een ideaal hardwareplatform voor de Pi met zijn perfecte behuizing, motoren en knop. Ik vraag me af of de oorspronkelijke fabrikanten ergens een voorraad onverkochte Nabaztags hebben, zoals de Atari-stortplaats? Zeker met wat 3D-geprinte goedheid voor het monteren van de camera en PI en een aangepaste HAT om de motoren, LED's en audio te laten werken, zouden ze zeker een ideale Raspberry Pi-makerkit vormen, elke codeerclub zou er een moeten hebben!

Als je dit project leuk vindt en meer wilt zien, kun je mijn website bezoeken voor lopende projectupdates op bit.ly/OldTechNewSpec, meedoen op Twitter @OldTechNewSpec of je abonneren op het groeiende YouTube-kanaal op bit.ly/oldtechtube - geef een deel van je oude technologie een nieuwe specificatie!

Internet of Things-wedstrijd 2016
Internet of Things-wedstrijd 2016
Internet of Things-wedstrijd 2016
Internet of Things-wedstrijd 2016

Tweede plaats in de Internet of Things-wedstrijd 2016

Aanbevolen: