Tabla de contenido:

Boe-Bot con detectores de infrarrojos: 12 pasos (con imágenes)
Boe-Bot con detectores de infrarrojos: 12 pasos (con imágenes)

Video: Boe-Bot con detectores de infrarrojos: 12 pasos (con imágenes)

Video: Boe-Bot con detectores de infrarrojos: 12 pasos (con imágenes)
Video: boebot basicstamp robot con dos sensores de ultrasonido 2024, Noviembre
Anonim
Boe-Bot con detectores infrarrojos
Boe-Bot con detectores infrarrojos

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)

Comprensión del funcionamiento de la detección de infrarrojos (opcional)
Comprensión del funcionamiento de 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

Montaje de LED IR
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

Prueba de pares de infrarrojos: circuito
Prueba de pares de infrarrojos: circuito
Prueba de pares de infrarrojos: circuito
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

Prueba de pares de infrarrojos: hardware + software
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

  1. Deje el Boe-Bot conectado al cable serial, porque usará la Terminal DEBUG para probar su par IR.
  2. Coloque un objeto, como su mano o una hoja de papel, aproximadamente a una pulgada del par de infrarrojos izquierdo
  3. 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.
  4. 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

Segundo par de infrarrojos
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

  1. Cambie la declaración, el título y los comentarios DEBUG para hacer referencia al par IR correcto.
  2. Cambie el nombre de la variable de irDetectLeft a irDetectRight. Deberá hacer esto en cuatro lugares del programa.
  3. Cambie el argumento Pin del comando FREQOUT de 8 a 2.
  4. Cambie el registro de entrada monitoreado por la variable irDetectRight de IN9 a IN0.
  5. 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)

Detección de interferencias infrarrojas (opcional)
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

Agregar más pares de infrarrojos
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

Cinco pares de infrarrojos: circuito
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

Cinco pares de infrarrojos: código
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: