In this instructable I will be demonstrating how to control Teddy Ruxpin with a phone and the help of an arduino. After this modification Teddy Ruxpin will work as Google Assistant(or just about any other virtual assistant) and be able to lip sync voice recordings.
This is just a start on what I would like to do with Teddy Ruxpin. See “Stay Tuned!” step.
About Teddy Ruxpin
Teddy Ruxpin was a teddy bear from the eighties made by Worlds of Wonder(WoW) that had the ability to talk and sing using cassette tapes with programmed movements for the mouth and eyes of the Bear. Teddy Ruxpin was very popular however, because of poor management WoW shut down 3 years after releasing the bear. Teddy Ruxpin came back a few more times but for the most part was unsuccessful.
This will only work with Teddy Ruxpins manufactured by Worlds of Wonder. It may be different depending on the date your Teddy Ruxpin was manufactured. But I am unsure.
Code is TERRIBLE I hope to get back to working on teddy in the future but I have a few other projects in the way right now.
Step 1: Tools Needed
- Soldering iron
- Wire cutters
- Wire strippers
- Screwdriver set
Step 2: Parts Needed
- Audio cable
- Power Supply Options*
- 9v power adapter for Arduino
- 9v battery connector with Arduino plug
- Old Smartphone (best with google assistant)
- WoW Teddy Ruxpin**
- If your Teddy Ruxpin speaker is unclear then you will need to buy a new speaker module or a speaker you can plug directly into a jack.
*You can also connect power straight to arduino however for ease of use im using a connector
**It is best if your Teddy Ruxpin has working motors but if not it is repairable with some surgery. Broken cassette players don’t matter.
My Teddy Ruxpin was purchased at a garage sale. It had stuck motors and the speaker was too quiet for me. There are several youtube videos to unstick motors and the speaker was an easy fix by simply attaching a store bought speaker to the headphone splitter or replacing the internal speaker with a different one.
Step 3: Taking Apart Teddy Ruxpin
Unfortunately, I don’t have photos from when I took mine apart
- Start by removing the back of Teddy Ruxpin
- Label and cut wires from connectors at side of board(first from bottom is lower jaw next is upper last is eyes)
- You only need brown+red wires so cut and label those
- Remove board
- Cut unnecessary wires short(leave speaker wires if you plan on using teddy ruxpins built in speaker, if you want to utilize servos keep other wires from motor connector too however in this tutorial I do not utilize them.)
Step 4: Setting Up Phone
Phone setup is very simple
- Set the assistant voice to your favorite
- Make sure that access with voice match is turned on
- Set sleep to never
Step 5: Assembly
- Cut aux cable in half
- Strip both outside off cables
- Strip the inside cables
- Solder ground and positive onto the internal speaker wires with one half of the audio cable(I used my own speaker to make him louder)
- Connect motor wires to shield(Eyes on M2 both jaws on M1)(My wires are wrong color because I extended them after cutting them too short)
- Solder other audio cable to arduino on A0
Step 6: Code
I Have provided two .ino files. Code may be updated later as I improve it. I recommend you check occasionally for updates as they will probably have large improvement.
TeddyMotorTest.ino is to test the Motors on Teddy Ruxpin. It runs the eyes and the mouth 2 seconds apart. It waits two seconds, blinks the eyes.
SoundToSpeech.ino uses the audio cables analog readings to know when the mouth should move. I am still perfecting this code but it does work.
How does the code work?
My SoundToSpeech program works by reading the analog input from the phone and utilizing that to set the volume of the sound which it does by setting the boolean for that volume to true. After that it simply moves the jaw different distances up and down depending on volume unfortunately my current version does not account for the time of the sound. But a fix is coming very soon.
- Catches sound when google assistant is triggered
- Inaccurate jaw movements
- Weird sensitivity sometimes(you may need to adjust code yourself very easy just edit numbers in the readsound function)
- Blinking is currently disabled because I did not make this compatible with multitasking(first priority to add this back)
For More Details: Phone+Arduino Controlled Teddy Ruxpin