The PIC Furby was one of my last year college projects
I did for my CTEC1630 Embedded Systems Design class (November 2000) towards my diploma
for Computer Engineering Technology COOP for Niagara College.
Please feel free to browse the project below.
The project consists of a Furby™ toy whose microprocessors were removed and replaced with PIC16F84 chip on a PIC prototype board.
The toys moves commence a command being received via RS-232 communication or one of the toy’s sensors being pressed. The prototype board has a MAX232 driver chip with self-contained charge pump which generates the positive and negative voltages required for the RS-232 interface. The RS-232 specifics are 2400-baud rate; no parity, and one stop bit.
The single-chip PIC micro-controller functions as software UART, receiving a single serial ASCII character that is then interpret as a command for toy’s new micro-controller to execute. A shift register is used to take in sensors information form the toy. This shift register is hooked up to the PIC micro-controller where it deciphers the inputs.
The user may view the toys’ movements by press pre-defined characters or using the menu features on the front-end c++ software. Also, by pressing sensors on the toy, more movements and wav files are executed. For example, press ‘t’ on the computer keyboard will result in a wav file being played and the character "t" sent to the toy via RS-232 standards. When the "t" is received, the Talking function call will be called and executed; and then the toy will reset in preparation for the next command.
Equipment needed: one Furby(TM) toy; one 74HC165 shift register, one PIC Prototype board. (If a PIC Prototype board is unavailable: PIC16F84, MAX232.)
PIC16F84 is a 18-pin Flash/EEPROM 8-Bit Micro-controller which is used to run the toy. The shift register is used for data acquisition of the toy's sensors and the MAX232 is used to send and receive information via RS-232 standard communication.
In the PIC software design, there are three main parts: UART software, Motor Movement and Data Acquisition. There is also a front end C++ program that I made to use as a user friendly interface to the toy. The software is half put together (but works) and could really be spruced up. A project for another time. :)
The UART software allows me to send and receive information from the computer to the PIC via the computer's COM Port using RS-232 communication standards.
A series of Function Calls/Methods were used to make the motor move forward or in reverse. The FORWARD and REVERSE function calls made sure that only one output is set on and the other output is set off at any one time. These function calls are called by MOVE_FORWARD and MOVE_BACKWARDS which is used to set how long the motors stay on in the direction needed.
To capture inputs from the toy itself, a shift Register (74HC165 chip) was used for the hardware for data acquisition. Through software, you are able to clock in each bit when needed.
Feel free to download the following files. Please give credit.
It is nice when I find mentions of my project online. Here are a few things I have found and saved
All the images with electronics and Furby™ inners are mine. All adorable Furby™ images you see on this website are by Alexas_Fotos-686414 of Pixabay who has allowed his/her Furby™ images to be Public Domain. No attribution is required by the photos are so nice I simply had to make mention.
If you need more information or have a question, don't hestitate to contact me.
JuanitaHydabrek At Gmail Dot Com