Robot Sanduino – Sensor ultrasónico

El robot Sanduino A01 está equipado con un sensor ultrasónico HC-SR04 como el de la figura siguiente.

sensor-ultrasonico-hc-sr04_3

Para usar este sensor debes descargar la librería NewPing que está en esta dirección: http://playground.arduino.cc/Code/NewPing.

Es un archivo comprimido en formato zip que debes descomprimir, y la carpeta NewPing copiarla a la carpeta Arduino\libraries que debe estar en tu carpeta Documentos.

Este sensor lo puedes probar con el siguiente programa.

/* Programa: SensorUltrasonico.ino
 Autor: Julio Sandria (Enero 2015)
 Taller Robótica 2015 
*/

// Descargar NewPing: http://playground.arduino.cc/Code/NewPing
// Copia la carpeta NewPing en la carpeta ..\Arduino\libraries
#include <NewPing.h>

// PIN TRIGGER de sensor ultrasónico a PIN 11 de Arduino.
#define PIN_TRIGGER 11
// PIN ECHO de sensor ultrasónico a PIN 12 de Arduino:
#define PIN_ECHO 12
// Máxima distancia a medir en centímetros:
#define MAX_DISTANCIA 200 
// La distancia máxima del sensor es 400-500 cm. 

// La siguiente linea configura pines y distancia.
NewPing sonar(PIN_TRIGGER, PIN_ECHO, MAX_DISTANCIA);

int uS, distancia;

void setup() {
 // Abrir monitor serial a 9600 bauds/seg para ver resultados:
 Serial.begin(9600); 
}

void loop() {
 // Esperar 500ms entre pings (cerca de 20 pings/sec).
 // 29ms debe ser el menor tiempo entre pings.
 delay(500); 
 
 // Envía ping, obtiene tiempo ping en microsegundos (uS): 
 uS = sonar.ping();
 
 // Convertir tiempo ping a distancia.
 // (0 = distancia fuera de rango, no hay eco de ping).
 distancia = uS / US_ROUNDTRIP_CM; 
 
 Serial.print("Distancia: ");
 Serial.print(distancia); // Imprimir distancia 
 Serial.println("cm");
}

Copia el programa en el software Arduino y cárgalo a la tarjeta Arduino. Una vez cargado el programa y con la tarjeta aún conectada a la computadora, abre el Monitor Serial, en el cual podrás ver la lectura del sensor ultrasónico.

Acerca un objeto al sensor para verificar que esté funcionando apropiadamente.

Robot Sanduino – Sensores de luz

El robot Sanduino A01 está equipado con dos sensores de luz TCRT5000. Este sensor emite una luz infrarroja y detecta la cantidad de luz que se refleja en los objetos.

Sensor-de-luz-TCRT5000-300x200

Al colocar el emisor/receptor hacia el piso, puede detectar una línea negra colocada sobre un piso claro. Al usarlo así se le llama también sensor de línea. El emisor/receptor debe estar a una distancia aproximada de 5mm del piso y colocado como lo muestra la siguiente figura.

Sensores-de-linea-Sanduino-800x400

Cada sensor de luz tiene cuatro conectores, ambos sensores se deben conectar así en el robot Sanduino:

  • VCC – Al positivo del protoboard, que está conectado a 5V de Arduino.
  • GND – Al negativo del protoboard, que está conectado a GND de Arduino.

Para el sensor izquierdo:

  • DO (Data Output) – Al pin 2 de Arduino.
  • AO (Analog Output) – No lo usamos.

Para el sensor derecho:

  • DO (Data Output) – Al pin 4 de Arduino.
  • AO (Analog Output) – No lo usamos.

Con estas conexiones, se puede probar este programa ejemplo:

/* Programa: SensorLuz1.ino 
   Autor:    Julio Sandria (Enero 2015)
   Requiere un sensor de luz TCRT5000 conectado al
   pin 2 de Arduino.
*/

int pinSensorLuz1 = 2;
int valorSensorLuz1 = 0;
int valorSensorLuz1anterior = -1;

void setup() {
  pinMode(pinSensorLuz1,INPUT);
  Serial.begin(9600);
  Serial.println("Esperando 3 segundos...");
  delay(3000);
}

void loop() {
  valorSensorLuz1 = digitalRead(pinSensorLuz1);
  if( valorSensorLuz1 != valorSensorLuz1anterior ) {
    Serial.print( "valorSensorLuz1 = " );
    Serial.println( valorSensorLuz1 ); 
  }
  valorSensorLuz1anterior = valorSensorLuz1;
  delay(1000);
}

Copia el programa en el software Arduino y cárgalo a la tarjeta Arduino. Una vez cargado en Arduino, abre el Monitor Serial.

Observa lo que se muestra en el Monitor Serial cuando apuntas el sensor a una superficie clara y a una superficie obscura.

Robot Sanduino – Motores CD

El Robot Sanduino A01 usa dos motores de Corriente Directa (CD), los cuales se pueden conectar como se muestra en la siguiente figura.

SanduinoA01-MotoresCD

El puente H y la tarjeta Arduino UNO deben estar atornillados a la base superior del Robot Sanduino A01, usando un espaciador entre cada tarjeta de circuitos y la base superior, para evitar que las tarjetas se tuerzan al apretar los tornillos.

Las líneas de colores que unen conectores representan cables, que no necesariamente son de los colores mostrados.

Con el siguiente programa, puedes probar que todo el sistema esté apropiadamente conectado.

/* Programa: Sanduino_Motores.ino
   Autor: Julio Sandria (Enero 2015)
   Requiere: Robot Sanduino A01, con puente H
   y Arduino UNO conectados.
   Mueve el motor izquierdo con pines 6 y 7
   Mueve el motor derecho con pines 8 y 9
*/

void setup() {
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
}

void loop() {
  // Robot avanza 2 segundos
  digitalWrite(6,HIGH);
  digitalWrite(7,LOW);
  digitalWrite(8,HIGH);
  digitalWrite(9,LOW);
  delay(2000);
  
  // Robot retrocede 2 segundos
  digitalWrite(6,LOW);
  digitalWrite(7,HIGH);
  digitalWrite(8,LOW);
  digitalWrite(9,HIGH);
  delay(2000);  
}

Carga el programa en la tarjeta Arduino UNO del robot.

NOTA: Asegúrate de conectar una fuente de energía al interruptor y otra fuente de energía a Arduino UNO.

Al iniciar el programa, el robot debe avanzar dos segundos. Si en lugar de esto el robot retrocede, entonces hay que cambiar la polaridad de los cables conectados a los motores y al puente H.

Si al iniciar el programa, el robot gira hacia un lado dos segundos, hay que invertir la polaridad de los cables del motor conectado hacia el lado que gira.

Torneo Mexicano de Robótica 2015

El TMR 2015 (Torneo Mexicano de Robótica 2015) se llevará a cabo en la FES Acatlán (UNAM) en el Estado de México, del 23 al 25 de abril de 2015 (Sitio web: www.tmr2015.mx).

En los siguientes enlaces se pueden ver reglas y sitios web de las categorías para chicos de hasta 14 años (primary) y hasta 19 años (secundary).

Programación en lenguaje C – Hola mundo!

El siguiente programa, es un ejemplo muy sencillo de programa en lenguaje C.

/* Programa: hola.c
   Autor: Julio Sandria
   Ejemplo Hola mundo!
*/

#include <stdio.h>

void main()
{
    printf("Hola mundo!");
}

Para ejecutar el programa anterior, abre Code::Blocks, selecciona la opción File, después New, después Empty File. Esto creará un archivo vacío. Escribe o pega el código anterior en la sección de programación, como se ilustra en la imagen siguiente.

CodeBlocks13.12-hola

Guarda el programa con el nombre hola.c (File | Save File). Al hacer esto, Code::Blocks, reconoce el códico como un programa en C y lo muestra en colores.

Ejecuta el programa (Build | Run). Esto abrirá una terminal o ventana de símbolo de sistema (en Windows) como la siguiente.

Ejecucion-hola

Observa que en la primera línea de la parte interior de la ventana está la frase Hola mundo!. Esto es lo que hace el programa, imprimir en la salida estándar (una terminal o ventana de comandos) dicho texto.

Las primeras cuatro líneas del programa son comentarios, que no tienen ningún efecto en el programa, son para que nosotros podamos poner algún texto. Los comentarios con muchas líneas empiezan con los caracteres /* y terminan con los caracteres */.

La línea 6 del programa contiene la instrucción include:

#include <stdio.h>

Esta línea le indica al compilador que en esa posición incluya una librería llamada stdio.h, la cual contiene la definición de instrucciones como printf que se usa a continuación.

