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);
 
 }

Fotografias deste projecto:

Escrito por André Delgado

Fundador e administrador do Make Bits, desde cedo que se interessou por robótica e micro-controladores, principalmente pelo Arduino. Já escreveu 116 artigos no Make Bits sobre os mais variados temas da robótica.

Artigos Relacionados:

1 Comentário

  • 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

Comenta


Make Bits no teu email



* obrigatório


Publicidade:


Sistema Dinheiro Teste Drive