Ultrasónico Robot evitando obstáculo (12 / 16 paso)

Paso 12: Control y problemas del módulo HCSR-04

Pinout

GND - Masa común

Este pin se conecta a la tierra del esquema

VCC - alimentación

Este pin debe estar atado a la línea de alimentación de nuestro circuito, que - en mi caso es proporcionado por el convertidor del buck de 5V.

TRIG - pasador del gatillo

El usuario tiene que proporcionar un microsegundo de tiempo impulso en este pin, entonces espere a que el eco llegar en la clavija de echo. Tenga en cuenta, que el eco es alto en las primeras decenas de milisegundos, asegúrese de que usted espere hacia fuera en la inicialización. Este pin se afirma, entonces programa tiene que esperar un flanco ascendente y el iniciar un temporizador, TMR1. La WASTE_10_US(); es una macro que escribí, consta de bastantes instrucciones "NOP" para un tiempo total de 10 microsegundos. Cuenta se detiene cuando el pulso de eco baja otra vez. Desde el número en el registro de contador sabemos que el tiempo necesario para que el sonido volver de un eventual obstáculo. Sabemos que la velocidad del sonido - podemos calcular la distancia!

Eco - pin eco

Este pin se utiliza para detectar las ondas de sonido reflejadas. Que conectado a un pin que tiene interrupción, por si acaso - pero se utiliza en modo de entrada simple. Un flanco ascendente detiene el contador mencionado anteriormente y guarda en una variable, que es procesada poco después.

Un pequeño truco para hacer más fácil la vida de PIC-s

La sincronización de los impulsos se muestra en la hoja de datos de este módulo. Como se mencionó antes, debe esperar a que la iniciales ~ 100 ms, luego dar microsegundo 10 pulsos de disparo en el pasador de TRIG. Darle tal impulso se traduce en una explosión de 8 ciclo desde el transmisor, el 'speaker'. Entonces, tenemos que esperar para que un eco por venir. El eco es captado por el receptor y transformado en un impulso de longitud variable sobre el pin eco. La duración de este impulso de eco es directamente proporcional con la distancia hasta el obstáculo. La hoja de datos da una fórmula simple para calcular esto:

distancia [cm] = t medido [microsegundos] / 58

devolverá la distancia en centímetros. Sólo divido por 5.8, por lo que consigue devuelve la distancia en milímetros. Ya que no necesariamente lecturas sumamente precisas, voy a añadir un pequeño toque aquí. Sólo quiero evitar los obstáculos, no importa lo lejos están, por lo que no uso de calcular distancia en doble tipos de variables. Ese tipo de cálculos tome mucho tiempo, que en este caso es totalmente innecesario. Así que vamos a simplificar los cálculos un poco. Sabemos que del impulso recibido en microsegundos es necesario averiguar la distancia. Sin embargo, nuestra base de tiempo no es un uno, 83.33 muy redondo [ns]. Así, en lugar de llevar la cuenta del TMR1, multiplicando por la base para obtener la duración en microsegundos, entonces dividiendo 5.8 para obtener la distancia en milímetros, del tiempo vamos a hacer algo más simple y más tonto. Vamos a establecer lo que un medio único de TMR1 cuenta en milímetros:

1 Conde = 83.33 [ns] = 0.08333 [nosotros], que, dividida por 5,8 resultados en 0.014 [mm] para cada TMR1 [count]

Dicho esto, podemos escribir lo siguiente:

1 [count] .......................... 0,014 [mm]

x [count]... y [mm]

y escribir la siguiente fórmula:

y [mm] = (x * 0.014) / 1 = x * 0.014 = x / 71.42

Así que sabemos que podemos obtener la distancia a un obstáculo dividiendo el TMR1 cuenta con 71.42. Esto, sin embargo, todavía es un cálculo de precisión que lleva mucho tiempo, así que echa un vistazo y darse cuenta que esto no es lejos de 64, un bonito número 'redondo'. División de potencias de 2 en software es muy fácil, puede hacerse mediante desplazamiento derecha seis veces. Desplazamiento de byte es una instrucción nativa del PIC, y es muy muy rápida en comparación con una doble división. Por lo tanto, vamos a 71.42 ronda de 64 y solo cambio TMR1 dejaron 6 veces para tener una idea sobre qué tan cerca es un obstáculo!

Vamos a ver la diferencia que este truco da una cuenta de 8000 (por ejemplo):

original: 8000 / 71.42 = 112 [mm]

complicado: 8000 / 64 = (8000 >> 6) = 125 [mm]

Así que el error es aproximadamente 10%, no es mucho en comparación con la enorme cantidad de tiempo que acaba de guardar!

Problemas

No he pegué problemas al trabajar con este módulo, único lo que sucedió fue que el cable entre el PIC y el pin eco quedó desconectado, y el PIC esperando interminablemente los bordes en pin. Esto era fácil de coger, puesto que el LED rojo que cambia a cada instante, parado. Inmediatamente supe que congeló el programa, y el uno lugar que se puede congelar esta espera para rutina de borde. Problema resuelto después de un minuto!

Una cosa más: estas cosas funcionan con 5 [V], por lo que tener solo 4.8 [V] a plena carga significa, que nosotros estamos estirando demasiado. Si el voltaje no es suficiente para recoger el eco, el MCU se colgará, esperando el eco llegar!

Artículos Relacionados

