Mais uma vez fiz uns pequenos progressos na área da robótica, mas propriamente no controlo do meu RobóticTank através do teclado do computador.

Para fazer isto recorri ao seguinte código:

int n;
int motorPin1 = 5;
int motorPin2 = 6;
int motorPin3 = 10;
int motorPin4 = 11;

void setup()
{
Serial.begin(9600);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop()
{

if (Serial.available() > 0)
{
n = Serial.read();

Serial.print(“Voce Digitou: “);
Serial.println(n, BYTE);

if (n == 119)
{
//Avançar

digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
}

if ( n == 115)
{
//Recuar

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
}

if ( n == 100)
{
//Direita
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
}

if ( n == 97)
{
//Esquerda
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
}

if (n == 113)
{
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
}
}

Utilizando este código no Arduino e recorrendo ao SerialMonitor é possível controlar os movimentos do RobóticTank, ainda que com algumas limitações e sendo necessário ter o cabo sempre conectado ao Arduino.

Desta forma consegui alguns progressos e brevemente irei explorar as técnicas de “processing” que são mais indicadas para estas acções.

Aqui fica um pequeno vídeo com a demonstração dos resultados obtidos:

Nos próximos dias vou tentar evoluir um pouco mais esta solução e se possível recorrer à biblioteca “processing”!

Share

Após ter verificado o problema com a ponte H L293D acabei por encomendar uma nova ponte H L293D entre outro material que poderá ser benéfico para o meu projecto.

A primeira coisa que fiz mal recebi o material foi experimentar a nova ponte H L293D, e foi então que o RobóticTank renasceu, movimentando ambos os motores de imediato.

O resultado deste renascer poderá ser visto no seguinte vídeo:

 


 

O código que utilizei para esta pequena experiência foi o seguinte:

int motorPin1 = 6;
int motorPin2 = 5;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 500;

void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

void loop()
{

digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(1000);

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(1000);

}

Agora com o RobóticTank de novo pronto para experimentar irei fazer diversos testes e modificações nos próximos dias pelo que podem esperar por novidades brevemente.

Share

Depois de confirmar que a ponte H L293D estava danificada acabei por encomendar uma nova além de mais algum material que me poderá ser útil no desenvolvimento do meu projecto.

O material chegou hoje pelo que já pude colocar o RobóticTank a andar.

O material recebido foi:

- 1 x    Graphic LCD 84×48 – Nokia 5110

- 1 x    Temperature Sensor – LM335A

- 2 x    Jumper Wires Premium 6″ M/M Pack of 10

- 1 x    H-Bridge Motor Driver 1A

- 1 x    Breadboard Mini Self-Adhesive

Mal chegou o material testei de imediato a nova ponte H L293D pelo que o RobóticTank deu logo sinais de vida, brevemente colocarei mais informação sobre os desenvolvimentos do projecto.

Share

RobóticTank 16/01/2012

Após ter verificado que a ponte H L293D está danificada não me resta outra hipótese se não adquirir uma nova ponte H L293D.

Uma vez que tenho forçosamente que adquirir uma Ponte H L293D decidi juntar à lista mais algum material para melhorar o meu projecto. O material adicionado é sobretudo material de conexão, e uma pequeno LCD que irá servir para apresentar algumas informações e possivelmente mensagens de erro ou perigo mediante as leituras dos sensores.

Aqui fica a lista do material a adquirir:

2 x Jumper Wires Premium 6″ M/M Pack of 10

1 x TMP36 – Temperature Sensor

1 x Graphic LCD 84×48 – Nokia 5110

1 x Ponte H L293D

Todo o material foi encomendado na inmotion.pt .

Até ter na minha posse este material não poderei avançar com o projecto uma vez que a Ponte H L293D condiciona a execução.

Share

Passaram-se alguns meses desde a ultima actualização do estado do meu projecto “RobóticTank”, na verdade desde Setembro de 2011 que não pegava no meu projecto, e apesar de ter bastante para estudar hoje foi o dia de voltar a debruçar-me sobre a robótica e electrónica.

A primeira coisa que fiz, foi ligar o Arduino com todas as ligações que estavam previamente feitas na breadboard, era um esquema simples que tinha apenas ligados os motores à ponte H L293D. Até aqui tudo estava bem, mas verifiquei que um dos motores não funcionava, a primeira coisa que pensei foi que o pin correspondente do Arduino não coincidisse com o que estava no código programado.

Após ter verificado que os pin’s correspondiam ao código programado pensei que fosse algum dos pequenos encaixes da breadboard danificados, pelo que troquei toda a ligação de modo a experimentar em outros encaixes, mas mais uma vez sem resultado.

Por ultimo liguei o motor que não estava a funcionar aos encaixes correspondentes ao outro motor, e foi então que este deu sinais de vida. Com isto penso que seja a ponte H L293D que tenha alguns dos pinos danificados, nomeadamente os pinos 11 e 14, já que ambos os motores funcionam quando ligados aos pinos 3 e 6.

Se algum dos visitantes já se tenha deparado com um problema semelhante agradecia que me dessem algum feedback do problema ou da possível correcção.

Ainda vou estudar mais um pouco sobre este problema, mas muito provavelmente terei de substituir a ponte H L293D por uma nova, o que fará com que hoje o projecto não tenha avançado novamente.

Share