Muitos de vocês perguntam, "Como devo de começar na robótica, que irei eu comprar para começar a fazer uma coisa simples, sem estar por um lado a gastar muito dinheiro, mas por outro também não comprar coisa que depois me sejam completamente inúteis nos futuros robôs?"
Pois bem, para responder a essa questão resolvi fazer o Smalluino.
Guia passo-a-passo versão PDFO Smalluino, é baseado no Arduino (dai o seu nome) e basicamente é o mínimo dos mínimos para se fazer algo que se pareça com um robô. Digo isto porque no fundo ele não é bem um robô, mas sim um autómato programável, visto que o smalluino não recebe inputs do mundo que o rodeia para poder tomar decisões, logo não é autónomo.
Contudo, este projecto faz uma boa iniciação do Arduino para a robótica, visto com este pequeno tutorial ficarem a saber controlar motores servos, fazer código no Arduino recorrendo a métodos para optimizar este, e ter um primeiro contacto com os dispositivos autónomos.
Uma das coisas mais importantes quando desenvolvemos robôs, é termos feito um plano, um desenho, algo que nos ajude a visualizar os possíveis problemas com que nos vamos deparar para podermos corrigi-los ou evita-los antes de surgirem.
Bem, passando ao Smalluino em si, este é composto por 4 componentes de que vão precisar em qualquer projecto de robótica:
1 x Microcontrolador (neste caso o Arduino)
1 x Suporte de Bateria (utilizamos 4 pilhas recarregáveis num suporte bastante comum)
2 x Motores (recorremos aos servos por serem bastante fáceis de utilizar, e úteis em qualquer projecto de robótica)
2 x Rodas (rodas acopladas aos motores que permitam que este se desloque)
Passamos então à montagem, fiz um vídeo explicativo, não tem muita informação, mas permite um maior contacto com a sequencia das coisas. Espero que gostem.
Os servo motores tem 3 fios, 2 de alimentação e um de sinal. Normalmente Vermelho, Preto e Branco, para positivo, negativo e sinal, respectivamente.
Assim, ligamos o Vermlho dos dois servos ao pino Vin (Voltage IN) que é a voltagem que vem directamente das alimentação exterior, neste caso as pilhas que fazem um total de cerca de 5 ~ 6V (atenção nunca ligar um servo a mais de 6V a menos que venha indicado no datasheet do mesmo que este suporta tensões superiores).
O pin branco de cada um dos servos foram ligados ao pin 10 e 11, estes pins porque permitem melhor utilização do sinal PWM do Arduino, como pode ser lido na documentação do mesmo em
http://www.arduino.cc, permitindo assim que sejam programados individualmente para seguirem num dado sentido a uma velocidade.
Depois de tudo ligado, abrimos o compilador do Arduino e fizemos um simples código em C, este define os métodos que vão ser chamados no código inicial, e executaram a devida instrução.
O tempo de paragem dentro dos ciclos foi definido para 500ms, o que faz com que 2 ciclos sejam equivalentes a 1 segundo.
Se quisermos que o smalluino fique a andar 3 segundos em frente temos que chamar o método passando o parâmetro 6 (3s x 2 ( 500ms cada execução)).
Bem, só me resta desejar-vos um bom projecto, e que façam modificações no código para irem aprendendo a utiliza-lo.
Brevemente iremos agarrar no mesmo projecto e adicionar-lhe um sensor na parte frontal, foi por isso que deixamos a frente sem fios, para podermos depois colocar lá sensores de proximidade com obstáculos, e dando assim capacidade ao smalluino de se deslocar de modo autónomo, sendo ele próprio a tomar decisões de por onde seguir evitando assim os obstáculos que lhe vão surgindo pelo caminho.
Espero que tenham gostado, todos os comentários são bem-vindos.
Links para o material, sugiro que procurem o melhor preço noutras lojas, apenas deixo o link para que tenham por onde procurar.
Arduino na loja SparkfunSuporte de Bateria na loja ParallaxServos na loja ParallaxRodas na loja ParallaxFica aproximadamente por 40€, como vêm, mais barato do que um jogo de computador.
EDIT (ricardo-reis):
Dado que é frequente haver duvidas em relação aos valores que definem os pontos de paragem dos servos e de rotação para cada um dos lados, posto aqui um código simples para que, antes de tentarem usar o código do TigPT no vosso smalluino, testem os vossos servos de forma a saber os valores que precisam para que tudo corra bem.
int motorEsq = 9; // atenção ao valor dos pinos queestão a
int motorDrt = 10; // usar, se não for este, modifiquem no código!
void setup(){
Serial.begin(9600);
}
void loop(){
for (int i=0;i<=255; i++){
analogWrite(motorEsq, i);
analogWrite(motorDrt, i);
Serial.print("A testar valor: ");
Serial.println(i);
delay(500);
}
}
convém que cliquem no botão da consola (no ide do arduino) para conseguirem ver os valores que estão a ser testados.