Cómo hacer un Robot evitando obstáculo

Cómo hacer un Robot evitando obstáculo

evitando el obstáculo el robot es un robot sencillo que es funcionado por un arduino y lo que hace es que sólo deambula alrededor y evita obstáculos. Detecta los obstáculos con un sensor de ultrasonidos HC-SR04 en otras palabras si el robot detecta o
Coche RC robot evitando obstáculo

Coche RC robot evitando obstáculo

este es el coche antiguo.Encuentro un viejo coche de RC en mi galpón.¿Cómo me convertido en un robot? Es sencillo, que te explico en el siguiente paso.Paso 1: El viejo coche del RC 1. quitar la carcasa2 quitar el circuito.Paso 2: Control Control util
Coche de Arduino evitando obstáculo

Coche de Arduino evitando obstáculo

Hola a todos estoy compartiendo aquí hago un obstáculos evitando coche de arduino. Aquí utilicé material fácilmente disponible, estos robo seguir ejecutar hasta y a menos que algún obstáculo delante de coche así que vamos a ver y hacer...Paso 1: mate
Robot de obstáculo de Arduino

Robot de obstáculo de Arduino

Cuando este proyecto en el coche de control remoto circuito de Arduino es quitado y pegado detectar los obstáculos en el frente de la dönüştürüldü.arab robot instalar sensor ultrasónico para detectar sağlandı.engel golpear obstáculos o barreras que m
Robot de obstáculos evitando L298N puente H doble controlador Motor y sensor ultrasónico

Robot de obstáculos evitando L298N puente H doble controlador Motor y sensor ultrasónico

¡ Hola chicos!Aquí les dejo algunas imágenes del robot:el hardware necesario:Arduino protoboard.protoboard.sensor de ultrasonidos.2 motores DCcables.Regulador del motor L298N puente h dual.chasis de aluminio.el código de arduino:http://SH.St/PQEQT¡¡B
Utiliza un sensor ultrasónico robot carro funcionando con batería de la motocicleta con pantalla LCD

Utiliza un sensor ultrasónico robot carro funcionando con batería de la motocicleta con pantalla LCD

Este coche robot trabaja con sensor ultrasonido HC-SR04 y alimentado con batería de la motocicleta 12V usado.Paso 1: Cuerpo de coche robot Hacer el cuerpo del robot utilizando madera contrachapada y una pieza plana de madera. Cortar la madera contrac
Obstáculo, evitando Robot - escudo del Motor

Obstáculo, evitando Robot - escudo del Motor

¡ Hola chicos! Este es un tutorial fácil y básico para la fabricación de un Robot evitando obstáculo... Sigue leyendo...Paso 1: Materiales necesarios Para construir el Robot evitando obstáculo, se necesita-Arduino Uno R3 (recomendamos usar Arduino Un
Un infrarrojo de Arduino controlado y Robot de evitación del obstáculo

Un infrarrojo de Arduino controlado y Robot de evitación del obstáculo

Hola todo el mundo,Este Instructables se divide en dos fases, que hace conveniente para el principiante y los diseñadores de robots intermedios.La primera fase abarca el uso de la placa de arduino nano solamente como controlador. Con esto, vamos a co
Obstáculos del Robot Qtechknow

Obstáculos del Robot Qtechknow

¿Has pensado de controlar su FuzzBot de forma inalámbrica? ¿Quieres hacer un real - life video juego? ¿Quieres aprender sobre la tecnología detrás de NFC y RFID? -el Qtechknow Robot de obstáculos cómo - a guía es para usted!Por favor votar para mí (e
Obstáculo, evitando Robot con Arduino

Obstáculo, evitando Robot con Arduino

Hola chicos en este instructable veremos cómo hacer un obstáculo autónomo evitando Robot.This robot ha sido diseñado y programado de tal manera que evita la colisión. Básicamente, el robot se mueve hacia delante y siempre que detecte un objeto/obstác
Obstáculo de Arduino evitando Robot

Obstáculo de Arduino evitando Robot

En este instructable le mostraré cómo hacer tu propio obstáculo evitando robot!Vamos a utilizar la placa de Arduino uno y un sensor de ultrasonidos. Si el robot detecta un objeto delante de él, con la ayuda de un pequeño servomotor, explora la zona i
Obstáculo del uno mismo evitando Robot

Obstáculo del uno mismo evitando Robot

Es un obstáculo del uno mismo evitando el robot. Utiliza dos sensores de ping para detección de obstáculos. Utiliza un escudo del Motor L293D Adafruit para alimentar cuatro motores de 12 voltios de alto esfuerzo de torsión. Él también feawtures un Ar
Obstáculo evitando Robot V2

Obstáculo evitando Robot V2

recientemente hice un instructable sobre un obstáculo sencillo evitando robot. En este instructable implementará un barrido PING))) sensor, a diferencia del anterior robot que tiene sensor estaba inmóvil. Utilizaré este tercer servo que el PING))) se
Cómo hacer un obstáculo evitando Arduino Robot! "Mi Robot V1"

Cómo hacer un obstáculo evitando Arduino Robot! "Mi Robot V1"

Este instructable muestra las instrucciones de pasos para hacer un obstáculo evitando robot con Arduino.Empezar a dejarmi bloghttp://robot4pro.blogspot.com/p/My-robots.htmlPaso 1: Materiales necesariosAquí le damos todo que lo necesario para hacer My