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

Exibições: 1717

Responder esta

Respostas a este tópico

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.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço