Asked — Edited
Resolved Resolved by Rich!

Robo Claw 2X60, Ezb 4, Speech Recognition?

I have a robo claw 2x 60 motor controller. I have ezb4 connected via DO and D1. I am connected to the EZB4 with my computer as I can send sound files to it and it plays out the EZB4. I have assigned ports DO to left motor and D1 to right motor. I cannot make the motors do anything. I have previously used this controller with a RC receiver and it worked. Is the EZB 4 not able to replicate those commands? Do I have to speak with it serially? A script? When I read the script control instruction it says something about needing a Movement Panel associated with it? Thanks ahead of time.


ARC Pro

Upgrade to ARC Pro

Your robot can be more than a simple automated machine with the power of ARC Pro!

#1  

Do you have the data sheet on the roboclaw? If not Google it... it will show you how to talk to the roboclaw via the ezb... Chances are it has a serial mode similar to the sabretooth that will be set by dips or jumpers...

#2  

Yes I have the manual. Do I have to talk to it serially. I sort of got a modified servo panel to work with the robo claw in "RC" standard mode, that is without mixing. The motors are very jerky and do not stay running however. Robo claw manual says that it expects rc servo pulses on s1 and s2 to drive the motors when the mode is set to "rc" mode. The center points are calibrated at startup. 1000us is the default for full reverse and 2000us is for full forward. I guess I need to know is that what the ezb4 puts out via its d0 and d1 ports. I would love to run it serially but not sure at the moment how to accomplish. I also cant seem to figure out the speech recognition. How do I assign "robot move forward" to D0 and D1 ports to send 2000us for forward and 1000us for reverse. Thanks again

#3  

Being very similar to the sabertooth.... there has to be a way to set it up serial for communication... if you can, it is possible to use the sabertooth Movement Panel to control it... I don't have the manual in front of me, so my help is limited... Just read the manual and try and set it for serial at 38400 baud... Serial is your best bet...I used to use the sabertooth the same way as you used the roboclaw, but had to change to using it in serial mode as I couldn't get it to work any other way with the ezb...

#4  

OK so I changed config on robo claw but the manual says it needs to be controlled via UART to s1 on the robo claw. Do i need a special plug to do this? It seems the uart plugs require a special kind of connector? Thanks so much for replying.

#5  

I found part of my answer, it looks like I can use D5 for uart 1. And I need it to transmit only because the robo claw can receive only. Starting to make some progress I hope. Thanks again. Chris

#6  

Richard R one more question. This robo claw can be operated in "simple" serial mode or "packet" serial mode. The manual claims that using packet serial opens up a plethora of advanced features. So in my above post I mistakenly said it receives only. (only in simple serial mode) So anyways would it be better for me to use packet serial or simple serial mode to operate this controller. Thanks Chris

#7  

Use simple serial... you could always switch later... You can probably use D0 as well... using the sendserial command... or any other port... Uart 1 is D5 send, ...D6 receive...

#8  

I will try this tomorrow. Once I get this working with the saber tooth Movement Panel how do I associate it with Speech commands. For example when I say "robot move forward" how does it associate the speech to an actual controller command? I looked at the example but all I see is "forward ()". What if anything do I put in the parentheses? Thanks again!

#9  

If you manage to get the sabretooth Movement Panel to work then when you add the speech recognition control, it will already be configured to work. You won't need any additional set up... Forward() is all you need, no extra parameters... if the sabertooth Movement Panel works, then so will the speech control panel

#10  

Hopefully last question for a while.............. regarding scripting.. If I write script does it have to be associated with the graphical user interface. This is a hard question for me to explain. I program PLC's for a living and this is quite a bit different. So when I script/program my robot to move to a location most likely using timed commands will it always need the graphical Movement Panel present on the desktop or running? Same with speech, do I need to have the graphical speech recognition block open on the desktop.? I would like the onboard atx computer to boot, open up ARC and run based on verbal command. Literally I want to say " I need assistance with a beverage" and have the bot move from a fixed always known location (manual placement) to move forward for a specified time, make a left turn 90 degrees, and then continue forward for another predetermined time. This is the simplistic version. It will be impressive enough to see that happen before adding in other sensors. The atx computer will not have a monitor and I will just rdp into it for adjustments and additional programming. Thanks Richard R. You will definitely get the reolved NOD from me hopefully tonight when I get back to this. Thanks again

United Kingdom
#11  

I haven't read any of this topic yet but wanted to just point out that the RoboClaw is a clone of the Sabertooth from what I read in the past.

Now I'll give the topic a proper read (and see that someone else has probably said this).

#12  

If it's basically a clone of the sabretooth, check out the sabretooth tutorial on here.... get the dips on the roboclaw set for 38400... You only need 2 wire... ground to the ground pin on the ezb and the s1 connected to the data pin on the same port of the ezb... Just try D0 pin for now... once you get the sabretooth control panel working, we can go from there... Speech control has to remain open as it is linked to the particular motor control panel that you have open as well...

#13  

No dip switches. But I have that part taken care of. Will be back at it again tonight. Thanks again

      Chris
#15  

It is all set thru menus... so in other words push set button and status 1 light blinks. Depending how many times it blinks is the current mode setting. I set it last night for mode 5 which is simple serial command, however I could not set the baud rate. After reviewing the manual again this morning I know how to accomplish this. So I will definitely get that done before next post. Im not so sure on the clone thing. This controller is a bit more advanced from my research. This controller will take encoder inputs directly to it. If operated in packet serial mode it can use these encoder inputs and send to EZB4. In other words I don't need a kangaroo board as I have been reading about. So to recap.... for the lower drive train I am using the robo claw 2x60 and will be using it in simple serial mode to start. Now to add complexity to the mix I will be using a robo claw 2x 30 for the wheel chair shoulder motors as well. This will be controlled by ezb4 board number 2. Again to add more I see that I can only have one Movement Panel open in ARC hence the question on do I need to have graphical reference open. Thank you everyone for looking at this post, I cant wait to get this thing rolling.

                                             Chris
#16  

And one other thing maybe worth mentioning is the robo claw manual specifically calls out using a UART port from the microcontroller. I'm not sure how this differs from serial commands sent from D0 but if D0 doesn't work I will move to D5 and change port setting in EZB4 to accommodate. I would think serial is serial and at this point I would only be using one way comm anyways. So.... let the fun begin!

#17  

It should still work with either sendserial or uartwrite commands... My sabretooth does so the roboclaw will too...

United Kingdom
#18  

Looks like Richard R has this under control:)

There is an old post regarding the robo claw, give the forums a search for some more info on it.

#19  

Also, for the second H-bridge for the shoulders, see thread about using 2 H-bridges. Not exactly the same situation, but usable to get an idea of whatyou need to do. https://synthiam.com/Community/Questions/5736

Basically, for the drive wheels, you can most likely use the Sabertooth movement panel, or a custom Movement Panel with scripted commands at worse.

For the shoulders, you will need to use Script Sliders for manual control and script commands to activate the movements (and for any autonomous movement).

As Richard R pointed out, you can use any of the digital ports to send serial. You only need to use a UART port if the EZ-B needs to receive serial data. No difference between sending on a UART or sending on a digital port. They both send as TTL.

Alan

#20  

Still does not work. Let me clarify... Port D0 - robo claw S1 and baud rate set to 38,400

Bring in a sabretooth Movement Panel set up on port D0 Connect- all is good.

I push the up button one motor goes forward. I push the stop button and the other motor turns on but in the opposite direction. I cannot get motors to stop. Have to disconnect the battery to make it stop.

Tried switching to port D5 "uart port" as per robo claw manual. Same exact thing happens. Any ideas? Thanks Chris

#21  

You're getting there... Possibly your configuration on the Roboclaw is not quite right... I wish I had one to play with, I am so hoping you get this working...

Try this code... open a script and type the below code in (if this doesn't work then your roboclaw settings are wrong, or the wiring is wrong)


SendSerial(D0, 38400, 255) # motor 1 forward
SendSerial(D0, 38400, 127) # motor 2 forward
sleep (3000)
SendSerial(D0, 38400, 0) # both motors stop

#22  

Hey Richard,

So I wrote the script and hit run. It turns one motor on forward, it turns the other motor on backwards and it never stops (Same thing as movement panel/). I have to physically disconnect the battery to make it stop. Tried several times. Not sure what else to try. Robo claw is definitely set up for simple serial, all you have to do is count the flashes of the led. Battery is wired + to + on controller and - to - on te controller. And Im using a servo extension wire with the red wire cut out of it due to the robo claw having a BEC circuit built in and Im powering EZB4 and motor controller with 12vdc. Im thinking its a controller issue and that I need to contact orion electronics. Thanks

#23  

It should work if it is indeed set for simplified serial at 38400 baud.... try changing my code to reflect different baud rates... start at 9600 and go from there... Contact Orion and see what we might be missing...

#24  

Sorry I don't know anything about the Robo Claw but it almost sounds like it may accept different commands then the Sabertooth. Have you compared the two ControlCommand() lists?

United Kingdom
#25  

Robo Claw Datasheet

Simple Serial commands are from page 20 onwards

Set up instructions on page 10

Everything you need is there:)

#26  

Dave, as per the manual I read on the roboclaw, it should accept serial commands exactly the same way the sabertooth does... My code should work perfectly with the roboclaw...

United Kingdom
#27  

@Richard R is correct. It's most likely to be the setting up of the roboclaw to use simple serial at the correct baud rate which is the issue.

Check it's in simple serial mode (mode 5). Then check it's in 38,400 (mode 4) (you could use any of the modes but you must know what baud rate you are using so you can let ARC know)

With the EZ-B V3, 115,200 is maximum for D0 all the other digital ports can work up to 57,600. Off the top of my head I don't know what it is for the V4.

Instructions on doing that are on page 10 of the datasheet I linked to. It's a fairly simple process.

#28  

Hello and thanks. I've tried al of that and it still does not work. You are correct in that it is an easy process. Again motors start but run in different directions and never stop until removing battery. It is in mode 5 simple serial, and mode 4 - 38,400. Even when writing a simple line while motors are running - SendSerial(D0,38,400,0) the motors do not stop. I will be trying to contact basic micro on Monday. I do have the manual for the controller, printed out and well read. Thanks everyone for there help. Chris

United Kingdom
#29  

remove the comma from the 38,400 in the send serial command


SendSerial(D0, 38400, 0)

That should stop both motors if the board is configured for Simple Serial and 38,400 baud.

The Sabertooth Movement Panel should work too if it's set for Simple Serial and 38,400 baud.

Also, one thing I didn't mention but just read is to make sure the LB-MB jumper is installed.

#30  

Should be SendSerial(D0,38400,0) not Sendserial(D0,38,400,0) to stop the motors... no comma between the 8 and 4 of the 38400....

United Kingdom
#31  

I just knocked up a quick and simple RoboClaw Serial Demo.

Download it, change your connection settings as required and (provided the roboclaw is on D0 and set for 38400 baud) it should give a demo of forward, reverse, left and right then stop if you run the script. The Movement Panel included should also control the roboclaw.

#32  

Richard R- I tried again.... nothing still wont stop.

Rich - I will try in the next few minutes.

ALL I did submit a post at basic micro forums for help with this controller. I firmly believe every setting is correct. I was really hoping my extra comment in the baud rate was the issue but, no go!

United Kingdom
#33  

Does speed control work? Have you tried sending 64 and 192 to stop the motors?

SendSerial(D0,38400, 64)
SendSerial(D0,38400,192)
#34  

Rich I just ran your script, It started 1 motor, a second later the other motor started both again in opposite directions and continues to just run. I have to pull the battery again to make it stop. Thanks for your efforts. I may see if my wife can video the set up of the robo claw for you guys to see.

United Kingdom
#35  

I'll have a look at the Arduino library/code for it and see if there's anything "special" about it. The manual doesn't say there is but sometimes they miss out something that seems small and irrelevant but is necessary.

