Aquest post va a ser una guia completa per poder muntar el teu braç robòtic amb Arduino.
Com veus a la foto, el braç robòtic estarà mogut per 4 servomotors SG90 que dirigirem mitjançant 4 potenciòmetres. Tot això gràcies a la placa compatible amb Arduino.
Abans de res si vols pots repassar:
Què és un potenciòmetre i com funciona? en aquesta entrada del nostre bloc: COM CONTROLAR LA INTENSITAT DE LLUM (BRILLANT) D’UN LED AMB ARDUINO.
I també:
Com funciona un servo SG90? en aquesta altra entrada: COM CONTROLAR UN SERVO SG90.
Si més o menys tens clar com funcionen tant el potenciòmetre com el servo SG90, seguim amb el muntatge:
Muntatge del Braç Robòtic:
IMPORTANT: Utilitza silicona calenta per enganxar les diferents parts del projecte.
a) Les peces del projecte s’han de doblegar per les línies discontínues. Pressionem amb el cantell d’una regla sobre aquesta línia i doblem la peça.
b) Muntem la peça principal de la caixa on s’albergarà la placa compatible amb Arduino i la placa protoboard.
c) Li peguem la peça per la part posterior que farà la funció de cara posterior i tapa.
d) Un cop format el conjunt, l’enganxem a la base posicionant-lo amb ajuda de les línies marcades a la base del projecte. De la mateixa manera, enganxem la peça de plàstic blanca del servo.
e) Muntem el braç robòtic enganxant els servos a les diferents peces de cartró amb silicona calenta. Subjectar els cables amb les brides.
Muntem el pilar del braç robòtic:
A continuació, el segon element del braç, tingues en compte que cal enganxar dues peces de cartró per donar-li més consistència:
Encaixem les dues parts de el braç que acabem de muntar:
Passem a muntar l’última part del braç robòtic:
Muntem la pinza:
Encaixem totes les parts del braç robòtic:
Ajustem els cables amb les brides:
f) Posem la placa protoboard i la placa compatible amb Arduino en el seu lloc de la caixa:
g) Realitzem les connexions dels components tal com s’indica en esquema de circuit (veure esquema més avall)
Tingues en compte que:
- Cada servo porta el seu connector, el qual haurem de passar pel forat de la caixa destinat per a això, llavors connectar tres cables mascle-mascle i realitzar les connexions a la placa compatible amb Arduino (pin PWM) i a la placa protoboard (positiu i negatiu).
- Cada potenciòmetre estarà connectat amb tres cables que haurem de passar pel forat de la caixa destinat per a això i realitzar les connexions a la placa compatible amb Arduino (pin analògic) i a la placa protoboard (positiu i negatiu).
- Connectem tots els negatius (GND) de manera comuna.
Seguim passant cable, quan no càpiguen passa’ls d’un en un.
Un cop passats tots els cables realitzem les connexions als potenciòmetres.
A continuació, enganxem la placa protoboard dels potenciòmetres sobre la marca indicada per a això:
Realitzem la resta de connexions, en aquest cas pels 4 servos de manera similar a com s’ha procedit amb els potenciòmetres.
* Recorda també fer les connexions de negatiu comú.
Finalment, muntem la corda en l’acoblament blanc per a l’últim servo.
Aquesta ens permetrà accionar la pinça de el braç robòtic.
h) Fotos del projecte muntat:
Si es vol, per donar més consistència a la unió del braç amb la base, un cop es tinguin clars els angles de gir, es pot posar un punt de silicona calenta a la peça de plàstic blanca que s’acobla amb el servo o es pot utilitzar el cargol que ve amb el servo per unir les dues peces.
ESQUEMA DE MUNTATGE DEL CIRCUIT DEL BRAÇ ROBÒTIC:
Alimentació dels servos sg90:
Es recomana com a norma general i sempre que tinguem més d’un servo alimentar des d’una font de tensió externa. Això és degut a que quan el servo està en càrrega, en cas d’exigir un alt parell, pot necessitar massa intensitat i excedir els límits de corrent que ens pot proporcionar la placa compatible amb Arduino.
Per això en el nostre projecte utilitzem el mòdul d’alimentació per a placa protoboard.
Aquest connecta els seus terminals a les línies de positiu i negatiu de la placa protoboard i permet alimentar els 4 servos SG90 i els 4 potenciòmetres a 5V. (Com s’observa en el full d’especificacions de fabricant (data sheet) el Servo SG90 s’ha d’alimentar amb un voltatge de 4,8 a 6 volts).
Per alimentar aquest mòdul el connectem a la font d’alimentació de corrent continu (DC) de 9 V que ve en el kit el projecte.
Respecte a la placa compatible amb Arduino, no podem alimentar-la des del mòdul d’alimentació per a la placa protoboard perquè ho hauríem de fer mitjançant el pin de 5V i si per un descuit o desconeixement intentéssim alimentar el projecte per l’usb o el connector DC de la placa (i no per la font) podríem trencar la placa ja que aquesta intentaria subministrar intensitat pel pin de 5 V cap als servos i com hem dit, aquests requereixen molta més potència de la que la placa pot donar.
Per tant, connectarem la placa compatible amb Arduino de manera independent amb una pila de 9 Volts.
Cal destacar que la terra (GND) de tots els components ha de ser comuna (veure en l’esquema de muntatge).
Connexions:
PROGRAMACIÓ BRAÇ ROBÒTIC:
1. Descarrega el programa Arduino IDE (programari lliure i gratuït) de la pàgina oficial d’Arduino i instal·la al teu ordinador.
2. Un cop instal · lat el programa, hem d’instal·lar una llibreria perquè funcioni correctament.
Però abans d’això què és una llibreria? És un arxiu de codi que incorporem al nostre programa i ens permet noves funcionalitats.
Hi afegirem:
- La llibreria Servo per al Servo SG90.
Això ens permetrà fer funcionar el servo correctament.
Com les instal·lem? anem a
Eines> Gestiona les biblioteques…
Apareix el Gestor de biblioteques.
Escrivim en la recerca “Servo”. La busquem i la instal·lem.
3. Connecta la placa a l’ordinador amb el cable USB.
4. Comprova que tenim seleccionat el model de la placa Arduino / Genuino Uno.
Anem a: Eines>Placa: “Arduino / Genuino Uno”
La placa es connecta per defecte, però és important comprovar que està seleccionada correctament. Si no és així, no ens funcionarà el programa.
5. Comprova que la placa està connectada a port USB.
Anem a: Eines> Port: usbserial (es connecta per defecte).
6. Escriu el codi de programació (EL TENS MÉS BAIX) en l’IDE d’Arduino.
Aconsellem copiar a mà per així interioritzar millor el que estem programant. Si se t’oblida escriure alguna coma, parèntesis, etc et donarà un error de sintaxi. Revisa aquest error en la línia que el programa et marqui.
Encara que decideixis copiar i enganxar el programa, intenta entendre cada línia de codi, per a això tens la seva explicació en el programa.
Tot el que estigui a la dreta de // o entre / * i * / no és executat pel programa.
7. Pressionem la icona VERIFICAR per comprovar que el programa no conté cap error en el codi. Si la verificació és correcta i no tenim cap error, premem la icona PUJAR.
8. Un cop pujat el programa a la placa, podem desconnectar-la de el cable USB i alimentar-la amb la pila de 9V.
D’altra banda, agafem la font d’alimentació de 9V i la connectem al mòdul d’alimentació de la placa protoboard. Aquest serà l’encarregat d’alimentar els servos i els potenciòmetres.
Podem comprovar que, al girar els potenciòmetres, giraran també els servos corresponents.
PROGRAMA BRAÇ ROBÒTIC AMB ARDUINO:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
/*InputMakers Projecte del braç robòtic: controlarem el moviment dels quatre servos SG90 que mouen el braç mitjançant quatre potenciòmetres. */ #include <Servo.h> //Incloem la llibreria Servo.h que ens permetrà gestionar el moviment dels servos. /*Creem variables amb el nom de cada servo i els assignem als pins PWM on estaran connectats.*/ const int servo1 = 3; const int servo2 = 5; const int servo3 = 6; const int servo4 = 9; /* Calibrem els servos amb polsMin i polsMax.*/ int polsMin = 900; // Pols en microsegons corresponent a l'angle de 0º. int polsMax = 2100; // Pols en microsegons corresponent a l'angle de 180º. Servo myservo1; // Creem els Servos. Servo myservo2; Servo myservo3; Servo myservo4; void setup() { /* Assignem els pins als servos, ajustem els valors de pols mínim i màxim.*/ myservo1.attach(servo1, polsMin, polsMax); myservo2.attach(servo2, polsMin, polsMax); myservo3.attach(servo3, polsMin, polsMax); myservo4.attach(servo4, polsMin, polsMax); } void loop(){ /* Llegim el valor del potenciòmetre amb analogRead en cada pin d'entrada analògica A0, A1, A2 i A3. A continuació escalem amb map els valors del potenciòmetre (Que van de 0 a 1023 per a l'entrada analògica) als valors de moviment del servo (que van de 0 a 180 graus) Per últim assignem el valor al servo corresponent.*/ int servoVal1 = map(analogRead(A0), 0, 1023, 0, 180); int servoVal2 = map(analogRead(A1), 0, 1023, 0, 180); int servoVal3 = map(analogRead(A2), 0, 1023, 0, 180); int servoVal4 = map(analogRead(A3), 0, 1023,0, 180); myservo1.write(servoVal1); myservo2.write(servoVal2); myservo3.write(servoVal3); myservo4.write(servoVal4); delay(15); // detenim el programa 15 ms per a que el servo es posicioni. } |
Inicia’t en el món de la robòtica amb Arduino gràcies a aquest complet kit amb el qual podràs muntar el teu propi BRAÇ ROBÒTIC.
Perfecte per a nens amb la supervisió d’un adult a partir dels 11 anys, adolescents i adults interessats a aprendre robòtica, electrònica i programació amb Arduino des de zero. 100% compatible amb Arduino. S’inclou pila de 9V.
Aprèn robòtica, electrònica i programació de forma intuïtiva i simple!
IMPORTANT! OFERIM GRANS DESCOMPTES PER A CENTRES EDUCATIUS! SI ETS UN CENTRE EDUCATIU DEMANA PRESSUPOST PERSONALITZAT AQUÍ
[product_page id=”277″]
Comparteix si t’ha agradat 🙂
Salutacions de l’equip d’InputMakers i Segueix sempre aprenent!