RoboKitten
Update 29/05/2012
Eye mechanism designed. Built the mouth, just missing the rubber pipe.
Update 28/05/2012
Schematic of the ISD2560 added. A 2 DOF rubber pipe robot mouth designed.
Rubber tube robot mouth overview
Backside of the construction
Front view
Update 27/05/2012
Just some basic programming done; video of LED mouth and sound demonstration added.
Update 26/05/2012
Main board under construction. Voice recorder is already working. Downloaded some real cat sound mp3s and uploaded it to the ISD 2560 chip. Next step is to build the LED mouth.
Main board with voltage regulator, one microcontroller and voice recorder chip ISD 2560
Got some fancy soap boxes, just a few cents per piece. I'll maybe use it for the head.
Soap box - Option for the head, if the servos fit into
7 square 5 mm low current LEDs as a mouth. Each LED is optical insulated from each other by a stripe of carton to prevent extraneous light illumination
Backside of the LED mouth
The LED mouth is controlled by four I/O pins of the microcontroller. Multiplexing or driver transistors unnecessary
RoboKitten is a research platform for studying human-robot interactions. The robot is 330 mm tall and is equipped with 3 servos that control the eyes and eyelids motions. With this simple setup and the possibility to meow (hungry, want go out, want come in, want attention, help) and purr (feel well) RoboKitten can generate some social interaction dialogues as a real cat. The robot will be controlled by 3 microcontroller --- 1 master with sensors and main program and 2 slaves with the output devices and the driving programs.
First design draft, made with Sketchup
The sounds (of a real cat) are stored on the Single-Chip Voice Record/Playback Device ISD 2560 with a total duration of 60 seconds. The chip is here in China for around 5.5 USD available at taobao.com. The recordings are stored in on-chip nonvolatile memory cells, providing zero-power message storage (typically 100 years retention).
The ISD 2560 has 10 address inputs (A0-A9). By applying the according H/L states on the adress inputs, the desired storage adresss will be called to record or playback a message. The chip may be thought of an analog tape recorder with the capability of positioning the record/playback head anywhere on the tape within the address resolution. The ISD 2560 has a total duration of 60 s and a resolution of 100 ms, therefore max. 600 messages with a duration of 100 ms per message can be stored on the chip. As we have only two messages to store, we don't need full resolution of 100 ms for address space, so we can tie address pins accordingly together to reduce the need of the I/O pins of the microcontroller dramatically (only one output pin of the microcontroller is needed to call the addresses of the two messages).
The following table shows the address space of the ISD 2560. Multiplying the decimal value with the resolution (100 ms = 0.1 s), we gett the time, where the message on the "tape" is stored. The binary value 0011111010 for instance is eqal to 250 in the decimal system. 250 ·0.1 s = 25 s. This means, if we apply 0011111010 on the address inputs, we can record or playback a message, 25 s away from the beginning of the thought tape.
Table address space ISD 2560
RoboKitten has four sensors:
- Microphone to detect sounds
- Touch sensor to detect contacts with a human body
- Sharp IR sensor to detect movements in front of RoboKitten
- Accelerometer to detect movements of the robot itself
The sound sensor is basded on the Seed Studio schematic here. The only modification is, that the microphone can be enabled/disabled by a transistor to avoid that the robot detects its own sound.
Schematic sound sensor
The capacitive touch sensor is based on the charge-transfer touch chip QT113.
Schematic touch sensor
As a basic program example, the following protocol has been considered:
When powered, RoboKitten starts to meow randomly for help with according facial expressions. If a touch, a shake, our a loud sound is recognized, RoboKitten starts to scream (because it is scared) with according facial expression, then meow randomly again. If a low noise or a movement in front of the robot is recognized, RoboKitten changes its behavior and meow continuously to get attention. If RoboKitten is then cradled, touched and kindly words are spoken, RoboKitten starts to purr. If not treated well (too loud words, too heavy shaking or too less petting of its head, the robot starts to scream again. On the other hand, when treated well, RoboKitten falls asleep. The eyes closes and Robokitten starts to dream (eye movement visible under nearly closed eyes, some random sighs). The robot can be only awoken by a hard shake or loud words. If not, a time out occurs after a while, and the procedure starts with random meowing again.
Imagine, the robot is placed in a waiting room with a hidden camera. What the patients will do, if the robot starts to meow...
Interacts with human beings, meows and purrs
- Actuators / output devices: 1 loudspeaker, 1 LCD 16 x 2 or just a LED mouth, 5-6 micro servos
- Control method: autonomous
- CPU: 3 x 28X2
- Operating system: Windows 7
- Power source: 9V-6V
- Programming language: Basic
- Sensors / input devices: Sharp IR, microphone, 3-Axis accelerometer, Touch sensor
- Target environment: indoors