
ALGORITMO EN ARM CON SENSOR ULTRASONICO PARA MEDIR Y ENVIAR LA DISTANCIA POR PUERTO SERIAL
Homepage
ALGORITMO EN ARM CON SENSOR ULTRASONICO PARA MEDIR Y ENVIAR LA DISTANCIA POR PUERTO SERIAL
DESCRIPCIÓN:
En este mini proyecto se realiza un algoritmo en Mbed para la comunicación del Sensor ultrasónico HC-SR04 mediante la tarjeta STM32F4 Discovery, además la lectura de la distancia se mostrará mediante puerto serial con la utilización del programa Hércules. Cabe destacar que utilizaremos el botón de la STM Discovery para seleccionar ya sea en "centímetros" o "pulgadas" la distancia obtenida por el sensor.
MATERIALES:
-STM32 Discovery+cable usb.
-Sensor Ultrasónico HC-SR04
-Cables macho macho.
-Software Hércules
-Software Mbed Online
MARCO TEORICO:
TARJETA STM32F4
El kit STM32F4DISCOVERY aprovecha las capacidades de los microcontroladores de alto rendimiento STM32F407, para permitir a los usuarios desarrollar fácilmente aplicaciones con audio.
Incluye una herramienta de depuración integrada ST-LINK, un acelerómetro digital ST-MEMS, un micrófono digital, un DAC de audio con controlador de altavoz integrado clase D, LED, botones y un conector USB OTG micro-AB.
Information
Presentación interactiva en Prezi, muy útil:
https://prezi.com/u8mbw6ya15l8/introduccion-a-la-placa-de-desarrollo-stm32f4-discovery/
-Características:
1. Microcontrolador STM32F407VGT6 con 1 MB de memoria flash, 192 KB de RAM, encapsulado LQFP100.
2. ST-LINK/V2 incorporado con selector usar el kit como un ST-LINK/V2 independiente (con conector SWD para programación y depuración).
3. Fuente de alimentación: a través del bus USB o desde una fuente de alimentación externa de 5V.
4. Sensor de movimiento ST MEMS LIS302DL, acelerómetro con salida digital de 3 ejes
5. Sensor de audio ST MEMS MP45DT02, micrófono digital omnidireccional
6. Audio DAC CS43L22 con controlador integrado de altavoz clase D
7. Ocho LEDs:
- LD1 (rojo / verde) para la comunicación USB
- LD2 (rojo) alimentación 3,3 V
- Cuatro LEDs de usuario, LD3 (naranja), LD4 (verde), LD5 (rojo) y LD6 (azul)
- 2 LEDs USB OTG LD7 (verde), VBus y LD8 (rojo)
8. Dos pulsadores (usuario y reset)
9. USB OTG con conector micro-AB
SENSOR ULTRASÓNICO HC-SR04
Este módulo incorpora un par de transductores de ultrasonido que se utilizan de manera conjunta para determinar la distancia del sensor con un objeto colocado enfrente de este. Es así que un transductor emite una “ráfaga” de ultrasonido y el otro capta el rebote de dicha onda. El tiempo que tarda la onda sonora en ir y regresar a un objeto puede utilizarse para conocer la distancia que existe entre el origen del sonido y el objeto.
La interfaz del sensor HC-SR04 y arduino se logra mediante 2 pines digitales: el pin de disparo (trigger) y eco (echo). La función de cada uno de estos pines es la siguiente:
El pin trigger recibe un pulso de habilitación de parte del microcontrolador, mediante el cual se le indica al módulo que comience a realizar la medición de distancia. En el pin echo el sensor devuelve al microcontrolador un puso cuyo ancho es proporcional al tiempo que tarda el sonido en viajar del transductor al obstáculo y luego de vuelta al módulo. Mediante una sencilla formula puede estimarse entonces la distancia entre el sensor y el obstáculo si se conoce el tiempo de viaje del sonido así como la velocidad de propagación de la onda sonora.
En la imagen se muestra los pulsos recibidos y enviados por el sensor:
CÓDIGO EN MBED DE LIBRERIA PARA SENSOR ULTRASÓNICO
https://os.mbed.com/users/ing_rafael_franco/code/HCSR04/
SOFTWARE HERCULES
La utilidad Hércules SETUP es un terminal de puerto serie muy útil (terminal RS-485 o RS-232), terminal UDP / IP y terminal de servidor de cliente TCP / IP. Fue creado solo para uso interno del grupo HW, pero hoy incluye muchas funciones en una utilidad y de libre acceso.
Para este proyecto se utilizó la pestaña "Serie" de la utilidad Hércules, que permite usarse como un terminal de puerto serie simple para el estándar RS-232. Es similar al Hyperterminal con algunas funciones extendidas.
LINK PARA DESCARGA: https://www.hw-group.com/software/hercules-setup-utility
PROGRAMACIÓN EN MBED
main.cpp
#include "mbed.h" #include "HCSR04.h" //MEDICION DE DISTANCIA CON SENSOR ULTRASONICO HCSR04, SE ESTABLECE A UN PULSADOR PARA ELEGIR EN CM O PULGADAS. ///// pines para el sensor HCSR04 sensor(PE_11, PE_12); //trig(t), echo(e) ////comunicacion serial Serial pc(PA_2, PA_3, 115200); //TX, RX configuracion serial ////////////////////// DigitalIn pulsador(PA_0); //pulsador para cambiar de cm a pulgadas bool val_pulsador=0; //se define variable booleana ////// int a=0; ////////// int main() { while(1) { val_pulsador=pulsador.read(); //Para seleccionar la distancia en cm o pulgadas mediante el pulsador if (val_pulsador==1) //doble igual para cuestionamiento, con un solo igual se asigna { a++; if (a>1) a=0; } if(a==0){ long distance = sensor.distance(1); if(distance>=0){ pc.printf("Distancia (cm):%i\n",distance); //se envia el valor via puerto serial wait(0.01); } else { //para valores iguales a cero o negativos distance=0; pc.printf("Distancia (cm):%i\n",distance); wait(0.1); } } if(a==1){ long distance = sensor.distance(0); if(distance>=0){ pc.printf("Distancia (pulg):%i\n",distance); //se envia el valor via puerto serial wait(0.01); } else { //para valores iguales a cero o negativos distance=0; pc.printf("Distancia (pulg):%i\n",distance); wait(0.1); } } } }
Precaución!
Configurar y conectar correctamente las salidas y entradas en el programa así como en las conexiones de la tarjeta, usar el diagrama esquemático.
VIDEO DE FUNCIONAMIENTO
REFERENCIAS
ANEXOS