• info@educacionurbana.com

Category ArchiveProyectos

HC-SR04, Sensor Ultrasonido

El emisor/receptor de ultrasonidos HC-SR04 es quizás uno de los complementos más utilizados en los proyectos de robótica. Este sensor se emplea en todo tipo de proyectos, siendo su principal uso el de reconocer obstáculos, aunque debido su buena resolución, también se emplea para medir la distancias a objetos.

Descripción

Lo más singular del sensor de ultrasonidos HC-SR04 es quizás su «par de ojos», estos no son más que un emisor y un receptor de ultrasonidos que trabajan a una frecuencia de 40KHz (una frecuencia inaudible para las personas).

HC-SR04

Este sensor consta de 4 pines, alimentación (Vcc), un disparador (Trig), el receptor (Echo) y masa (GND). Para el correcto funcionamiento del sensor es necesario el conectar estos 4 pines.

Las características básicas de este sensor y que se deben de tener en cuenta al trabajar con él son:

caracteristicas

Como funciona

El principio en el que se basa su funcionamiento es muy sencillo, tan solo hay que generar una onda sónica en el emisor mediante un pulso en el pin que pone «trig» (trigger o disparador), esta onda al encontrarse con algún obstáculo rebotará, volviendo al sensor y siendo registrada por el receptor, traduciéndose esta en un pulso en el pin del «Echo».

Esquema onda

Con esto podemos hacer dos cosas, detectar un obstáculo esperando simplemente que Arduino reciba un «Echo» o contar el tiempo que transcurre desde que se manda el pulso por el trigger hasta que se recibe, de esta forma, y conociendo cual es la velocidad del sonido, podemos determinar de forma muy simple la distancia exacta a la que se encuentra el objeto en el que esta rebotando la señal.

Para aclarar un poco el factor de multiplicación que vamos a introducir en Arduino, basta con decir que la velocidad es igual al espacio dividido por el tiempo que se tarda en recorrer dicho espacio. La velocidad del sonido es conocida (343m/s) y el tiempo lo vamos a determinar, como el tiempo que transcurre desde que efectuamos el disparo hasta que recibimos el eco.

Tener en cuenta que este tiempo será doble, ya que la onda hace el camino de ida y el de regreso.

El cálculo que hay que hacer es:

formula

Ejemplo para medir distancias

Veamos un ejemplo básico para utilizar el sensor de ultrasonidos como medidor de distancias.

Para esto vamos a necesitar:

Un Arduino

Un sensor de ultrasonidos HC-SR04

Un protoboard

Cables de conexión

La conexión es muy sencilla, tan solo hay que conectar la alimentación al modulo de ultrasonidos (conectar Vcc a +5 y GND a masa) y los pines de «echo» y «triger» conectarlos a los pines 8 y 9 respectivamente, estos pines se pueden cambiar según la necesidad y disponibilidad que tengamos en nuestro Arduino.

Esquema de conexión:

medir distancias bb

Una vez conectado todo, tan solo habrá que cargar el código de programa.

Código de programa

Como podemos ver a continuación, el código de programa no hace más que lo explicado anteriormente, emitirá un pulso por el pin 9 que esta asignada al «trigger» que previamente se habrá reseteado (puesta a LOW) para evitar problemas.

digitalWrite(pulso,LOW); //Por cuestión de estabilización del sensor
delayMicroseconds(5);
digitalWrite(pulso, HIGH) //envío del pulso ultrasónico
delayMicroseconds(10);

Y en las siguientes instrucciones se obtiene el tiempo (al recibir el «echo») y se aplica la fórmula explicada anteriormente para obtener la distancia exacta al objeto

tiempo = pulseIn(rebote, HIGH); //función para medir el tiempo y guardarla en la variable "tiempo"
distancia = 0.01715*tiempo; //fórmula para calcular la distancia

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* 
  PRACTICA 1 "SENSOR DE ULTRASONIDOS"
  Muestra la distancia a la que se encuentran los objetos
*/
#define pulso 9  //define la salida por donde se manda el pulso como 9
#define rebote 8 //define la salida por donde se recibe el rebote como 10
int distancia;  //crea la variable "distancia"
float tiempo;  //crea la variable tiempo (como float)
void setup()
{
  Serial.begin(9600);  //inicializa el puerto serie
  pinMode(pulso, OUTPUT); //Declaramos el pin 9 como salida (pulso ultrasonido)
  pinMode(rebote, INPUT); //Declaramos el pin 8 como entrada (recepción del pulso)
}
void loop()
{
  digitalWrite(pulso,LOW); //Por cuestión de estabilización del sensor
  delayMicroseconds(5);
  digitalWrite(pulso, HIGH); //envío del pulso ultrasónico
  delayMicroseconds(10);
  tiempo = pulseIn(rebote, HIGH);  //funcion para medir el tiempo y guardarla en la variable "tiempo"
  distancia = 0.01715*tiempo; //fórmula para calcular la distancia
  
  /*Monitorización en centímetros por el monitor serial*/
  Serial.print("Distancia: ");
  Serial.print(distancia);
  Serial.println(" cm");
  delay(3000);//esto es para que tome las mediciones cada 3 segundos
}

 

Una vez  que tenemos el circuito armado y lo cargamos al Arduino el programa, solo debemos abrir la comunicación serie para poder visualizar la dista distancia a la que se encuentra el objeto más cercano en la pantalla. Para abrir el monitor serie en el entorno de programación de Arduino, debemos ir a la pestaña «herramientas» y seleccionar a la opción «Monitor Serial» o usar las teclas de acceso rápido Ctrl + Mayusculas + M.

Se abrirá una pestaña como esta que mostrará el valor de la distancia en «cm».

monitor serie

Tutorial de Arduino y uso del Kinect

El uso de Kinect con Arduino es quizás la mejor opción para controlar los robots usando gesto o para escanear el medio ambiente. Los tutoriales que pueden descargar a continuación le explican detalladamente cómo conectar el Kinect con Arduino para responder a la información tomada del sensor 3D.

El sensor Kinect no es sólo un simple dispositivo utilizado por los jugadores para interactuar con el movimiento de las manos, esta es una herramienta que se utiliza en la robótica para la digitalización y control. Los gestos de los usuarios están interpretando utilizando una cámara de vídeo estándar, una cámara de profundidad, y mediante la proyección de una rejilla de láser infrarrojo sobre superficies y crear información mediante el escaneo de las distorsiones en la malla digital. El mismo sensor 3D se utiliza para el reconocimiento de comando de voz, una característica que se puede utilizar junto con la interpretación gesto o simplemente para controles de voz. El sensor 3D permite a los usuarios controlar el robot y explorar el medio ambiente.

rsz_erg_rthuj_etyjtyjg_h

Tutorial Arduino y Kinect

Proyecto de Integración Tecnológica, Robótica Infantil

El día sábado 16 de Mayo del 2015, le comentamos nuestra propuesta de llevar la a cabo nuestro proyecto de robótica educativa, al concejal Juan Zabaleta. Este trabajo lo venimos realizando desde hace ya 4 años en una escuela de Hurlingham y queremos que llegue a todas las escuelas del distrito.

Durante la charla el concejal ha demostrando el gran interés que tiene en la educación y como considera que la implementación de nuevas tecnologías en las escuelas es una herramienta fundamental para el crecimiento y desarrollo de los niños.


 

El proyecto consiste en:

Resumen

Teniendo en cuenta los avances de la tecnología y los efectos de la globalización, están ocurriendo grandes transformaciones sociales. Se han superado ciertos paradigmas relacionados con la educación y los procesos neurológicos responsables del aprendizaje.

Hoy es un hecho que la educación debe posibilitarles a los alumnos apropiarse de las nuevas tecnologías, así como también despertar el interés de una mayor profundización en el ámbito científico-tecnológico.

Son necesarias nuevas habilidades y el desarrollo de competencias que permitan que el sujeto sea capaz de intervenir para la mejora del bien común, así como de la calidad de vida.

Introducción

El proyecto Robótica Educativa, fundamentado en el constructivismo, posibilita el desarrollo de la creatividad, la capacidad de abstracción, las relaciones intra e interpersonales, el hábito del trabajo en equipo, permitiéndole al educador realizar acciones que desarrollen la motivación, la memoria, el lenguaje, la atención de los educandos y otros aspectos que contribuyen a la práctica pedagógica actual.

Fundamentación

Interrelacionar las distintas nociones básicas de las técnicas aplicables a la automatización a través de la recreación; favoreciendo la creatividad y las habilidades manuales; valiéndose del pensamiento lógico matemático para resolver problemáticas afines.

Objetivos

 El principal objetivo es incorporar la Robótica Educativa en las escuelas del municipio.

Esto implicaría:

  • Poner al alcance de docentes y alumnos recursos tecnológicos de última generación en el campo de la robótica, utilizando material que fue recientemente diseñado para el aprendizaje.
  • Brindar los contenidos necesarios para que los alumnos que se encuentran alejados de los adelantos tecnológicos no queden aún más desplazados en su capacitación de un futuro cada vez más tecnificado.

Generar un espacio de encuentro entre chicos, en actividades que fomenten su pensamiento y creatividad, a partir de los 11 años de edad, de todos los Colegios del municipio. Creemos que la construcción y programación de los robots junta en una actividad varios desafíos:

  • La organización de un grupo humano para la resolución de un problema, con funciones específicas para cada integrante, y con el problema agregado de que hay infinitas formas de llegar a la solución, lo que genera un debate y un juego de poder sumamente educativo dentro de los chicos.
  • La construcción de un aparato que, desde un punto de vista físico, esté capacitado para resolver el problema, sin deterioro de sus partes. Es decir, encarar desde el lado de la ingeniería el diseño del robot.
  • La programación de instrucciones para que, dada la arquitectura del robot, logre desarrollar independientemente los pasos para la resolución del problema.

Objetivos Generales

  • Fomentar el interés por la ciencia y la tecnología y la experimentación, entremezclando la curiosidad innata de los chicos junto con el espíritu inquisidor del investigador.
  • Auspiciar el trabajo en grupo, organizando y planificando las tareas necesarias para llegar a la resolución de un problema.
  • Generar espacios de discusión con respecto a las infinitas soluciones posibles que presentan los desafíos en robótica.
  • Obtener los recursos necesarios para que los colegios que están distantes de estas tecnologías, no queden aún más lejos de los recursos educativos novedosos.
  • Generar conciencia en los chicos con respecto al impacto de las nuevas tecnologías en todas las áreas de nuestra vida.
  • Desarrollar el pensamiento lógico matemático.
  • Promover la utilización de herramientas tecnológicas para la resolución de problemas.
  • Fomentar la capacidad creativa, sus habilidades manuales y de construcción (motricidad fina y gruesa).
  • Desarrollar la capacidad de aprendizaje en forma divertida, despertando así su interés y curiosidad por los principios científicos y tecnológicos
  • Posibilitar el conocimiento de un área que le facilite la elección para continuar  sus estudios secundarios orientados a la técnica.

Muchas gracias concejal por escuchar y demostrar su gran compromiso con la educación

http://juanzabaleta.com.ar/