collapse collapse

* Links de Robótica

* Posts Recentes

Identificar 2 componentes por almamater
[Ontem às 19:31]


+ LASERs por dropes
[16 de Julho de 2025, 12:38]


Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]

* LusoRobótica - Robótica em Portugal

A robótica é uma das ciências mais desafiantes. A perfeita fusão harmoniosa entre um sem fim número de ciências faz da robótica um excelente desafio, que nos convida a imergir neste grandioso mundo da tecnologia, e utilizar a construção de robots como uma forma única de explorar todas as ideias que nos surgem no dia-a-dia.

Junta-te a nós e aprende como a robótica pode mudar a maneira como observas o mundo. Ajuda-nos a desmistificar a robótica em Portugal!
29 de Agosto de 2009, 14:12 por AndréD. | Visualizações: 13422 | Comentários: 9

Boas Pessoal...


Estive a testar o meu MotorShield e como tal decidi fazer um pequeno tutorial a explicar como podem controlar dois motores DC através do vosso arduino mais o motorshield.

A minha ideia será a seguinte, como sabem o motorshield permite controlar motores DC e motores de passo, como não tive tempo nem tenho o material necessário para testar estes três tipos de actuadores vou apenas colocar o controlo de motores DC, assim que tiver o material para os outros dois tipos de actuadores farei um tutorial e colocarei aqui neste mesmo tópico, para ficar-mos com um sitio que tenho tudo sobre o MotorShield V3.0.

Espero que gostem.

Como montar Motor Shield V3.0 - Arduino


Material Necessário (Hardware):
- Base Com Dois Motores DC
- Arduino
- MotorShield V3.0
- 4X Crocodilos
- Parafuso
- Chave Philips (Estrela)
- Rectângulo de Pele (ou outro material nao condutor) para proteger o arduino
- Cabo USB
- Computador


Material Necessário (Software):
- Arduino 0017 (Disponível em arduino.cc)


1º Passo

Arranjar uma base que tenha 2 motores DC (por sorte eu ja tinha uma ca em casa, do meu primeiro robot segue linhas)




2º Passo

Limpar a base e retirar toda a electrónica que nela estiver (se tiver).






3º Passo

Colocar o material nao condutor na base, colocar o arduino em cima e agarrar tudo isto com o parafuso á base.




4º Passo

Depois colocar o MotorShield em cima do arduino, neste processo temos de ter atenção onde ficam os pinos encaixados, sendo que o Vin do MotorShield terá que ficar em contacto com o Vin do Arduino e o pino 0 do MotorShield com o Pino 3 do Arduino.




5º Passo

Vamos agora iniciar a programação...

Temos de ter o esquema da placa presente para que possamos entender o seu funcionamento. o esquema esta disponivel aqui

Entao abrimos o documento com o esquema (Motor_control_v3.0_sch.pdf) e o Arduino 0017 para começarmos a programar.

Verificamos o seguinte:

Se DIRA = 0 o motor 1 anda para a frente
Se DIRA = 1 o motor 1 anda para tras
Se DIRB = 0 o motor 2 anda para a frente
Se DIRB = 1 o motor 2 anda para tras

Se DIRA = 0  e DIRB = 0 o motor 1 e o 2 andam em simultaneo para a frente
Se DIRA = 1  e DIRB = 1 o motor 1 e o 2 andam em simultaneo para tras

Se DIRA = 0 vai virar para a esquerda
Se DIRB = 0 vai virar para a direita

Se DIRA = 0 e DIRB = 1 vai rodar para a esquerda rapido (motor 1 anda para a frente e o motor dois anda para tras)

Se DIRA = 1 e DIRB = 0 vai rodar para a direita rapido (motor 1 anda para tras e o motor dois anda para a frente)


Depois desta fase podemos entao começar a programar.

O codigo que desenvolvi foi o seguinte:

Código: [Seleccione]
/*Codigo Desenvolvido Para Controlo de 2 Motores DC com o MotorSHieldV3.0
By: AndréD.*/


int PWMA=10; //pino pwm do motor 1
int PWMB=11; //pino pwm do motor 2
int DIRA=12; //pino de controlo do motor 1
int DIRB=13; //pino de controlo do motor 1

void setup()
{
analogWrite(PWMA,255); //definir PWM do motor 1 para velocidade máxima (0 a 255)
analogWrite(PWMB,255); //definir PWM do motor 2 para velocidade máxima (0 a 255)
}

void loop()
{
frente(); //chama a função frente
delay(5000); //os motores andam para a frente durante 5 segundos
  stop_(); // chama a funçao stop
  delay(1000); // permanece imovel durante 1 segundo
tras(); //chama a funçao tras
delay(5000); //os motores andam para a tras durante 5 segundos
  stop_(); // chama a funçao stop
  delay(1000); // permanece imovel durante 1 segundo
sp_esquerda(); //chama a funçao sp_esquerda
delay(5000); //o motor 1 anda para a frente e o motor 2 anda para tras permitindo assim uma viragem rapida para a esquerda
  stop_(); // chama a funçao stop
  delay(1000); // permanece imovel durante 1 segundo
sp_direita(); //chama a funçao sp_direita
delay(5000); //o motor 1 anda para a tras e o motor 2 anda para frente permitindo assim uma viragem rapida para a direita
  stop_(); // chama a funçao stop
  delay(1000); // permanece imovel durante 1 segundo
esquerda(); //chama a funçao esquerda
delay(5000); //o motor 1 roda para a frente permitindo assim uma viragem a esquerda
  stop_(); // chama a funçao stop
  delay(1000); // permanece imovel durante 1 segundo
direita(); //chama a funçao direita
delay(5000); //o motor 2 roda para a frente permitindo assim uma viragem a direita
  stop_(); // chama a funçao stop
  delay(1000); // permanece imovel durante 1 segundo
}

void frente()
{
//ver nota no inicio do programa
analogWrite(PWMA, 255);
analogWrite(PWMB, 255);
digitalWrite(DIRA,LOW);
digitalWrite(DIRB,LOW);
}

void tras()
{
//ver nota no inicio do programa
analogWrite(PWMA, 255);
analogWrite(PWMB, 255);
digitalWrite(DIRA,HIGH);
digitalWrite(DIRB,HIGH);
}

void sp_esquerda()
{
//ver nota no inicio do programa
analogWrite(PWMA, 255);
analogWrite(PWMB, 255);
digitalWrite(DIRA,LOW);
digitalWrite(DIRB,HIGH);
}

void sp_direita()
{
//ver nota no inicio do programa
analogWrite(PWMA, 255);
analogWrite(PWMB, 255);
digitalWrite(DIRA,HIGH);
digitalWrite(DIRB,LOW);
}

void esquerda()
{
//ver nota no inicio do programa
analogWrite(PWMA, 255);
analogWrite(PWMB, 255);
digitalWrite(DIRA,LOW);
}

void direita()
{
//ver nota no inicio do programa
analogWrite(PWMA, 255);
analogWrite(PWMB, 255);
digitalWrite(DIRB,LOW);
}

void stop_() {       // Esta funçao define o PWM a 0 para que a plataforma possa parrar.
analogWrite(PWMA, 0);
analogWrite(PWMB, 0);
}

Já testei e está a funcionar, se houver algum problema ou algo que acham que devo alterar é so sugerirem.


6º Passo

Depois de termos o MotorShield em cima do Arduino e a programação feita e pronta a ser testada vamos fazer as ligações aos motores com os crocodilos, da forma representada em baixo:

Neste passo e muito importante que as ligações nao fiquem em contacto umas com as outras, para isso dobrem um pouco os pinos nas saidas dos motores para que os crocodilos "estejam á vontade".










7º Passo

Vamos agora proceder ao Upload do codigo para o arduino.

 - Primeiro ligamos o USB ao Arduino



 - Depois ao PC



 - Depois é so carregar no botao de Upload



 - E por fim esperar que no canto inferior esquerdo apareça a mensagem "Done Uploading"



NOTA: Se neste passo acontecer algo e nao aparecer essa mensagem, recomendo a verificarem o codigo e/ou se o cabo está correctamente ligado ao PC e ao Arduino.


8º Passo

Testar a base a andar...

(Video Brevemente Disponivel) -> Tou sem Camera...

Espero que tenham Gostado e peço desculpa por algum erro que possa surgir...

Cumps
AndréD.




29 de Agosto de 2009, 10:56 por Pauleta | Visualizações: 10573 | Comentários: 5

A Panasonic conseguiu  inscrever a sua linha de baterias EVOLTA no livro de records do Guiness, pela segunda vez.


O pequeno robô Mr. Evolta completou com sucesso as 24 horas de Le Mans equipado com duas baterias AA EVOLTA, batendo a maior distância percorrida por um veículo a baterias controlado remotamente.

Claro que, com uma velocidade de cerca de 1 km/h, não conseguiu competir com os veículos que normalmente percorrem esse circuito. O Mr. Evolta seguiu um farol infravermelhos montado num carrinho de golfe que lhe indicava o percurso. O robô completou 5,6 voltas do circuito, ou seja cerca de 14,82 milhas, num período de 24 horas.

O robô foi desenhado por Tomotaka Takahashi e a sua tarefa agora é subir o Grand Canyon, alimentado, claro está, por baterias EVOLTA.

Mais informação:www.panasonic.com/evolta/

28 de Agosto de 2009, 10:59 por TigPT | Visualizações: 8738 | Comentários: 0

Mais um excelente projecto concluído, e o resultado foi tão bom que não podia deixar de partilhar com todos o vídeo aqui na primeira página.

Vejam vocês mesmos:



http://lusorobotica.com/index.php/topic,1357.msg13702.html#msg13702
Páginas: 1 ... 94 95 [96] 97 98 ... 187

* Quem está online

  • user Google (2)

* Estatística LusoRobótica

  • stats Total de Membros: 4.072
  • stats Total de Mensagens: 106.835
  • stats Total de Tópicos: 9.101
  • stats Total de Categorias: 8
  • stats Total de Quadros: 71
  • stats Recorde utilizadores online: 1.666