The script should have had both channels moving at the same time so if one started and then nothing for a second or so it would indicate there's something else needed after initially sending the 128 or 255 or whatever byte is needed.

#36  

Thanks again! I just went through the setup of the robo claw with paper manual in hand. It definitely blinks 5 times for serial mode, and then next menu 4 times for baud rate 38,400. I really hope this can get figured out as I have a second robo claw 2x 30 for shoulder motors.

Thanks everyone! Chris

United Kingdom
#37  

We will sort it eventually, I haven't been beaten yet:) It's just usually a lot of trial and error especially when I don't have the same piece of kit to test out myself.

It may be as simple as needing a carriage return at the end of the data, 0x0D in hex.

Quick example to spin both channels forwards for 2 seconds then stop;


SendSerial(D0, 38400, 127, 0x0D)
SendSerial(D0, 38400, 255, 0x0D)
Sleep(2000)
SendSerial(D0, 38400, 0, 0x0D)

#38  

Hey Rich Ive been poking around at basic micro forums, this seems to be a known problem since may of this year. (Motors wont stop) One of the admins over there specifically said 0 will not stop the motors, and to use the individual commands 64 and 192 (stop respectively for each motor) I will try this and see what happens. Supposedly there is a firmware update that may address this problem. Thanks for all your help. I will let you know if this stops the motors,and then we can move on from there. Chris

#39  

AHA success! It is a firmware problem for sure. Re-wrote script

SendSerial(D0,38400,127) SendSerial(D0,38400,255) Sleep(5000) SendSerial(D0,38400,64) SendSerial(D0,38400,192)

Motors now run, again in opposite directions but now STOP. Now I need to figure out how to do firmware update to the board. Thanks Chris

United Kingdom
#40  

Cool, glad it's working.

To reverse the direction of one of the motors just use the full reverse number for forward i.e. change 127 to 1 and 1 to 127.

If you need to use 64 and 192 to stop you could use the custom Movement Panel and just throw the send serial commands in each script for the movements and in stop throw in the commands with 64 and 192 in, that would work in the absence of updating the firmware.

#42  

or reverse one of the motor wiring so you can maintain the 127 and 255 forward numbers... add the speech control and try it...

....all that work and Rich gets the credit...LOL... Glad you are making progress

#43  

I don't know why some of my posts aren't coming through... Again I want to specifically thank RIchard R for all of his hard work. Im very gald to see you both help me finally get a resolution to this. All the help is so much appreciated, great fathers day present! Chris

#44  

No worries Chis, just glad you're almost there...Besides we need to get Rich to a 1000 credits.... The fact you stuck with it solved your problems....

United Kingdom
#45  

Sorry dude, I did try not to jump in and steel it, I'd been watching the topic for a while, there's nothing better than watching a man fish with the fishing rod I helped provide (a take on what someone said the other day about teaching a man to fish rather than giving him the fish):)

For what it's worth I think you deserved the credit - if EZ-Robot staff can change it and are reading this maybe they can change it?

#46  

No worries Rich... I am not bothered at all you got the for this nod...

Cheers:)

#47  

@kamaroman68, Nice work so far. I know it must feel good to make progress.

I don't think I've read where anyone answered your question about Speech Recognition. You need to install the Speech Recognition control into ARC and in there you can link your scripts or actions to your robot. Take a look at some of the examples DJ and others have built. They will give you a good idea how to do this.

Good luck, Dave

#48  

Thanks Dave, Yup I got the speech recognition working this weekend, and went a step further, built a mobile app ()very basic one) and was able to control via Samsung galaxy tablet. Really starting to pick up speed now with this system. Now I just need to "open" up my router to open port forwarding so I can remotely operate from anywhere in the world. Will probably have many questions on that in the future. Thanks guys it is much appreciated for all the help! Chris

#49  

Hey, Chris.... awesome to hear.... I myself am interested in controlling my robot from anywhere over the internet... I may need your help this time with the port forwarding stuff...

Cheers Richard

#50  

Absolutely, as soon as I get it sorted on my end I would be glad to help! Chris