RabbitPi - Alexa aktiverad IFTTT ansluten, örat-vickar IoT assistent (7 / 12 steg)
Steg 7: En hatt för RabbitPi
En av de mest ikoniska sakerna om Nabaztag var hur det skulle flytta sina öron när en anmälan kom. De kan ställas in till en viss orientering antingen genom att manuellt flytta dem eller genom att ange en position med hjälp av styrprogram - mitt mål var bara att få dem att flytta.
Jag hade inte använt motorer med Raspberry Pi innan så detta var en annan ny forskning ämne för mig - första jag behövde till finna vad för slags motorer jag hade att göra med, allt jag visste var det fanns 2 motorer, alla med 2 ledare. Läsa upp online avslutade jag dessa måste vara okomplicerad likströmsmotorer snarare än stegmotorer, ett faktum bekräftas av denna fantastiskt bra instructable "Hack the Nabaztag" av Liana_B, som jag önskar att jag hade läst om en månad tidigare.
Ännu en gång tack vare den Pi flexibilitet finns det många olika sätt motorerna kunde kontrolleras, men jag beslutade att använda en Adafruit DC & Stepper Motor hatt ombord. Jag har använt Adafruit skärmar & prydnadssaker innan och jag älskar de detaljerade instruktioner och exempel som kommer som standard.
Med hjälp av en styrelse med HATTEN (hårdvara fäst på toppen) standard innebar den motor controller skulle passa prydligt ovanpå Pi tar upp minimal plats, och eftersom den använder gränssnittet I2C lämnade gratis GPIO stiften jag behövde för Alexa/klappa knappen och lysdioder.
Som väntat lödning HATTEN var tillsammans verkligen enkelt och snart hade jag det på PI och anslutna till de två öra motorerna. Jag hade planerat att köra motorerna från en usb driva bank så att jag skulle bara behöver en enda makt plugg, men detta visade sig inte för att ha tillräckligt grunt, den skulle inte ens tänds den "arbetande" ledde på HATTEN. Jag beslutade istället att använda en DC strömadapter till springa den hatt och öron, bekvämt hade jag en av de universella dem med utbytbara tips händig. Vad jag inte hade var en DC-uttaget och Anslut adaptern till HATTEN. Jag var på väg lämna för Norwich Maplin (igen) när jag mindes från teardown att Nabaztags ursprungliga strömkabeln var en standard DC plug - därför jag kunde bara re-wire det ursprungliga eluttag till hatt - snyggt! Till slut återanvändas jag också ursprungliga Nabaztag strömförsörjningen, enligt det precis rätt mängd av makt.
Med allt trådbunden upp och en vettig spänning valts sprang jag preliminärt i python exempel ingår med DC Motor hatt, exempelkod som ständigt ändrade hastighet och riktning av motorn att illustrera olika möjligheter. Jag blev så upphetsad när det fungerade, min första Pi-kontrollerade motor! Men sedan märkte jag något - ett riktigt högt högfrekventa whine som om någon kör ett vått finger runt ett vinglas. Detta var inte bra alls, jag ville ha öronen flytta medan anmälningar lästes och ändå inte öronbedövande gnäller var verkligen märkbar. Jag försökte olika spänningar men ingen förändring. Att övergå till Google fick jag veta att detta kan hända till följd av PWM (pulse bredd modulering) och att en åtgärd kan vara att löda små kondensatorer över motor terminalerna. Titta på motorerna var dessa redan på plats. Jag experimenterade också med ändra PWM frekvensen men fortfarande ingen förändring. Efter några experimentera insåg jag att gnäller bara hände när hastigheten på motorn som ändrades av koden från låg till hög, så att du ger en konstant hög hastighet elimineras den gnällande alldeles - phew!
Jag skapade ett par test python skript baserat på de Adafruit exempel, en för rörelsen under anmälningar och en annan att göra öronen utföra en fullständig "krets" vid start, som syftar till att kopiera arbetande koden från dessa i de huvudsakliga skript används för att hantera de Alexa och Gmail/Ivona interaktioner.