Sommario:

RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che agita le orecchie: 12 passaggi
RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che agita le orecchie: 12 passaggi

Video: RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che agita le orecchie: 12 passaggi

Video: RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che agita le orecchie: 12 passaggi
Video: Raspberry Pi ASSISTENTE VOCALE con Alexa (INTELLIGENZA ARTIFICIALE) 2024, Novembre
Anonim
Image
Image
RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che fa dimenare le orecchie
RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che fa dimenare le orecchie
RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che fa dimenare le orecchie
RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che fa dimenare le orecchie
RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che fa dimenare le orecchie
RabbitPi: l'assistente IoT abilitato per Alexa, connesso a IFTTT e che fa dimenare le orecchie

Questo è un obsoleto "coniglio intelligente" Nabaztag del 2005 che ho ricostruito in un moderno IoT Assistant utilizzando un Raspberry Pi 3 e un Adafruit Motor HAT, con un microfono per webcam e un altoparlante Philips Soundshooter contenuti nella simpatica custodia originale. il pulsante ha avviato i comandi vocali utilizzando il servizio vocale Alexa di Amazon, leggendo le risposte tramite l'altoparlante integrato. I comandi vocali vengono utilizzati anche per attivare le ricette IFTTT (If This Then That), per interagire con altri dispositivi connessi a Internet come prese intelligenti e telefoni cellulari. Non abbastanza? Oltre ad attivare gli eventi IFTTT, li riceve anche tramite Gmail, utilizzando il motore di sintesi vocale Ivona per leggere e-mail, messaggi di testo e altre notifiche, ad esempio avvisi di polline o notifiche da una telecamera di sicurezza domestica. hai un feedback visivo con LED e orecchie motorizzate? Oh, e ha una fotocamera Raspberry Pi V2 nella sua pancia per caricare selfie ad attivazione vocale su Twitter. È difficile descrivere a parole la carineria del RabbitPi, guarda il video per vederlo in azione!

Passaggio 1: una breve storia dei conigli intelligenti

Una breve storia di conigli intelligenti
Una breve storia di conigli intelligenti
Una breve storia di conigli intelligenti
Una breve storia di conigli intelligenti
Una breve storia di conigli intelligenti
Una breve storia di conigli intelligenti
Una breve storia di conigli intelligenti
Una breve storia di conigli intelligenti

L'originale "primo coniglio intelligente" di Nabaztag è stato rilasciato nel 2005, annunciato come un assistente domestico ambientale (suona familiare Amazon e Google?) - probabilmente è stata la prima cosa "Internet of Things" ed era in molti modi in anticipo sui tempi, Ne ho comprato uno subito. Si è seduto sul nostro caminetto leggendo le previsioni del tempo giornaliere e le notifiche occasionali, ma non ha mai avuto molte capacità, basandosi su una connessione Wi-Fi WEP e su software e server proprietari per fornire i suoi servizi di sintesi vocale (TTS). È difficile da immaginare ora, ma all'epoca non c'era molto a cui connettersi, i social media erano a malapena una cosa, Nokia dominava il mondo degli smartphone e le lampadine a LED erano una novità costosa.

Negli anni a venire seguirono altre due versioni, il Nabaztag:Tag e il Karotz, entrambi offrivano funzionalità migliorate ma nessuno dei due trovava la sua nicchia nel mercato, alla fine deluso dalle limitazioni hardware e software. La vergogna era che non appena i server di supporto sono stati spenti, i conigli precedentemente intelligenti sono diventati poco più che ornamenti. Diversi progetti della comunità hanno cercato di sostituire i servizi dei server "ufficiali", e abbiamo usato "OpenKarotz" per un po', ma anche questo sembrava essere morto un anno o due fa, lasciando i miei conigli muti e immobili sopra i miei altoparlanti.

Comunque lezione di storia finita! Il risultato è che ricordiamo con affetto la presenza del Nabaztag nel nostro soggiorno, e lo volevo indietro, ma come un vero e proprio dispositivo IoT moderno.

Passaggio 2: Nabaztag 2.0

Nabaztag 2.0
Nabaztag 2.0

Sono stato ispirato ad avviare finalmente il RabbitPi quando ho letto a marzo che il servizio vocale Amazon Alexa era stato reso disponibile per il Raspberry Pi - la chiave era che era necessario un pulsante per attivare "l'ascolto" - questo si adattava perfettamente al Nabaztag, in quanto ha un pulsante a filo con la parte superiore della sua testolina lucida. Ho smontato il mio coniglio e presto ho avuto l'eccellente codice AlexaPi di Sam Machin in esecuzione sul mio Pi 3, attivato premendo il pulsante del coniglio. A questo punto mi sono completamente distratto dalla costruzione dell'AlexaPhone, ma sono saltato indietro nella tana del coniglio intelligente non appena è stato finito. Avevo bisogno che il mio nuovo Nabaztag migliorato fosse intelligente almeno quanto l'originale, quindi volevo che:

Esegui ricerche vocali e leggi i risultati

Leggi le notifiche

Muovi le sue orecchie e lampeggia i LED

Scatta foto e consenti il monitoraggio remoto

Interagisci con prese intelligenti, lampadine e così via

Passaggio 3: Coniglio Chop

Coniglio Chop
Coniglio Chop
Coniglio Chop
Coniglio Chop
Coniglio Chop
Coniglio Chop
Coniglio Chop
Coniglio Chop

Il primo lavoro è stato quello di smantellare il Nabaztag e vedere quali parti potevano essere riutilizzate. Le orecchie sono progettate per essere intercambiabili e tenute solo da magneti, quindi è stato facile, e la copertura principale è stata trattenuta solo da due (bizzarre triangolari) viti. Questo ha esposto tutti i circuiti e i componenti, costruiti attorno a un pilastro centrale in plastica. Un lato conteneva il circuito principale e i LED, con un altoparlante sull'altro lato e motori/pulsante incorporati nel pilastro in alto.

Poiché avevo pianificato solo di tenere i motori, ho tagliato la maggior parte dei cavi e ho iniziato a togliere le viti. Ho avuto una vera sorpresa a questo punto! Dietro il circuito "cervello" del coniglio c'era uno slot che correva per l'intera altezza del pilastro, che conteneva una scheda Wi-Fi PCMCIA a grandezza naturale, del tipo che avresti usato nei vecchi laptop. Immagino che all'epoca fosse un compromesso di design o compatibilità, ma confrontarlo in termini di dimensioni con un moderno dongle USB ha davvero portato a casa quanto la tecnologia si è ridotta nello spazio di 10 anni.

Il resto delle parti è stato facilmente rimosso, lasciando solo il nudo pilastro di supporto in plastica con sicuramente molto spazio intorno?

Passaggio 4: parlare e ascoltare

Parlare e ascoltare
Parlare e ascoltare
Parlare e ascoltare
Parlare e ascoltare
Parlare e ascoltare
Parlare e ascoltare

Non puoi avere un coniglio parlante a comando vocale senza altoparlante e microfono, quindi queste sono state tra le prime cose che ho risolto. Non ho dovuto sforzarmi molto, il Pi sembra essere molto flessibile sui microfoni USB e ho appena usato una vecchia webcam MSI StarCam Clip per l'ingresso, regolando il livello del suono su Max nelle impostazioni audio del Pi. Per risparmiare spazio ho smontato la webcam, scartando l'obiettivo della fotocamera e la custodia. Ho praticato un foro nella base per far passare il microfono e l'ho collegato all'USB del Pi, facendo passare i cavi nel modo più ordinato possibile.

Ho usato l'altoparlante KitSound MiniBuddy nell'AlexaPhone, poiché si è rivelato davvero efficace, ma quando sono andato a comprarne uno per questo progetto ho scoperto che il design era stato cambiato e non si caricavano più utilizzando un connettore micro-usb! Ho cercato qualcosa di simile e ho inventato il Philips SoundShooter, una piccola unità simile a una bomba a mano. Speravo che si adattasse alla custodia senza smontarlo, ma era troppo grande, quindi è uscito il cacciavite per smontarlo. Sono riuscito a spezzare i cavi degli altoparlanti nel processo, quindi ho saldato alcuni cavi jumper per facilitare la riconnessione. Questa parte dell'altoparlante è stata incollata a caldo al case nello stesso punto dell'altoparlante originale, con il circuito e la batteria fissati al piccolo ripiano sottostante.

Col senno di poi, vorrei aver semplicemente usato le viscere di un dock per altoparlanti alimentato dalla rete o qualcosa del genere, poiché non è l'ideale dover caricare l'altoparlante - comunque dura molto tempo e suona alla grande, e come copertura principale si solleva facilmente, non è davvero un problema di spettacolo.

Passaggio 5: leggere come conigli

Leggere come conigli
Leggere come conigli
Leggere come conigli
Leggere come conigli

Ora che la parte di Alexa funzionava, sono passato alla risoluzione del problema successivo, come avrei fatto a far leggere le notifiche al coniglio? La sintesi vocale del Nabaztag originale era sorprendentemente buona, anche se ricordo che leggeva sempre i miei messaggi di testo (MM) come "Millimetri" e quelli di mia moglie (CM) come "Centimetri" - volevo usare un moderno e motore dal suono naturale che interpreterebbe correttamente cose come il simbolo "&" e comprenderebbe semplici emoticon come:).

Come per qualsiasi cosa sul Raspberry Pi, ci sono un sacco di opzioni diverse là fuori e ne ho esaminate diverse prima di decidere su Ivona, che sembra essere lo stesso motore sottostante utilizzato dal servizio Alexa. È stata l'opzione migliore per me in quanto ci sono una gamma di voci disponibili e opzioni di configurazione - anche un grande vantaggio è stato che Zachary Bears aveva reso disponibile un comodo wrapper Python per il servizio, Pyvona.

Per iniziare con Ivona devi prima configurare un account sviluppatore, quindi, proprio come con la configurazione di Alexa, ti vengono fornite le credenziali da utilizzare nella tua applicazione, in questo caso uno script per leggere le notifiche. Ti sono consentite 50.000 ricerche al mese con uno di questi account, il che è sicuramente sufficiente per me.

L'installazione di Pyvona è stata davvero semplice, in pochi minuti ho creato uno script Python dall'esempio fornito che avrebbe letto qualsiasi frase che avessi digitato. Ma questa era solo in parte la soluzione ovviamente - non volevo che Ivona leggesse hardcoded testo ma notifiche in arrivo dinamiche.

Passaggio 6: dire cosa?

Che cosa?
Che cosa?
Che cosa?
Che cosa?

Quindi ora avevo un coniglio (a pezzi per tutto il banco) che poteva parlare, ma aveva bisogno di un meccanismo per ricevere le notifiche e passarle al servizio Ivona per essere lette. Ho esaminato la possibilità di inviare messaggi di testo tramite un servizio online o un adattatore per schede SIM, e anche Twitter e Dropbox per la consegna di stringhe/file di testo, ma alla fine ho deciso di utilizzare imaplib, un mezzo basato su Python per interagire con gli account di posta elettronica IMAP. Ho deciso su questa opzione principalmente perché si integrava bene con il servizio IFTTT, puoi essere davvero creativo con la formattazione delle email di notifica. Inoltre significava che sarei stato in grado di inviare e-mail direttamente al RabbitPi per essere lette ad alta voce.

Ho esaminato molti esempi di imaplib python online e, dopo aver combinato bit e pezzi e aver lavorato sulla documentazione di imaplib, sono riuscito a ottenere uno script che controllava Gmail per i messaggi non letti a intervalli regolari e stampava testo diverso sullo schermo a seconda del contenuto di l'oggetto del messaggio. Questo è stato davvero utile, in quanto ho potuto adattare un'istruzione "IF" nel codice per funzionare solo se l'e-mail proveniva da me stesso, quindi sostituire l'azione "Stampa" con il codice che chiama il servizio Ivona.

Ho passato un po' di tempo cercando di adattare il codice imaplib e Pyvona per leggere il corpo delle e-mail, ma questo si è rivelato estremamente complicato - ho presto appreso che i campi principali dell'e-mail (Da, A, Oggetto ecc.) sono formattati in modo molto semplice, ma il testo del corpo dell'email può essere strutturato in molti modi diversi. Alla fine non importava molto, sono stato in grado di ottenere ciò di cui avevo bisogno utilizzando l'oggetto dell'e-mail come campo da cui leggere il testo della notifica.

Ho quindi adattato l'esempio di codice imaplib in modo che, invece di fermarsi dopo ogni controllo della posta elettronica, si girasse all'infinito, controllando le e-mail alcune volte al minuto e leggendo quelle nuove più o meno appena arrivate. Questo è stato utile per i test, ma in pratica probabilmente lo farei controllare un po' meno spesso. Vale anche la pena notare che lo script memorizza la password in testo normale, quindi a un certo punto sarà necessaria l'aggiunta di una crittografia.

Sono sicuro al 100% che questo può essere ottenuto in modo molto più elegante ed efficiente in Python, ma è stato divertente e impegnativo farlo funzionare - ho preso in prestito "Python for Kids" dalla libreria questa settimana, quindi spero che il mio codice migliori mentre imparo di più.

Con lo script di base per ricevere un'e-mail e leggerlo, ho aggiunto i bit extra di codice che avrebbero fatto muovere le orecchie del coniglio e si sarebbero accesi i LED durante la lettura delle notifiche. Il codice che ho usato è su GitHub, ma tieni presente la mia attuale mancanza di abilità Python!

Passaggio 7: un cappello per RabbitPi

UN CAPPELLO per il ConiglioPi
UN CAPPELLO per il ConiglioPi
UN CAPPELLO per il ConiglioPi
UN CAPPELLO per il ConiglioPi
UN CAPPELLO per il ConiglioPi
UN CAPPELLO per il ConiglioPi
UN CAPPELLO per il ConiglioPi
UN CAPPELLO per il ConiglioPi

Una delle cose più iconiche del Nabaztag era il modo in cui muoveva le orecchie quando arrivava una notifica. Potevano essere impostati su un particolare orientamento spostandoli manualmente o impostando una posizione utilizzando il software di controllo: il mio obiettivo era solo per farli muovere.

Non avevo mai usato motori con il Raspberry Pi prima, quindi questo era un altro nuovo argomento di ricerca per me: prima dovevo scoprire con che tipo di motori avevo a che fare, tutto quello che sapevo era che c'erano 2 motori, ciascuno con 2 fili. Leggendo online ho concluso che questi devono essere semplici motori DC piuttosto che motori passo-passo, un fatto confermato da questo istruttivo "Hack the Nabaztag" di Liana_B, che vorrei leggere circa un mese prima.

Ancora una volta grazie alla flessibilità del Pi ci sono molti modi diversi in cui i motori possono essere controllati, ma ho deciso di utilizzare una scheda Adafruit DC & Stepper Motor HAT. Ho usato schermi e ciondoli Adafruit prima e adoro le istruzioni dettagliate e gli esempi forniti di serie.

L'uso di una scheda con lo standard HAT (Hardware Attached on Top) significava che il controller del motore si adattava perfettamente al Pi occupando uno spazio minimo e, poiché utilizza l'interfaccia I2C, ha lasciato liberi i pin GPIO di cui avevo bisogno per Alexa/Clap pulsante e led.

Come previsto, saldare insieme l'HAT è stato davvero semplice e presto l'ho montato sul PI e collegato ai due motorini per le orecchie. Avevo programmato di far funzionare i motori da un power bank USB in modo da aver bisogno di una sola presa di alimentazione, ma questo si è rivelato non avere abbastanza grugnito, non avrebbe nemmeno illuminato il led "Working" sul HAT. Ho deciso invece di utilizzare un adattatore di alimentazione CC per far funzionare il CAPPELLO e le orecchie, ne avevo convenientemente uno di quelli universali con punte intercambiabili a portata di mano. Quello che non avevo era una presa CC per collegare l'adattatore al CAPPELLO. Stavo per partire per Norwich Maplin (di nuovo) quando mi sono ricordato dallo smontaggio che il cavo di alimentazione originale del Nabaztag era una spina CC standard - quindi potevo semplicemente ricollegare la presa di alimentazione originale al HAT - perfetto! Alla fine ho anche riutilizzato l'alimentatore originale Nabaztag, in quanto forniva la giusta quantità di energia.

Con tutto cablato e una tensione sensibile selezionata, ho eseguito provvisoriamente l'esempio Python incluso con DC Motor Hat, codice di esempio che cambiava costantemente la velocità e la direzione del motore per illustrare le diverse opzioni di controllo. Ero così eccitato quando ha funzionato, il mio primo motore controllato da Pi! Ma poi ho notato qualcosa - un lamento acuto davvero forte come qualcuno che fa scorrere un dito bagnato attorno a un bicchiere di vino. Questo non andava affatto bene, volevo che le orecchie si muovessero mentre venivano lette le notifiche e sebbene non assordante il lamento era davvero evidente. Ho provato con diversi voltaggi ma nessun cambiamento. Passando a Google ho scoperto che questo può accadere a causa del PWM (modulazione dell'ampiezza dell'impulso) e che un rimedio può essere quello di saldare piccoli condensatori sui terminali del motore. Guardando i motori questi erano già a posto. Ho anche provato a cambiare la frequenza PWM ma ancora nessun cambiamento. Dopo alcuni esperimenti mi sono reso conto che il lamento si verificava solo quando la velocità del motore veniva cambiata dal codice da bassa ad alta - quindi impostandolo su una velocità alta costante ha eliminato del tutto il lamento - uff!

Ho creato un paio di script Python di prova basati sugli esempi di Adafruit, uno per il movimento durante le notifiche e un altro per far eseguire alle orecchie un "circuito" completo all'avvio, con l'obiettivo di copiare il codice funzionante da questi negli script principali utilizzati per gestire il Interazioni Alexa e Gmail/Ivona.

Passaggio 8: fotocamera e modifiche

Fotocamera e ritocchi
Fotocamera e ritocchi
Fotocamera e ritocchi
Fotocamera e ritocchi
Fotocamera e ritocchi
Fotocamera e ritocchi

Prima di iniziare il montaggio ho testato tutto. Ove possibile su questa build ho usato cavi jumper per collegare i singoli componenti insieme, se le build precedenti mi hanno insegnato qualcosa è pianificare lo smantellamento futuro! Ho anche deciso di disegnare uno schema di collegamento che mostrasse di che colore sono finiti i cavi, i cavi jumper sono eccellenti ma a volte si staccano facilmente quando si stipano i componenti in spazi ristretti!

Ho deciso abbastanza avanti nella build di includere anche un modulo Pi Camera, la versione 2 da 8 MP era appena stata rilasciata e come qualcos'altro di nuovo per me ho pensato che sarebbe stata una buona aggiunta. L'ultima versione del coniglio Karotz aveva incluso una webcam nel suo stomaco, ma questo non ha mai funzionato così bene, ho pensato che la fotocamera Pi sarebbe stata divertente per i selfie ad attivazione vocale e forse anche per il monitoraggio remoto se il Pi potesse gestire l'esecuzione del codice a allo stesso tempo di tutto il resto.

Ho costruito una staffa per la fotocamera con un meccano ricoperto di plastica e l'ho inserita prima nella custodia, quindi ho misurato con molta attenzione dove dovevo praticare il foro svasato nella custodia. Questo è stato sicuramente un caso di "misura due volte tagliata una volta" poiché un buco nel posto sbagliato sarebbe stato un disastro. Per fortuna è venuto fuori punto morto e solo un po' troppo alto, quindi sono stato in grado di compensare aggiungendo rondelle tra la staffa della fotocamera e la base.

A questo punto ho anche aggiunto un cavo di alimentazione Micro USB doppio Pimoroni - questo mi ha dato una bella presa micro-usb sul retro del case e ha fornito una seconda spina di alimentazione. Avevo intenzione di usare la spina extra per caricare la batteria dell'altoparlante e l'ho inserita in modo da poter collegare l'interruttore "mute" originale del Nabaztag per controllare la ricarica.

Passaggio 9: cosa sta cucinando Doc? Ricette IFTTT

Cosa sta cucinando Doc? Ricette IFTTT!
Cosa sta cucinando Doc? Ricette IFTTT!
Cosa sta cucinando Doc? Ricette IFTTT!
Cosa sta cucinando Doc? Ricette IFTTT!

La cosa fenomenale della creazione di un dispositivo IoT in questo momento è l'enorme numero di servizi Web disponibili e il servizio IFTTT (If This Then That) fa un lavoro straordinario collegandoli tutti insieme in un pacchetto semplice e funzionale. Se non l'hai ancora utilizzato, è un servizio online e una volta registrato puoi connettere tutte le tue altre cose basate sul web, come Gmail, Facebook, Twitter e (hai indovinato) Amazon Alexa. C'è una vasta gamma di servizi tra cui scegliere, comprese anche opzioni di controllo per elettrodomestici intelligenti come lampadine, termostati e prese.

Le regole IFTTT sono impostate in "ricette" - un po' come una regola di Outlook o un'istruzione IF in SQL o Visual Basic, ad esempio ho una ricetta che dice "SE qualcuno mi tagga in una foto su Facebook ALLORA mandami un'e-mail con l'oggetto "Santo guacamole, [taggando il nome della persona] ti ha appena taggato in una foto di facebook" - perché questo mi è stato inviato dal mio indirizzo, il RabbitPi poi legge il testo dell'oggetto.

Un altro ottimo uso di IFTTT è con il servizio vocale di Alexa: per la parte IF di una ricetta puoi impostare una frase, ad esempio "il laser" e se poi dici ad Alexa "Trigger the laser" passerà la richiesta a IFTTT, che scatterà la parte THEN della ricetta, in questo caso attivando una presa remota collegata a un laser da discoteca.

Va anche oltre le "cose intelligenti" - se hai IFTTT installato sul tuo telefono (la mia è la versione Android), puoi interagire con esso in entrambe le direzioni, una ricetta usata nel video è: "IF I say" Trigger Chas & Dave" ad Alexa, POI riproduci la canzone specifica "Rabbit" sul mio telefono Android. Funziona anche al contrario: l'app di controllo remoto universale AnyMote sul mio telefono può essere personalizzata in modo che un pulsante specifico attivi la parte "IF". di una ricetta, quindi ho un pulsante sullo schermo che attiva RabbitPi per scattare un selfie e caricarlo su Twitter.

Un'altra funzione consente al RabbitPi di leggere i miei messaggi di testo, sul mio telefono ho una ricetta "SE ricevo un nuovo messaggio SMS ALLORA mi invio un'e-mail con il seguente oggetto "Ehi! [mittente del testo] dice [corpo del messaggio di testo]"

È facile da usare, molto divertente e funziona bene, le notifiche vengono passate avanti e indietro molto rapidamente, specialmente allo switch WeMo Insight che ho, che è praticamente istantaneo. Avere IFTTT e RabbitPi rende la connessione di cose e servizi davvero semplice.

Passaggio 10: assemblaggio e test

Assemblaggio e test
Assemblaggio e test
Assemblaggio e test
Assemblaggio e test
Assemblaggio e test
Assemblaggio e test

Ora è arrivata la parte difficile: stipare tutti i componenti nella custodia! Ero abbastanza sicuro che sarebbe andato tutto bene, ma l'assemblaggio effettivo è stato davvero complicato, ho fatto buon uso di alcuni strumenti chirurgici e pinzette per infilare i cavi attraverso piccoli spazi.

Una volta che tutto è stato fissato saldamente, ho aggiunto alcune basi per fascette autoadesive in modo che i molti fili potessero essere tirati insieme in modo ordinato - questo era davvero importante perché non volevo scollegare accidentalmente nessuno di loro quando rimontavo la custodia.

Passaggio 11: coniglio pronto?

Coniglio pronto?
Coniglio pronto?
Coniglio pronto?
Coniglio pronto?
Coniglio pronto?
Coniglio pronto?
Coniglio pronto?
Coniglio pronto?

Ora che tutto il lato fisico della costruzione era stato fatto, era giunto il momento di "tagliare il cavo", rimuovendo il RabbitPi dalla comodità del suo cavo ethernet, monitor e tastiera in officina in modo da poter finire il codice altrove tramite SSH (il segnale wireless è davvero debole lì dentro!)

Sistemato sulla scrivania del mio ufficio, ho avviato il coniglio e - nessuna connessione wi-fi, niente. Sapevo che doveva esserci un segnale poiché il mio telefono funzionava bene: c'era un problema con l'adattatore di rete sul Pi 3 di cui non avevo sentito parlare? Una rapida ricerca su Google mi ha informato che il Pi 3 troverà un segnale Wi-Fi solo se il router sta trasmettendo sui canali 1-11: il mio era impostato sul canale 13! Poche modifiche dopo e siamo stati collegati, un grande sospiro di sollievo.

Poi è arrivato l'ordinamento dei vari script. Per prima cosa ho modificato lo script main.py del codice AlexaPi, aggiungendo righe extra in modo che oltre a far lampeggiare i suoi LED all'avvio, RabbitPi avrebbe anche eseguito un bel movimento dell'orecchio. Ho anche sostituito il messaggio standard "Hello" con un giocoso effetto sonoro "boing" per divertimento.

Il secondo script si chiama rabbit.py (SWIDT?) e contiene tutto il codice per recuperare i messaggi di Gmail e leggerli con Pyvona. Ho anche aggiunto del codice Twython che ho adattato da un tutorial "Tweeting Babbage" di Raspberry Pi, consentendo a RabbitPi di scattare una foto e caricarla sul suo account Twitter (@NabazPi). Ho aggiunto un po' di movimento dell'orecchio e flash LED per darti un chiaro avviso quando la foto sta per essere scattata, oltre a un rumore dell'otturatore e la conferma del tweet letto da Pyvona.

Infine ho aggiunto un'istruzione IF al codice gmail di imaplib, in modo che se l'oggetto dell'e-mail fosse "selfie", il RabbitPi avrebbe fatto la sua cosa selfie, ma altrimenti avrebbe letto l'oggetto dell'e-mail normalmente.

Il codice che ho usato è disponibile su GitHub - leggi il file ReadMe!

Come tocco finale ho stampato un logo Raspberry Pi su carta trasparente e l'ho incollato all'interno della custodia RabbitPi, in modo che il LED bianco della pancia illumini l'immagine attraverso la sua pelle traslucida.

Passaggio 12: Nabaztag è tornato

Nabaztag è tornato!
Nabaztag è tornato!
Nabaztag è tornato!
Nabaztag è tornato!
Nabaztag è tornato!
Nabaztag è tornato!

Fatto tutto, c'era solo il video da fare. È stato molto divertente mettere alla prova il RabbitPi sulla fotocamera, l'unico aspetto negativo è stato l'editing del filmato HD sul mio vecchio laptop in seguito. Per alcune notifiche (principalmente messaggi di testo a causa del mio terribile segnale Vodafone) ho ridotto le pause tra azione e notifica, altrimenti sarebbe stato un video lungo e noioso, ma la maggior parte mostra la vera velocità di risposta.

Ho sperimentato l'utilizzo di un sensore di applauso per attivare il servizio Alexa (come visto nel video Snap to it Alexa), ma l'ho lasciato fuori dalla build finale in quanto non era abbastanza affidabile quando c'era rumore di fondo. So che altri esperti stanno lavorando sull'utilizzo di telecomandi IR, controller Wii e persino sull'ascolto attivo con il codice AlexaPi, quindi ci sono molte opzioni per il futuro.

Spero di aggiungere un anello neopixel adafruit per sostituire il LED della pancia in quanto ciò renderebbe le notifiche visive molto migliori, inoltre vorrei considerare la "disattivazione dell'audio" delle notifiche vocali durante la notte. Anche i miei figli hanno fornito ottimi suggerimenti e ora che mi sento un po' più a mio agio con Python lavoreremo insieme per espandere la gamma di notifiche, ad esempio in modo che il testo di conferma del selfie venga preso da un elenco di valori a caso, e così il coniglio può essere istruito a provare a ballare la macarena con le sue orecchie e i suoi LED.

Mi è capitato di avere un altro Nabaztag qui, oltre a un successivo coniglio Karotz, quindi potrei anche costruire qualcos'altro con loro - è allettante sperimentare il monitoraggio remoto e sensori di ogni tipo! È una piattaforma hardware ideale per il Pi con il suo case, i motori e il pulsante di dimensioni perfette. Mi chiedo se i produttori originali abbiano una scorta di Nabaztag invenduti da qualche parte, come la discarica di Atari? Sicuramente con un po' di bontà stampata in 3D per il montaggio della fotocamera e del PI e un HAT personalizzato per far funzionare i motori, i LED e l'audio farebbero un kit ideale per la creazione di Raspberry Pi, ogni club di codifica dovrebbe averne uno!

Se ti piace questo progetto e vuoi vedere di più, puoi controllare il mio sito Web per gli aggiornamenti sui progetti in corso su bit.ly/OldTechNewSpec, unisciti a Twitter @OldTechNewSpec o iscriviti al canale YouTube in crescita su bit.ly/oldtechtube - dai alcune delle tue vecchie tecnologie una nuova specifica!

Concorso Internet delle cose 2016
Concorso Internet delle cose 2016
Concorso Internet delle cose 2016
Concorso Internet delle cose 2016

Secondo classificato al concorso Internet of Things 2016

Consigliato: