Robô evitando parede baseado em Raspberry Pi - FabLab NerveCentre
Observação:este instrutivo não está completo - mas pode ser útil
Publicado para permitir que as excelentes pessoas da NerveCentre de Derry levem o código às escolas
Espero voltar a isso, mas meu trabalho atual está me impedindo de fazer isso por enquanto.
Este instrutível é uma alternativa à minha outra parede evitando o robô encontrado aqui:
http://www.instructables.com/id/Arduino-wall-avoid…
A intenção é oferecer uma plataforma e codificação alternativas para atingir o mesmo resultado.
Para este projeto, usamos o Raspberry Pi e o familiar chip ponte h duplo L293D. O sensor ultrassônico é o amplamente utilizado HC-SR04.
A codificação é feita em Python, que considero muito mais fácil de interpretar para aqueles que não codificam muito.
Aproveite o projeto e dê o seu feedback para que sejam feitas as melhorias necessárias.
Etapa 1:O que você precisa
A Raspberry Pi - usei um B +, mas qualquer RPi funcionará com algumas edições nos números dos pinos usados para acionar cada motor.
Um driver de motor - usei o kit L293D PCB daqui:http://www.rkeducation.co.uk/L293D-Project-PCB.php… - Devido a uma mudança de trabalho, é improvável que eu consiga responder perguntas sobre alternativas, então espero que as informações mais tarde sejam suficientes.
2 X motores e rodas CC com engrenagem de ângulo reto - você pode usar qualquer motor CC para isso.
Um sensor ultrassônico HC-SR04 - amplamente utilizado e disponível para projetos RPi e Arduino.
Uma bateria de 9 V e um encaixe de bateria - isso serve para fazer os motores funcionar.
Uma bateria de 5 V - usei uma bateria Anker para executar o RPi.
Fiação - uma seleção de fios fêmea-fêmea e fêmea-macho.
Resistores - apenas 2 são necessários para criar um divisor de tensão. Usei um emparelhamento de 100 Ohm e 220 Ohm. Veja os detalhes abaixo sobre a criação de um divisor de tensão - em última análise, embora um resistor precise ter quase o dobro da resistência do outro.
Uma pequena placa de ensaio - você poderia passar sem isso se usar fita isolante ou algo assim.
Etapa 2:vamos ver como usar o Pi para obter uma leitura do sensor ultrassônico
Aprendi como fazer isso por meio do tutorial do ModMyPi.com, que está disponível aqui:
https://www.modmypi.com/blog/hc-sr04-ultrasonic-ra…
Em anexo está um esquema que mostra como aplicar o divisor de tensão.
Resumidamente, isso é usado para diminuir a tensão no sinal de volta do pino ECHO no sensor. 5V sai do pino e passa por um resistor que cria uma queda de tensão. Nesse ponto, há uma divisão - uma ramificação vai para o GND por meio de um resistor que tira o dobro da tensão - a outra ramificação só passou por um desses resistores e, portanto, reduz a tensão para 3,3V.
O Pi precisa que esse sinal seja reduzido para 3,3 V, caso contrário, o sensor dos EUA funcionará, mas retornará leituras espúrias. Daí a necessidade do divisor de tensão.
Você pode consultar o link em anexo se precisar fazer o breadboard. Anexei (mais tarde) alguns arquivos de fabricação para produzir um pequeno divisor de tensão, se você tiver os recursos para isso.
Para testar o sensor ultrassônico, você pode usar o código em anexo (se não estiver funcionando da minha imagem disponível no Github). Para fazer isso, basta baixar o arquivo e no LXTerminal do RPi navegar até a pasta onde baixou o arquivo. Em seguida, digite “sudo python FILENAME.py”.
Etapa 3:agora vamos ver como fazer alguns motores funcionarem
Agora podemos conectar alguns motores.
Tudo pode ser conectado conforme a imagem. Acho muito útil tentar evitar a repetição de quaisquer cores para que você possa ver facilmente onde cada uma se conecta.
No código anexado (que demonstra o movimento do motor), você notará que usei um padrão de nomenclatura para os 3 pinos que ligam o RPi ao driver do motor. Por exemplo:
Motor1A =36 - indica um pino para conectar IP1 ou IP2.
Motor1B =38 - indica um pino para conectar IP1 ou IP2.
Motor1E =40 - indica um pino para conectar EN1.
O mesmo é verdade para a série “Motor2 *”:
Motor1A =33 - indica um pino para conectar IP3 ou IP4.
Motor1B =35 - indica um pino para conectar IP3 ou IP4.
Motor1E =37 - indica um pino para conectar EN2.
Uma vez que eles estejam conectados, precisamos conectar cada terminal do motor também. Conecte um motor ao MA e o outro ao MB - o fio que vai para cada lado dos motores é bastante arbitrário, pois nenhum dano será feito.
Novamente, você pode baixar o arquivo anexado e executar o código Python de acordo com as instruções anteriores.
Etapa 4:Fazendo tudo funcionar em conjunto
Neste ponto, você provavelmente tem uma confusão de fiação, algo como a imagem anexada!
Além de construir um chassi, você está pronto para fazer tudo funcionar em conjunto.
Em anexo está um script Python (que é executado novamente de acordo com as instruções anteriores) que fará uma medição de distância usando o sensor ultrassônico a cada 0,5 segundos. Se esta medida cair abaixo de 10 cm, uma das rodas inverte. Quando montado todos juntos em um chassi, isso significa que o robô irá se mover e se virar se sentir alguma coisa por perto.
Para mais detalhes:Robô evitando parede baseado em Raspberry Pi - FabLab NerveCentre
Processo de manufatura
- Estação meteorológica baseada no Raspberry Pi
- Projeto Raspberry PI IoT Conectando o Sensor DHT11
- Robô usando Raspberry Pi e Bridge Shield
- Robô evitando parede baseado em Raspberry Pi - FabLab NerveCentre
- Um robô móvel com prevenção de obstáculos baseada na visão
- Construindo o Kit do Robô MonkMakes Raspberry Pi
- XMOS startKIT:Construindo um XMOS e Raspberry Pi Robot XMP-1
- Robô da caixa de CD do Raspberry Pi
- PiCy - O Robô Minúsculo Raspberry Pi!
- Robô Raspberry Pi controlado por Bluetooth