jueves, 23 de marzo de 2017

COMUNICACIONES INALAMBRICAS (Programaciòn del proyecto) 5.1



Robótica inalámbrica  5.1 (proyecto)



            En el blog (http://roboticared.blogspot.mx/2017/03/robotica-en-desarrollos-comunicaciones.html) se habló respecto a lo que es una comunicación inalámbrica y como funciona resumidamente el bluetooth, ahora veamos un poco de la programación, para hacer funcionar un robot móvil inalámbrico.

Antes de empezar debemos destacar que:
Para que funcione nuestro desarrollo es necesario contar con un módulo bluetooth modelo HC-06 para la comunicación con el dispositivo móvil (teléfono Android).





  CONEXIONES

   
                    Entre el modulo bluetooth hc06 y tarjeta de control Arduino.



(ES IMPORTANTE EL NO TENER CONECTADO LOS PUERTO RX Y TX  A LA HORA DE DESCARGAR EL PROGRAMA, YA QUE GENERARA UN ERROR).

Tarjeta de control Arduino y el driver de los motores L298N.

También en lo referente a la conexión de los motores deben de ser de la siguiente manera en nuestro robot móvil. Este robot móvil  utiliza una tarjeta de control (Arduino) y una tarjeta driver L298N para los moto-reductores de DC (modulo puente H), para que este a su vez pueda darle velocidad y potencia a los motores, e influye mucho la manera de conexión ya que sin esta configuración, nuestros motores no nos responderán correctamente a la hora de la exposición.
A continuación se muestra la programación hecha por los alumnos así como las conexiones de este robot móvil en la tarjeta L298N a los puertos digitales del arduino.


Entre el driver de los motores L298N y los moto-reductores


Los moto-reductores son motores de corriente directa que tienen acoplado en la flecha de salida un engranaje que le permite reducir su velocidad y aumentar su torque, son muy utilizados para controlar la precisión y para trabajar con pesos que sin ese acoplamiento sería imposible mover








PROGRAMACIÓN




Antes de presentar la programación debemos de conocer los comandos que se utilizaron en la elaboración de este proyecto y para que se utilizan:




Int: nos sirve para declarar datos numéricos enteros de 16 bits, estas variables las configuramos al principio de la programación y las vamos llamando según sea el caso necesitado.



Serial.begin: abre su puerto serie y fija una velocidad predeterminada en baudios para la transición de datos en serie. El valor típico de velocidades para comunicarse con un ordenador, o dispositivo móvil es de 9600 aunque se le pueden agregar otras velocidades.




analogWrite: Esta instrucción es utilizada para escribir un valor analógico utilizando la modulaciones por ancho de pulso (PWM), si enviamos un valor de 0 nos mandara una salida de 0 voltios en el pin especificado, el valor HIGH de una salida de este tipo equivale a 5 voltios.

if: es una condición que se utiliza para probar si una determinada condición  se ha alcanzado, como por ejemplo averiguar si un valor analógico está por encima de un cierto numero, si es verdad se  ejecuta una serie de acciones, que se describen dentro de las llaves. Si es falso la condición no se cumple  y salta a otra linea programa.

La declaración de estado llama a las subrutinas de la aplicación Android y ejecuta el programa seleccionado por los comandos en los botones de la pantalla del celular. Es importante que para que este funcione, descargues nuestra app.


int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255;            // Velocidad de los motores (0-255)
int estado = 'g';         // inicia detenido

void setup()  {
  Serial.begin(9600);    // inicia el puerto serial para comunicacion con el Bluetooth
  pinMode(derA, OUTPUT);
  pinMode(derB, OUTPUT);
  pinMode(izqA, OUTPUT);
  pinMode(izqB, OUTPUT);
 }

void loop()  {
 
  if(Serial.available()>0){        // lee el bluetooth y almacena en estado
      estado = Serial.read();
  }
  if(estado=='a'){           // Boton desplazar al Frente
      analogWrite(derB, 0);    
      analogWrite(izqB, 0);
      analogWrite(derA, vel); 
      analogWrite(izqA, vel);      
  }
  if(estado=='b'){          // Boton IZQ
      analogWrite(derB, 0);    
      analogWrite(izqB, 0);
      analogWrite(derA, 0); 
      analogWrite(izqA, vel);     
  }
  if(estado=='c'){         // Boton Parar
      analogWrite(derB, 0);    
      analogWrite(izqB, 0);
      analogWrite(derA, 0);   
      analogWrite(izqA, 0);
  }
  if(estado=='d'){          // Boton DER
       analogWrite(derB, 0);    
       analogWrite(izqB, 0);
       analogWrite(izqA, 0);
       analogWrite(derA, vel); 
  }
 
  if(estado=='e'){          // Boton Reversa
       analogWrite(derA, 0);   
       analogWrite(izqA, 0);
       analogWrite(derB, vel); 
       analogWrite(izqB, vel);     
  }
  if (estado =='f'){          // Boton ON se mueve sensando distancia

  }
  if  (estado=='g'){          // Boton OFF, detiene los motores no hace nada
  }
}






En Robótica Educativa RED Matamoros estamos iniciando  el curso de Robótica en desarrollos en Comunicaciones inalámbricas, donde recibirás el entrenamiento necesario para que tú puedas crear tu propia app y tu sistema inteligente de robot móvil de una manera facil y  entretenida asi como diversas practicas  de la placa arduino, si te interesa adquirir el kit  de comunicaciones inalambricas en robots moviles puedes  llamarnos  a los teléfonos  01 (868) 8134817 o síguenos en Facebook: https://www.facebook.com/roboticaRED/ " TE ESTAMOS ESPERANDO LLAMA YA!!! "




No hay comentarios.:

Publicar un comentario