Programación sencilla para controlar tu puente levadizo.

¿Alguna vez habéis visto esos puentes en las películas que se levantan para dejar pasar a los barcos y luego vuelven a bajar para que los coches crucen? Se llaman puentes levadizos, y en nuestro próximo proyecto, ¡vamos a construir uno juntos! Aprenderemos cómo funcionan, qué mecanismos utilizan y pondremos en práctica nuestras habilidades para crear una maqueta funcional. Este desafío nos permitirá explorar conceptos de ingeniería, mecánica y trabajo en equipo de una manera divertida y práctica.

Para darle vida a nuestro puente levadizo, incorporaremos tecnología que lo haga interactivo y automatizado. Utilizaremos un sensor de ultrasonidos que detectará la proximidad de un barco, activando un servomotor que levantará y bajará el puente en respuesta. Toda esta programación la realizaremos con ArduinoBlocks, una plataforma de programación por bloques que facilita la creación de código para Arduino. De esta manera, combinaremos mecánica y programación para dar vida a nuestro puente automatizado.


Imagen:Instagram @miguetecnologia CC BY-SA 2.0


Ver el proyecto al completo

Listado de materiales

  • Maqueta del puente
  • Arduino UNO o equivalente
  • Protoboard
  • Sensor de ultrasonidos
  • Microservomotor de posición
  • Cables dupont diferentes largos y terminales


Servomotor

Imagina que tienes un pequeño motor que puede moverse y detenerse en posiciones específicas según lo que le indiques. Este es un servomotor, un dispositivo que se utiliza para controlar movimientos de manera precisa. Por ejemplo, en un coche teledirigido, el servomotor ayuda a girar las ruedas exactamente en la dirección que deseas. A diferencia de otros motores que giran continuamente, el servomotor se mueve hasta una posición determinada y se mantiene allí hasta que le des una nueva instrucción. Esto lo hace muy útil en proyectos de robótica y en modelos a escala donde se requiere un control exacto del movimiento.

Imagen: Wikipedia oomlout - SERV-03-MI (Micro Servo) CC BY-SA 2.0


Existen dos tipos principales de servomotores que podemos utilizar en nuestros proyectos:
  • Servomotores de rotación limitada (180 grados): Estos servos pueden girar su eje en un rango específico, generalmente entre 0 y 180 grados. Son ideales cuando necesitamos que algo se mueva a una posición precisa y se detenga allí. Por ejemplo, si construimos un brazo robótico, este tipo de servo nos permite controlar el movimiento del brazo para que se detenga exactamente donde queremos.

  • Servomotores de rotación continua (360 grados): A diferencia de los anteriores, estos servos pueden girar de manera continua en cualquier dirección. Son útiles cuando necesitamos controlar la velocidad y dirección de giro, pero no una posición exacta. Por ejemplo, si estamos creando un coche robótico, estos servos pueden usarse para hacer que las ruedas giren continuamente hacia adelante o hacia atrás, controlando así el movimiento del vehículo.


Sensor de ultrasonidos

Ahora imagina que estás construyendo un robot capaz de moverse por una habitación sin chocar con los muebles. Para lograrlo, vuestro robot necesitará "sentir" su entorno y detectar obstáculos. Aquí es donde entra en juego el sensor de ultrasonidos, una herramienta que permite a los robots "ver" sin ojos. En nuestro próximo proyecto, aprenderemos cómo funcionan estos sensores y cómo utilizarlos para que nuestros robots naveguen de manera inteligente y autónoma

Imagen: Wikipedia Nevit Dilmen CC BY-SA 2.0


El sensor de ultrasonidos tiene dos partes principales que parecen dos ojitos:
  • Emisor: envía una onda de sonido muy aguda que nosotros no podemos escuchar, llamada ultrasonido.
  • Receptor: escucha el eco de ese sonido cuando rebota en un objeto cercano.
Al medir el tiempo que tarda el sonido en ir y volver, el sensor calcula a qué distancia está el objeto. Es similar a cómo los murciélagos navegan en la oscuridad utilizando sonidos para detectar obstáculos.



Conexionado

⚡ Conexiones del Sensor de Ultrasonidos:

  • VCC → 5V de Arduino
  • GND → GND de Arduino
  • Trig → Pin 2 de Arduino
  • Echo → Pin 3 de Arduino

🔄 Conexiones del Servomotor:

  • Cable rojo (alimentación) → 5V de Arduino
  • Cable negro (tierra) → GND de Arduino
  • Cable de señal (amarillo/naranja) → Pin 5 de Arduino
Imagen: ArduinoBlocks by @miguetecnologia


Simulación TinkerCad


Antes de montar nuestro puente elevadizo en físico, es muy recomendable hacer una simulación. ¿Por qué? Porque así podemos detectar posibles fallos sin riesgo de que algo deje de funcionar o se conecte mal. En TinkerCad(o cualquier otro simulador de Arduino), podemos programar el sensor de ultrasonidos y el servo de manera virtual. Aunque algunos bloques pueden variar ligeramente con la versión deArduinBlocks, la lógica será la misma.

Enlaces a Tinkercad:


Programación


Imagen: Tinkercad by @miguetecnologia


1️⃣ Inicialización:
  • En el loop de inicio, configuramos el servo en la posición 0º (puente abajo).
2️⃣ Función "Medir":
  • Creamos una función llamada Medir.
  • Declaramos una variable numérica "Distancia", que tomará el valor en centímetros del sensor de ultrasonidos.
3️⃣ Bucle principal:
  • Primero, llamamos a la función "Medir" para actualizar el valor de la distancia.
  • Luego, establecemos una condición:
    • Si la distancia es menor de 10 cm, el servo gira 90º (puente arriba).
    • Si la distancia es mayor o igual de 10 cm, el servo permanece en 0º (puente abajo).
  • ⚠️ Para evitar cambios bruscos en la detección (evitar parpadeos o movimientos inestables), añadimos un delay de 2 segundos.
4️⃣ Mejora para los más avanzados:
  • Se puede agregar comunicación con el puerto serie para ver las mediciones en la pantalla del ordenador.
💡 ¡Listo para programar y ver el puente en acción! 🚀


video: canal de olicasares