ROBOT MANIPULADOR CONTROLADO POR CELULAR

Arduino Tutoriales

MATERIALES

  • Arduino nano
  • Shield Arduino nano
  • Cables Jumper
  • Chasis robot movil (Descargar)
  • 4 servomotores sg90
  • 2 motores con caja reductora
  • Driver L298N
  • Módulo Bluetooh
  • Portapila
  • Pilas de 3.7v

PROCESO DE CONSTRUCCIÓN

CÓDIGO

#include <Servo.h>
Servo ser_hombro;
Servo ser_brazo;
Servo ser_codo;
Servo ser_garra;


int IN1 = 8; 
int IN2 = 9;
int IN3 = 10; 
int IN4 = 12;
int vel = 100;     
int VA=6;
int VB=11;      
char estado = 'g';   

char val;
String palabra;
String hombro;
String brazo;
String codo;
String garra;

int k1;
int k2;
int k3;
int k4;

void setup()
{
  Serial.begin(9600); 
  pinMode (IN4, OUTPUT);    // Input4 conectada al pin 4 
  pinMode (IN3, OUTPUT);    // Input3 conectada al pin 5
   pinMode (IN1, OUTPUT);    // Input4 conectada al pin 4 
  pinMode (IN2, OUTPUT);    // Input3 conectada al pin 5
  pinMode (4, OUTPUT); 
  pinMode (5, OUTPUT);
  pinMode (VA, OUTPUT); // velocidad A
  pinMode (VB, OUTPUT);// velocidad B
  ser_hombro.attach(5);
  ser_brazo.attach(2);
  ser_codo.attach(4);
  ser_garra.attach(3);
}
void loop()
{
   if(Serial.available()>0){       
      estado = Serial.read();
  

    switch(estado){
        case 'a':
        // Motor gira adelante
        digitalWrite (IN4, HIGH);
        digitalWrite (IN3, LOW); 
        digitalWrite (IN1, HIGH);
        digitalWrite (IN2, LOW); 
        analogWrite (VB, vel);
        analogWrite (VA, vel);
        break;
       
        case 'd': 
        // Motor no gira IZQUIERDA
        digitalWrite (IN4, HIGH);
        digitalWrite (IN3, LOW); 
        digitalWrite (IN1, LOW);
        digitalWrite (IN2, HIGH); 
        analogWrite (VB, vel);
        analogWrite (VA, vel);
        break;
        case 'e':
        // Motor gira atras
        digitalWrite (IN4, LOW);
        digitalWrite (IN3, HIGH);
        digitalWrite (IN2, HIGH);
        digitalWrite (IN1, LOW);
        analogWrite (VB, vel);
        analogWrite (VA, vel);
        break;
        case 'b':
        // Motor no DERECHA
       digitalWrite (IN4, LOW);
        digitalWrite (IN3, HIGH); 
        digitalWrite (IN1, HIGH);
        digitalWrite (IN2, LOW); 
        analogWrite (VB, vel);
        analogWrite (VA, vel);
        break;
        case 'c':
           //centro
        digitalWrite (IN4, LOW);
          digitalWrite (IN3, LOW); 
         digitalWrite (IN1, LOW);
         digitalWrite (IN2, LOW); 
         analogWrite (VB, vel);
        analogWrite (VA, vel);
         break;
          case '*':
           Serial.println(palabra);
            k1 = palabra.indexOf(',');
            hombro = palabra.substring(0, k1);
            
            k2 = palabra.indexOf(',', k1+1);
            brazo = palabra.substring(k1+1, k2);
            
            k3 = palabra.indexOf(',',k2+1);
            codo = palabra.substring(k2+1, k3);
            
            k4 = palabra.indexOf(',',k3+1);
            garra = palabra.substring(k3+1, k4);
                  
            ser_hombro.write(hombro.toInt());
            ser_brazo.write(brazo.toInt());
            ser_codo.write(codo.toInt());
            ser_garra.write(garra.toInt());
            palabra = "";  
          break;
          default:
              palabra = palabra + estado;
          break;
  
      }
    }
  
}

APLICACIÓN MÓVIL

DESCARGAR APLICACION

ESQUEMA ELECTRÓNICO

VÍDEO TUTORIAL

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *