Asked — Edited

Spinmaster Meccanoid Robot

Anybody seen this guy yet.Looks interesting.He is shown on Youtube 2015 CES show.

User-inserted image


ARC Pro

Upgrade to ARC Pro

With Synthiam ARC Pro, you're not just programming a robot; you're shaping the future of automation, one innovative idea at a time.

United Kingdom
#1  

@rb550.

Yeah somebody posted about this a few weeks ago. I actually do kinda like it, but it just seems a bit too flexible to me. I do like the interaction with the motion capture however, and it's a good concept.

#2  

I like it too, but it needs an ezb4 treatment and an all aluminum frame....:)

Australia
#3  

I just built the 1.2mtr KS and apart from a big assembly job of around 9 hours is a great project. Its controller is ok but not code programmable at the moment but they promise we can sometime soon. The servos are smart servos that you can daisy chain. It can definitely be modified for use as an autonomous bot or a telepresence bot, in fact I will be installing an EZB4 next week. I have a 3D printer so I will be working on a pair of grippers or hands possibly controlled by Arduino with EZB calling the shots. There happens to be a new Raspberry pi sitting in my workshop waiting for some task within this project. the Meccanoid has plenty of room to bolt things on or in so it will be a great platform and yes it is strong enough for the job.

PRO
Synthiam
#4  

Nice - when you find information about the servos, i'll add a plugin in our software to support them so we can give this platform the ez-robot overhaul:D

Australia
#5  

I'm fine with that. There is currently no information online about the Meccanoid components as it is still too new I suspect but I can pull a servo off and try to find some identifiers. Maybe tomorrow. I am planning on putting a head on its shoulders as well. Printed an Inmove head already so just a mater of bolting it on.

#6  

Hello @Kleinman98

Sounds like a fun project with a good ezb future. Please continue to update us on this robot. I was looking at this in the store and it may fit in a future project.

It was nice to hear the frame isn't as weak as thought. The idea of Dj working on the servo "plug in" will sweeten the idea.

Thanks,

Ron R

PRO
Synthiam
#7  

After reading and researching more about it - i don't think it's a worth while venture for ez-robot to support their servos at this time.

Australia
#8  

Here are the photos of the servos in question. Not much info to go on but can always swap them out. Any suggestions?

User-inserted image

User-inserted image

User-inserted image

User-inserted image

Australia
#9  

As you can see, there is nothing special about the servo casing so swapping them out for servos that are supported wouldn't be a problem. Can the EZ-B handle daisy chained servos?

#10  

EZ Robot supports dynamixels which are daisy chained... If you can swap them out for regular servos, forget the daisy chain, just use regular servos with extension servo cables....

Australia
#11  

Ok I have some MG996R servos spare. Do you think these would do?

#12  

Ive seen this robot being shown off at the local Brookstone. Its 4 feet tall, the legs and fee are stationary and connected to wheels. Only the arms move but not the hands. It has limited movement all together. Is good for a basic beginner robot.

Australia
#13  

Ah but you have to look past its current capabilities. It will make an excelent platform to improve upon.

PRO
Synthiam
#14  

I'm surprised they were able to pass certification with those servos daisy chain. We looked into that option but the power consumption was too high because it's impractical for a CE certified product. Makes me wonder who there CE was and if it's valid... curious.

Those servo extension cables are not rated for current to power that many motors. Additionally, there is a significant amount of resistance in the plug, which raises the current requirement.

Australia
#15  

Kleinman98 , I noticed you posted that you've finished the Meccanoid KS. I've just assembled it but can't find any clear instructions as to how to hook up the electronics. The instructions don't explain much, especially connecting the neck head and shoulders and eye lights. The only video on the Meccano site doesn't include any of this. I also noticed that the leg wires (red, yellow, purple, red) are ordered differently from left to right in the printed instructions and in the video, when plugging into the power unit.

Can you or someone else please help me? I'm new to all this. confused

PRO
Synthiam
#16  

Humanoid, have you tried their product website or customer support line?

Australia
#17  

Yes, I have.
There doesn't appear to be a phone number for Australia and the website focuses on the build. I don't want to burn it out in my ignorance.

