Introducción

En este tutorial daremos un paso más y explicaremos el procedimiento para crear nuestro primer proyecto con Arduino programando el código con una herramienta de programación en bloques del tipo Scratch for Arduino (S4A) o mBlock.

Usaremos nuestros conocimientos previos adquiridos tras la lectura de los correspondientes artículos publicados en este blog sobre el sensor de ultrasonidos HC-SR04 ("Arduino: sensor ultrasonidos HC-SR04"), sobre los servomotores ("Arduino: servomotores") y sobre los displays LCD ("Arduino : display LCD") para crear un interesante proyecto en el que usaremos los 3 componentes de manera sincronizada.

sensor ultrasonico explicacionbarrera
En este artículo solo se tratará la información sobre la electrónica/programación del proyecto. Si quieres la información completa incluyendo la parte mecánica pulsa sobre la imagen o sobre el siguiente enlace (información completa pdf).
parkingproyecto

El objetivo de este proyecto se puede resumir como el diseño y construcción de una estructura que permita integrar los componentes electrónicos y que represente una cabina de un parking con su respectiva barrera móvil.

Nuestro prototipo debe cumplir las siguientes características:

  1. La estructura del semáforo puede realizarse del material que se desee (siendo recomendable la madera de contrachapado)

  2. Todos los componentes electrónicos serán controladas por una tarjeta Arduino alimentada con una batería de 9V que debe permanecer oculta en la estructura del prototipo.

  3. Nuestro prototipo debe cumplir las siguientes funcionalidades:

    1. La barrera del parking permanecerá en posición horizontal mientras el sensor ultrasónico no detecte ninguna presencia cercana.

    2. Cuando un objeto se acerque a menos de 5 cm del sensor, la barrera se levantará (accionado por un servomotor) y permanecerá en posición vertical durante 10 s, volviendo a la posición original tras ese tiempo.

    3. Un display LCD integrado a la estructura nos mostrará un mensaje de bienvenida cuando la barrera esté horizontal y mostrará un mensaje de precaución en los momentos en que la barrera suba o baje

Material necesario

Nombre Imagen Descripción
Placa Arduino Uno arduino uno large comp Placa Arduino Uno (o cualquier otra versión) con el firmware necesario para poder usar S4A con el sensor ultrasónico HC-SR04 (descargar firmware) cargado en la placa.
Protoboard, breadboard o placa de conexiones protoboard Placa de conexiones o protoboard que usaremos en el montaje de circuitos eléctrico-electrónico para ahorrar y simplificar el cableado. Para aprender algo más sobre el uso de este dispositivo pulsa aquí
1 servomotor
Servo Motor

Para saber más sobre servomotores se recomiendan los siguientes enlaces:

1 sensor de ultrasonidos HC-SR04 HCSR04 Los sensores de ultrasonidos o sensores ultrasónicos son detectores de proximidad que trabajan libres de roces mecánicos y que detectan objetos a distancias que van desde pocos centímetros hasta varios metros. El sensor emite un sonido y mide el tiempo que la señal tarda en regresar. Estos reflejan en un objeto, el sensor recibe el eco producido y lo convierte en señales eléctricas, las cuales son elaboradas en el aparato de valoración.
1 display LCD lcd Los displays LCD (Liquid Crystal Display o pantalla de cristal liquido) son un modo sencillo de mostrar diferentes caracteres que nos muestren mensajes o elementos visuales para nuestros proyectos con Arduino a través de una pequeña pantalla. Los displays LCD son faciles de encontrar en diversos formatos LCD 16×2 (16 caracteres x 2 líneas) o LCD 16×4 (16 caracteres x 4 líneas)) y son una opción muy sencilla de usar, y además, dan un toque muy profesional a vuestros proyectos
Cables de conexiones entre los componentes, la placa de pruebas y Arduino cables Estos cables nos permiten conectar de manera sencilla todos los elementos del circuito.

Circuito eléctrico (diagrama de conexiones)

Las conexiones que se deben realizar son:

  • Sensor HC-SR04: en nuestro caso se conectará
    • La patilla VCC del sensor a la entrada de 5V de la placa Arduino
    • La patilla GND del sensor a la entrada GND de la placa Arduino.
    • La patilla trigger (TRIG) del sensor al pin digital 6 de la de la placa Arduino.
    • La patilla echo (ECHO) del sensor pin digital 5 de la de la placa Arduino.
  • Servomotor: en nuestro caso se conectará
    • La patilla de 5V del servo a la entrada de 5V de la placa Arduino.
    • La patilla GND del servo a la entrada GND de la placa Arduino.
    • La patilla de control del sensor al pin digital 9 de la de la placa Arduino.
  • Display LCD: en nuestro caso se conectará
    • La patilla de 5V (VCC) del LCD a la entrada de 5V de la placa Arduino.
    • La patilla GND del LCD a la entrada GND de la placa Arduino.
    • La salida de datos (SDA) del display al pin analógico A4 de Arduino.
    • La salida del reloj (SCL) del display al pin analógico A5 de Arduino.

Para evitar una posible confusión con el cableado, mostraremos las conexiones de cada uno de los componentes por separado

Arduino Mega 2560 and HC SR04 Diagram

circuitoServomotor

lcd4

Código MBlock

mBlock  es un entorno gráfico de programación basado en el editor Scratch 2.0 para que escuelas y centros de formación pueda introducir la robótica de forma sencilla y enseñar a programar robots basados en Arduino.
La interfaz es muy amigable e intuitiva. Usa bloques previamente definidos para dar órdenes al robot y si sabes programar también podrás sacarle todo el partido con el entorno de Arduino. Para su descarga y configuración sigue este enlace..

 mblock

Una vez que hayamos descargado y subido el firmware anterior a la placa de Arduino solo nos queda generar el programa que permita por un lado medir la distancia mediante el sensor de ultrasonidos HC-SR04 y accionar la barrera en caso de que la distancia sea menor que una cantidad fija (por ejemplo 5 cm). Conviene recordar que pasado un determinado tiempo (por ejemplo 5 segundos) suficiente para que el vehículo entre a nuestro parking la barrera se bajará de nuevo. Además, el display LCD mostrará un mensaje de bienvenida y avisará cuando la bandera está levantada.

Sobre el display LCD debe ser tenido en cuenta que no está incluido en la funcionalidad por defecto de mBlock. Por tanto, debemos añadir una extensión externa y realizar una serie de operaciones previas para que el display funcione correctamente. Para seguir los pasos de configuración de la citada extensión se recomienda leer el siguiente artículo.

Existen numerosas formas de programar la citada funcionalidad, pero, a continuación os muestro un ejemplo que cumple a la perfección el objetivo marcado (descargar fichero ParkingLCD.sb2)

codigoMblock

Spanish English French German Italian Portuguese Russian

Artículos