OUR NETWORK:TechLore Explore3DTV MyOpenRouter MediaSmart home TiVoCommunity See all... About UsAdvertiseContact Us

 
Learn about scoring Forum's Raw Score: 1.58141E7
October 16, 2008 12:45 PM

Categories: Robot Hacks and Mods

Rating (1 votes)
  • 1
  • 2
  • 3
  • 4
  • 5
Rate This!


Member Avatar

RetroPlayer

Member
Joined: 03/07/2008

First let me warn you, if you have small children that love Elmo with all their heart, you may not want to let them view this thread. :)

For all the help Sevik has given me while working on reverse-engineering the Elvis bust, I decided I needed to send him a thank you gift. I was originally going to send him a bust since he didn't even have one, but he isn't so much into that anyway. So I stumbled on the Elmo Live (which actually JUST hit the stores...) After showing him some videos he decided he must have one. So, I pre-ordered two of them and one will be shipped off to the Ukraine to meet its new happy owner.

 HI, SEVA!

But... one of them had to be opened up. And this is the story...

First of all, let's go over his movements.

Elmo Live can stand or sit, and can cross his right leg in the sitting position.

Each of his arms move up and down. His right arm also is also articulated at the elbow to allow him to bring his hand to his mouth.

His neck moves back and forth and his head can rotate upwards

Finally his mouth opens and closes

There are only 3 motors and 3 encoders to provide all of the movements. There is some trickery in how the movements are done and what must be some very interesting cams and clutches inside the two gearboxes within the torso. Obviously, I was a little disappointed about this, but it still has some potential, I think.

Unbelievably, as much as I find Elmo annoying, this toy is actually pretty entertaining (he is just a little too loud, though.) He has some cute stories, games, and animations. This generated a small amount of sympathy while I was skinning the fella.

Elmo has four switches that allow you to interact with him.

Left foot, back, belly, and his nose.

He also has a tilt switch in his left foot, which is weighted by the batteries.

While fully fur-clad, it really looks like he has a ton of articulation and his movements are very fast, springy, and life-like. The illusion is well done and all of the stories, etc... are programmed to make great use of his limited movements. Overall, a very well engineered toy that looks hard to break.

I will be "toying" around with this for a bit to see what kind of mayhem I can wrought. This thread will detail my adventures.

So far, I have managed to remove all of his fur without damaging it and will be posting the pictures and a how-to soon. I took 22 pictures just for the process of removing the fur, so it might be a little long for a forum thread.

For now, I present:

Elmo Live Dissected

Discussion:    Add a Comment | Comments 106-120 of 227 | Latest Comment | « Previous 16 7 8 9 10 1116 Next »

January 12, 2009 5:58 AM

Elwood, the leg cross happens when the motor continues beyond the point of sitting. When he is in the fully sitting position, this engages a pulley that pulls that cord along his knee.

If he is rattling, then the motor is attempting to move beyond the range of movement and you are hearing the slip clutches. As Sevik suggested, a misaligned encoder is the most likely cause.

Of course, try fresh batteries first, if you haven't already.

For anyone experiencing rattling or ratcheting noises when Elmo attempts to move, it is very likely one of the three encoders (head, arms, and legs.) What is happening is that Elmo thinks he is in one position, but his body is actually in a different position. So, the motors attempt to move beyond their ranges.

This toy definitely doesn't seem as durable as first thought. I am surprised at the number of people reporting problems with it. Mine has managed to survive battles with the cat and my tinkering (though I did misalign the head on mine once.) My niece wasn't interested in it (by the way, she did get that robotic pony for Christmas and it is very cool) so mine have not been kid-tested.

January 12, 2009 6:24 AM

Andrew,

The encoders are actually pretty simple. All they are doing is acting like multi-position limit switches. They tell the processor what range of movement the appendage is in. If you are careful with your timing, you could probably get away with not using them at all.

As an example, you cannot move Elmo's mouth without moving the head, and you cannot cross his leg without moving into the sitting position. The series of gears and cams engage at different positions of the revolution of the motors. So, for sitting, you move Elmo to the sitting position. If you stop there, the leg will not cross. But if you keep rotating the motor in that direction, then his leg will cross. His head and arms work the same way. Moving his head quickly back and forth, just opens and closes his mouth just enough to look like he is talking. Without his fur, you would see his whole head moving back and forth. If you move the neck forward even further (and this is another switch of the encoder closed) then he will snap his mouth open in a yell.

