Let's Make Robots!

RoboKitten

Interacts with human beings, meows and purrs

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...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hi. I am wondering why the extra QT113H circuit for touch sensing. It says you have three 28X2s and those all have touch sensing built-in. Let me see, —16 pins may be used as touch sensors on each 28X2. I am not sure why you are using three of the 28X2s. You must have additional things in mind for it to do. (?)

Hi Dan, you're right. 28X2 has built in touch sensors. Cool.

Oh Markus, that sound will probably scare your litle one away. But ok, that's a start and I am looking forward to that project. I am interested in that sound chip, found them already in Taobao ;-)

Yep, that is exactly the sound if you step on the tail of a cat :P. Need to find some other meowing...

Btw, order some LM386 too. You need an amplifier for the chip. I'll draw the complete schematic tomorrow.

this is pretty interesting!another petbot!:) im impressed and waiting for the results.keep it up!

I find it strange to use a power amplifier to amplify a microphone signal up to something that can drive a uC analog input pin. It will probably work, but still not the intended application for the LM386 chip.

Without being a real op-amp expert I think I would have chosen something like an LM358 instead. But eventually seeedstudio know what they are doing.

Also, why do you want the transistor to kill the input, isn't it easier simply to ignore the input in software when you know there are motor noise around?

You can ignore the input, but during that the cap on the output of the sound sensor circuit get still charged. Calling then that input, you sense a sound where maybe no sound is.

Wow Markus, another project started? You are really keeping yourself busy ;-) Nice project, I will watch this since I do have some ideas regarding human interaction too.

More a concept at this moment, but I am building the board and doing some experiments. The voice recorder chip is surprisingly cheap here in China and the playback quality very good. Drawback is that you need up to 13 I/O pins of your microcontroller if you want to store 600 messages. The interesting thing is the capacitive touch sensor. You can put many sensing electrodes on the body of the robot to imitate a kind of skin. Pleo is using this technology.