Olá pessoal,
Acabo de disponibilizar uma lib para arduíno que controla dois motores de passo em configuração diferencial para produzir os 9 movimentos implementados. Esta lib faz parte de um projeto maior que pretende desenvolver robos de baixo custo e alto desempenho para uso acadêmico e educacional.
Este projeto ainda está em uma fase inicial mas já tem algum material em https://fperrotti.wikispaces.com/Projeto+de+rob%C3%B4+m%C3%B3vel .
Futuramente pretendo abrir outros threads para discutir questões sobre aspectos específicos do projeto. Já existe uma thread que discute o uso de motor de passo e seus problemas para uso em robôs móveis em http://labdegaragem.com/forum/topics/projeto-de-rob-m-vel . Inclusive quero aproveitar a oportunidade para agradecer a participação do Wilmar Cassiano Degobbi, cujas informações e ponderações foram e continuam sendo em grande parte responsáveis pelos aprimoramentos implementados na biblioteca apresentada aqui.
Nesta thread estou divulgando a versão inicial da biblioteca. No endereço https://fperrotti.wikispaces.com/Stepper+Lib+Arduino pode ser feito o download dos arquivos e ver a documentação produzida até o momento.
Um vídeo de um robô simples usando a biblioteca pode ser visto em: https://www.youtube.com/watch?v=Q-9cnJ0gP5Q&feature=youtu.be
Também está publicada no playground do arduino:
http://playground.arduino.cc/Main/StepperRobot
A biblioteca está disponível para uso, mas ainda é uma versão inicial. Há muito o que melhorar, otimizar, recursos a implementar, etc. Agradeceria qualquer colaboração na forma de sugestões, críticas, bug reports, otimizações, algoritmos, código fonte, ou o que seja para melhorar a biblioteca.
Quem quiser participar do desenvolvimento da bilioteca pode se juntar ao projeto no Google Code: https://code.google.com/p/stepper-robot-arduino-lib/
Abraços,
Francesco
Tags:
Francesco,
Obrigado por me citar, mas você sabe que todo o trabalho foi seu, eu apenas dei uns palpites nas nossas discussões neste fórum.
Para os interessados em robôs, esta biblioteca que o Francesco está desenvolvendo tem recursos não encontrados nas disponíveis na internet, pois é feita para a utilização com drivers para motores de passo simples, sem muitos recursos, no entanto implementa recursos sofisticados que melhora muito a tração do robô.
É muito interessante e vale a pena dar uma olhada.
Wilmar
Prof. Francesco ,seu robô ficou fantástico!
Não sabia que era possível tanta precisão de movimentos! Fiquei impressionado.
Parabéns pelo material disponibilizado !
Olá José, obrigado pelo feedback, mas por favor não me chame de professor, aqui eu to mais pra aluno. Minha experiência é com programação de computadores, nesse meio de eletrônica, robótica e microcontroladores ainda estou começando, tenho muito mais entusiasmo do que conhecimento.
Sobre a precisão dos movimentos, essa sempre foi uma prioridade do meu projeto, por isso a opção por motores de passo. Com motores DC seria muito complicado conseguir esse nível de precisão. O projeto tenta produzir um robô de baixo custo, mas com alto desempenho na navegação.
O robozinho no filme tem um chassi feito com um pedaço de maneira de balsa e uma peça em U de alumínio onde estão os motores. Os motores são retirados de sucata de impressoras, são motores unipolares de apenas 48 passos por volta. São controlados por placas com o uln2003 bem baratinhas que comprei em um site chinês. As rodas também foram retiradas de impressoras sucateadas, são as rodas que puxam o papel. As baterias são pilhas de Li-Ion do tipo usado em lanternas.
O uso de motores de passo permite simplificar muito o projeto. Não é preciso usar encoders e nem sistemas de redução. As rodas estão presas diretamente no eixo dos motores.
Tudo nesse robô ou é sucata ou é muito barato, mas mesmo assim foi possível conseguir um nível de precisão nos movimentos que eu achei bastante satisfatório. Na foto abaixo o material usado para a estrutura do robô:
E aqui uma foto do robô já pronto:
Ele por baixo:
Abraço,
Francesco
Muito bom !! Caro Francesco !
Tenho alguns desses motores em casa (de impressoras HP, não é?)
Também sou favorável para reciclagem de equipamentos e peças.
Esse motores são bem precisos.
Abraços.
Gustavo
São de impressoras HP sim, consegui um monte deles com um cara que conserta impressoras. E eles têm um torque até que razoável pro tamanho deles.
Criei uma área para este projeto no Code Google em
https://code.google.com/p/stepper-robot-arduino-lib/
quem quiser ajudar na programação está convidado a ingressar no projeto.
Abraços,
Francesco
Mais uma atualização, criei uma "home" pro projeto no Playground do site oficial do Arduino. Achei muito bom o esquema deles pra divulgar libs desenvolvidas por usuários.
O Playground inteiro é uma wiki, uma vez que vc se cadastra vc pode criar uma área pro teu projeto e também alterar as páginas públicas, por exemplo a que tem a lista de libs disponíveis no Playground e acrescentar o link pra lib desenvolvida.
Tudo bem que é uma wiki feita pra isso, mas é bem legal ver o projeto no site oficial do Arduíno.
O endereço da "home" desta lib é:
http://playground.arduino.cc/Main/StepperRobot
Abraços
Francesco
Ficou muito bom!
Parabéns !
Impressionante a precisão do robô.
Gostaria de saber se aumentar o diametro das rodas (+-30cm) e consequentemente o tamanho da estrutura e dos motores se ele continuaria com a mesma precisão, ja que seriam rodas maiores e aumentaria o erro, que tipo de roda teria que ser para continuar com a mesma precisão ?
Imagino se seria possivel fazer o robo dar um circulo completo, não em torno do seu eixo, como mostra o video, mas em um raio maior, tendo que mover mais rapido a roda de fora e mais lento a de dentro para ele girar e dar o 360 graus e quando terminar, verificar se a posição seria a mesma de quando ele começou a fazer o circulo ?
Teria como fazer esse teste ?
Parabens mais uma vez...
[]´s
Jota
Sim, isso é possível sim e o outro robô já faz isso, só que ele não usa Arduíno, usa o wixel. Não que isso faça alguma diferença, a única diferença é que a biblioteca do outro está mais evoluída por que foi feita a mais tempo, só isso.
Quanto às rodas, realmente, aumentando o diâmetro diminui a precisão. Também aumenta a velocidade e exige mais torque dos motores. Tudo depende do objetivo do robo. Qual característica é mais importante? velocidade ou precisão? Mas pra rodas grandes tem uma solução bem simples, é só colocar um par de engrenagens entre o eixo do motor e a roda. Se a relação for por exemplo de 2:1, vc dobra o numero de passos por volta, aumenta a precisão do movimento e exige menos torque dos motores (consegue carregar mais peso). Claro que a velocidade tb será reduzida pela metade.
Mais uma coisa, o que eu disse no post acima é mais pra movimento retilíneo, para curvas tem mais um fator envolvido: a espessura das rodas. Quanto mais finas forem as rodas, menor vai ser o arrasto e mais precisas serão as curvas. Por isso coloquei um anel de borracha sobre as rodas do robô da foto. Isso melhorou horrores a precisão do movimento.
E agora lembrei de outro fator que influi na precisão das curvas: a distância entre as rodas. Bom, estou supondo que estamos falando de direção diferencial, nesse caso quanto mais distantes estiverem as rodas, maior vai ser o diâmetro do circulo que as rodas descrevem nas curvas, portanto vai exigir mais passos pra completar a volta, aumentando a precisão.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por