Índice:
- Etapa 1: Alteração do local do tutorial
- Etapa 2: construir o robô de unidade diferencial SnappyXO
- Etapa 3: conectar os eletrônicos
- Etapa 4: instalar a biblioteca PreciseMovement Arduino
- Etapa 5: Código
- Etapa 6: como funciona
Vídeo: Robô do movimentador preciso SnappyXO: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Faça seu robô Arduino ir direto por uma distância especificada ou torcer para um ângulo especificado usando a biblioteca PreciseMovement Arduino.
O robô precisa de um lançador de bola rolante ou equivalente para minimizar o atrito durante a torção.
www.pololu.com/product/954
Você pode dizer ao robô para avançar para uma distância especificada ou torcer para um ângulo especificado. O programa determina sua posição usando o cálculo morto. Uma vez que as estimativas de posição dependem apenas da velocidade da roda, o deslizamento induzirá a erros consideráveis. O projetista do robô deve ter cuidado para minimizar o risco de escorregamento.
Isso foi testado para funcionar com o robô SnappyXO.
Etapa 1: Alteração do local do tutorial
O tutorial foi movido para a página abaixo. Este tutorial não é mais mantido.
sites.google.com/stonybrook.edu/premo
Etapa 2: construir o robô de unidade diferencial SnappyXO
A biblioteca PreciseMovement que usaremos é compatível apenas com robôs de acionamento diferencial. Você pode optar por usar outros robôs com tração nas duas rodas.
Etapa 3: conectar os eletrônicos
Para o codificador óptico SnappyXO padrão:
D0 (saída do codificador) -> Arduino Digital Pin
VCC -> Arduino 5V
GND -> GND
Motor e Arduino Power:
A fonte de alimentação do motor deve ser adequada para os motores que você usa. Para o kit SnappyXO, baterias 4AA são usadas para alimentação do motor e bateria de 9 V para alimentação do Arduino. Certifique-se de que todos eles tenham um GND comum.
Etapa 4: instalar a biblioteca PreciseMovement Arduino
Download:
github.com/jaean123/PreciseMovement-library/releases
Como instalar a Biblioteca Arduino:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Etapa 5: Código
Código Arduino:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Esses parâmetros requerem ajuste. Outros parâmetros rotulados como recomendados no código podem ser ajustados para melhor desempenho.
- Verifique e defina os pinos do motor em PINOS ARDUINO.
-
Defina LENGTH e RADIUS.
- LENGTH é a distância da roda esquerda à roda direita.
- RADIUS é o raio da roda.
-
Defina PULSES_PER_REV, que é o número de pulsos que o codificador gera para uma rotação da roda.
- Observe que isso é diferente do número de pulsos que o codificador gera para uma revolução do eixo do motor, a menos que os codificadores estejam conectados para ler diretamente do eixo da roda.
- PULSES_PER_REV = (pulsos por uma revolução do eixo do motor) x (relação de engrenagem)
-
Defina STOP_LENGTH se você ver que o robô está ultrapassando o limite após o movimento para frente.
O robô irá parar assim que a posição estimada estiver STOP_LENGTH de distância do alvo. Assim, STOP_LENGTH, é a distância aproximada necessária para o robô parar
-
Parâmetros PID
KP_FW: Este é o componente proporcional do movimento para frente. Aumente isso até que o robô vá direto. Se você não conseguir fazer o ajuste correto, então provavelmente o hardware está com defeito. (por exemplo, desalinhamento da roda, etc)
KP_TW: Este é o componente proporcional do movimento de torção PID. Simplesmente comece a partir de um valor baixo e aumente até que a velocidade de torção, ou a velocidade angular do robô durante a torção, seja rápida o suficiente, mas não cause overshoot. Para fazer observações, você pode fazer com que o robô alterne de 0 a 90 e vice-versa, inserindo o seguinte na função de loop
Coloque isso em loop para sintonizar KP_FW:
mover.forward (99999);
Coloque isso em loop para alternar de 0 a 90 para sintonizar KP_TW:
mover.twist (90); // Twist 90 CW
atraso (2000);
mover.twist (-90) // Twist 90 CCW
atraso (2000);
Observe que, para realmente torcer a velocidade angular em TARGET_TWIST_OMEGA, o KI_TW também precisa ser ajustado, pois um controlador proporcional nunca se estabelecerá no alvo exato. No entanto, não é necessário girar exatamente nessa velocidade angular. A velocidade angular só precisa ser lenta o suficiente.
Etapa 6: como funciona
Se você está curioso para saber como funciona, continue lendo.
O movimento para a frente é mantido em linha reta usando o algoritmo de perseguição puro em um caminho em linha reta. Mais sobre a perseguição pura:
O controlador PID de torção tenta manter a velocidade angular de torção em TARGET_TWIST_OMEGA. Observe que essa velocidade angular é a velocidade angular de todo o robô, não das rodas. Apenas um controlador PID é usado e a saída é a velocidade de gravação PWM dos motores esquerdo e direito. O cálculo morto é feito para calcular o ângulo. Assim que o ângulo atinge o limite de erro, o robô para.
Recomendado:
Waveshare E-ink Display Voltímetro preciso (0-90 V DC) com Arduino Nano: 3 etapas
Waveshare E-ink Display Voltímetro preciso (0-90 V DC) Com Arduino Nano: Neste Instructable, eu uso um display Waveshare E-Paper de 2,9 '' com um Arduino Nano, um divisor de tensão e um ADS1115 para exibir tensões precisas de até 90 volts DC no E-Paper Display. Este instrutível combina estes dois projetos anteriores: - Ardui
Medidor de voltagem preciso e preciso Arduino (0-90 V DC): 3 etapas
Medidor de voltagem preciso e preciso Arduino (0-90 Vcc): Neste instrutível, construí um voltímetro para medir altas voltagens DC (0-90 V) com relativa precisão e exatidão usando um Arduino Nano. As medições de teste que fiz foram precisas o suficiente, principalmente dentro de 0,3v da tensão real medida com um
Reator de arco de final de jogo impresso em 3D (filme preciso e vestível): 7 etapas (com imagens)
3D Printed Endgame Arc Reactor (Movie Accurate and Wearable): Tutorial completo do Youtube: Não consegui encontrar nenhum arquivo 3D com precisão de filme para o reator arc Mark 50 / alojamento para nanopartículas, então meu amigo e eu preparamos alguns doces. Demorou muitos ajustes para fazer com que a coisa parecesse precisa e incrível
Contador de assinantes preciso do YouTube: 4 etapas
Contador de assinantes preciso do YouTube: comecei a me preparar para este projeto há cerca de um mês, mas fui atrapalhado pelo YouTube quando eles anunciaram que não forneceriam mais a contagem real de assinantes, mas o número arredondado mais próximo. No momento, isso não é realmente um problema para
Robô de equilíbrio / Robô de 3 rodas / Robô STEM: 8 etapas
Robô de balanceamento / Robô de 3 rodas / Robô STEM: Construímos um robô de balanceamento combinado e de 3 rodas para uso educacional em escolas e programas educacionais após as aulas. O robô é baseado em um Arduino Uno, um escudo personalizado (todos os detalhes de construção fornecidos), um pacote de bateria Li Ion (todos constr