Building a meArm
4-axis robot

We looked at a lot of different robot arms and decided to build one that is similar to the MeArm tiny 4-axis robot.

We started disamble the 3D file in solidworks, but found out later that it would be easier to open it in rhino make2D and lay all the parts on the stock for the lasercutter. The thing about the file was that it already had all the simulation for the movements in solidworks. That comes in handy for the future when we want to create our own arm.

It was Saturday so the fablab was closed. We decided to go to the FabCafe, a place where you have to see when your visiting barcelona. They have a 3D printer and a lasercutter and for a small amount of coins we let our parts cut out of 3mm acrylic glas. After that we meet in the park and wanted to assemble the robot, but found out we would need the servos to assemble it. At least we found most of the screws we need in a hard ware shop.

On monday we found some servos in the lab and started to assemble it. It was difficult because acrylic glas in 3mm likes to split, so we lasercutted a second board just to be sure that we will have enough parts. Then we found out that a couple of the servos are broke so we needed to buy new ones.

And the code we started to use in Arduino:

//zoomkat dual pot/servo test 12-29-12 //view output using the serial monitor #include Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; int potpin0 = A0; //my pot pin int potpin1 = A1; int potpin2 = A2; int potpin3 = A3; int newval1, oldval1; int newval2, oldval2; int newval3, oldval3; int newval4, oldval4; void setup() { Serial.begin(9600); myservo1.attach(11); myservo2.attach(9); myservo3.attach(10); myservo4.attach(6); Serial.println("testing dual pot servo"); } void loop() { newval1 = analogRead(potpin0); newval1 = map(newval1, 0, 1023, 0, 179); if (newval1 < (oldval1-2) || newval1 > (oldval1+2)){ myservo1.write(newval1); Serial.print("1- "); Serial.println(newval1); oldval1=newval1; } newval2 = analogRead(potpin1); newval2 = map(newval2, 0, 1023, 0, 179); if (newval2 < (oldval2-2) || newval2 > (oldval2+2)){ myservo2.write(newval2); Serial.print("2- "); Serial.println(newval2); oldval2=newval2; } newval3 = analogRead(potpin2); newval3 = map(newval3, 0, 1023, 0, 179); if (newval3 < (oldval3-2) || newval3 > (oldval3+2)){ myservo3.write(newval3); Serial.print("3- "); Serial.println(newval3); oldval3=newval3; } newval4 = analogRead(potpin3); newval4 = map(newval4, 0, 1023, 0, 179); if (newval4 < (oldval4-2) || newval4 > (oldval4+2)){ myservo3.write(newval4); Serial.print("4- "); Serial.println(newval4); oldval4=newval4 ; } delay(50); }

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

Oscar

Arduino

Esteban

Assembling the Robot

Wim

Assembling the Robot