• Welcome to LusoRobótica - Robótica em Português.
 

Plataforma de Desenvolvimento 4x4

Started by TigPT, 02 de May de 2010, 13:53

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TigPT

Resolvi começar a montar a minha plataforma de desenvolvimento 4x4 e fiz alguns testes à mesma com comando RC para testar a viabilidade da mesma.

Objectivo, ter uma base de desenvolvimento flexível e adaptável a qualquer projecto que tenha força suficiente para subir pequenos obstáculos, mas possa rodar em torno de si própria para poder deslocar-se e contornar objectos em espaços pequenos.

Para já as rodas estão a ser controladas 2 a 2 por 1 ponte-h só com dois drivers, e fiz um pequeno código para o arduino para interpretar os sinais recebidos do reciver RC e traduzir para PWM e respectivos HIGH/LOW da ponte-H

Total da base, 42€ para motores, rodas, placa de chassi e controlador dos motores.

Ainda tenho que melhorar a alimentação visto que os motores por serem 4 consomem mais corrente do que as pilhas de 1,5V conseguem fornecer.

Algumas fotos da montagem:








Fica um vídeo, desculpem a qualidade mas só tinha o telemóvel por perto para filmar.
(conduzir dois eixos independentes com uma mão sem olhar para o comando por estarmos a filmar ao mesmo tempo com a outra não é tão fácil como parece :P)

Tamiya 4x4 Arduino based robot

PS - A caixa de engrenagens está na combinação mais lenta para fazer menos esforço, contudo ainda irei estudar se mudo para maior velocidade.

Code:
int in1 = 0;
int in2 = 1;
int out1 = 10;
int out2 = 11;
int val1, val2;


unsigned long duration;

void setup()
{
  pinMode(in1, INPUT);
  pinMode(in2, INPUT);
  pinMode(out1, OUTPUT);
  pinMode(out2, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
}

void loop()
{
  int val1 = pulseIn(in1, HIGH);
  int val2 = pulseIn(in2, HIGH);
  delay(50);
 
  if (val1 > 1480 && val1 < 1520){
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
  } else if(val1 > 1500){
   val1 = map(val1, 1500, 1900, 0, 255);
   digitalWrite(2, LOW);
   digitalWrite(3, HIGH);
   analogWrite(out1, val1);
  }else{
   val1 = map(val1, 1100, 1500, 255, 0);
   digitalWrite(2, HIGH);
   digitalWrite(3, LOW);
   analogWrite(out1, val1);
  }
 
 
   if (val2 > 1480 && val2 < 1520){
     digitalWrite(4, LOW);
     digitalWrite(5, LOW);
   }else if(val2 >1500){
   val2 = map(val2, 1500, 1900, 0, 255);
   digitalWrite(4, LOW);
   digitalWrite(5, HIGH);
   analogWrite(out2, val2);
  }else{
   val2 = map(val2, 1100, 1500, 255, 0);
   digitalWrite(4, HIGH);
   digitalWrite(5, LOW);
   analogWrite(out2, val2);
  }
}

metRo_

Parece estar muito porreiro, parabéns ;)

tcustodio

por acaso desde que apareceram na loja as lagartas e a "Universal Plate Set", fiquei com o bichinho pa mandar vir um conjunto para brincar ^^
está muito fixe!
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

trif@sico

Pois também eu fiquei .

TigPT está mesmo fixe

AngellS

tá muito à frente :)

ficaram vocês e eu com o bicho :p

tenho de ver isso lol

Metallica Fan - Big Show At Rock In Rio, Lisbon 2008
---
Angell'S

The Wolfman

Isto está muito engraçado. Como é que isto pode ser controlado à distância?

zordlyon

Caro Tiago meu parabéns, eu ando a desenvolver algo parecido um pouco mais sofesticado, tenho suspenções e um chassi ajustavel...Home Made, mas daqui a uns tempos vai ficar algo assim, embora que eu tnh as 4 rodas direcionais acionadas por 2 servos...

Cumprimentos...
Cumprimentos,
André Carvalho.

TigPT

Utilizo um comando RC para fazer os testes à locomoção, e o código acima apresentado mostra isso mesmo. A conversão de sinal pulseIn para PWM e digitalwrites para controlar os motores.

Também gostava de fazer algo mais complexo mas o tempo não me permite... fico à espera de ver o teu projecto zordlyon para ter ideias para uma futura base! :P

msr

Está muito giro TigPT! Adorei a forma como se move, mesmo "smooth"!

The Wolfman

Sim, mas com que hardware é que o arduino comunica com o comando? O hardware utilizado para a comunicação sem fios é muito caro :p?

TigPT

É um receptor RC normal de um carro telecomandado.

Neste caso é um comando e receptor um bocadito caros de 6canais digital a 2,4Ghz que comprei à uns tempos mas mesmo assim é dos mais baratos para as caracteristicas.

http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=9041

Embora tenha baixado o preço e esteja muito acessível em relação ao que esteve.. depois os portes e alfandega ainda pesam. Procurem um distribuidor local!

amando96

Como ligaste o receptor? tenho aqui um kyosho perfex, que queria ligar, mas com medo de estragar aquilo tudo não fiz, ia ligar o signal para o servo, a um pino digital e usar pulse in, mas o meu multimetro lia 4.70-5.80v dependendo do posição do volante  ;D, e o arduino só pode com 5v, usaste transistors?

TigPT

Liguei as duas saidas do receptor utilizadas (2 canais) a 2 entradas do arduino (pin 0 e 1) conforme se pode ver no código fonte no primeiro post.

Depois foi meia duzia de linhas para ler valores e decidir por estes como agir nos digitalwrite e pwm out.

amando96

Hei de tentar, parece fácil, mas pensei que 5.8v fossem demais para o arduino

Arknum

Muito giro! Só lhe falta o canhão...
Essa cena de controlar à distância é engraçada mas nunca pensei que utilizassem comandos. Eu à uns anos fiz um carro telecomandado mas até fiz o comando, utilizava dois PICs, um para enviar os sinais (esquerda, direita, frente, trás) e outro que recebia. Os sinais eram enviados, se bem me lembro por rx tx da radiometrix, e acho que compensava mais, digo eu, mas na altura tb foi fornecido pela escola, mas axo que não era tão caro, secalhar uma alternativa a esse sistema, fica a ideia.
Parabéns.
Visitem os Açores vale a pena.