Com fer un braç robòtic controlat per Bluetooth Arduino i Bluetooth?

Al segle passat, la robòtica és el camp de recerca més emergent. Els robots han pres el control de gairebé tot el que feien els humans. Podem veure robots autònoms que realitzen diverses tasques a la nostra societat. També hi ha robots controlats a distància que ens ajuden a realitzar diverses operacions. Des de la fabricació de circuits Nano en el camp de l’enginyeria fins a la realització de cirurgies complexes en el camp de la medicina, els robots són més fiables que els éssers humans.



Braç robòtic

En aquest projecte, farem un braç robòtic que serà controlat per un microcontrolador Arduino. Es controlarà mitjançant Bluetooth amb l’ajuda d’una aplicació de control remot per a Android.



Com controlar un braç robòtic mitjançant Arduino?

Ara, ja que coneixem el resum del nostre projecte. Recopilem més informació sobre els circuits i comencem a construir un braç robòtic controlat per Bluetooth i el controlem mitjançant Bluetooth.



Pas 1: recollida dels components

El millor enfocament per iniciar qualsevol projecte és fer una llista completa de components. Aquesta no només és una manera intel·ligent d’iniciar un projecte, sinó que també ens estalvia molts inconvenients enmig del projecte. A continuació es mostra una llista de components d’aquest projecte:



  • Transceptor de sèrie Bluetooth sense fils HC-05
  • Adaptador 6V
  • Jumper Wires
  • Taula de pa

Pas 2: estudiar els components

Com que tenim una llista completa de tots els components que farem servir, fem un pas endavant i passem a un breu estudi de tots els components.

Arduino Nano és una placa de microcontroladors que realitza diverses operacions en diferents circuits. Requereix un Codi C que indica al tauler quines tasques realitzar i com. Té 13 pins d'E / S digitals, cosa que significa que podem utilitzar 13 dispositius diferents. Arduino Nano té exactament la mateixa funcionalitat que Arduino Uno, però en una mida força petita. El microcontrolador de la placa Arduino Nano és ATmega328p. Si voleu controlar més de 13 dispositius, utilitzeu Arduino Mega.

Arduino Nano



Transceptor de sèrie Bluetooth sense fils HC-05 : Necessitem comunicació sense fils en aquest projecte, de manera que utilitzarem la tecnologia Bluetooth i per a aquest mòdul que s'utilitzarà és HC-05. Aquest mòdul té diverses velocitats de transmissió programables, però la velocitat de transmissió per defecte és de 9600 bps. Es pot configurar com a mestre o esclau, mentre que un altre mòdul HC-06 només pot funcionar en mode esclau. Aquest mòdul té quatre pins. Un per a VCC (5V) i els tres restants per a GND, TX i RX. La contrasenya per defecte d'aquest mòdul és 1234 o bé 0000 . Si volem comunicar-nos entre dos microcontroladors o comunicar-nos amb qualsevol dispositiu amb funcionalitat Bluetooth com un telèfon o un portàtil HC-05 ens ajuda a fer-ho. Ja hi ha diverses aplicacions d'Android disponibles, cosa que facilita molt aquest procés.

Mòdul Bluetooth HC-05

Un típic Braç robòtic està format per diversos segments i solen tenir 6 articulacions. Conté un mínim de 4 motors pas a pas que són controlats per l'ordinador. Els motors pas a pas són diferents dels altres motors de corrent continu. Es mouen amb precisió en increments exactes. Aquests braços robòtics s’utilitzen per realitzar diverses operacions. Els podem accionar manualment mitjançant un comandament a distància o els podem programar perquè funcionin de forma autònoma.

Braç robòtic.

Pas 3: Muntatge dels components

Ara ja sabem sobre el funcionament de tots els components principals utilitzats. Comencem a muntar-los i fem un circuit per construir un braç robòtic controlat a distància.

  1. .Col·loqueu la placa Arduino Nano a la taula de suport. L'Arduino s'alimentarà a través del cable positiu i negatiu de l'adaptador.
  2. Col·loqueu el mòdul Bluetooth també a la taula de proves. Enceneu el mòdul Bluetooth mitjançant Arduino. Connecteu el pin Tx del mòdul Bluetooth al pin Rx de la placa Arduino Nan i connecteu el pin Rx del mòdul Bluetooth al pin Tx de la placa Arduino Nano.
  3. Com sabem, hi ha 4 motors pas a pas. Cadascun té un nom tècnic. Se'ls anomena Colze , Espatlla , base, i Pinça . El Vcc i el terra de tots els motors seran comuns i connectats al positiu i al negatiu de l’adaptador de 6 V. El pin de senyal de tots els quatre motors es connectarà al pin5, pin6, pin9 i pin11 d’Arduino Nano.
  4. Assegureu-vos que les connexions que heu fet són segons el diagrama de circuits següent.

    Esquema de connexions

Pas 4: Introducció a Arduino

Si encara no esteu familiaritzat amb l’IDE ​​Arduino, no us preocupeu, perquè a continuació s’explica un procediment pas a pas per configurar i utilitzar Arduino IDE amb una placa de microcontrolador.

  1. Descarregueu la versió més recent d'Arduino IDE des de Arduino.
  2. Connecteu la vostra placa Arduino Nano al portàtil i obriu el tauler de control. A continuació, feu clic a Maquinari i so . Ara feu clic a Dispositius i impressores. Aquí trobareu el port al qual està connectada la vostra placa de microcontrolador. En el meu cas ho és COM14 però és diferent en diferents ordinadors.

    Buscant Port

  3. Feu clic al menú Eina i configureu el tauler a Arduino Nano des del menú desplegable.

    Taula de configuració

  4. Al mateix menú d'eines, establiu el port al número de port que heu observat abans al fitxer Dispositius i impressores .

    Configuració del port

  5. Al mateix menú d'eines, configureu el processador a ATmega328P (Old Bootloader).

    Processador

  6. Per escriure codi per accionar els servomotors, necessitem una biblioteca especial que ens ajudi a escriure diverses funcions per als servomotors. Aquesta biblioteca s’adjunta junt amb el codi, a l’enllaç següent. Per incloure la biblioteca, feu clic a Esbós> Inclou biblioteca> Afegeix ZIP. Biblioteca.

    Inclou la biblioteca

  7. Baixeu-vos el codi adjunt a continuació i enganxeu-lo al vostre IDE Arduino. Feu clic al botó pujar per gravar el codi a la placa del microcontrolador.

    Pujar

Per descarregar el codi, clica aquí.

Pas 5: descarregar l'aplicació

Com ara hem reunit tot el circuit i hem penjat el codi a la placa del microcontrolador. permet descarregar una aplicació mòbil que funcionarà com a control remot del braç robotitzat. Hi ha una aplicació gratuïta disponible a Google Play Store. El nom de l'aplicació és el Control del robot Little Arm . Per establir una connexió Bluetooth, activeu el Bluetooth al vostre mòbil. Aneu a la configuració i vinculeu el mòbil amb el mòdul HC-05. Després de fer això, premeu el botó Bluetooth de l'aplicació. Si es torna verda, vol dir que l'aplicació ja està connectada i està preparada per accionar el braç robotitzat. Hi ha barres lliscants per configurar el braç robòtic com vulgueu.

Aplicació

Pas 6: entendre el codi

El codi és ben comentat i fàcil d’entendre. Tot i això, a continuació s’explica breument.

1. Al començament, s'inclou una biblioteca per escriure un codi per operar servomotors. Una altra biblioteca math.h s'inclou per realitzar diferents operacions matemàtiques al codi. També s’inicialitzen quatre objectes per utilitzar-los per als quatre servomotors.

#include // biblioteca arduino #include // biblioteca c estàndard #define PI 3.141 Servo baseServo; Servo muscleServo; Servo colze Servo; Servo pinça Servo; int ordre;

2. Llavors es declara una estructura que pren valors per als servomotors de base, espatlla i colze.