Todo programa en C tiene una función main(), que es el punto inicial de ejecución de un programa.

La línea 8, void main() indica que allí inicia la función principal (main). Todo el contenido de la función está entre los símbolos { y }.

void main()
{
    printf("Hola mundo!");
}

La función main está definida únicamente por una línea, que tiene la función printf(«Hola mundo!»), la cual lo único que hace es imprimir la frase Hola mundo!, en la salida estándar de la computadora, la cual por omisión una ventana donde se ejecuta el programa (terminal o símbolo de sistema).

Blink – Encender y Apagar un LED con Arduino

¿Cómo controlar un LED con Arduino?

Arduino UNO y otros modelos de tarjetas Arduino, tienen incorporado un LED conectado al PIN 13, como se ilustra en la siguiente imagen, donde el LED está señalado en rojo.

arduinounor3frontsupledpin13

El programa siguiente hace que Arduino encienda y apague el LED conectado al PIN 13.

/* Programa: Blink.ino
   Modificado por: Julio Sandria
   Enciende un LED por dos segundos, y después
   lo apaga un segundo, repite esto siempre hasta
   que se apague Arduino
*/
void setup() {
  // inicializa el pin digital 13 como una salida
  // El pin 13 tiene un LED conectado en la
  // mayoria de las tarjetas Arduino
  pinMode(13,OUTPUT);
}
void loop() {
  // loop = bucle, ciclo
  // loop() se repite siempre hasta que se apague Arduino
  digitalWrite(13,HIGH);  // Enciende el LED
  delay(2000);            // Espera 2000 milisegundos (2 segundos)
  digitalWrite(13,LOW);   // Apaga el LED
  delay(1000);            // Espera 1 segundo
}

Este es solo un programa de ejemplo. Para controlar LEDs externos a Arduino consulta nuestra página: Arduino Blink Monitor Ejemplo.

Robot Sanduino A01 – Armado de chasis

El Robot Sanduino A01 consta de dos bases de acrílico. El primer paso es atornillar la base superior sobre la base inferior. Debe quedar como se ilustra en la foto siguiente.

Paso 1. Atornillar base superior sobre base inferior.Sanduino-A01-Chasis-Completo-500x500

Paso 2: Colocar soportes para motores e interruptor.

Sanduino-A01-Chasis-P2-1

Paso 3: Colocar motores, entre los soportes para motor.Sanduino-A01-Chasis-P2-2

Paso 4: Atornillar motores.Sanduino-A01-Chasis-P2-3

Paso 5: Colocar y atornillar rueda loca.
Sanduino-A01-Chasis-P2-5NOTA: El portapilas no se atornilla al chasis.

 

Robot Sanduino A01

Robot Sanduino A01
Robot Sanduino A01

El Robot Sanduino A01 es un paquete básico de robótica educativa basado en Arduino. Incluye: 1 chasis de acrílico con motores y ruedas, 1 tarjeta Arduino UNO, 1  puente H dual, 1 protoboard, 2 sensores de línea, 2 sensores de distancia infrarrojos (ó 2 sensores de contacto), 1 sensor de distancia ultrasónico, cables de conexión, tornillos y accesorios para su construcción. Requiere 8 baterías AA, no incluidas. Requiere desarmador plano y de cruz chicos, no incluidos.

Dónde comprar

El Robot Sanduino A01 lo puedes adquirir en RobotSA.

Guía de armado y programación

 

¡Hola Roboticistas!

¡Bienvenido al Sitio Web Robótica Sandria!

Este sitio web está dedicado a todos los chicos (niños y jóvenes) interesados en la robótica y que han tomado o están tomando alguno de nuestros cursos de robótica.

Los adultos universitarios, maestros o aficionados a la robótica que encuentren algo interesante en este sitio web también son bienvenidos, y espero que dejen alguna opinión, comentario o sugerencia.

Aquí podrán encontrar instrucciones de armado de robots, ejemplos de programas y guías técnicas de uso de hardware y software que usamos en robótica y áreas relacionadas.

Atentamente,

Ing. Julio César Sandria Reynoso
Mentor del equipo de robótica Galácticos
Superteam World Champions en RoboCup 2014, Brasil
Primer Lugar en el Torneo Mexicano de Robótica 2014
Segundo Lugar en el Torneo Mexicano de Robótica 2015
Tercer Lugar en el Abierto de Robótica de Portugal 2016

Galacticos-Superteam-World-Champions-Robocup-2014_med