Rpibot - Sobre Aprendizado de Robótica
Esta é uma plataforma de robô móvel simples e barata projetada para aprender e expandir. Expliquei meu conceito e também meus problemas que resolvi.
Sou engenheiro de software embarcado em uma empresa automotiva alemã. Iniciei este projeto como uma plataforma de aprendizagem para sistemas embarcados. O projeto foi cancelado cedo, mas gostei tanto que continuei no meu tempo livre. Este é o resultado ...
Eu tinha os seguintes requisitos:
- Hardware simples (o foco é o software)
- Hardware barato (cerca de 100 €)
- Expansível (algumas opções já fazem parte da descrição)
- Tensão de alimentação para todos os componentes de uma única fonte de 5 V (banco de energia)
Não havia realmente um objetivo além de aprender. A plataforma pode ser usada para aprendizagem, vigilância, concursos de robótica, ...
Não é um tutorial para iniciantes. Você precisa de alguns conhecimentos básicos sobre:
- Programação (Python)
- Eletrônica básica (para conectar módulos com a tensão certa)
- Teoria de controle básico (PID)
Finalmente, você provavelmente enfrentará problemas como eu. Com alguma curiosidade e perseverança, você passará pelo projeto e resolverá os desafios. Meu código é o mais simples possível e as linhas de código críticas são comentadas para dar dicas.
O código-fonte completo e os arquivos estão disponíveis aqui:https://github.com/makerobotics/RPIbot
Suprimentos:
Mecânica
- 1x placa de madeira compensada (tamanho A4, 4 mm de espessura)
- 3x M4 x 80 Parafuso e porca
- 2x motoredutores com eixo de saída secundário para encoder. Rodas.
- 1x roda grátis
- 1x Montagem de câmera panorâmica e inclinada (opcional)
Eletrônicos
- 1x Raspberry Pi Zero com cabeçalho e câmera
- 1x PCA 9685 servo controle
- 2x roda e circuito codificador óptico
- 1 cabo de ligação fêmea
- 1x powerbank USB
- 1 driver de motor duplo DRV8833
- 2x Micro servos SG90 para panorâmica e inclinação da câmera (opcional)
- 1x MPU9250 IMU (opcional)
- 1 sensor de distância ultrassônico HC-SR04 (opcional)
- 1x placa perfurada e fio de solda, cabeçotes,…
Etapa 1:construir o chassi
Não sou um bom designer mecânico. Além disso, o objetivo do projeto é não gastar muito tempo no chassi. De qualquer forma, defini os seguintes requisitos:
- Materiais baratos
- Montagem e desmontagem rápida
- Expansível (por exemplo, espaço para sensores adicionados)
- Materiais leves para economizar energia para a eletrônica
Um chassi fácil e barato pode ser feito de compensado. É fácil de usinar com uma serra oscilante e uma furadeira manual. Você pode colar pequenas peças de madeira para criar os suportes para sensores e motores.
Pense na substituição de componentes defeituosos ou na depuração elétrica. As partes principais devem ser fixadas por parafusos para serem substituíveis. Uma pistola de cola quente pode ser simples, mas provavelmente não é a melhor maneira de construir um chassi ... Eu precisei de muito tempo para pensar em um conceito fácil de desmontar as peças com facilidade. A impressão 3D é uma boa alternativa, mas pode ser muito cara ou demorada.
A roda livre é finalmente muito leve e fácil de montar. As alternativas eram todas pesadas ou cheias de atrito (experimentei algumas antes de encontrar a última). Só precisei cortar um espaçador de madeira para nivelar a roda livre da cauda depois de montar as rodas principais.
Propriedades da roda (para cálculos de software)
Circunferência:21,5 cm
Pulsos:20 pulsos / rev.
Resolução:1.075 cm (finalmente 1 pulso tem cerca de 1 cm, o que é fácil para cálculos de software)
Etapa 2:Eletrônicos e fiação
O projeto está usando módulos diferentes, conforme mostrado no diagrama.
O Raspberry Pi Zero é o controlador principal. Ele está lendo os sensores e controlando os motores por um sinal PWM. Ele está conectado a um PC remoto por wi-fi.
O DRV8833 é uma ponte H de motor duplo. Ele está fornecendo a corrente suficiente para os motores (o que o Raspberry Pi não pode fazer, pois as saídas podem fornecer apenas alguns mA).
O codificador óptico estão fornecendo um sinal em forma de quadrado cada vez que a luz passa pelas rodas do codificador. Usaremos as interrupções HW do Raspberry Pi para obter as informações cada vez que o sinal for alternado.
O pca9695 é uma placa de controle servo. Ele está se comunicando por um barramento serial I2C. Esta placa está fornecendo os sinais PWM e a tensão de alimentação que estão controlando os servos para panorâmica e inclinação do came.
O MPU9265 é uma aceleração de 3 eixos, velocidade de rotação angular de 3 eixos e sensor de fluxo magnético de 3 eixos. Iremos usá-lo principalmente para obter a direção da bússola.
Os diferentes módulos são todos conectados por um fio de jumper. Uma placa de ensaio atua como despachante e fornece tensões de alimentação (5 V e 3,3 V) e aterramentos. As conexões são todas descritas na tabela de conexões (ver anexo). Conectar 5 V a uma entrada de 3,3 V provavelmente destruirá seu chip. Tome cuidado e verifique toda a fiação duas vezes antes de fornecer (aqui especialmente o codificador deve ser considerado). Você deve medir as tensões de alimentação principais na placa de despacho com um multímetro antes de conectar todas as placas. Os módulos foram fixados por parafusos de náilon no chassi. Também aqui fiquei feliz por tê-los consertado, mas também removíveis em caso de mau funcionamento.
A única soldagem foi, finalmente, os motores, a placa de ensaio e os conectores. Para ser honesto, eu gosto dos fios de jumper, mas eles podem causar perda de conexão. Em algumas situações, alguns monitoramentos de software podem ajudá-lo a analisar as conexões.
Fonte:Rpibot - Sobre Aprendizagem de Robótica
Processo de manufatura
- Python dormir()
- Enfrentando a curva de aprendizado do PID
- Os 9 aplicativos de aprendizado de máquina que você deve conhecer
- Quando é hora de passar pelo Raspberry Pi?
- Entendendo o que é o EDM Die Sinking
- Sobre motores industriais e aplicações
- Sobre a instalação de guias lineares
- Fale-me sobre Indicadores Digitais
- Saiba mais sobre a conformação de chapas metálicas
- Never Stop Learning Festival – Tudo sobre compressores de ar