Segurament que molts de vosaltres heu vist en pel·lícules de ciència ficció com el científic o geek té un braç robòtic que controla tot i que pot agafar objectes o realitzar funcions com si fos una persona humana. Una cosa que cada vegada és més possible gràcies a l'Maquinari Lliure i a el Projecte Arduino. Però què és un braç robòtic? ¿Quines funcions té aquest gadget? Com es construeix un braç robòtic? A continuació us anem a respondre a totes aquestes preguntes.
Índex
Què és un braç robòtic
Un braç robòtic és un braç mecànic amb una base electrònica que permet que sigui totalment programable. A més, aquest tipus de braç pot ser un element únic però també pot ser part d'un robot o un altre sistema robòtic. La qualitat d'un braç robòtic enfront d'un altre tipus d'elements mecànics és que un braç robòtic és totalment programable mentre que la resta de dispositiu no. Aquesta funció ens permet tenir un únic braç robòtic per a diverses operacions i per a realitzar diverses activitats diferents i diferents, activitats que poden realitzar-se gràcies a plaques d'electrònica com les plaques d'Arduino.
Funcions d'un braç robòtic
Possiblement la funció més bàsica d'un braç robòtic sigui la funció de braç auxiliar. En algunes operacions necessitarem un tercer braç que suporti algun element perquè una persona pugui construir o crear alguna cosa. Per a aquesta funció no es necessita cap programació especial i tan sols necessitarem apagar el mateix dispositiu.
Els braç robòtics es poden construir amb diversos materials el que fa que puguem utilitzar-los com a substitut per a realitzar operacions perilloses com la manipulació d'elements químics contaminants. Un braç robòtic també pot ajudar-nos a fer tasques pesades o que es necessiten una pressió adequada, sempre que estigui construït amb un material fort i resistent.
Materials necessaris per a la seva construcció
A continuació anem a ensenyar-vos com construir un braç robòtic d'una forma ràpida, senzilla i econòmica per a tothom. No obstant això, aquest braç robòtic no serà tan potent o útil com els braços que veiem en les pel·lícules sinó que servirà per aprendre sobre el seu funcionament i la seva construcció. Així doncs, els materials que necessitarem per construir aquest dispositiu són:
- una placa Arduino UNO REV3 o superior.
- Dues plaques de desenvolupament.
- Dos servos d'eix en paral·lel
- Dos micro servos
- Dos controls analògics en paral·lel
- Cables amb jumper per a les plaques de desenvolupament.
- cinta adhesiva
- Cartró o un tauler d'escuma per al suport.
- Un cúter i tisores.
- Molta paciència.
Ensamblatge
El acoblament d'aquest braç robòtic és força senzill. En primer lloc hem de retallar dos rectangles amb l'escuma; cada un d'aquests rectangles seran parts de el braç robòtic. Com es pot veure en les imatges, aquests rectangles hauran de tenir la mida que vulguem, encara que es recomana que la mida d'un d'ells sigui de 16,50 x 3,80 cm. i el segon rectangle tingui el següent mida 11,40 x 3,80 cm.
Un cop tinguem els rectangles, en un dels extrems de cada rectangle o llistó enganxarem amb cinta adhesiva cada servomotor. Després de fer això, retallarem una "O" d'escuma. Això servirà com a part de subjecció o part final de el braç, el que per un humà seria la mà. Aquesta peça la unirem a l'servomotor que estigui en el rectangle més petit.
Ara hem de fer la part inferior o base. Per a això realitzarem el mateix procediment: retallarem un quadrat d'escuma i col·locarem els dos servomotors d'eix en paral·lel com en la imatge següent:
Ara hem de connectar tots els motors a la placa Arduino. Però abans, hem de connectar les connexions a la placa de desenvolupament i aquesta a la placa Arduino. El cable negre el connectarem a el pin GND, el cable vermell el connectarem a l'pin de 5V i els cables grocs a l'-11, -10, 4 i -3. Els joysticks o controls de el braç robòtic també el connectarem a la placa Arduino, en aquest cas com indica la imatge:
Una vegada que tinguem connectat tot i acoblament hem de passar el programa a la placa Arduino, per a això necessitarem connectar la placa Arduino a l'ordinador o portàtil. Un cop haguem passat el programa a la placa Arduino, hem d'assegurar-nos connectar els cables a la placa Arduino encara que sempre podem seguir amb la placa de desenvolupament i desmuntar-ho tot, Això últim si només ho volem per aprendre.
Programari necessari per al funcionament
Encara que sembla que hem acabat de construir un braç robòtic, la veritat és que encara queda molt per davant i el més important. El crear o desenvolupar un programa que de vida al nostre braç robòtic ja que sense ell, els servomotors no deixarien de ser simples mecanismes de rellotge que donessin voltes sense sentit.
Això se soluciona connectant la placa Arduino al nostre ordinador i obrim el programa IDE Arduino, Connectem l'ordinador a la placa i escrivim el següent codi en un arxiu en blanc:
#include <Servo.h> const int servo1 = 3; // first servo const int servo2 = 10; // second servo const int servo3 = 5; // third servo const int servo4 = 11; // fourth servo const int servo5 = 9; // fifth servo const int joyH = 2; // L/R Parallax Thumbstick const int joyV = 3; // U/D Parallax Thumbstick const int joyX = 4; // L/R Parallax Thumbstick const int joyP = 5; // U/D Parallax Thumbstick const int potpin = 0; // O/C potentiometer int servoVal; // variable to read the value from the analog pin Servo myservo1; // create servo object to control a servo Servo myservo2; // create servo object to control a servo Servo myservo3; // create servo object to control a servo Servo myservo4; // create servo object to control a servo Servo myservo5; // create servo object to control a servo void setup() { // Servo myservo1.attach(servo1); // attaches the servo myservo2.attach(servo2); // attaches the servo myservo3.attach(servo3); // attaches the servo myservo4.attach(servo4); // attaches the servo myservo5.attach(servo5); // attaches the servo // Inizialize Serial Serial.begin(9600); } void loop(){ servoVal = analogRead(potpin); servoVal = map(servoVal, 0, 1023, 0, 179); myservo5.write(servoVal); delay(15); // Display Joystick values using the serial monitor outputJoystick(); // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyH); servoVal = map(servoVal, 0, 1023, 0, 180); // scale it to use it with the servo (result between 0 and 180) myservo2.write(servoVal); // sets the servo position according to the scaled value // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyV); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo1.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyP); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo4.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyX); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo3.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there /** * Display joystick values */ void outputJoystick(){ Serial.print(analogRead(joyH)); Serial.print ("---"); Serial.print(analogRead(joyV)); Serial.println ("----------------"); Serial.print(analogRead(joyP)); Serial.println ("----------------"); Serial.print(analogRead(joyX)); Serial.println ("----------------"); }
El guardem i després d'això el vam enviar a la placa Arduino UNO. Abans d'acabar amb el codi realitzarem les proves pertinents per comprovar que els joysticks funcionen i que el codi no presenta cap error.
Ja el tinc muntat i ara què?
Segurament que molts de vosaltres no esperàveu aquest tipus de braç robòtic, però és ideal pel bàsic què és, el cost que té i la forma d'ensenyar a com construir un robot. A partir d'aquí tot pertany a la nostra imaginació. És a dir, podem canviar els materials, els servomotors i fins i tot emplenar el codi de programació. No cal dir que també podem canviar el model de placa Arduino per un de més potent i complet que ens permeti connectar un control remot o funcionar amb el telèfon intel·ligent. En fi, un gran ventall de possibilitats que ens ofereix el maquinari Lliure i els braços robòtics.
Més Informació - Instructius
Un comentari, deixa el teu
Definitivament la impressió 3D és la porta a grans coses. He treballat amb una Lion 2 en dissenys propis i els resultats m'han fascinat. Des que em van recomanar que llegís a l'respecte a http://www.leon-3d.es ja em dic l'atenció i a l'provar-la i testimoniar el autonivelado i els detalls en el resultat final vaig saber de la bona inversió que vaig fer.