Tutorial: Smalluino DC por Filipe Leite

O Smalluino DC é um robô bastante simples e barato de construir, utiliza dois motores DC e um ATmega 328 a funcionar como cérebro. Este robô não recebe inputs do mundo exterior ou seja não tem sensores, os seus movimentos são programados.
Este robô é da autoria de Filipe Leite técnico de electrónica, automação e instrumentação de nível 4.
Bem, para fazeres um smalluino DC precisas de:
1 Arduino;
1 Breadboard;
2 motores DC;
1 bateria;
2 rodas;
1 rolamento livre;
1 base para o robô.
Agora apenas tens que juntar todos esses componentes e criares o teu robô, é a parte mais simples!
Agora vem a parte um pouco mais complexa mas mais divertida, tens que ligar o arduino à ponte-h e por sua vez aos motores DC. Há alguns dias publiquei um tutorial de como ligar 2 motores DC a uma ponte-h.
Video do Smalluino DC em acção:
Agora que tens tudo montado e devidamente instalado vamos então fazer o upload do código para o arduino, o Filipe disponibilizou o seguinte sketch:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | int motor1Pin1 = 5; // Ponte H int motor1Pin2 = 6; // Ponte H int motor2Pin1 = 10; // Ponte H int motor2Pin2 = 11; // Ponte H void setup() { // Definir os pinos outputs: pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); } void loop() { //Vamos testar o gajo :) digitalWrite(motor1Pin1, HIGH); // Este pino HIGH, em conjunto com o de baixo LOW digitalWrite(motor1Pin2, LOW); // Fazem com que o motor da direita ande em frente digitalWrite(motor2Pin1, LOW); // Este pino LOW, em conjunto com o de baixo HIGH digitalWrite(motor2Pin2, HIGH); // Fazem com que o motor da esquerda ande em frente delay (1500); // Tempo que vai ficar a fazer esta função //Agora é inventar....fazer como quiserem... //O ideal seria utilizar a funçao AnalogWrite para controlar a velocidade por PWM //Mas o digitalWrite torna as coisas mais simples //O inconveniente, é que anda sempre á velocidade máxima //O resto do código vai fazer o Smalluino Mexer :D //Dúvidas: [url=http://www.lusorobotica.com]www.lusorobotica.com[/url] digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); delay (1500); digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); delay (1500); digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); delay (1500); } |




























Obrigado pelo post.
Só um pequeno comentário. Tal como referido nos comments do código, este é um código bastante simples que apenas usa a função digitalWrite para meter os motores a andar para frente, trás e depois dá umas voltas.
O código deverá ser feito conforme a aplicação desejada de qualquer um. Neste caso, não existia nenhum tipo de sensores para o robô interagir e fazer determinadas funções.
Agora que vi o video, reparei que ele está com péssima qualidade. Prometo um video com melhor qualidade para breve.
Cumprimentos