The furby's in-built sensors and actuators:
tongue touch sensor,
belly touch sensor,
The furby's main (and only) motor was dead, so I added other motors.
Step 1: Skin the Bastard
Once it's off you'll see connectors on the left and right of the furbies body, these are the wires connected to all the sensors. You should even see written next to some of the wire connections 'S1' 'S2' (sensor 1 and sensor 2, etc). Figure out which wires go where.
Above the furby's eyes:
-In the center is a light sensor (changes resistance in response to light)
-On one side of the light sensor is an IR emitter (like on your TV remote)
-On the other side is an IR receiver (like on your TV)
On the furby's sides:
-wires from the belly touch sensor
-wires from the speaker
-wires from the tongue touch sensor
-wires from the microphone
solder longer wires onto any sensor wires you want to connect to your PIC, label them.
Step 2: Connect the Sensors
So if your touch sensor is 'normally open' (like the tongue and belly sensor on the furby) then you'll want to program your PIC to wait for a high on the IO line (a high signifies the touch sensor has been touched). If you touch sensor is 'normally closed' (like the springy bump sensors I made and will describe later), do the oposite obviously.
To connect a light sensor (a light sensors resistance changes according to the amount of light shining on it) use the second circuit. Connect it to the analog to digital converter (ADC) pin of your PIC. Mess with the potentiometer setting to get the voltage to a range that works with your program.
To connect a small speaker (like the 32ohm one on the furby) to the PIC use either the third or fourth circuit. I used the capacitor circuit initially, and it worked great, til I added motors to the PIC (later step), then for some reason the PIC was having trouble supplying the current needed for the speaker. So the fourth circuit (the one with the transistor) would be better to use cause it wouldn't tax the PIC's power output capabilities.
Step 3: Add Motors
To control motors from a PIC (or other microcontroller) one must use an H-bridge (http://en.wikipedia.org/wiki/H-bridge). You can build your own using transistors or you can buy an h-bridge IC.
I used an L293 H-Bridge IC to drive the motors, it's a nice small, simple IC. See the diagram below for how the IC works.
As you can see from the table below the diagram, all your PIC has to do to control the motor is to change the high/low states on the DIRA1 and DIRB1 pins to control motor A, and the DIRA2 and DIRB2 pins to control motor B.
Makesure to put a capacitor between the motors' power and ground. A different power supply (higher voltage) from the one that supplies your PIC must be used for the motors. However the grounds should be shared between the two power supplies.
Because motors can cause voltage spikes when turned on and off, make sure to put a capacitor between the motors power and ground. Also put a cap between the PIC power and ground.
Step 4: Add Bump Sensors
buy some papermate mechanical pencils (as in picture #1)
snap the tip off of one.
yank out the spring (picture #2)
Solder an insulated electrical wire to one end.
get some pipette tips (this is what I used but any number of things could be used) as in picture #3
Get a thin (should fit inside the spring) stiff metal rod. I used a thin metal rod from a broken umbrella I found on the street. Solder an insulated electrical wire to one end (picture #4).
Stick the nonsoldered rod end through the pipette so that about half an inch protrudes (picture #5)
Stick the pipette/rod into the spring and bend the metal rod so that its tip touches the spring around it, and glue the pipette/rod base the the base of the spring (picture #6).
You're done. NOTE: this is a 'normally closed' bump sensor, so your PIC program should be waiting for a 0 on its IO pin to signify a bump (unlike the tongue and belly touch sensors of the furby which signify a touch by a 1 on the PIC IO pin).
Step 5: Write the Code
Intro to PIC microcontrollers:
MATLAB to PIC serial control:
IO Pin Interrupts
PIC Debugging Board
Step 6: Watch It Go!
Video of the furby on its maiden voyage:
To learn more about the basics of robotics buy this book:
It's the book I started with years ago, still the best starter book.
To learn about PIC microcontrollers here's a Great PIC Intro Book