Índice:
- Etapa 1: Recursos
- Etapa 2: Compreendendo como a detecção de infravermelho funciona (opcional)
- Etapa 3: Montagem de LEDs IR
- Etapa 4: Teste de pares infravermelhos - circuito
- Etapa 5: Teste de pares infravermelhos - Código básico
- Etapa 6: Teste de pares infravermelhos - Hardware + Software
- Etapa 7: Solução de problemas (para problemas com a última etapa)
- Etapa 8: Segundo Par IR
- Etapa 9: Detecção de interferência infravermelha (opcional)
- Etapa 10: Adicionando Mais Pares IR
- Etapa 11: Cinco pares IR - circuito
- Etapa 12: Cinco pares IR - Código
Vídeo: Boe-Bot com detectores infravermelhos: 12 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este instrutível irá demonstrar como construir e codificar um Boe-Bot que pode navegar por um labirinto usando detectores infravermelhos para evitar obstáculos. Este é um guia fácil de seguir que permite modificações fáceis para atender às suas necessidades. Isso requer um conhecimento básico de circuitos e programação. Você precisará do software BASIC Stamp IDE para este projeto. Gratuito para download aqui. Bem como o Robô Boe-Bot
Etapa 1: Recursos
Componentes eletrônicos
Boe-Bot com cabo conector Parallax Store - BoeBot Kit
Loja de paralaxe de 5 LEDs infravermelhos - kit de montagem do transmissor infravermelho
5 conjuntos de proteção infravermelha
5 detectores infravermelhos Parallax Store - BoeBot IR Receiver
Resistores
- (2) 4,7 kΩ ABRA Electronics - 4,7 kΩ
- (5) 220 Ω ABRA Electronics - 220 Ω
- (2) 1 kΩ ABRA Electronics - 1 kΩ
- (5) 2 k ABRA Electronics - 2 kΩ
Fiação sortida ABRA Electronics - Fio de bitola 22
Eletrônica ABRA de 3 LEDs - LED vermelho de 5 mm
Apoio, suporte
Computador
BASIC Stamp Editor - (Freeware)
Ferramentas
Cortador de fio ABRA Electronics - Cortador de fio (opcional)
Descascador de fios ABRA Eletrônica - Descascador de fios
Diversos
Paredes (para construir labirinto)
Etapa 2: Compreendendo como a detecção de infravermelho funciona (opcional)
Faróis infravermelhos
O sistema de detecção de objetos infravermelhos que construiremos no Boe-Bot é como os faróis de um carro em vários aspectos. Quando a luz dos faróis de um carro reflete nos obstáculos, seus olhos detectam os obstáculos e seu cérebro os processa e faz seu corpo guiar o carro de acordo. O Boe-Bot usará LEDs infravermelhos para faróis. Eles emitem infravermelho e, em alguns casos, o infravermelho reflete em objetos e salta de volta na direção do Boe-Bot. Os olhos do Boe-Bot são os detectores infravermelhos. Os detectores infravermelhos enviam sinais indicando se detectam ou não infravermelho refletido em um objeto. O cérebro do Boe-Bot, o BASIC Stamp, toma decisões e opera os servo motores com base nesta entrada do sensor. Figura 7-1 Detecção de objeto com faróis de infravermelho Os detectores de infravermelho possuem filtros óticos integrados que permitem muito pouca luz, exceto o infravermelho de 980 nm que queremos detectar com seu sensor fotodiodo interno. O detector infravermelho também possui um filtro eletrônico que permite a passagem de apenas sinais em torno de 38,5 kHz. Em outras palavras, o detector está procurando apenas infravermelho que está piscando 38, 500 vezes por segundo. Isso evita a interferência de IV de fontes comuns, como luz solar e iluminação interna. A luz solar é uma interferência DC (0 Hz), e a iluminação interna tende a acender e apagar a 100 ou 120 Hz, dependendo da fonte de alimentação principal da região. Uma vez que 120 Hz está fora da frequência de passagem de banda de 38,5 kHz do filtro eletrônico, é completamente ignorado pelos detectores de IV.
-Guia do Aluno Paralax
Etapa 3: Montagem de LEDs IR
Insira o LED IR na parte maior do invólucro
Coloque a parte transparente do LED com a parte menor do invólucro
Etapa 4: Teste de pares infravermelhos - circuito
Antes de nos aprofundarmos em algo, faremos um teste para ter certeza de que o par de infravermelho funciona (um LED infravermelho e um detector infravermelho).
Comece construindo o circuito acima na placa de ensaio montada na parte superior do seu Boe-Bot
Etapa 5: Teste de pares infravermelhos - Código básico
Claro, vamos precisar escrever código para nossos pares IR funcionarem
Para isso, utilizará o comando FREQOUT. Este comando foi projetado para tons de áudio, porém pode ser usado para produzir frequências na faixa do infravermelho. Para este teste, usaremos o comando:
FREQOUT 8, 1, 38500
isso enviará uma frequência de 38,5 kHz que dura 1 ms para P8. O circuito do LED infravermelho conectado ao P8 transmitirá esta frequência. Se a luz infravermelha for refletida de volta para o Boe-Bot por um objeto em seu caminho, o detector infravermelho enviará ao BASIC Stamp um sinal para informá-lo de que a luz infravermelha refletida foi detectada.
A chave para fazer um par de IR funcionar é enviar 1 ms de FREQOUT de 38,5 kHz e armazenar imediatamente a saída do detector de IR em uma variável.
Este exemplo mostra o armazenamento do valor do detector de infravermelho em uma variável de bit chamada irDectectLeft
FREQOUT 8, 1, 38500
irDetectLeft = IN9
O estado de saída do detector de IV quando ele não vê nenhum sinal de IV é alto. Quando o detector de IV vê o harmônico de 38500 Hz refletido por um objeto, sua saída é baixa. A saída do detector de IR apenas permanece baixa por uma fração de milissegundo após o comando FREQOUT terminar de enviar o harmônico, por isso é essencial armazenar a saída do detector de IR em uma variável imediatamente após o envio do comando FREQOUT. O valor armazenado pela variável pode então ser exibido no Terminal de Depuração ou usado para decisões de navegação pelo Boe-Bot.
Etapa 6: Teste de pares infravermelhos - Hardware + Software
Agora que você conhece o básico, podemos colocar o hardware e o software juntos para testar um par e obter feedback em tempo real do que o par de infravermelho está detectando
Você pode tentar criar o código sozinho ou usar o código abaixo
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft =", BIN1 irDetectLeft PAUSE 100 LOOP
- Deixe o Boe-Bot conectado ao cabo serial, pois você usará o Terminal DEBUG para testar seu par de infravermelho.
- Coloque um objeto, como sua mão ou uma folha de papel, a cerca de 2,5 cm do par infravermelho esquerdo
- Verifique se quando você coloca um objeto na frente do par de infravermelho, o Terminal de depuração exibe um 0 e, quando você remove o objeto da frente do par de infravermelho, exibe um 1.
- Se o Debug Terminal não exibir os valores esperados, tente as etapas da Etapa de Solução de Problemas.
Etapa 7: Solução de problemas (para problemas com a última etapa)
DEBUG Terminal exibindo valores inesperados
Verifique o circuito quanto a curtos, conectores mal colocados ou ausentes, componentes danificados, resistores incorretos ou qualquer outro problema visível
Verifique os erros lógicos ou de sintaxe do programa - Se você usou seu próprio código na última etapa, considere usar o código fornecido
Sempre obtendo 0, mesmo quando não há objetos é colocado na frente do Boe-Bot
Verifique se há algum objeto próximo que esteja refletindo o sinal infravermelho. A mesa em frente ao Boe-Bot pode ser a causa. Mova o Boe-Bot para um espaço aberto para que o LED IR e o detector não reflitam em nenhum objeto próximo.
A leitura é 1 na maioria das vezes quando não há nenhum objeto na frente do Boe-Bot, mas pisca para 0 ocasionalmente
Pode haver interferência de uma luz fluorescente próxima; Desligue todas as luzes fluorescentes próximas e repita os testes. Se o problema persistir, a etapa 9 pode revelar o problema
Etapa 8: Segundo Par IR
Agora que você tem o programa para o IR esquerdo, é sua vez de fazer o circuito e programar o par IR direito
- Altere a instrução DEBUG, o título e os comentários para se referir ao par de IR correto.
- Altere o nome da variável de irDetectLeft para irDetectRight. Você precisará fazer isso em quatro lugares do programa.
- Altere o argumento Pin do comando FREQOUT de 8 para 2.
- Altere o registro de entrada monitorado pela variável irDetectRight de IN9 para IN0.
- Repita as etapas de teste nesta atividade para o par de infravermelho correto; com o circuito do LED IV conectado a P2 e o detector conectado a P0.
Etapa 9: Detecção de interferência infravermelha (opcional)
Se você está tendo problemas com a detecção de sinais que não deveriam ser detectados ou se planeja demonstrar sua detecção de infravermelho em um local alternativo, você pode querer testar a interferência.
O conceito deste programa de teste é bastante simples, você detecta sinais infravermelhos sem enviá-los.
Você pode usar exatamente o mesmo circuito, mas terá que alterar o código. você pode escolher escrever seu próprio código, mas pode usar o código fornecido abaixo:
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OU IN0 = 0 THEN DEBUG "Interferência detectada" PAUSE 100 LOOP
Se você experimentar interferência, determine a fonte provável e desligue-a / remova-a ou mude para onde você opera seu Boe-Bot.
Etapa 10: Adicionando Mais Pares IR
Se você deseja mais precisão no movimento do seu Boe-Bot, pode adicionar mais pares de infravermelho. 3 Melhora muito o desempenho em comparação com dois; você pode usar um par central para procurar um obstáculo direto e usar dois IRs laterais para determinar quanto virar. No entanto, a desvantagem do design de 3 pares IR é que você pode saber quando está deslizando contra uma parede, porque o par IR central é usado para detectar obstáculos. Para resolver esse problema, você pode adicionar um par de infravermelho a cada lado com um valor de resistência alto - portanto, o sinal infravermelho só será detectado se o Boe-Bot estiver próximo à lateral ou a uma parede em um ângulo suave.
Etapa 11: Cinco pares IR - circuito
Tenha cuidado ao direcionar os dois LEDs IR na lateral, pois torcê-los pode fazer com que os condutores se toquem e causar um curto-circuito.
Etapa 12: Cinco pares IR - Código
Você pode querer tentar programar seu Boe-Bot antes de usar este código:
'{$ STAMP BS2}' {$ PBASIC 2.5} 'Código de eliminação de cinco pares de IV' Matthew Shaw '8 de maio de 2019 (versão 7)' Detecção de objetos e processamento lógico básico para resolver labirintos
irDetectLeft VAR Bit 'Variável para a esquerda
irDetectCentre VAR Bit 'Variável para o centro irDetectRight VAR Bit' Variável para a direita irDetectLSide VAR Bit 'Variável para o lado esquerdo irDetectRSide VAR Bit' Variável para o lado direito irDetectLSideFar VAR Bit 'Variável para o lado esquerdo baixa resistência irDetectRSideFar VAR Bit' Variável para o lado direito resistência baixa
mLoop VAR Word
Lmotor PIN 15 'O motor esquerdo está conectado ao pino 14, os pulsos passam por aqui
Rmotor PIN 14 'right = 15
'as velocidades são -> 650-750-850
LFast CON 850 'Conastante para motor esquerdo em velocidade total RFast CON 650' Conastante para motor direito em velocidade total
LStop CON 750 'Conastant para motor esquerdo em velocidade total
RStop CON 650 'Conastant para o motor correto em velocidade total
LMid CON 830 'Conastante para motor esquerdo em velocidade média
RMid CON 700 'Conastant para motor correto em velocidade média
LSlow CON 770 'Conastante para motor esquerdo na velocidade mínima
RSlow CON 730 'Conastante para o motor correto na velocidade mínima
LRev CON 650 'Conastante para motor esquerdo em velocidade total em reverso
RRev CON 850 'Conastante para motor esquerdo em velocidade total em reverso
FREQOUT 7, 1, 38500 'lado esquerdo
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 3, 1, 38500 'lado direito
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Esquerda Fechar
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'à direita Fechar
irDetectRSide = IN0
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'lado direito
irDetectRSideFar = IN0
IF irDetectLSide = 0 AND irDetectRSide = 0 THEN main 'COMANDO DE INICIALIZAÇÃO acene com as mãos pelos dois detectores laterais para iniciar o programa
Principal:
PAUSE 1000 DO
PULSOUT Lmotor, motor esquerdo LFast 'funciona em velocidade total
PULSOUT Rmotor, RFast 'Motor direito funciona em velocidade total
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 10, 1, 38500 'Esquerda Fechar
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'lado direito
irDetectRSide = IN0
IF irDetectLSide = 0 AND irDetectRSide = 1 THEN
DO PULSOUT Lmotor, LFast
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5 IF irDetectCentre = 0 THEN cent
FREQOUT 10, 1, 38500 'Esquerda Fechar
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'lado direito
irDetectRight = IN2
LOOP ATÉ irDetectLSide = 1 OU irDetectRSide = 0
ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 THEN
DO PULSOUT Rmotor, RFast
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5 IF irDetectCentre = 0 THEN cent
FREQOUT 10, 1, 38500 'Esquerda Fechar
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'lado direito
irDetectRight = IN2
LOOP ATÉ irDetectLSide = 0 OU irDetectRSide = 1
'FIM SE
SE irDetectCentre = 0 ENTÃO 'INICIAR
FREQOUT 7, 1, 38500 'lado esquerdo irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'pausa para mostrar o sinal detectado
IF (irDetectLeft = 1 AND irDetectRight = 0) THEN 'avalia a duração
GOSUB virar à esquerda
ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) ENTÃO
GOSUB à direita
ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) ENTÃO
GOSUB turnDecide
OUTRO
GOSUB turnReverse
FIM SE
ENDIF 'END
CICLO
FIM
Vire à esquerda:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP ATÉ IN0 = 1 RETURN
Vire à direita:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP ATÉ IN9 = 1
RETORNA
turnReverse:
PARA mLoop = 0 A 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSA 20 PRÓXIMO DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT Lmotor, LRev PAUSE 20 PRÓXIMO DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetLeft 5, 38500 irDetectRight = IN0 LOOP ATÉ IN9 = 1
RETORNA
turnDecide: 'usa menor resistência para ver mais longe
FREQOUT 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'lado direito
irDetectRSideFar = IN0
IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN 'avalia a duração
GOSUB virar à esquerda
ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) ENTÃO
GOSUB à direita
ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) ENTÃO
GOSUB virar à esquerda
OUTRO
GOSUB turnReverse
FIM SE
RETORNA
Recomendado:
Tire ótimas fotos com um iPhone: 9 etapas (com fotos)
Tire ótimas fotos com um IPhone: a maioria de nós carrega um smartphone conosco para todos os lugares atualmente, por isso é importante saber como usar a câmera do smartphone para tirar ótimas fotos! Só tenho um smartphone há alguns anos e adoro ter uma câmera decente para documentar coisas que eu
Como fazer detectores de fumaça / álcool e alarmes de incêndio LoT com NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3: 7 etapas
Como fazer um LoT Detectores de fumaça / álcool e alarmes de incêndio com NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3: Mais detalhes, você pode assistir meu vídeo no Youtube
Cabine de fotos de casamento Arduino - peças impressas em 3D, automatizadas e de baixo orçamento: 22 etapas (com fotos)
Arduino Wedding Photo Booth - peças impressas em 3D, automatizadas e de baixo orçamento: Recentemente fui convidado para o casamento do irmão do meu parceiro e eles perguntaram se poderíamos construir uma cabine fotográfica para eles, pois seu aluguel é muito caro. Isso é o que nós pensamos e depois de vários elogios, decidi transformá-lo em um instrutivo
Lance sua apresentação de slides de fotos de férias com um toque de mágica!: 9 etapas (com fotos)
Lance sua apresentação de slides de fotos de férias com um toque de magia! Ao longo dos anos, desenvolvi o hábito de levar uma pequena estatueta comigo quando viajava: geralmente compro um pequeno objeto em branco (como o da foto) e pinto para combinar com a bandeira e o tema do país que estou visitando (neste caso, a Sicília). T
Transferência de fotos para lata de refrigerante: 7 etapas (com fotos)
Transferência de fotos para uma lata de refrigerante: Este manual mostra uma maneira fácil e rápida de como transferir fotos para uma lata de refrigerante. O processo básico é copiar a foto primeiro em um papel comum. Em seguida, você transfere a foto para um filme autoadesivo. Depois disso, você limita o filme a