Pages: [1]   Go Down
Author Topic: Need Help: 6wd WT w/ 6dof arm  (Read 856 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So I decided for a school project that I was going to try and do a build with the Dagu Wild Thumper 6wd with a 6DOF Arm.

I've already purchased the majority of the required parts needed for the project.

Here's a list of the parts:
Dagu: 6 w.d. WT, 6 DOF arm, WT motor control, and high power switch
2 Turnigy 7.2V 6K mA batteries, HK 6ch RC Tx & Rx, and charger
Arduino Mega 2560 and I also have an Uno and a internet shield.

Only things I plan on still getting is a camera and a router or wifi shield(still debating on that).

Now here is my dilemma.  Of all the research I've done for the past couple of months, I have yet to see any kind of codes available for controlling the arm with an arduino.  Here is a link of the arm I purchased: http://robosavvy.com/store/product_info.php/manufacturers_id/35/products_id/1595
I know the WT motor controller has 6 servo spots it can connect the arm with, but the issue is the coding needed for it.  I got the idea for this project by seeing a picture of the Wild thumper w/ the arm on it(http://www.robotshop.com/dagu-wild-thumper-6wd-all-terrain-chassis-aluminum-34-1.html). 

If any one has any experiance with this project, please help this noob out!  Am I missing anything else and mainly the coding needed to have the arm to work!?!
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Have a look at this:
http://www.circuitsathome.com/mcu/robotic-arm-inverse-kinematics-on-arduino
Logged

0
Offline Offline
Tesla Member
***
Karma: 114
Posts: 8911
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bottom is some multiple servo test code. Below is some info on using sliders on a web page to control servos. It uses an SD card to hold the files that are uploaded to the control web page.

http://arduino.cc/forum/index.php/topic,152598.msg1146131.html#msg1146131

Code:
//zoomkat 11-22-12 simple delimited ',' string parse
//from serial port input (via serial monitor)
//and print result out serial port
//multi servos added

String readString;
#include <Servo.h>
Servo myservoa, myservob, myservoc, myservod;  // create servo object to control a servo

void setup() {
  Serial.begin(9600);

  //myservoa.writeMicroseconds(1500); //set initial servo position if desired

  myservoa.attach(6);  //the pin for the servoa control
  myservob.attach(7);  //the pin for the servob control
  myservoc.attach(8);  //the pin for the servoc control
  myservod.attach(9);  //the pin for the servod control
  Serial.println("multi-servo-delimit-test-dual-input-11-22-12"); // so I can keep track of what is loaded
}

void loop() {

  //expect single strings like 700a, or 1500c, or 2000d,
  //or like 30c, or 90a, or 180d,
  //or combined like 30c,180b,70a,120d,

  if (Serial.available())  {
    char c = Serial.read();  //gets one byte from serial buffer
    if (c == ',') {
      if (readString.length() >1) {
        Serial.println(readString); //prints string to serial port out

        int n = readString.toInt();  //convert readString into a number

        // auto select appropriate value, copied from someone elses code.
        if(n >= 500)
        {
          Serial.print("writing Microseconds: ");
          Serial.println(n);
          if(readString.indexOf('a') >0) myservoa.writeMicroseconds(n);
          if(readString.indexOf('b') >0) myservob.writeMicroseconds(n);
          if(readString.indexOf('c') >0) myservoc.writeMicroseconds(n);
          if(readString.indexOf('d') >0) myservod.writeMicroseconds(n);
        }
        else
        {   
          Serial.print("writing Angle: ");
          Serial.println(n);
          if(readString.indexOf('a') >0) myservoa.write(n);
          if(readString.indexOf('b') >0) myservob.write(n);
          if(readString.indexOf('c') >0) myservoc.write(n);
          if(readString.indexOf('d') >0) myservod.write(n);
        }
         readString=""; //clears variable for new input
      }
    } 
    else {     
      readString += c; //makes the string readString
    }
  }
}

Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Pages: [1]   Go Up
Jump to: