Tabla de contenido:
- Paso 1: Recursos
- Paso 2: Comprender cómo funciona la detección de infrarrojos (opcional)
- Paso 3: Montaje de LED IR
- Paso 4: Prueba de pares de infrarrojos: circuito
- Paso 5: Prueba de pares de infrarrojos - Código básico
- Paso 6: Prueba de pares de infrarrojos: hardware + software
- Paso 7: resolución de problemas (para problemas con el último paso)
- Paso 8: segundo par de infrarrojos
- Paso 9: detección de interferencias infrarrojas (opcional)
- Paso 10: agregar más pares de infrarrojos
- Paso 11: Cinco pares de infrarrojos: circuito
- Paso 12: Cinco pares de infrarrojos - Código
Video: Boe-Bot con detectores de infrarrojos: 12 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este instructivo demostrará cómo construir y codificar un Boe-Bot que puede navegar por un laberinto usando detectores infrarrojos para evitar obstáculos. Esta es una guía fácil de seguir que permite realizar modificaciones sencillas para satisfacer sus necesidades. Esto requiere una comprensión básica de los circuitos y la programación. Necesitará tener el software BASIC Stamp IDE para este proyecto. Gratis para descargar aquí. Además del robot Boe-Bot
Paso 1: Recursos
Componentes electrónicos
Boe-Bot con cable conector Parallax Store - Kit BoeBot
Tienda Parallax de 5 LED infrarrojos - Kit de montaje de transmisor de infrarrojos
5 conjuntos de blindaje infrarrojo
5 detectores de infrarrojos Parallax Store - BoeBot IR Receiver
Resistencias
- (2) Electrónica ABRA de 4,7 kΩ - 4,7 kΩ
- (5) 220 Ω ABRA Electronics - 220 Ω
- (2) Electrónica ABRA de 1 kΩ - 1 kΩ
- (5) Electrónica ABRA de 2 k - 2 kΩ
Cableado surtido ABRA Electronics - Cable calibre 22
Electrónica ABRA de 3 LED - LED rojo de 5 mm
Apoyo
Computadora
Editor de sellos BASIC - (Freeware)
Instrumentos
Cortador de alambre ABRA Electronics - Cortador de alambre (opcional)
Pelacables ABRA Electronics - Pelacables
Misc
Paredes (para construir laberinto)
Paso 2: Comprender cómo funciona la detección de infrarrojos (opcional)
Faros infrarrojos
El sistema de detección de objetos por infrarrojos que construiremos en el Boe-Bot es como los faros de un automóvil en varios aspectos. Cuando la luz de los faros de un automóvil se refleja en los obstáculos, sus ojos detectan los obstáculos y su cerebro los procesa y hace que su cuerpo guíe el automóvil en consecuencia. El Boe-Bot utilizará LED infrarrojos para los faros. Emiten infrarrojos y, en algunos casos, el infrarrojo se refleja en los objetos y rebota en la dirección del Boe-Bot. Los ojos del Boe-Bot son los detectores de infrarrojos. Los detectores de infrarrojos envían señales que indican si detectan o no infrarrojos reflejados en un objeto. El cerebro del Boe-Bot, el BASIC Stamp, toma decisiones y opera los servomotores basándose en esta entrada de sensor. Figura 7-1 Detección de objetos con faros de infrarrojos Los detectores de infrarrojos tienen filtros ópticos incorporados que permiten muy poca luz excepto la infrarroja de 980 nm que queremos detectar con su sensor de fotodiodo interno. El detector de infrarrojos también tiene un filtro electrónico que solo permite el paso de señales de alrededor de 38,5 kHz. En otras palabras, el detector solo busca infrarrojos que parpadean entre 38 y 500 veces por segundo. Esto evita la interferencia de infrarrojos de fuentes comunes como la luz solar y la iluminación interior. La luz solar es una interferencia de CC (0 Hz) y la iluminación interior tiende a encenderse y apagarse a 100 o 120 Hz, según la fuente de alimentación principal de la región. Dado que 120 Hz está fuera de la frecuencia de paso de banda de 38,5 kHz del filtro electrónico, los detectores de infrarrojos lo ignoran por completo.
-Guía del estudiante de Paralax
Paso 3: Montaje de LED IR
Inserte el LED de infrarrojos en la parte más grande de la carcasa
Encierre la parte transparente del LED con la parte más pequeña de la carcasa
Paso 4: Prueba de pares de infrarrojos: circuito
Antes de profundizar demasiado en algo, probaremos para asegurarnos de que el par de infrarrojos funcione (un LED de infrarrojos y un detector de infrarrojos).
Comience construyendo el circuito anterior en la placa montada en la parte superior de su Boe-Bot
Paso 5: Prueba de pares de infrarrojos - Código básico
Por supuesto, necesitaremos escribir código para que funcionen nuestros pares de infrarrojos.
Para hacer esto, utilizará el comando FREQOUT. Este comando fue diseñado para tonos de audio, sin embargo, puede usarse para producir frecuencias en el rango de infrarrojos. Para esta prueba usaremos el comando:
FREQOUT 8, 1, 38500
esto enviará una frecuencia de 38,5 kHz que dura 1 ms a P8. El circuito LED de infrarrojos conectado a P8 transmitirá esta frecuencia. Si la luz infrarroja es reflejada de regreso al Boe-Bot por un objeto en su camino, el detector de infrarrojos enviará al BASIC Stamp una señal para hacerle saber que la luz infrarroja reflejada fue detectada.
La clave para hacer que un par de infrarrojos funcione es enviar 1 ms de FREQOUT de 38,5 kHz y almacenar inmediatamente la salida del detector de infrarrojos en una variable.
Este ejemplo muestra el almacenamiento del valor del detector de infrarrojos en una variable de bits denominada irDectectLeft
FREQOUT 8, 1, 38500
irDetectLeft = IN9
El estado de salida del detector de infrarrojos cuando no ve ninguna señal de infrarrojos es alto. Cuando el detector de infrarrojos ve el armónico de 38500 Hz reflejado por un objeto, su salida es baja. La salida del detector de infrarrojos solo permanece baja durante una fracción de milisegundo después de que el comando FREQOUT termina de enviar el armónico, por lo que es esencial almacenar la salida del detector de infrarrojos en una variable inmediatamente después de enviar el comando FREQOUT. El valor almacenado por la variable se puede mostrar en la Terminal de depuración o el Boe-Bot puede usarlo para decisiones de navegación.
Paso 6: Prueba de pares de infrarrojos: hardware + software
Ahora que conoce los conceptos básicos, podemos juntar el hardware y el software para probar un par y obtener comentarios en tiempo real de lo que detecta el par IR.
Puede intentar crear el código usted mismo o utilizar el siguiente código
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEPURAR INICIO, "irDetectLeft =", BIN1 irDetectLeft PAUSE 100 LOOP
- Deje el Boe-Bot conectado al cable serial, porque usará la Terminal DEBUG para probar su par IR.
- Coloque un objeto, como su mano o una hoja de papel, aproximadamente a una pulgada del par de infrarrojos izquierdo
- Verifique que cuando coloque un objeto frente al par IR, la Terminal de depuración muestre un 0, y cuando retire el objeto frente al par IR, muestre un 1.
- Si la terminal de depuración no muestra los valores esperados, pruebe los pasos del paso de resolución de problemas.
Paso 7: resolución de problemas (para problemas con el último paso)
Terminal DEBUG que muestra valores inesperados
Verifique el circuito en busca de cortocircuitos, conectores perdidos o faltantes, componentes dañados, resistencias incorrectas o cualquier otro problema visible
Verifique el programa por errores lógicos o de sintaxis: si usó su propio código para el último paso, considere usar el código provisto
Siempre obteniendo 0, incluso cuando no hay objetos, se coloca frente al Boe-Bot
Compruebe si hay objetos cercanos que reflejen la señal infrarroja. La mesa frente al Boe-Bot podría ser la causa. Mueva el Boe-Bot a un espacio abierto para que el LED IR y el detector no puedan reflejarse en ningún objeto cercano.
La lectura es 1 la mayor parte del tiempo cuando no hay ningún objeto frente al Boe-Bot, pero parpadea a 0 ocasionalmente.
Puede haber interferencia de una luz fluorescente cercana; Apague las luces fluorescentes cercanas y repita las pruebas. Si el problema persiste, el paso 9 puede revelar el problema
Paso 8: segundo par de infrarrojos
Ahora que tiene el programa para el IR izquierdo, es su turno de hacer el circuito y programar el par IR derecho
- Cambie la declaración, el título y los comentarios DEBUG para hacer referencia al par IR correcto.
- Cambie el nombre de la variable de irDetectLeft a irDetectRight. Deberá hacer esto en cuatro lugares del programa.
- Cambie el argumento Pin del comando FREQOUT de 8 a 2.
- Cambie el registro de entrada monitoreado por la variable irDetectRight de IN9 a IN0.
- Repita los pasos de prueba de esta actividad para el par IR correcto; con el circuito LED IR conectado a P2 y el detector conectado a P0.
Paso 9: detección de interferencias infrarrojas (opcional)
Ya sea que tenga problemas para detectar señales que no deben detectarse o si planea demostrar su detección de infrarrojos en una ubicación alternativa, es posible que desee probar la interferencia.
El concepto de este programa de prueba es bastante simple, detecta señales infrarrojas sin enviar ninguna.
Puede usar exactamente el mismo circuito, pero tendrá que modificar el código. puede optar por escribir su propio código, pero puede utilizar el código que se proporciona a continuación:
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 SI IN9 = 0 O IN0 = 0 ENTONCES DEBUG "Interferencia detectada" PAUSA 100 BUCLE
Si experimenta interferencia, determine la fuente probable y apáguelo / retírelo o reubique el lugar donde opera su Boe-Bot.
Paso 10: agregar más pares de infrarrojos
Si desea una mayor precisión en el movimiento de su Boe-Bot, es posible que desee agregar más pares de infrarrojos. 3 Mejora enormemente el rendimiento en comparación con dos; puede usar un par central para buscar un obstáculo directo y usar dos IR laterales para determinar cuánto girar. Sin embargo, la desventaja del diseño de 3 pares de infrarrojos es que puede saber cuándo se desliza contra una pared, porque el par de infrarrojos central se utiliza para detectar obstáculos. Para resolver este problema, puede agregar un par de infrarrojos a cada lado con un valor de resistencia alto; por lo tanto, la señal de infrarrojos solo se detectará si el Boe-Bot está cerca del costado o de una pared en un ángulo suave.
Paso 11: Cinco pares de infrarrojos: circuito
Tenga cuidado al dirigir los dos LED de infrarrojos en el lateral, ya que girarlos puede hacer que los cables se toquen y provoquen un cortocircuito.
Paso 12: Cinco pares de infrarrojos - Código
Es posible que desee probar a programar su Boe-Bot antes de usar este código:
'{$ STAMP BS2}' {$ PBASIC 2.5} 'Código de detección de cinco pares de infrarrojos' Matthew Shaw '8 de mayo de 2019 (Versión 7)' Detección de objetos y procesamiento lógico básico para resolver laberintos
irDetectLeft VAR Bit 'Variable para la izquierda
irDetectCentre VAR Bit 'Variable para el centro irDetectRight VAR Bit' Variable para el lado derecho irDetectLSide VAR Bit 'Variable para el lado izquierdo irDetectRSide VAR Bit' Variable para el lado derecho irDetectLSideFar VAR Bit 'Variable para el lado izquierdo baja resistencia irDetectRSideFar VAR Bit baja resistencia' Variable para el lado derecho
mLoop VAR Palabra
Lmotor PIN 15 'El motor izquierdo está conectado al pin 14, los pulsos pasan por aquí
Rmotor PIN 14 'derecha = 15
'las velocidades son -> 650-750-850
LFast CON 850 'Conastant para motor izquierdo a máxima velocidad RFast CON 650' Conastant para motor derecho a máxima velocidad
LStop CON 750 'Conastant para motor izquierdo a máxima velocidad
RStop CON 650 'Conastant para motor derecho a máxima velocidad
LMid CON 830 'Conastant para motor izquierdo a velocidad media
RMid CON 700 'Conastant para motor derecho a velocidad media
LSlow CON 770 'Conastant para motor izquierdo a velocidad mínima
RSlow CON 730 'Conastant para motor derecho a velocidad mínima
LRev CON 650 'Conastant para motor izquierdo a máxima velocidad en reversa
RRev CON 850 'Conastant para motor izquierdo a máxima velocidad en reversa
FREQOUT 7, 1, 38500 'lado izquierdo
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 3, 1, 38500 'lado derecho
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Izquierda Cerrar
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'derecha Cerrar
irDetectRSide = IN0
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'lado derecho
irDetectRSideFar = IN0
SI irDetectLSide = 0 Y irDetectRSide = 0 ENTONCES main 'COMANDO DE ARRANQUE agite sus manos más allá de los dos detectores laterales para iniciar el programa
Principal:
PAUSA 1000 HACER
PULSOUT Lmotor, LFast 'motor izquierdo funciona a máxima velocidad
PULSOUT Rmotor, RFast 'El motor derecho funciona a máxima velocidad
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 10, 1, 38500 'Izquierda Cerrar
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'lado derecho
irDetectRSide = IN0
SI irDetectLSide = 0 Y irDetectRSide = 1 ENTONCES
HACER PULSOUT Lmotor, LFast
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5 SI irDetectCentre = 0 ENTONCES centavo
FREQOUT 10, 1, 38500 'Izquierda Cerrar
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'lado derecho
irDetectRight = IN2
BUCEAR HASTA irDetectLSide = 1 O irDetectRSide = 0
ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 ENTONCES
HACER PULSOUT Rmotor, RFast
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5 SI irDetectCentre = 0 ENTONCES centavo
FREQOUT 10, 1, 38500 'Izquierda Cerrar
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'lado derecho
irDetectRight = IN2
BUCLE HASTA irDetectLSide = 0 O irDetectRSide = 1
'TERMINARA SI
SI irDetectCentre = 0 ENTONCES 'INICIO
FREQOUT 7, 1, 38500 'lado izquierdo irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'pausa para mostrar la señal detectada
IF (irDetectLeft = 1 AND irDetectRight = 0) ENTONCES 'evalúa la duración
GOSUB giro a la izquierda
ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) ENTONCES
GOSUB a la derecha
ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) ENTONCES
GOSUB turnDecide
DEMÁS
GOSUB girar a la inversa
TERMINARA SI
ENDIF 'FIN
CÍRCULO
FIN
Gire a la izquierda:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 BUCLE HASTA IN0 = 1 RETORNO
Gire a la derecha:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP HASTA IN9 = 1
REGRESO
turnReverse:
PARA mLoop = 0 A 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetect FREQOUT 2, 38500 irDetectRight = IN0 LOOP HASTA IN9 = 1
REGRESO
turnDecide: 'usa una resistencia más baja para ver más lejos
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'lado derecho
irDetectRSideFar = IN0
IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN 'evalúa la duración
GOSUB giro a la izquierda
ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) ENTONCES
GOSUB a la derecha
ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) ENTONCES
GOSUB giro a la izquierda
DEMÁS
GOSUB girar a la inversa
TERMINARA SI
REGRESO
Recomendado:
Cómo hacer detectores de humo / alcohol y alarmas de incendio LoT con NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3: 7 pasos
Cómo hacer detectores de humo / alcohol y alarmas de incendio LoT con NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3: Más detalles, puedes ver mi video de Youtube
Iluminador de infrarrojos (infrarrojos) Parte 2: 3 pasos
Iluminador IR (Infrarrojos) Parte 2: Hola chicos, estoy de vuelta con la Parte 2 del Iluminador IR (Infrarrojos) Instructable. Si no ha visto la Parte 1, HAGA CLIC AQUÍ. Empecemos … Un simple circuito iluminador de infrarrojos para ayudar a la visión nocturna de las cámaras CCTV. Visión nocturna con iluminador IR, como el nombre
Iluminador de infrarrojos (infrarrojos) Parte 1: 5 pasos
Iluminador de infrarrojos (infrarrojos) Parte 1: Hola … En este instructivo, aprenderemos un poco sobre la visión nocturna, diferentes formas de lograr la visión nocturna y un circuito iluminador de infrarrojos simple para ayudar a la visión nocturna de las cámaras CCTV. La figura muestra el diagrama de circuito de IR Illumina
Control de 8 relés con NodeMCU y receptor de infrarrojos mediante WiFi, control remoto de infrarrojos y aplicación de Android: 5 pasos (con imágenes)
Control de 8 relés con NodeMCU y receptor de infrarrojos mediante WiFi, control remoto por infrarrojos y aplicación de Android: Control de 8 interruptores de relé con nodemcu y receptor de infrarrojos a través de wifi y control remoto por infrarrojos y aplicación de Android. El control remoto por infrarrojos funciona independientemente de la conexión wifi. AQUÍ
Receptor de infrarrojos y control remoto por infrarrojos (TSOP1738) con Arduino: 10 pasos
Control remoto por infrarrojos y receptor de infrarrojos (TSOP1738) con Arduino: este instructivo es para principiantes de Arduino. Este es uno de mis proyectos anteriores con Arduino. Disfruté mucho cuando lo hice y espero que a ti también te guste. La característica más atractiva de este proyecto es el “ Control inalámbrico ”. Y eso es