PRO
Synthiam
#18  

Haha, sounds like a frustrating product. Maybe someone will chime in, but this is a support forum for the EZ-Robot products. Looks like you bought the wrong robot:D check that return policy!

Australia
#19  

Oh how frustrating. I just typed in the full cabling instructions, went to get a photo and lost the lot.

Australia
#20  

Ok here we go again. Looking from behind, the left leg motor has a red/yellow cable and plugs into LM/MG, the right leg motor cable is red/brown and connects to RM/MD. The plugs are different for each side so if they are arse about then you will have to take the feet off and swap the motors.

Both arms are wired the same, starting at the elbow servo, connect its long cable to the shoulder servo and the long cable from the shoulder to the rotator cuff servo and then that long cable plugs into socket 1. The right arm gets plugged into socket 3.

Starting at the top, plug the led eye cable into the top servo which then gets plugged into the neck servo which then plugs into socket 2 on the controller.

Plugs and sockets can only be plugged in the correct way so dont force anything. Have fun with your Meccanoid, I do.

Australia
#21  

I just received my EZ-B v4, so I will try it in my Meccanoid while I am 3d printing the JD parts. Just have to setup power requirements as the Meccanoid has a 6 volt supply.

Watch this space.

Australia
#22  

By the way, I would like to congratulate DJ Sures and team for an excellent product and concept.

Australia
#23  

Success! I got my Meccanoid working. When you switch it on it tells you which of it's servos are not connected properly. It's actually pretty fun for a beginner but I like the idea of putting a cooler head on it as was previously mentioned. The colour changing LEDs could be used behind new eyes. I think this would be do-able. Maybe some hand servos with raspberry pi too. I wish there was an option to change the dinky voice, though, to something more teutonic. LOL ;)

Australia
#24  

Rather than Raspberry Pi, why not try an EZ-B V4 in it. Thats what I am doing.

Australia
#25  

Thanks for your help there, Kleinman. He keeps waving his arms around and disconnecting his arm servos. LOL. The voice recognition and library seems good. I've got a GoPiGo on the way in post with a raspberry pi already. It'll involve learning some more python code (challenge). I would be interested to see what you achieve with modifying your Meccanoid.
Cheers ;)

#26  

Well, I bought one of these things on impulse, mainly with the thought of running it on EZ-Robot parts. Here's what I found so far.

The servos have nylon gears, so not too good. However, they are the same size as EZ-Bit servos, with mounts in the same place. It is relativly easy to convert a lever servo to fit in the same place as the servo that comes with the kit. Just have to cut the white part in a couple of places and remove the lever. A rotary servo could also work, but you have to cut more off the white part to make it narrow enough to fit. The horn on the kit servos perfectly fits the EZ servo so everything just goes into place with no problem. In other words, if you are willing to "sacrifice" 8 lever servos, making it work via EZ-Bit parts should work out just fine. I have not gotten to the drive parts on the feet as yet, but I expect that to be easy enough to do as well. Even if it means using an H-Bridge at some point.

I guess the only thing that is stopping me at this point is deciding if it's worth the trouble. I mean, this isn't a great robot in the first place. Either in looks or functionality.

Soliciting thoughts and opinions on this.

Australia
#27  

My thoughts exactly. I plan to go your way when I have more servos. Originally, when I first saw this for sale, I thought it would make a good cheap platform for a telepresence robot as you dont get much for $400 these days, well not at 1.2mtrs anyway. Its great for bolting on various sensors and the like without having to chop things up to fit. All my friends and visitors have a great laugh with its entertaining features so I recon its money well spent. Now I cant wait to finish JD and get him to do some cool stuff.

#28  

Okay, I went ahead with the conversion to EZ-Bits since I managed to get a vision of a sort of cut rate Johnny 5 kind of thing using the basic upper body and a linear actuator or 2. Changing out the 8 basic servos wasn't too big a job using the lever servos. Just have to make a couple of cuts in the white snap-on part and a bit of grinding. Otherwise they fit just fine and the horn fits on perfectly. Screwing the horn on is a bit of a chore, however, since the screw for the EZ-servo is wider than the one for the Meccano servo. You either have to drill out the tiny nylon insert that goes into the horn, or, do what I did, use a small, thin washer and slightly longer screw. Because of the way the horn is put together, it needs one or the other to hold it all together and keep it stiff.

I would have preferred to use rotary servos because they have attachment brackets points on both ends, whereas the lever servos have one set cut off. But there would have been a lot more cutting and grinding because the base is so much thicker and I don't have a small band saw to cut that down easily. Plus, I think if you cut it that thin, there would be no bottom once you were done, but I'm not sure. Still, attaching the servo in the Meccano plastic housing went fine only using the two holes on the end opposite the gear. Plus, there is a lock nut which goes under the servo. That serves as a stop if the servo tends to bend down some due to the lack of the other bracket. Otherwise the rest of the servo mounts go together just as originally designed.

I turned the orange housing 180 degrees so as to mount it on the back instead of the front. That allowed me to fit in the EZ-B4 base so as to give me access for plugging in the wires from the back. The EZ-B4 base fits perfectly in the middle of that housing. Just mounted an on-off switch in the rectangular hole in the upper section and everything was good to go. Created a project to put it through it's paces and all worked out just fine. Got rid of the black box altogether, BTW.

Now, before I go further with mounting on the base ("feet" ), I want to add a couple of rotary servos for the hands and a pair of eyebrows for expressions. Once I do that , I'll see about making up a video.

Just wanted to let others who might be thinking about going this way with it that it's not all that difficult. At least the Mechano kit was reduced to $245 at Brookstone, so the fact I'm not using the original electronics isn't too much of a big deal. I can probably sell the control & servos on EBay and recoup some, though it may not be worth the trouble.

Australia
#29  

Its great to see you having a go at it. I wont be touching mine for a while yet as I am in the middle of building a JD but I do still want to set up a telepresence bot. Good luck with yours and I hope to hear and see more about your project.

#30  

Hi WBS00001,

Post some pictures, and the mods you did. Sounds like your progressing well and I look forward to your video.

RonR

#31  

Hi everyone. Ihave been away for a bit cause of health. But I was thinking the same thing with Meccanoid robot. So I got one for christmas. Put it together its ok, it really hits the mark for the kids type thing. Now what DJ was saing about the certification I looked on the back of the manual and they printed it with CE cert but then must have not gotten it so they put white stickers over them.

Anyway I was reading about the people concerned about the plastic being weak. I think its a great way to have a humanoid robot for a better price then aluminum for something like ServoCity. I figured it would have been almost $2000 CND.

So I had a spaire high voltage ultra torque servo from a rock crawler I built years ago so I tried it in the arm elbow. Fit perfect no modifications needed. Now its a 100 servo (Hitec HS-7954SH) So I am going to the hobbie shopthis week and get a high torque and try its fit (Hitec HS-645MG) its in a great price point for a budget. I'll let you know.

I love the idea of turning the controller holder around to the back I am going to that also. I have to figure out the eye lights to see we can use the current ones.

PRO
Synthiam
#32  

Excellent - thanks for the update! Great to hear you're feeling better and back at roboting:D

#33  

The kit is pretty versatile. Besides replacing all the servos with EZ-Bits Servos, I took out the servos controlling the head movements and replaced both with bare EZ servos. Even added one more to give the head up-down movement. Really simple. Just stack the 3 servos by clipping them together and mount the head using a Clip'n'Play Adapter Plate . Another is used at the base of the head to slide on the whole assembly. Of course nothing is quite that easy and I had to do a few other mods to make it steadier and balanced properly.

Anyway, my point in bringing that up is that I used the two servos I took out of the head and added them to the arms to give them another degree of freedom (arm rotation). Since I plan to put it on to a more powerful base along with a linear actuator, I just use the other parts as I wish in making mods left and right (shortened fore-arms, adding claws, wrist rotation, adding eye shades/eyebrows). Basically going wild with it.:D

Also, I wanted to mention that I found a rocker switch at Lowes that fits into the square opening on the orange controller case perfectly. Clicks right into place. Shouldn't be too hard to find, I think it's the only generic rocker switch they carry. Can easily handle the needs of the robot. You'll need to push it up to the top of the square hole as far as possible, however, because it makes for a tight fit with the power base. Works out okay and looks good.

I also found that the battery can fit just right under the power base. There is just enough room left for it to pretty much pop into place when pushed in, horizontally, on it's narrow side.

Australia
#34  

So good to see I inspired someone to carry this project through. Cant wait to see your progress. I havent started to mod my Meccanoid yet as I have been building an EZ SIX and printing out a JD. I am flying to Bangkok next week for a month so getting ready for the trip and look forward to visiting the local hobby shops there. Keep up the good work.

PRO
Synthiam
#36  

OMG that's terrible lol

#37  

Yes DJ,,,,,, two minutes of Balogna,,,,, and I we sat thru it..... to the end....

Ron R

Australia
#38  

Rest assured DJ, your controller will make for a perfect marriage.

#39  

Hello all, If people are still interested in making Meccanoid robot work with ez-b v4 (i.e. replacing MecaBrain controller by ez-b v4), there is now an official documentation from SpinMaster on how to use the Meccanoid smart modules (servos and LEDs): http://www.meccano.com/meccanoid-opensource An example C++ Arduino Library is also provided, it may be used as a starting point to developp an ez-b plugin. People have published demos and examples of using an Arduino with the Meccanoid (https://www.youtube.com/watch?v=HYVo0rqz0PA) but of course it is more limited that what could be done with an ez-b v4. Hope that helps.

#40  

Hahahaha, it IS terrible...but good advertisement though, just produce some high end Video clip which does not show its features at all. Just have him jiggle around randomly and throw some salami at the chick!

NOW I WANT ONE TOOOOOO!:D

PRO
Synthiam
#41  

It would be good for that product to see Spin master to acknowledge the amazing potential the ezb provides before meccanoid becomes the next vaporware. Adding arduino is a backward approach to the usability their platform is meant for. Arduino doesn't open educational options, or expand their market.

Switzerland
#42  

Hi, just got one as well, from a neighbour who was bored with the functionality. tried to translate supplied C# library into EZB scripting ........... but no success. it seems they use 2400baud " start bit - 417us LOW" which I can not set in EZB........ how can I get it working with EZB v4 without using SDK or changing servos?

PRO
Synthiam
#43  

Use the SendSerial() command and select 2400 baud as your baud rate.

Otherwise use the UART commands and set the baud rate to 2400 if you wish to use one of the three hardware uarts on the ezb

Switzerland
#44  

how do I add startbit + stopbit? {LOW, Bit 0, Bit 1, Bit 2, Bit 3, Bit 4, Bit 5, Bit 6, Bit 7, HIGH, HIGH}

Switzerland
#45  

void MeccaBrain :: sendByte(byte servoData){ pinMode(_pmwPin, OUTPUT);

digitalWrite(_pmwPin,LOW); delayMicroseconds(bitDelay); // start bit - 417us LOW

for (byte mask = 00000001; mask>0; mask <<= 1) { // iterate through bit mask if (servoData & mask){ // if bitwise AND resolves to true

  digitalWrite(_pmwPin,HIGH);              // send 1

}else{                                      // if bitwise and resolves to false

  digitalWrite(_pmwPin,LOW);               // send 0
}
delayMicroseconds(bitDelay);                //delay

}

digitalWrite(_pmwPin,HIGH); delayMicroseconds(bitDelay); // stop bit - 417us HIGH

digitalWrite(_pmwPin,HIGH); delayMicroseconds(bitDelay); // stop bit - 417us HIGH

PRO
Synthiam
#46  

If they are using a start bit and 2 stop bits, then you're correct that the ezb will not communicate with their silly use of uart. A suggestion would be to throw an arduino between the two.

Have the arduino take the standard ez-b uart transmission and convert it to the start and 2 stop bits of of the meccanoid.

Or, if you know the commands for the meccanoid... simply create an arduino sketch that transmits the comands to the meccanoid based on input from the ez-b. Publish the meccanoid protocol here and i'll give you a hand.

Switzerland
#47  

have uploaded an EZB project (public, Meccanoid3) which is able to move 1 MeccaNoid servo.

in same EZB project is a script wich contains an arduino sketch that can move all MeccaNoid servos.

and here the lib for arduino:

meccanoid-library.zip

Singapore
#49  

Thanks DJ! This is awesome. I've been holding off doing servo conversion of the meccanoid as my Daughter likes some of the simple features of the original 'meccabrain' (horrible name and just as bad design) such as motion capture and real time recording/playback of movements. I now plan on having the EZ-B and meccabrain switchable so the thing can please us both:)

I'm a little confused on the last part of the tutorial though. For the feet, do I just need the motor controller (it says it comes with leads for ez-b connection) that is listed in the diy products page, or will I need to perform the really really scary steps detailed in the video on the hbridge controller page (https://synthiam.com/Tutorials/Help.aspx?id=70) which includes chopping pins off and soldering bridges etc?

PRO
Synthiam
#50  

No soldering:)

The included wires replace the need to solder

Switzerland
#51  

Hi DJ, thanks a lot:-)

the resistors are used as part of the "smart?" communication feedback:


The bits of Smart Module data bytes are about 1.1ms long. Each byte has a start bit that is ~2ms LOW. There is no stop bit. Unlike the bits from the MeccaBrain which are just HIGH and LOW for 1 and 0, the bits from the Smart Modules are based on high pulse widths. A 1 bit is when a High pulse is > 400ms; a 0 bit is when the High pulse is < 400ms.


as long as we just send, it seems to work without resistors as well

User-inserted image

PRO
Synthiam
#52  

That helps! So it's two start bits.

The pull up is still a little unusual, as the mcu should rest high anyway. I'll update the tutorial with this info

Singapore
#53  

Hi @DJSures,

Thanks again for the tutorial on using the EZ-B to control the standard meccanoid servo's. It's taken me a while to get to it, but I now have all head and arm servo's working, and am able to change the servo color of each using the supplied instructions.

One thing I'm not clear of however, is how to control the meccanoid RGB eye color. These are a different format to the LED color commands.

In the arduino sketch supplied with the tutorial, the LED eyes are specified as being in servo position 2.2

Quote:

//Chain 1 - Left Arm. 1.0 is Arm Pitch, 1.1 is Arm Roll, 1.2 is Elbow //Chain 2 - Head. 2.0 is Head Yaw, 2.1 is Head Roll, 2.2 is LEDs //Chain 3 - Right Arm. 3.0 is Arm Pitch, 3.1 is Arm Roll 3.2 is Elbow

but the constant bytes defined underneath them skip the LED's entirely.


const byte LEFT_ARM_PITCH = 0;
const byte LEFT_ARM_ROLL = 1;
const byte LEFT_ARM_ELBOW = 2;
const byte HEAD_YAW = 3;
const byte HEAD_ROLL = 4;
const byte RIGHT_ARM_PITCH = 5;
const byte RIGHT_ARM_ROLL = 6;
const byte RIGHT_ARM_ELBOW = 7;

Furthermore, the setting of the eye color is different to the servo led's as defined in the sketch:-

For the servo LED's:


// set the servo color
// for example, setJointColor(RIGHT_ARM_ELBOW, JOINT_VIOLET)
void setJointColor(byte jointName, byte color)

aligns nicely with your example, but the eyes have RGB LED's which are set differently:


//Set the color of eye LEDS. red, green and blue are from 0 to 7 (0 - no color, 7 - max color). 
//fadetime is from 0 to 7 and means the speed of color change (0 - immediate change, 7 - longest change)
//example: setColor(7,0,0,3) means change color to red with average speed
void setEyesColor(byte red, byte green, byte blue, byte fadetime)

Consequently I'm unsure how to send a command from the EZ-B to the RGB eyes to set their color. Would I need to do something like:


UARTInit(0, 0, 9600)

definearray($mecaSend, 5)

$mecaSend[0] = 0x02 # set RGB Eye Color
$mecaSend[1] = 0x00 # Value for R
$mecaSend[2] = 0x00 # Value for G
$mecaSend[3] = 0x00 # Value for B
$mecaSend[4] = 0x09 # Fadetime

UARTWriteBinary(0, 0, $mecaSend)

having defined 0x02 somewhere in the arduino sketch?

Any advice would be appreciated. Thanks.

Singapore
#54  

From looking at some if the forum posts around UART, it appears to me that you can use them for regular serial communication as well as bit-wise operations, is that correct?

I saw one example (but can't seem to find it again) where I saw something like

 UartWriteBinary(0,0,&quot;Hello World&quot;) 

but I'm clearly clueless with Uart comms stress so would appreciate some assistance. The tutorial addresses everything else (servo's, servo led's, feet motors), but makes no mention of The Eye RGB led's.

Switzerland
#55  

Hi Aceboss, open the example files in the cloud and search for "Meccano MeccaNoid" it is an incomplete project, but has the eye colour change in (without fading)

Singapore
#56  

Thank you Jetpilot, that helped put me on the right track.

There's a couple of bits of your logic I don't quite understand (for instance the use of shift byte right) in your ez-script, however I've managed to get the eyes working with fade by sending 5 bytes (the 5th being a fade duration).

For some reason it doesn't work if I only do a UARTWriteBinary once, but if I loop the sending section then it works.

Also not sure why the switch case in the arduino script won't trigger if I add a case 2: but does if I use an if (cmd ==2) statement, but since that's arduino code specific probably not relevant in this thread.

Anyhow, maybe not the optimum solution but it's working now:) Thanks for your help.

PRO
Canada
#57  

I made a quick cable and connected an arduino to my Meccanoid servo's using tutorial and then connected EZB to arduino via UART. I wrote a quick script from samples and worked very well (THANKS FOR WRITING THIS UP).

Has anyone written a script to read current server position. (Disable Servo, Manually move, read servo position).

Thanks.

#58  

Quote:

Has anyone written a script to read current server position. (Disable Servo, Manually move, read servo position).
@Nink Hobby servos like EZ Robot HDD type (as opposed to Dynamixel type) have no ability for feedback... aka position feedback... However you can hack a hobby servos to read the servos internal potentiometer by soldering a 4th wire to the wiper pin of the internal pot... You connect that wire to the ezb4's analog port which will give a relative servo position...

PRO
Canada
#59  

Hi @Richard_R The Meccanoid Servo's may be junk and no torque but they did one thing right, they have a potentiometer in them so they have the ability to report servo position. You can put the meccanoid in LIM mode and then record a series of movents by manually moving arms head etc. Meccanoid records the movements and plays them back. The Arduino Firmware appears to support it if you read the meccabrain.cpp file but the sample code on the arduino that interfaces with the EZB does not appear to support it.

PRO
Canada
#60  

The existing code did not support reading servo positions. It appears to be supported in the official BIOS but was not intuitive or clearly documented. I decided to use meccontrols BIOS and wrote a script to do the following with meccanoid servo's, an Arduino and EZB V4

  1. Reset all servo's and Set 2 Servo's red and 2 Servo's green
  2. If you move a red servo by hand the green servo mirrors the red servo position

This is my first ez-robot script so code is spaghetti. Error correction on reading data from the UART is complex as the data size changes dependent on if the servo is at 99 degrees or 100 degrees. There is no Start Code only end code (CR/LF) in packet. Each number for servo location is sent by the BIOS as its ASCII equivalent for the actual number. So 120 degrees is sent as 5 separate numbers to represent 1,2,0 and CR LF. You receive the servo position in 5 fields 49 50 48 13 10 (No idea why the BIOS does this). Writing to the bios is done in a string so you have to get 3 separate numbers convert each to ASCII and then reassemble them back into a string to write back to the BIOS software. Because the meccontrol firmware writes in single string but reads in 4 to 5 numeric fields of ASCII code there is lots of messy converting back and forth.

I need to clean up and create subroutines so you can have more servo without duplicating code. It is very slow as it can only read or write one servo at a time. I need to be able to read multiple servo positions at 1 time and write new positions at 1 time. I am not sure yet how to approach this, I may have to fork the BIOS. If someone who knows EZ-Script can clean up I would appreciate it.

https://synthiam.com/Community/EZCloud/RobotAppDetails.aspx?id=5184

User-inserted image