struct jointAngle {// desclaració d'una estructura int base; int espatlla; int colze; };

3. Després d'això, algunes variables s'inicialitzen per emmagatzemar l'adherència, el retard i la posició desitjats del servomotor. la velocitat s'estableix en 15 i es fa que un objecte prengui el valor de l'angle de l'estructura.

int desitjatGrip; int gripperPos; int desitjatDelay; int servoSpeed ​​= 15; int ready = 0; struct jointAngle desitjatAngle; // angles desitjats dels servos

4. configuració nul·la () és una funció que s’utilitza per configurar els pins d’Arduino com a INPUT o OUTPUT. Aquí, en aquesta funció, hem declarat que el pin dels motors estarà connectat a quins pins de l'Arduino. També s’assegura que l’Arduino no llegeix massa temps l’entrada de sèrie. La posició inicial i la velocitat de transmissió també es defineixen en aquesta funció. Baud Rate és la velocitat amb què la placa de microcontrolador es comunicarà amb els servos i el mòdul Bluetooth connectats.

configuració nul·la () {Serial.begin (9600); baseServo.attach (9); // fixa el servo base al pin 9 a l'objecte servo shoulderServo.attach (10); // fixa el servo d'espatlla al pin 9 a l'objecte servo elbowServo.attach (11); // fixa el servo del colze al pin 9 a la pinça servoServo.attach (6); // fixa el servo de la pinça al pin 9 a l'objecte servo Serial.setTimeout (50); // assegura que l'arduino no llegeix la sèrie durant massa temps Serial.println ('començat'); baseServo.write (90); // posicions inicials de servos shoulderServo.write (150); elbowServo.write (110); llest = 0; }

5. servoParallelControl () és una funció que s’utilitza per detectar la posició actual del braç robotitzat i moure’l segons l’ordre donat a través de l’aplicació mòbil. Si la posició actual és inferior a la real, el braç es mourà cap amunt i viceversa. Aquesta funció retornarà el valor de la posició actual i la velocitat del servo.

int servoParallelControl (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // llegeix la posició actual newPos = startPos; // int theSpeed ​​= velocitat; // defineix on es troba la pos respecte a l'ordre // si la posició actual és inferior a la que es mou cap amunt si (startPos (thePos + 5)) {newPos = newPos - 1; theServo.write (newPos); retard (la velocitat); retorn 0; } else {return 1; }}

6. bucle buit () és una funció que s'executa repetidament en un bucle. Aquesta funció llegeix les dades que arriben en sèrie i emmagatzema l’angle de cada servo a l’estructura. Inicialment, l'estat de tots els servos s'estableix a zero. Aquí una funció servoParallelControl () es crida i s’hi passen paràmetres. aquesta funció retornarà el valor i s'emmagatzemarà en una variable d'estat.

bucle buit () {if (Serial.available ()) {ready = 1; desitjatAngle.base = Serial.parseInt (); desitjatAngle.shoulder = Serial.parseInt (); desitjatAngle.elbow = Serial.parseInt (); desitjatGrip = Serial.parseInt (); delayDelay = Serial.parseInt (); if (Serial.read () == ' n') {// si l'últim byte és 'd', deixeu de llegir i executeu l'ordre 'd' significa Serial.flush () 'fet'; // esborra la resta d'ordres apilades al buffer // envia la finalització de l'ordre Serial.print ('d'); }} int status1 = 0; int status2 = 0; int status3 = 0; int status4 = 0; int done = 0; while (fet == 0 && llest == 1) {// moveu el servo a la posició desitjada status1 = servoParallelControl (desitjatAngle.base, baseServo, desitjatDelay); status2 = servoParallelControl (desitjatAngle.shoulder, shoulderServo, desitjatDelay); status3 = servoParallelControl (desitjatAngle.elbow, elbowServo, desitjatDelay); status4 = servoParallelControl (desitjatGrip, gripperServo, desitjatDelay); if (status1 == 1 & status2 == 1 & status3 == 1 & status4 == 1) {done = 1}} // final de mentre}

Ara, aquest era tot el procediment per fer un braç robòtic. Després de gravar el codi i descarregar l'aplicació, el robot hauria de funcionar perfectament quan es moguin els control lliscants de l'aplicació. També podeu programar el braç perquè funcioni de forma autònoma per realitzar la tasca desitjada.