76. Furbypi

For this project, I'll be utilizing the same Google Home project, and combining it with the most infamous robot from the '90s, the Furby. To summarize what a Furby is, it is a robot that can move, chat, and learn through its own language, and its appearance is similar to that of an owl/hamster hybrid. Created by Tiger Electronics, it gained traction due to the way it acted and even caught the attention of the NSA.

<Entire unit>

We will need to modify the Furby so that it can connect to the Google Home system, and so respond when it hears the command and responds back to the user. To do this, We will need to take apart the Furby until we expose its electronics. The way the Furby works is through the motherboard, which has all the preprogrammed voices and behaviors into one, whilst connecting to the motor, switches, and other sensors. It moves through a set of gears on a camshaft, driven by one motor, and the varying switches make sure the motor moves until a certain position is desired.
We will only need the motor and the switch that is located behind the set of gears.

<Furby internals>

To get started on the Google Home aspect, we will need to modify the code from Google AIY files-one of which drives commands for the Google Assistant, such as the Assistant_demo.py from the voice examples. The file shows sections that go in order: idle, waking up, listening, responding, and back to idle. For each section, we need to make it output from 3 GPIO pins on the Raspberry Pi. These 3 outputs will be connected to the Arduino Nano, which it will drive the motor with the L298N motor driver. The Arduino will take these signals from the Raspberry pi, and drive the motor accordingly depending on which GPIO outputs. 

To describe the process, the Raspberry pi detects the presence of the words "Hey Google", the Raspberry pi will generate a digital signal (mostly as a "1" signal) to the first GPIO pin, and send it to the Arduino. The Arduino will then take that signal, and drive the motor to start for 300 milliseconds, then stop. The process continues when Google Home starts to respond, and the Arduino finds the other signal from the different GPIO pin and will turn on the motor as long as it finds that signal. 

<All parts>

The switch in the back of the camshaft will act as a trigger as the motor turns the gears. In this process, as Google responds back, if the switch is triggered, it will cause the motor to turn the other way, and it turns back again if triggered by the switch. This will give it a random state as the motor switches direction randomly, giving it a feeling like the Furby was alive. 

As the Furby is done responding, the same GPIO is still emitting the signal, causing the motor to turn even when the Google Home stopped responding. To solve the issue, I used a voltage divider and connected the signal part to the A0 of the Arduino, and the Power part to the led connections. I need to edit the Python code so that as it responds, the main led will dim, causing the voltage value to change, and so be the second part of the code. Now, as it goes to responding, the motor will move only if the GPIO pin and the voltage value are correct. if neither is correct, the motor won't move.

<Assembly>

And finally, as it reaches the third and final section of the code, The Google Home will turn off the main led and sets itself up to become idle again. There, I made it so that the 3rd GPIO pin will output the signal to the Arduino, and will move the motor for 300 milliseconds, giving an indication that the Google Home Furby is done.
This is the entirety of how the AIY Google Home works when you combine it with the Furby. The enclosure is made through a 3D printer, but any enclosure will work as long it can fit all the electronics.

<Concept>

Make sure that sufficient power goes through the Raspberry Pi, and have an external 12-volt supply for the motor driver. Once you got it with all the connections in place, close it up with glue, re-assemble the Furby, and attach the 2 parts together. At this point, you can have fun with the Google Assistant, but now a Furby will respond through commands, and so on.

<Test>

Comments

Popular Posts