Robot hambriento2 con sensor IR

Vamos a construir un robot que se accione al depositar un objeto en su bandeja. 

ELEMENTOS:

  • Componentes del robot impresos
  • Servo
  • Sensor de IR
  • Placa Arduino
  • Cables

Partimos del robot impreso y montado de la versión 1 con MRT.

Incluye el sensor de IR en la carcasa del robot y fija el servo. Puedes seguir las instrucciones en el tutorial  https://www.youtube.com/watch?v=KfP_LfUiwdc

Realiza la siguiente implementación con la placa de Arduino:

CODIFICACIÓN

1.- INTRODUCCIÓN

Comentario que describe el programa, autor, fecha etc.

Por ejemplo:

/*

 * ROBOT  HAMBRIENTO 

 * 

* Autor:

* DICIEMBRE 2019

* 1 SERVO

* 1 SENSOR DE INFRARROJOS

*

* El brazo del robot se mueve cuando el sensor IR detecta un objeto 

 * 

 */

2.- SECCIÓN ENCABEZADO

DECLARACIÓN DE OBJETOS, VARIABLES, CONSTANTES:

  • Hay que incluir la librería del servo:

Desde menú Programa, elige ‘Incluir librería’ y luego elegir ‘Servo’

En el programa aparecerá la línea de código:

#include <Servo.h>

  • Hay que declarar una constante de tipo entero para indicar el pin de Arduino dónde está conectado el sensor IR

const int pinSI = 3;

  • Hay que declarar una constante de tipo entero para indicar el pin de Arduino dónde está conectado el sensor IR

const int pinServo = 12;

3.- SECCIÓN SETUP

En esta sección se incluye el código que sólo se ejecuta una vez:

Configuraciones, inicializaciones … 

  • Configura el pin del sensor de infrarrojos para que se comporte como entrada mediante la función pinMode():

      pinMode(pinSI, INPUT);

  • Asocia el pin al servo

      armServo.attach(pinServo);

  • Mueve el servo a la posición inicial

                armServo.write(90);

4.- SECCIÓN LOOP

En esta sección vamos a codificar la siguiente secuencia de instrucciones:

  • Cuando el sensor detecta un objeto su valor es 0, entonces hay que comerse lo que hay en la bandeja:
  • Esperamos dos segundos
  • Decimos cuál es el pin del servo
  • Subimos el brazo: Mover el servo 10 grados
  • Esperamos 300 milisegundos
  • Bajamos el brazo:Mover el brazo 90 grados
  • Esperamos medio segundos
  • Liberamos el brazo

El código correspondiente sería:

//Si hay objeto:

if (digitalRead(pinSI) == 0) {

  //esperamos un segundo

    delay(1000);

  // Asociamos el pin 12 al servo

  armServo.attach(12);

  // Movemos el motor 10 grados (brazo arriba)

 armServo.write(10);

  // esperamos 300 ms

  delay(300);

  // Movemos el motor 90 grados (brazo abajo)

  armServo.write(90);

  //Esperamos medio segundo

  delay(500);

  // Liberamos el brazo

  armServo.detach();

}

  • Compila el programa (traducir nuestro código a 0 y 1 que es lo que entiende el microcontrolador (Arduino). Las teclas:Control+R
  • Corrige los errores si los hubiera
  • Sube el código a la placa. Las teclas:Control+U
  • Comprueba el funcionamiento.
  • Si es necesario calibrar el sensor se pueden seguir las instrucciones desde la url: http://diwo.bq.com/programando-un-sensor-infrarrojo-en-bitbloq/

Deja un comentario

Scroll al inicio