viernes, 30 de julio de 2021

 

3. Programación de Carrito Arduino

3.1. Test de movimientos

Para poder programar necesitamos desconectar el módulo Bluetooth, podemos desconectar todo el módulo o simplemente dejar libre el RX (pin 0) del Arduino

El código es el siguiente:

//Pines de conexión del driver
int Pin_Motor_Der_A = 8;
int Pin_Motor_Der_B = 9;
int Pin_Motor_Izq_A = 10;
int Pin_Motor_Izq_B = 11;

void setup() {
  // inicializar la comunicación serial a 9600 bits por segundo:
  Serial.begin(9600);
  // configuramos los pines como salida
  pinMode(Pin_Motor_Der_A, OUTPUT);
  pinMode(Pin_Motor_Der_B, OUTPUT);
  pinMode(Pin_Motor_Izq_A, OUTPUT);
  pinMode(Pin_Motor_Izq_B, OUTPUT);
}

void loop() {
  //movemos el robot hacia delante por 2 segundos
  Mover_Adelante();
  delay(2000);
  //movemos el motor a la derecha por 2 segundos
  Mover_Derecha();
  delay(2000);
  
}

void Mover_Adelante()
{
  digitalWrite (Pin_Motor_Der_A, HIGH);
  digitalWrite (Pin_Motor_Der_B, LOW);
  digitalWrite (Pin_Motor_Izq_A, HIGH);
  digitalWrite (Pin_Motor_Izq_B, LOW);
}
void Mover_Retroceso()
{
  digitalWrite (Pin_Motor_Der_A,LOW );
  digitalWrite (Pin_Motor_Der_B,HIGH );
  digitalWrite (Pin_Motor_Izq_A,LOW );
  digitalWrite (Pin_Motor_Izq_B,HIGH );
}
void Mover_Derecha()
{
  digitalWrite (Pin_Motor_Der_A,LOW );
  digitalWrite (Pin_Motor_Der_B,HIGH );
  digitalWrite (Pin_Motor_Izq_A,HIGH);
  digitalWrite (Pin_Motor_Izq_B,LOW);
}
void Mover_Izquierda()
{
  digitalWrite (Pin_Motor_Der_A,HIGH);
  digitalWrite (Pin_Motor_Der_B,LOW);
  digitalWrite (Pin_Motor_Izq_A,LOW );
  digitalWrite (Pin_Motor_Izq_B,HIGH );
}
void Mover_Stop()
{
  digitalWrite (Pin_Motor_Der_A, LOW);
  digitalWrite (Pin_Motor_Der_B, LOW);
  digitalWrite (Pin_Motor_Izq_A, LOW);
  digitalWrite (Pin_Motor_Izq_B, LOW);

3.2. Robot Móvil controlado por Bluetooth

Descargaremos una aplicación llamada “MikroApp” que instalaremos en el móvil

aparece un botón para conectar este con el arduino del coche mediante

Bluetooth, una vez conectado, podemos pulsar el resto de botones:


La aplicación consta de 4 botones una para cada dirección, al presionar el botón para mover adelante, la aplicación envía por Bluetooth el carácter ‘a’ y lo sigue enviando constantemente mientras se tenga presionado. De igual manera para los otros botones, la aplicación envía ‘r’ para retroceso, ‘i’ para izquierda y ‘d’  para mover a la derecha.

Nuestro  Arduino debe de leer estos 4 caracteres y realizar el movimiento, además al no tener un botón stop, nuestro Arduino deberá detener de forma automática los movimientos cuando no se tenga presionado ningún botón.

Antes de cargar el programa a nuestro Arduino debemos de desconectar los cables de nuestro Bluetooth y después de terminado la carga podemos volverlo a conectarlo.

El  código que debemos de cargar a nuestro Arduino es el siguiente:

//Pines de conexión del driver
int Pin_Motor_Der_A = 8;
int Pin_Motor_Der_B = 9;
int Pin_Motor_Izq_A = 10;
int Pin_Motor_Izq_B = 11;

int tiempo=0;
void setup() {
  // inicializar la comunicación serial a 9600 bits por segundo:
  Serial.begin(9600);
  // configuramos los pines como salida
  pinMode(Pin_Motor_Der_A, OUTPUT);
  pinMode(Pin_Motor_Der_B, OUTPUT);
  pinMode(Pin_Motor_Izq_A, OUTPUT);
  pinMode(Pin_Motor_Izq_B, OUTPUT);

}

void loop() {

  if (Serial.available()) {
     char dato= Serial.read();
     if(dato=='a')
     {
        Mover_Adelante();
        tiempo=0;
     }
     else if(dato=='r')
     { 
        Mover_Retroceso();
        tiempo=0;
     }
     else if(dato=='d')
     { 
        Mover_Derecha();
        tiempo=0;
     }
     else if(dato=='i')
     { 
        Mover_Izquierda();
        tiempo=0;
     }   
   
  }

  if(tiempo<200) // 100 cilcos de 1ms 
  {    
    tiempo=tiempo+1;
  }
  else   //ya transcurrió 100ms (100ciclos)
  {
    Mover_Stop();
  }
  
  
  delay(1); //pasusa de 1ms por ciclo
  
}

void Mover_Adelante()
{
  digitalWrite (Pin_Motor_Der_A, HIGH);
  digitalWrite (Pin_Motor_Der_B, LOW);
  digitalWrite (Pin_Motor_Izq_A, HIGH);
  digitalWrite (Pin_Motor_Izq_B, LOW);
}
void Mover_Retroceso()
{
  digitalWrite (Pin_Motor_Der_A,LOW );
  digitalWrite (Pin_Motor_Der_B,HIGH );
  digitalWrite (Pin_Motor_Izq_A,LOW );
  digitalWrite (Pin_Motor_Izq_B,HIGH );
}
void Mover_Derecha()
{
  digitalWrite (Pin_Motor_Der_A,LOW );
  digitalWrite (Pin_Motor_Der_B,HIGH );
  digitalWrite (Pin_Motor_Izq_A,HIGH);
  digitalWrite (Pin_Motor_Izq_B,LOW);
}
void Mover_Izquierda()
{
  digitalWrite (Pin_Motor_Der_A,HIGH);
  digitalWrite (Pin_Motor_Der_B,LOW);
  digitalWrite (Pin_Motor_Izq_A,LOW );
  digitalWrite (Pin_Motor_Izq_B,HIGH );
}
void Mover_Stop()
{
  digitalWrite (Pin_Motor_Der_A, LOW);
  digitalWrite (Pin_Motor_Der_B, LOW);
  digitalWrite (Pin_Motor_Izq_A, LOW);
  digitalWrite (Pin_Motor_Izq_B, LOW);
}

materiales del carrito arduino

 

1. Materiales:

Empecemos describiendo los principales materiales:

Arduino


Podemos usar cualquiera de las placas Arduino, nosotros usaremos el Arduino Uno R3 por ser uno de los más usados.

Módulo Bluetooth HC-06 o HC-05 

Este módulo nos sirve para que nuestro Arduino y el celular puedan comunicarse a través de Bluetooth. Para esta aplicación podemos usar cualquiera de los dos módulos pues los trabajaremos en modo esclavo.

Si usan un HC-06 estaría listo para usar, si usan un HC-05 deben verificar que esté configurado como esclavo. La velocidad con la que vamos a trabajar es a 9600baudios, que es la velocidad que viene por defecto tanto en el HC-06 como en el HC-05.

Motores con Llanta:

Básicamente  2 motores DC con caja reductora y su respectiva llanta, una velocidad promedio puede ser 100RPM, pero dependerá de la velocidad que uno desee.

El voltaje dependerá de la batería, por ejemplo si tienen una batería de 6V o de 3.7V se puede trabajar con el motor amarillo, si tienen una batería de 12V  o 9V pueden trabajar con los micro motores, Si alimentamos un motor con un voltaje inferior al nominal, su velocidad disminuye, en cambio sí alimentamos con un voltaje superior podemos malograr el motor, por eso debemos de tener en cuenta las especificaciones técnicas del motor.

Batería


Esto tal vez sea lo más difícil de establecer, lo primero que hay que tener en cuenta es el voltaje. Arduino trabaja con un  voltaje entre 6 y 12V, aparte de esto hay que tener en cuenta el voltaje del motor. También hay que considerar la corriente y la capacidad, por ejemplo si usamos una pila económica de 9V nos durará menos de un minuto, se recomienda que la capacidad sea superior a 500mAH

Chasis y rueda loca


Esto dependerá del diseño de cada uno, pueden hacerlo, o comprar uno hecho. El chasis básicamente es en donde se va a poner los dos motores con llanta y los demás componentes, adicionalmente se necesita una rueda giratoria o una ballcaster, que será el tercer punto de apoyo junto a las otras dos llantas.

2. Conexiones eléctricas:



Para este caso si necesitamos usar una sola batería, es mejor usar un step down y no alimentar los motores con los 5V del Arduino, pues sobrecalentaríamos el regulador interno que tiene.
La betería tiene que ser superior a 6V para que pueda trabajar nuestro Arduino pero se recomienda que tampoco sea superior a los 12V, adicionalmente la batería debe tener suficiente corriente para que pueda alimentar los dos motores, de lo contrario nuestro Arduino se va a estar reseteando cuando empiecen a funcionar los motores

jueves, 29 de julio de 2021

Venta de Carrito Arduino controlado por bluetooth

 Introducción Carrito Arduino controlado por Bluetooth 

El “robot” que se propone, es un dispositivo móvil con tres ruedas, dos movidas cada una por un motor (ruedas motrices), y la tercera será loca. Estos motores girarán o no mediante una señal procedente de un teléfono móvil con Android.

 El funcionamiento será el siguiente:

Descargaremos una aplicación llamada “MikroApp” que instalaremos en el móvil en esta aplicación aparece un botón para conectar este con el arduino del coche mediante Bluetooth, una vez conectado, podemos pulsar el resto de botones: adelante, derecha e izquierda, cada uno de estos botores acciona respectivamente dos los motores, el motor de la derecha o el motor de la izquierda. Hay otro botón para parar el coche y otro para desconectar conexión Bluetooth. Hemos simplificado al máximo la circuitería, por ello no hemos tenido en cuenta la posibilidad de que el coche tenga marcha atrás.

 





Ventajas de utilizar Arduino

  • Un bajo coste. Por poco dinero puedes hacerte con algún kit de Arduino con los componentes necesarios para iniciarte en él.
  • Fácil de utilizar. Cualquiera puede usarla, aun teniendo pocos conocimientos de programación, electrónica y estos entornos. A cualquier edad, incluso niños.
  • Plataforma abierta. Es de código abierto, por lo que se pueden construir gran cantidad de proyectos y posibilidades de desarrollo. Con menos límites, ya que se puede combinar con otras plataformas o diferentes funcione como crear drones y más.
  • Alta flexibilidad. Se puede trabajar en todas las plataformas informáticas, o casi todas. Es de código abierto y cuenta con muchas herramientas para facilitar su uso y crear grandes cosas con ello.
  • Gran variedad de placas, no hay sola una placa sino una gran familia que tienen ciertas similitudes y diferencias en función del proyecto que quieras realizar con ella.
  • Es la forma ideal de introducirse en la programación, con sistemas visuales como es el caso de Scratch. Es mucho más fácil aprender a programar de cero, y sin escribir código.
  • Para aprender electrónica, mejor empezar con Arduino. Así podrás crear y personalizar sistemas de iluminación, robots y mucho más. Conocerás los componentes electrónicos y sus fundamentos, entre muchas otras cosas.
  • El hardware y software es ampliable y de código abierto, tienes grandes posibilidades de crear proyectos de todo tipo.
  • Tiene muchas aplicaciones y usos, puedes crear con Arduino prácticamente lo que desees, incluso proyectos profesionales.

  3. Programación de Carrito Arduino 3.1. Test de movimientos Para poder programar necesitamos desconectar el módulo Bluetooth, podemos desc...