Taula de continguts:

Braç robòtic amb mòduls Zio Part 2: 11 passos
Braç robòtic amb mòduls Zio Part 2: 11 passos

Vídeo: Braç robòtic amb mòduls Zio Part 2: 11 passos

Vídeo: Braç robòtic amb mòduls Zio Part 2: 11 passos
Vídeo: Как научиться резать ножом. Шеф-повар учит резать. 2024, De novembre
Anonim
Braç robòtic amb mòduls Zio Part 2
Braç robòtic amb mòduls Zio Part 2

Al tutorial d’avui utilitzarem els 4 servos i un controlador sense fils PS2 per controlar el braç robotitzat.

Aquesta entrada al bloc forma part de la Sèrie de Robòtica Zio.

Introducció

Al nostre bloc anterior, vam publicar un tutorial de la primera part sobre com controlar un braç robòtic mitjançant mòduls Zio. La primera part es concentra principalment a controlar automàticament l’artilla del braç robòtic per obrir-la i tancar-la.

Al tutorial d’avui, l’anirem incorporant un controlador sense fils PS2 per controlar el braç robòtic. Per a aquest projecte, farem servir 4 servos.

Pas 1: Visió general del projecte

Nivell de dificultat:

Zio Padawan

Recursos útils:

Hauríeu de tenir una comprensió bàsica de com instal·lar les plaques de desenvolupament Zio. En aquest tutorial, suposem que la vostra placa de desenvolupament ja està configurada i està preparada per configurar-la. Si encara no heu configurat el tauler, consulteu el nostre tutorial de Zio Qwiic Start Guide següent per començar:

Zio Zuino M Guia d'inici Qwiic de l'ONU

Pas 2: esquemes

Esquemes
Esquemes

Aquí teniu els esquemes de cablejat del projecte Robot Arm Part 2, així com el diagrama del controlador PS2 necessari per entendre la vostra part de codificació.

Pas 3: diagrama del controlador PS2

Diagrama del controlador PS2
Diagrama del controlador PS2

Pas 4: Configuració de la connexió dels mòduls Zio

A continuació es mostra la connexió dels nostres mòduls Zio que es configuraran amb el braç robòtic. Connectar tots els mòduls junts és bastant fàcil i no trigarà més de 10 minuts a configurar-se.

Pas 5: connecteu el robot de servomotor a Zio 16 Servo Controller

Connecteu el servo braç robòtic al controlador servo Zio 16
Connecteu el servo braç robòtic al controlador servo Zio 16

Pas 6: connecteu el vostre 16 Servo a DC / DC Booster i configureu-lo a 6,0V

Connecteu el vostre 16 Servo a DC / DC Booster i configureu-lo a 6,0V
Connecteu el vostre 16 Servo a DC / DC Booster i configureu-lo a 6,0V

Utilitzem un Booster DC / DC per augmentar i ajustar el voltatge de subministrament de la bateria a 6,0.

Utilitzeu el potenciòmetre del DC Booster per ajustar el voltatge fins obtenir 6,0. Premeu el botó In / Out fins que la pantalla mostri 6.0. Primer heu de subministrar energia (bateria de 3,7 V) al vostre amplificador de CC / CC per ajustar el voltatge.

Pas 7: Connecteu Zuino M Uno al controlador servo Zio 16

Connecteu Zuino M Uno al controlador servo Zio 16
Connecteu Zuino M Uno al controlador servo Zio 16

Qwiic connecteu Zuino M Uno al controlador Zio Servo amb cable qwiic.

Pas 8: Connectar Uno al receptor PS2

Connectant Uno al receptor PS2
Connectant Uno al receptor PS2

Aquí teniu un diagrama de pin de les connexions. Necessiteu 5 cables de pont masculí a femení per a aquesta part.

Pas 9: Codi del braç robòtic

Utilitzarem la biblioteca Arduino de PS2 per codificar el nostre controlador sense fils PS2 perquè funcioni amb el nostre braç robòtic. Podeu trobar i descarregar el codi font d’aquest projecte Robotic Arm Part 2 a la nostra pàgina de Github.

Descarregueu i instal·leu les biblioteques següents i deseu-les a la carpeta local de biblioteques Arduino IDE:

  • Adafruit PWM Servo Driver Library
  • Biblioteca Arduino de PS2

Per instal·lar les biblioteques, obriu el vostre IDE Arduino, aneu a la pestanya Esbós, seleccioneu Inclou biblioteca -> Afegeix biblioteca Zip. Seleccioneu les biblioteques anteriors que voleu incloure al vostre IDE.

Arduino té una guia pràctica sobre com instal·lar biblioteques al vostre IDE Arduino. Consulteu-les aquí.

Pas 10: executeu el vostre codi

Executeu el vostre codi
Executeu el vostre codi

Obriu Arduino IDE. A Fitxers> Exemples> PS2_Arduino_Library, seleccioneu PS2X_Servo

Nota: Abans de poder controlar el braç robotitzat amb el controlador PS2, comproveu els passos següents: Enceneu el controlador PS2. Comproveu que el LED de mode s’encengui. Si no ho fa, premeu el botó Mode del controlador. Després de fer l’anterior, cal prémer el botó de restabliment del Zuino M Uno perquè pugui llegir la configuració del controlador. Cal moure L1 i el joystick per moure el braç robotitzat.

  • El joystick esquerre controla la flexió del braç cap amunt o cap avall
  • El joystick dret controla la garra per obrir-la o tancar-la i girar la garra cap a l'esquerra o cap a la dreta.

Pas 11: explicació del codi

L’ús de la biblioteca PS2X Arduino és senzill, només requereix una inicialització, una configuració i després una ordre de lectura.

Per establir la connexió del controlador PS2 amb el Uno, a continuació es mostren els pins que heu de definir al codi:

/ ************************************************** *************** * establir pins connectats al controlador PS2: * - 1e columna: original * - 2e colmun: Stef? * substitueix els números dels pins pels que fas servir ******************************************* ********************** / # define PS2_DAT 13 // 14 #define PS2_CMD 11 // 15 # define PS2_SEL 10 // 16 # define PS2_CLK 12 // 17

Hem substituït els pins pels que fem servir per connectar-nos al nostre Uno tal com s’indica al diagrama de pins anterior.

/ ************************************************** **************** seleccioneu els modes del controlador PS2: * - pressions = lectura analògica dels botons automàtics * - rumble = motor rumb * comentari 1 de les línies per a cada selecció de mode ** *************************************************** ************ / // # define pressions true # define pressions false // # define rumble true # define rumble false

Aquí hem definit el mode PS2 per a pressions i estrèpit com a fals. Vam comentar els que no fem servir.

Només utilitzarem l’ordre Joystick del controlador i L1 per controlar el moviment del nostre braç robòtic.

void loop () {/ * Heu de llegir Gamepad per obtenir nous valors i establir valors de vibració ps2x.read_gamepad (motor petit encès / apagat, força del motor més gran de 0-255) si no activeu el rumble, utilitzeu ps2x.read_gamepad (); sense valors Hauríeu de trucar-ho almenys un cop al segon * / if (error == 1) // saltar bucle si no es troba cap controlador; else {// DualShock Controller ps2x.read_gamepad (fals, vibrador); // llegiu el controlador i configureu el motor gran perquè giri a la velocitat de 'vibració' si (ps2x. Button (PSB_START)) // serà TRUE sempre que es prem el botó Serial.println ("Es manté l'inici"); if (ps2x. Button (PSB_SELECT)) Serial.println ("La selecció està en espera"); vibrar = ps2x. Analog (PSAB_CROSS); // això establirà la velocitat de vibració del motor gran en funció de la intensitat amb la qual premeu el botó blau (X) si (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// imprimeix els valors del pal si algú és TRUE RY_Value = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Valors Stick:"); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

El codi següent és on codifiquem els nostres servos que controlen el nostre braç robòtic que incloem a la funció de trucada a ps2x.button (PSB_L1) || botó ps2x. (PSB_R1).

Heu de prémer el botó L1 o R1 juntament amb el joystick per controlar el braç robotitzat.

El joystick esquerre controla els servos 2 i 3 de la part del braç: controla la flexió cap amunt i cap avall del braç respectivament, mentre que el joystick dret controla els servos 0 i 1 de l’arpa del braç robòtic per obrir-lo o tancar-lo i girar-lo a l’esquerra o a la dreta.

SERVO 0, 1 - Arpa SERVO 2, 3 - Braç

Podeu fer canvis als valors d’aquesta secció per controlar el grau de l’angle del braç robotitzat:

pulselen0 = mapa (valor_RY, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = mapa (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = mapa (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = mapa (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Recomanat: