How Robot Arm react to PlayStation 2 Wireless Control

Dear Jim,

This is about my Robot Arm project. My Robot Arm is your AL5A Robot Arm.
I made a phone call yesterday. You told me your Atom pro allows me to control only one stick and the whole arm will go the way I want. That sounds perfect. Couple questions before I purchase your solution.

  1. What part do I need to purchase? PS2 Robot Controller(RC-01), PS2 Wireless Controller Receiver (PS2R-01), Bot Board II (ABB-01), BASIC Atom Pro 28 Pin (BAP-02), anything else?
  2. Servo, 180 degree servo or 90 degree servo?
  3. When I use this solution, can you give me a simple description how to operate PS2 controller to operate the Robot Arm?

Thanks

You will need the RC-01, ABB-01, BAP-02 and either the PS2C-01 or the PS2DIY-KT. The servos in the arms are analog and operate at 180 degrees.

We are finishing up an update to the tutorial. All info will be accurate at the end of work today.
lynxmotion.com/images/html/build091.htm

Dear Jim,

Thank you for your info. They are very helpful. I have another question. In the your program, you have preset AL5A, AL5B, AL5C, and AL5D. But, I cannot use those Arms because the project requires a lot longer arm. We have to make one ourselves. In this case, what can we do?

Thanks

Sorry, let me explain a ittle bit more. If we design our arm (longer one), do we have to do anthing to the program?

Jim,

The link you provide for the code.
lynxmotion.com/web/content/i … s2arm1.bas
I got 404 error. File or directory not found.

Help!

There were issues with the link: More information in the thread: viewtopic.php?f=6&t=7923&p=78705#p78705

Note: In that thread I also posted an update for the original program that was giving problems…

Kurt

Jim,

We received all components. Now, we are trying to figure out how to load the program into the Atom Pro 28. I connect 9v battery to Bot Board II, the green light come up fine. I ran find processor, it found processor on com5. Therefore, my USB to serial connection is fine.

I follow the steps from the following link. I stuck at step 7.
lynxmotion.com/images/html/build157.htm

When I tried to run program. I got a message “A Basic Atom Pro Processor Must be connected for automatic detection”. I click on Debug, I got the same thing.

Please help.

Thanks

Another question

I was studying the code I download from the link you provide. The program name is ps2arm1.bas. Open the file in the Basic Micro Studio. Can you help to point out where do we need to modify if we use the arm designed by ourselves. Our Arm is similar to your AL5D just a little bit longer.

Thanks

So Studio can find your board and the chip is probably installed correctly. What I normally do, is to set the drop down lists in the toolbar of Studio to my specific settings. That is.
The first drop down is set to “BasicAtomPro”. The 2nd is set to “BAP 28”. The 3rd is set to the comm port that is connected to your board. In this case “Com5”. I do this as when you use the Auto settings you must always have your board plugged in and powered up when you try building your program.

As for What to set, you probably need to set the constants that are currently in #ifdef blocks…

#IFDEF AL5A
  HumerusLength		con 94	;Length of the Humerus [mm]
  UlnaLength		con 108	;Length of the Ulna [mm]
  InitWristPosX 	con 20	;Init position X
  InitWristPosY 	con 145 ;Init position Y
  InitGripperAngle1 con -400;Init Angle gripper  [/code]
There are whole sets of these, that are currently controlled by the block above this:
[code];Select Arm type
;NOTE: Enable only one arm!
;AL5A con 1
;AL5B con 1
;AL5C con 1
AL5D con 1

You can either define one of these and then modify it, or you could define a new one…

Also depending on how different your arm is, you may need to update the min and max angles for each of the servos.

Kurt

Curt,

Thank you for your help. I am now able to programming the chip. Modify the cons, arm lengths and servo angles is a good idea. I will give it a try.

Thanks

Dear Lynxmotion,

Rigth now, everything is moving. But, still need some modification.

  1. Coordination system. In the code, there are three lines. Asking position X and Y of the initWrist. Where is the origin, and what is positive X and Positive Y in your program?

InitWristPosX con 60 ;Init position X
InitWristPosY con 150 ;Init position Y
InitGripperAngle1 con -550 ;Init Angle gripper

  1. Can I increase servo speed?

  2. I have a hand. In the code, there are only Humerus and Ulna. How can I handle hand? What does InitGripperAngles1 mean?

HumerusLength con 275 ;Length of the Humerus [mm]
UlnaLength con 180 ;Length of the Ulna [mm]
InitWristPosX con 60 ;Init position X
InitWristPosY con 150 ;Init position Y
InitGripperAngle1 con -550 ;Init Angle gripper

  1. Where we are operating the PS2 controller, the robot went crazy and them stop with red LED flashing, then that happen, the controller stop working. We have to reset the controller in order to get it to work again. Is this normal?

  2. Is there a way we can view the program in the Atom pro 28 to make sure the program is correctly loaded.

We are getting there, thanks.

Something is wrong. When I try to use Bot Board II, there a continuous beep went off. See attached.

youtube.com/watch?v=edziWIiirl0

It stop working. Please help.

The sounds are generated when the program attempts to connect to the PS2 receiver, which is apparently not there? This is operating as normal.

That’s the initial wrist position, not positive…

Yes the overall speed of the motion is adjustable. I am not sure where this is in the code.

The arm is positioned by moving the end of the gripper in 3D space. As it moves the gripper stays at a constant angle relative to the ground plane.

Nope, this is not normal.

Not really… If it says the programming was complete, then it was.

That is the bright side. You are free to make as many modifications as you would like. The code you see is the code that is being used. So if you need a different starting position, try changing it and then simply reprogram the controller.

Yes. What have you tried? There are several ways to try to make it work differently/faster. You might try changing some of the code and see if you like the results.

Things like:

So there are comments here in the code talking about the Left stick moving either Up/down or Left/right. Each section appears to be updating a position by some value returned from the PS2 divided by 18. What happens if you change 18 to 10? does it work better?

b) You might try changing the time for each movement. In the code you have:

GOSUB Movement-BaseAngle1, -ShoulderAngle1, -ElbowAngle1, -WristAngle1, -Gripper1, -WristRotateAngle1, 100] ; kje - convert to integers
In here the 100 is the time in milliseconds, so try changing to 75 or …

Kurt

Hi Jim and Kurte,

Just comeback from a trip. Thank you for your reply. The crazy beep is because I connect PS2 control in wrong way. Sorry about that. Things improve a little bit. We think the problem is calibration. Everything reacts to the control and moving. But couple things still not under control. Is there a way to calibrate the arm? I saw you have a program that can calibrate the robot. Does that also works for BB II Atom28 pro without SSC32 board?

Thanks

Hi,

We are trying to figure out what does is InitGripperAngle1 con -550 mean? -55 degree from where to where? CCW or CW, etc.

From watching it in action, the 0 point is with the wrist straight out with the arm, and the -550 makes the gripper point down toward the ground…

Kurt

BaseLength con 69 ;Length of the Base [mm]

Does the length of the base mean the radius of the base?

Thanks

I believe that dim is referring to the height of the base at the shoulder axis point.