5174

bechele is a perl based animatronics software, that allows to record joystick- and play servo movements according to sound. For example it may be used, to animate moving and speaking robot puppets. The software is usually running on a Raspberry Pi like mini computer under Linux.

bechele,de is a Raspberry Pi project, that enables you to create movement models
like hand puppets, dance puppets or animal robots with simultaneous output of
audio data and servo movement to awake these models to life, without the need of
programming.
See also https://bechele.de
Instead of a Raspberry Pi a OrangePi PC or any other rasperry pi like linux 
based micro computer can be used - For Raspberry Pi and OrangePi PC separate SD
card images exists.  

To move a movement robot syncronized to music or speech, it is required to add
the movement in some way according to the tone. In this project this happens by
moving a joystick by hand synchronous to the sound. At the same time the 
movements will be output to the servos to be able to check the results on the 
fly. The number of recording channels is not limited by software but by chip 
timing and hardware. There is a hardware limit of a maximum of 64 PCA9685 
boards. Another limit is the chip timing for addressing all servos. Timing is 
depending on the refresh rate of the movements. Currently this is 50 ms or 20
Hz. With 20Hz refresh rate a maximum of approx. 120 Servos can be addressed. 
If you need to address more servos you need to change the refresh rate, 
otherwise there is not enough time to set all servos. In case of the example 
puppet, the number of Servos in use is only 8. This limitation is just 
coincidencial and not a limit for other projects. 
Because with a joystick only two channels can be recorded, the recording of all
channels need to be done sequentially. In case of Mr. Bechele I recorded first 
the mouth movement according to the speech audio mp3 file. Because mouth 
movements are very quick they need full concentration to acieve a more or less 
accurate result. Therefore I just recorded one channel only, though I had two 
channels available. Then I recoreded the eye lid movement with also only one 
channel but with two servos activated at the same (x) direction. 
Finally I recorded the eye movement with two channels at the same time. The 
audio data was divided in single short sections, to allow the puppet player to
respond in the speech pauses. After finishing recording, audio data and movement
can be output step by step by pressing a button, so that the audience has the 
impression the puppet really talks to the puppet player.