Encuentra tu pasión a solo 4,17 US$/mes | Aprende Robótica, IA e IOT.

Proyecto de Arduino con sensor ultrasónico y servomotor

¿Buscas un proyecto de Arduino fácil, económico y diferente para aprender robótica? En este tutorial vamos a construir una divertida gallina utilizando cartón y materiales reciclables, capaz de detectar cuando le quitas su huevo y reaccionar de una manera muy particular. 

Para realizar este proyecto utilizaremos Arduino, un sensor ultrasónico HC-SR04 y un servomotor, además de materiales sencillos que podemos encontrar fácilmente. La gallina estará colocada frente a un huevo, mientras el sensor ultrasónico se encargará de detectar si el huevo permanece en su lugar.

La idea es muy sencilla: mientras el huevo esté frente a la gallina, esta permanecerá levantada. Pero cuando retires el huevo, el sensor detectará el cambio de distancia y Arduino hará que el servomotor mueva la gallina hacia abajo, simulando que intenta picotear el lugar donde estaba su huevo.

Materiales

Para construir este proyecto necesitarás:

  • 1 Arduino Uno R3
  • 1 cable USB para Arduino Uno
  • 1 servomotor SG90
  • 1 sensor ultrasónico HC-SR04
  • 1 paleta de helado
    • Cartón para la base y el huevo
    • Cartulina para la gallina
  • 2 cables jumper macho-hembra de 20 cm
  • 2 cables jumper hembra-hembra de 20 cm
  • 4 cables jumper macho-macho de 20 cm
  • 1 fuente de alimentación de 5 V, 1 A o superior para el servomotor
  • 1 adaptador jack hembra para conectar la fuente de alimentación
  • Silicona para fijar los elementos de la maqueta

Con estos materiales podremos construir tanto la estructura de la gallina como el circuito necesario para detectar el huevo y controlar el movimiento de picoteo.

Montaje de la maqueta

Para comenzar, descarga e imprime la plantilla de la gallina y el huevo que encontrarás en este tutorial. De preferencia, imprime la plantilla directamente sobre cartulina, ya que la gallina debe ser lo más liviana posible.

Si no puedes imprimir sobre cartulina, puedes imprimir la plantilla en papel bond y posteriormente pegarla sobre cartulina.

1. Preparar la gallina

Recorta la gallina de la plantilla y utiliza una paleta de helado de aproximadamente 7 cm de longitud como soporte. Pégala en la parte posterior de la gallina. 

Entre la paleta y los pies de la gallina debemos dejar aproximadamente 2,5 cm de distancia. Esta medida ayuda a mantener la gallina liviana y evita que el servomotor tenga que realizar un esfuerzo excesivo, lo que podría provocar vibraciones u oscilaciones.

2. Preparar el huevo

Recorta el huevo de la misma plantilla y pégalo sobre cartón. Luego, coloca en la parte posterior un pequeño soporte de cartón que permita mantenerlo de pie sobre la base.

🤖 Aprende Robótica desde cero

Aprende robótica e inteligencia aratificial creando proyectos prácticos paso a paso, desde cero y sin necesidad de experiencia previa.

3. Preparar la base

Para montar la maqueta utilizaremos una base de cartón de 14 × 20 cm.

Sobre esta base colocaremos el servomotor y el sensor ultrasónico.

4. Montaje del servomotor y sensor

Fija el servomotor en la base y coloca el sensor ultrasónico frente al espacio donde estará el huevo, siguiendo la posición mostrada en la imagen.

Es importante que el sensor quede en un espacio libre y alejado de la gallina, de manera que no detecte su movimiento. El objetivo es que el sensor únicamente pueda medir la distancia hasta el huevo cuando este se encuentre colocado frente a él.

Para comprobar la posición correcta, coloca el huevo frente al sensor y verifica que pueda detectarlo correctamente. Después retira el huevo y comprueba que la distancia cambie.

Todavía no fijes la gallina al eje del servomotor. Primero realizaremos la calibración para determinar correctamente las posiciones de movimiento.

Conexiones eléctricas

Realiza las conexiones de Arduino, el servomotor y el sensor ultrasónico siguiendo el diagrama de conexiones que encontrarás en la imagen.

Calibración Proyecto de Arduino con sensor ultrasonico

Para este proyecto utilizaremos:

  • Servomotor SG90: señal al pin 11 de Arduino.
  • HC-SR04: TRIG al pin 2 y ECHO al pin 4.
  • Sensor ultrasónico: alimentación a 5V y GND de Arduino.
  • Servomotor: alimentación mediante una fuente externa de 5V.

Utilizamos una fuente independiente para el servomotor porque este puede demandar más corriente durante sus movimientos. Una fuente de 5V y 1A es suficiente para este proyecto y ayuda a evitar problemas de alimentación, como vibraciones o reinicios del Arduino.

Una vez realizadas las conexiones, podemos pasar a la programación.

Programación

Para este proyecto utilizaremos dos programas. El primero nos permitirá calibrar el servomotor y el segundo controlará el movimiento de la gallina.

1. Código de calibración

Primero cargaremos el código de calibración para colocar el servomotor en una posición de 90 grados.

				
					
#include <Servo.h>


Servo gallina;


int angulo = 90;


void setup() {


  gallina.attach(11);
  gallina.write(90);
}


void loop() {


}

				
			

Esta será la posición inicial de la gallina. Una vez que el servomotor se encuentre exactamente en esta posición, coloca el eje del servomotor y ajústalo con su tornillo, siguiendo como referencia la imagen del tutorial.

Calibración Proyecto de Arduino con sensor ultrasonico

Después, fija la gallina sobre el eje utilizando silicón.

De esta manera, la gallina quedará correctamente alineada con la posición inicial del servomotor.

2. Código principal

Una vez calibrada y montada la gallina, cargaremos el programa principal.

				
					#include <Servo.h>


Servo gallina;


// Pines
const int servoPin = 11;
const int trigPin = 2;
const int echoPin = 4;


// Ángulos
const int posicionArriba = 90;
const int posicionAbajo = 45;


// Distancia para detectar el huevo
const int distanciaHuevo = 15;


void setup() {
  Serial.begin(9600);


  gallina.attach(servoPin);


  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);


  // Posición inicial
  gallina.write(posicionArriba);


  Serial.println("Gallina lista");
}


void loop() {


  long duracion;
  float distancia;


  // Generar pulso del sensor ultrasónico
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);


  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);


  digitalWrite(trigPin, LOW);


  // Leer el eco
  duracion = pulseIn(echoPin, HIGH);


  // Calcular distancia
  distancia = duracion * 0.0343 / 2;


  Serial.print("Distancia: ");
  Serial.print(distancia);
  Serial.println(" cm");


  if (distancia > 15 && distancia > 0) {
  // No hay huevo: picotea
  gallina.write(posicionAbajo);
  delay(500);


  gallina.write(posicionArriba);
  delay(500);
}
else {
  // Hay huevo o no hay una lectura válida
  gallina.write(posicionArriba);
}
}
				
			

El funcionamiento es sencillo: el sensor ultrasónico mide constantemente la distancia hasta el huevo. Cuando el huevo se encuentra frente al sensor a una distancia menor o igual a 15 cm, Arduino mantiene la gallina en su posición inicial de 90 grados.

Cuando retiramos el huevo, la distancia detectada por el sensor aumenta. Arduino interpreta que el huevo ya no está presente y activa el servomotor para que la gallina baje hasta aproximadamente 45 grados y vuelva a subir a 90 grados, simulando un movimiento de picoteo.

Mientras el huevo permanezca retirado, este movimiento se repetirá continuamente. Cuando volvamos a colocar el huevo frente al sensor, la gallina dejará de picotear y permanecerá nuevamente en 90 grados.

Prueba y funcionamiento

Antes de realizar la prueba, conecta el Arduino Uno a tu computadora mediante el cable USB para alimentarlo y poder cargar el programa. Recuerda que la fuente externa de 5 V alimenta únicamente al servomotor.

Carga el código principal en Arduino y abre el Monitor Serial del Arduino IDE a una velocidad de 9600 baudios. Allí podrás observar en tiempo real la distancia que está midiendo el sensor ultrasónico.

Coloca el huevo frente al sensor y comprueba en el Monitor Serial que la distancia sea menor o igual a 15 cm. En esta condición, la gallina debe permanecer quieta en 90 grados.

Ahora retira el huevo y observa cómo aumenta la distancia registrada en el Monitor Serial. Al detectar que el huevo ya no está presente, la gallina comenzará a bajar y subir repetidamente, simulando el movimiento de picoteo.

Finalmente, vuelve a colocar el huevo frente al sensor. Cuando la distancia vuelva a ser menor o igual a 15 cm, la gallina dejará de moverse y permanecerá nuevamente en 90 grados.

Preguntas frecuentes

¿Cómo puedo hacer que el proyecto funcione de manera independiente?

Puedes hacer que el proyecto funcione sin estar conectado a una computadora utilizando dos baterías 18650 para alimentar el Arduino mediante el pin VIN. Para el servomotor puedes utilizar un regulador 7805 que reduzca el voltaje a 5 V.

Es importante realizar correctamente las conexiones y compartir GND entre el Arduino, el sensor y la alimentación del servomotor.

Sí. Puedes utilizar un cargador de celular que entregue 5 V. Una opción es utilizar un cable USB y acceder a sus cables de alimentación: normalmente rojo corresponde al positivo (+) y negro al negativo (GND).

Antes de conectarlo, verifica el voltaje de salida del cargador y realiza las conexiones correctamente.

La fuente externa de 5 V utilizada en este proyecto alimenta únicamente al servomotor. El Arduino también necesita su propia alimentación para ejecutar el programa y controlar el sensor y el servomotor.

Puedes alimentar el Arduino mediante el puerto USB, utilizando un cargador o una computadora, o mediante el conector de alimentación (jack).

En este proyecto hemos establecido inicialmente una distancia de 15 cm. Sin embargo, puedes modificar este valor en el código dependiendo de la posición de tu sensor y de la maqueta.

Por ejemplo, si el huevo se encuentra a una distancia diferente, puedes ajustar el valor para que Arduino reconozca correctamente cuándo el huevo está presente y cuándo ha sido retirado.

🤖 Aprende Robótica desde cero

Aprende robótica e inteligencia aratificial creando proyectos prácticos paso a paso, desde cero y sin necesidad de experiencia previa.

Ingrese a su cuenta