So, you simply use the encoders to tell what position he is in. If you connect them to interrupts (or poll them quickly) then you simply move the motors until the desired switch is closed. While moving him in this range, the switch will stay closed. If it opens, then you have moved beyond the range (in which case you reverse the motors.) So, talking is as simple as rotating the motors until a switch opens, then reversing the motor and moving in that direction until the switch opens again, and so on.

Use H-bridges for the motors (and like Sevik said, you can even use the ones on the main board.) This allows you to move the DC motors in both directions. An H-Bridge works by giving you two inputs for each motor. You provide a high on one line and a low on the other. Switching them will reverse the direction. Using a flip-flop (if you are not using a microcontroller) will ensure that one is high while the other is low, always. Both low is not dangerous, but both high will short out the supply directly.

According to Sevik's info, the motors all move at one speed, but an improvement would be PWM to control the speed of the motors. For PC control, I would involve a microcontroller simply because of the number of signals you are going to need to monitor the switches, activate the motors, etc..

January 12, 2009 11:35 AM

roschler said: @Andrew Olney, What Text To Speech did you use in the video? It sounds pretty good. Was it open ended, or limited domain synthesis like Festival can do? -- roschler

Roschler, it is an old ATT NaturalVoices Rich, 16kz. I've always liked it b/c of the djay/african american quality. They seem to have changed how it is sold, and it doesn't look like it's been updated in the 5 years since I bought it.  This company seems to sell it now:

 http://wizzardsoftware.com/att_desktop.php

 It is SAPI 5, open ended tts. The version I have has a large RAM footprint, so you want 512MB RAM to set aside for it.  You might also be interested in voices from Loquendo, NeoSpeech, and Cepstral.

January 12, 2009 5:20 PM

@Andrew Olney,

Thanks Andrew. Yes AT&T seems to have the best quality voice around, past to present. I was looking for something open source or free for my Robodance users and AT&T is only available in commercial products. I'll be going with Festival then. Festival is a good TTS but unless you're doing limited domain synthesis, there's some pretty heavy "pitch warble" between the concatenated bits. I heard "pitch warble" in your bass fish video, but I found it very listenable still. However, I'm not sure I'd grow up sane looking at a bass for extended periods of time, while I learned my science lessons! :)

I'm surprised no one has put one of those in the fish rack at a supermarket and done a candid camera thing. (If anyone has, link to video please). I'm also surprised there are not stories of anyone putting their Alive Chimp or Alive Elvis in the fridge on automatic mode. "Hey honey I'll just get a beer from the fridge and... WHAT THE HECK!!??".

-- roschler

Nanabot - And One Robot To Rule Them All The under $100 game playing, conversational robot

January 12, 2009 7:02 PM

Retro & Sevik, thanks so much for the info. I've found 2 boards that might be suitable, based on your description, and I was wondering if you'd make a recommendation.

http://www.trossenrobotics.com/store/p/3201-InterfaceKit-0-16-16.aspx

http://www.arduino.cc/en/Main/ArduinoBoardDiecimila

January 12, 2009 7:49 PM updated: January 12, 2009 7:53 PM

Looks like both of those boards would work fine, and would probably be useful for lots of things after having fun with Elmo. But, really, you could get away with simply using a bare Atmega32.

The head encoder has 5 switches, and the leg and arm encoders have 3 each. This is 11 total inputs for the encoders. For user inputs you have the tummy, back, nose, foot, tilt, and "try me." So, 6 more inputs for these.

If you use the H-bridges on the Elmo board, you will need 2 outputs for each motor, so another 6 I/O lines.

So, total, you need 23 I/O lines. But, this could be reduced with some additional circuitry. Since the encoders should only have one circuit closed at a time, there really is no reason to have a dedicated input for each one. Ideally, you would just want to select the encoder and read them. Using buffers, you could share the same I/O with all of the encoders, and add a few signals to select the buffers. Since the head will be the most active, keep this one the default that is usually selected. The legs would be the least active, so an arrangement where you share the arm and leg select lines would reduce the I/O even more.

And unless you want to allow more than one user input to be pushed at a time, you can use a demultiplexer for those.

Of course, adding the extra electronics makes the circuit more complex, and Sevik would probably scoff at that. And he has a point, microcontrollers are cheap, and getting one with enough I/O in the first place usually will cost less than the extra logic chips.

Just keep in mind that in addition to the 23 I/O you need to control Elmo, you are going to want some I/O like a serial port to be able to communicate with your circuit and/or some type of storage to read your routines from, and finally if audio will be done on board, you need to consider that as well. An ATmega32 will give you 32 I/O lines, which should be enough. It can run at 8mhz without an external crystal, or 16mhz with one. The one thing missing from the ATmega32 that would be useful are pin-change interrupts, which would come in handy for the user inputs.

I have partially designed a controller using an ATmega32. My intention was to allow serial communication, and add a bootloader that could be activated by pushing a key into the "try me" switch. This would allow you to reflash it easily for software changes. Also, since you are probably going to have Elmo lying down while putting the key in the "try me" switch, the tilt sensor will also be activated.

In summary, the Decimila doesn't appear to have enough I/O unless you add the extra circuitry and the trossen board is $85!!! So, I can't really recommend either, personally.

January 12, 2009 8:05 PM

The decimila would probably work as well, if you didn't need to use all of the user inputs. You might not really need the tilt, nose, and "try me" inputs. And if you come up with something more engenious to multiplex the encoders than what I described above (I simply thought of it while I was writing it) then you can reduce the I/O needed for them maybe even further.

If you think about it, the legs are pretty easy, really. He is either sitting or standing. And if you move beyond sitting, his leg crosses. You could probably ignore the encoder completely and just use some timing to handle that. And once you move him to one of those positions, you will not change it often.

Really, the only encoder that I would consider very important is the head. The arms either move up and down, or the right arm bends at the elbow (by continuing to move up after the arms are fully up. This would get updated a little more often than the legs, but not by much.

But, to make Elmo talk, you need very rapid updating of his movements.

January 13, 2009 1:43 AM

:)) for reducing number of inputs for encoders given that they are one-shot and your MCU have ADC with mux you can use simple resistors based DAC for each.

Look at :
http://lancer3.com/ADC%20Keypad.htm
http://www.embeddedrelated.com/groups/piclist/show/4457.php

It's acceptable for me amount of additional circuitry :))

This approach can be used for buttons too

Free RoboPanda!!! :)

Yes! If something has a dump, it must be hacked :))

January 14, 2009 2:44 AM

Sevik, of course!! Why didn't I think of that one? Classic trick to reduce I/O or wiring needed.

Great suggestion.

The common conductor is your input to the ADC, and you simply put several resistors in series between VCC and GND. Then you connect the taps between the resistors to the switch contacts. When the circuit is closed, you will be measuring the voltage drop across the resistors from your tap to GND. When the wiper is not over a contact, you will just measure 0v (you will probably want a very large value resistor connected to ground at the input of the ADC to make sure the voltage is 0v.)

Come to think of it, I wonder if it is actually wired up this way on the original Elmo board. I'll have to look when I get home. Makes alot of sense.

January 17, 2009 11:44 PM

hi my daughters elmo does not finish the GET DOWN DANCE SONG,we've put new batteries and checked to see if any button could be stuck.what else could it possibly be

January 17, 2009 11:54 PM

nessa, when you say he does not finish it, what exactly do you mean. Could you describe it in a little more detail?

Does he start the routine? If so, at what point does he stop? And I think it is his belly switch that starts this, right? If you push it again, does it move on to the next routine as if nothing was wrong?

That's pretty sad. That's one of his funniest routines.

Oh, also, did he finish it before?

January 19, 2009 4:51 PM

Sevik & Retro, thanks so much for your help so far. Can you identify the 4 resistors for me in this picture?

http://www.robocommunity.com/imagelib/contentitem/0/f0f219158e118e83--6efc75a...

January 19, 2009 5:05 PM

There is really 6 of them (for 3 motors). I have forget about head last time.

On this picture only 2 of them present - R21 and R28

You can find similar pattern for other 2 H-bridges - R15,R27 and R26,R8.

You need to disconnect left sides of them from cpu, and connect them to your MCU.

You can unsolder them and solder them back vertically only to right pads.

Free RoboPanda!!! :)

Yes! If something has a dump, it must be hacked :))

January 28, 2009 10:12 PM

HI Guys
my daughter stepped on elmo's leg and broke it. I pulled it apart and superglued the bits together and now(stupidly) i can't remember exactly where all the bits and springs go! Do you have a photo or two that you could post? It was his left leg (the one with the battery compartment)
thanks

January 30, 2009 4:45 PM

does the inside look similar to robosapien

Discussion:    Add a Comment | Back to Top | Comments 106-120 of 227 | Latest Comment | « Previous 16 7 8 9 10 1116 Next »

Add Your Reply

(will not be displayed)

Email me when comments are added to this thread

 
 

Please log in or register to participate in this community!

Log In

Remember

Not a member? Sign up!

Did you forget your password?

You can also log in using OpenID.

close this window
close this window