Estou usando 2 motores DC idênticos e uma roda de rodízio. Os motores são conectados ao driver do motor L293D e são controlados pelo RPi .
O robô não está indo direto. Ele vira para a direita. Estou executando os dois motores a 100% PWM .
O que eu tentei corrigir o erro:
- Eu ajustei o PWM da roda indo mais rápido para 99% , mas o robô apenas vira para o outro lado;
- Ajustei o peso no robô e o problema ainda persiste.
Uma vez tentei rodar o motor sem carga. É essa a causa disso, como me disseram mais tarde, operar um motor de corrente contínua sem carga os danifica?
Se essa não for a causa, diga-me como resolver esse problema sem usar nenhum sensor para controlá-lo.
Respostas:
Estou postando isso como uma resposta, porque é a resposta.
Você não pode.
Como o @ BendingUnit22 menciona, você está tentando o controle "loop aberto". Ruído e variações significarão que seu robô nunca conduzirá uma linha perfeitamente reta.
Os motores podem ter diferentes resistências de enrolamento (diferentes correntes de tração / torque), as rodas podem ter tamanhos diferentes, as rodas podem ter características de tração diferentes, o rolamento do rodízio pode ser "rígido", o rodízio pode não estar perfeitamente reto quando o veículo arranca , o piso pode ter características variáveis de atrito da superfície (leia-se: poeira ou carpete) - a lista continua.
A única maneira de explicar as coisas fora do seu controle (o que eu mencionei acima e mais) é usar sensores de feedback.
Você pode tentar obter um melhor desempenho de loop aberto corrigindo os problemas listados, mas existem ainda mais e simplesmente não pode controlar tudo.
fonte
Como a questão do circuito aberto-fechado já foi mencionada, farei um comentário ao "uma vez tentei rodar um motor CC sem carga".
Sim, você pode danificar seu motor com isso, mas também pode danificar ou destruir seu motor com uma carga. A destruição é proveniente da corrente e da temperatura resultante. Se não houver fumaça e algum cheiro óbvio proveniente do motor, provavelmente não será danificado. Pela minha experiência, posso dizer que os motores CC em escala de hobby começarão a se degradar a temperaturas acima de 100 ° C. E você definitivamente notará essas temperaturas
Edição:
Eu pensei sobre isso novamente e eu poderia ter uma idéia que seu colega poderia estar falando. Há um tipo especial de motor CA. Estes são motores síncronos não excitados. Basicamente, eles são construídos para a auto-destruição. Se você ligá-los, eles começarão a acelerar até se desmontarem. Mas se você colocar uma carga pesada sobre eles, eles não poderão atingir esse estado, apenas por causa do grande momento em que precisam se aplicar à carga. Então você pode usá-los para fins razoáveis. De qualquer forma, você definitivamente não possui um motor como esse em seu aplicativo.
fonte
O que você está descrevendo é chamado controle de malha aberta, e para fazer isso, você precisa de dois motores exatamente iguais, duas rodas exatamente iguais, o centro de gravidade do robô para estar no centro entre as rodas, um circuito elétrico simétrico perfeito, e, finalmente, uma superfície nivelada uniforme perfeita para rodar.
Para fazer isso, você normalmente pede dezenas ou centenas de cada peça e, em seguida, realiza testes significativos para encontrar dois motores que são os mais próximos entre si em termos de potência e velocidade versus tensão e PWM. Faça o mesmo com as rodas, os controladores do motor e outras peças.
Esse processo é chamado de binning - após esses testes, você os classifica de acordo com suas capacidades ou características. Considera-se muito mais caro, tanto em termos de tempo quanto em recursos, do que mudar para um modelo de circuito fechado, e nem conta com más condições do solo.
É, no entanto, uma maneira de atingir seus requisitos sem sensores adicionais.
fonte
Embora nunca seja perfeito, pode haver uma maneira simples de fazê-lo seguir em frente.
Se de 100% a 100% o carro sempre vira à esquerda e de 100% a 99% o carro sempre vira à direita, você poderá melhorar isso tentando valores entre eles.
Comece com 100% -99,5% e continue com 100% -99,75% ou 100% -99,25%, dependendo do resultado. Isso deve convergir em breve para uma situação em que você irá direto "em média".
fonte
Bem, se o problema não está nas diferenças de hardware nem software para cada roda, provavelmente é um problema com imperfeições naturais, tanto na maneira como você construiu o robô quanto na maneira como os motores foram produzidos. As conexões podem não ser sólidas ou o RPI pode não estar emitindo a mesma corrente. Você provavelmente deseja usar controladores de velocidade. Tente isso primeiro.
Se isso não funcionar, o fabricante provavelmente não fabricou motores idênticos e provavelmente será necessário calibrá-los. Pode significar escalar o valor do motor mais forte para que 100% da potência do motor forte corresponda ao fraco.
fonte
Rodas com motores dc devem b na frente. E roda coster atrás. Em seguida, ele se moverá direto apenas na direção para a frente
fonte