When we last left Gizmo they were moving and speaking. But I still wanted to wire up some of the original sensors. So I, eventually, dusted everything off and got started.

I found, like my pi radio, I couldn't even boot up the pi, so I had to install Raspbian from scratch, and give Gizmo back all their functionality. I also discovered that in the meantime the Speaker pHAT board has been retired, but the library is still up on github.

Then I could get on with the new work. Only two of the buttons remained, so I followed some tutorials on push buttons for raspberry pi and wired up the tongue button and belly button, with resistors.

The space between a Furbys eyes contains an IR transmitter, IR receiver, and photoresistor, but I only wanted to use the photoresistor, so I followed a tutorial on light sensors for raspberry pi and wired it up with a capacitor on a mini Lilypad protoboard, because apparently raspberry pis don't have analog input read?!

Then I shortened all the wires so they would fit inside Gizmo's shell, and trimmed various sticky-out bits on the inside of the carapace. Removed the back pet button lever, and widened the hole, to make room for the power cables to the raspberry pi and the motor shield. Squished all the bits and pieces inside the carapace, screwed everything up tight again. And finally, re-skinned Gizmo.

Photos )



Gizmo re-skinned, front
Photo by [personal profile] chebe



I got set up to take footage of the new Gizmo, and demonstrate how I am the real monster, when I noticed that Gizmo would speak, but no longer moved. Witness for yourself.



I despaired. I re-opened Gizmo again. Noticed a strange chemical smell. I disassembled and rebuilt the gear mechanism itself, three times, in case there were bits of thread or plastic lodged somewhere. Another wire to the motor broke off (most of the original wires broke at some point during the build) and I resoldered it. Then I tried to test my work, and found that once again the raspberry pi wouldn't boot. I went back over my photos, followed the links from the first post to other peoples documentation on what the insides should be like in case I messed something up. And then I noticed it. Gizmo's left eyelashes are partially melted. Gizmo's left eye is where the original motor lives. Combined with the chemical smell, I realised something is very broken. Whether it's the motor itself, or the worryingly attached capacitors, I don't know. Maybe at some point I will conduct an autopsy and try to salvage parts. But right now I'm just feeling very dispirited. I'm sorry Gizmo, it almost worked.

Part 1 | Part 2 | Part 3 | Part 4 | Part 5

Motorised Turntable

2020-Mar-27, Friday 07:05 pm
Last November, as part of #Makevember, I started on making a motorised turntable, following this Adafruit tutorial. I sourced the parts and put together the circuit quickly enough.

Photos )

But, if you treat it well, as a simple tool it works as desired.



Turntable being tested at Science Hack Day
Photo by [personal profile] chebe

Gizmo can speak (albeit with a new accent), and Gizmo can move, now we have to tie the two together so they only move when they speak. And it's all software.

Again, we're following an adapted version of Furlexa project.

First we need a python script, a more structured version of the motor/motor.py from Part 3. Separate the parts into setup(), start_furby(), and stop_furby(), and add a main(). We'll also need the sound device status file path from Part 2, /proc/asound/card0/pcm0p/sub0/status.

furby.py )

This script only sets the motors in motion (or stops them) based on the current state of the status file when invoked, and exits. It doesn't keep running while the motors do.

In order to keep track of the changes of the status file a monitor script is needed. (And because we made the changes to PulseAudio in Part 2 the status will actually change.)
output-monitor.sh )

Make the script executable with chmod +x output-monitor.sh, and run with ./output-monitor.sh. Then make some sounds in another ssh session. There you go, singing, dancing, Gizmo!


But hey, wouldn't it be nice to make this Gizmo's default behaviour without having to invoke it every time? Let's get it to run at startup. We're going to set it up with systemd as described here.

systemd )

Reboot to pickup changes. And finally, Furby/Gizmo is all singing, all dancing.

(Small caveat; Furby/Gizmo will do a little shimmy with every pop/click out of the speaker.)

You can install Alexa if you want, I won't be. I do have other plans to extend the project a bit but this is the bulk of the project, and plenty to freak your friends out. Bonus, you don't even have to close up and re-skin Furby/Gizmo. Don't believe me? Have a look for yourself.


Part 1 | Part 2 | Part 3 | Part 4 | Part 5
More assembly, and time to make things happen.

Adding some muscle )

Full physical )


Part 1 | Part 2 | Part 3 | Part 4 | Part 5

Profile

chebe: (Default)
chebe

Syndicate

RSS Atom

July 2025

M T W T F S S
 1 23456
78 910111213
14151617181920
21222324252627
28293031   

Expand Cut Tags

No cut tags

Style Credit