collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Arduino wall avoider (baseado no Smalluino)  (Lida 16247 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Arduino wall avoider (baseado no Smalluino)
« em: 16 de Janeiro de 2011, 01:20 »
Bem, venho aqui apresentar o meu mini projecto.

Este bicho é baseado no smalluino v1.0. Com uma pequena diferença, tem um sensor de distancia IV para nao bater em objectos (encontra-se assente num mini servo de rotaçao limitada). A alimentaçao é realizado com uma pilha de 9V.

Depois de muita luta com os fios de alimentaçao, e de muita fita cola, isto foi o que resultou:



Nao tenho muito jeito para criar topicos, por isso qualquer duvida digam!

Quanto ao proximo passo, gostava de inserir talvez um fototransistor para criar um seguidor de linha, e talvez um receptor IV para fazer o robot mudar de "modo" (seguidor de linha, ou wall avoider). Que me aconselham em termos de material?
E quanto ao criar uma base maior para inserir isto td? lol
So mais uma pergunta: para expansao do meu "espaço de trabalho" acham melhor pegar numa breadboard ou talvez comprar um destes http://loja.lusorobotica.com/shields/36-arduino-protoshield-pcb.html?


Espero que tenham gostado do projecto! Vemo-nos no proximo :D


Código: [Seleccione]
#include <Servo.h>
#include <math.h>
//tempo de rotaçao 1,15seg
//int MotorDir = 11;
//int MotorEsq = 10;
//int SensorIR = 9;
//Valor sensor 500
Servo MotorDir;
Servo MotorEsq;
Servo SensorIR;
//Parado = 50
//Esq frente = 0  Tras = 100
//Dir frente = 100 Tras = 0

int SensorPin;
unsigned int ValSensorIR = 0;
unsigned int ValSensorIRmem = 1000;
unsigned int Ang = 0;
unsigned int Velocidade = 0;
int Angulo = 0;

void setup()
{
  MotorDir.attach(11);
  MotorEsq.attach(10);
  SensorIR.attach(9);

  Serial.begin(9600);
}

void loop()
{

  Velocidade = 100;
  Andar(Velocidade);   
  ValSensorIR = analogRead(SensorPin);
  if( ValSensorIR > 250)
  {
    Parar();
    delay(100);
    Angulo = CalcDistancia();
    delay(100);
    Rodar(Angulo*2);
    delay(100);
  }
}
int CalcDistancia()
{
  ValSensorIRmem = 1000 ;
  delay(100);
  for(int i=0;i<180; i+=10)
  {
    SensorIR.write(i);
    delay(50);
    ValSensorIR = analogRead(SensorPin);
    if (ValSensorIR < ValSensorIRmem)
    {
      ValSensorIRmem = ValSensorIR;
      Ang = i;
      //Serial.println(Ang);
    }
    delay(50);
  }
  SensorIR.write(90);
  return Ang;
}



void Andar(int Velocidade)
{
  MotorEsq.write(100 - Velocidade);
  MotorDir.write(Velocidade);
}

void Parar()
{
  if(Velocidade > 50)
  {
    Andar(90);
    delay(100);
    Andar(80);
    delay(100);
    Andar(70);
    delay(100);
    Andar(60);
    delay(100);
    Andar(50);
  }
  else if (Velocidade < 50)
  {
    Andar(10);
    delay(100);
    Andar(20);
    delay(100);
    Andar(30);
    delay(100);
    Andar(40);
    delay(100);
    Andar(50);
  }
  else (Velocidade == 50);
}

void Rodar(int Angulo)
{
 
  if(Angulo > 0)
  {
    MotorEsq.write(100);
    MotorDir.write(100);
    delay((Angulo/0.285)/4);
    MotorEsq.write(90);
    MotorDir.write(90);
    delay((Angulo/0.285)/4);
    MotorEsq.write(80);
    MotorDir.write(80);
    delay((Angulo/0.285)/4);
    MotorEsq.write(70);
    MotorDir.write(70);
    delay((Angulo/0.285)/4);
    MotorEsq.write(60);
    MotorDir.write(60);
    delay((Angulo/0.285)/4);
    MotorEsq.write(50);
    MotorDir.write(50);
  }
  else if (Angulo < 0)
  {
    Angulo = abs(Angulo);
    MotorEsq.write(0);
    MotorDir.write(0);
    delay((Angulo/0.285)/4);
    MotorEsq.write(10);
    MotorDir.write(10);
    delay((Angulo/0.285)/4);
    MotorEsq.write(20);
    MotorDir.write(20);
    delay((Angulo/0.285)/4);
    MotorEsq.write(30);
    MotorDir.write(30);
    delay((Angulo/0.285)/4);
    MotorEsq.write(40);
    MotorDir.write(40);
    delay((Angulo/0.285)/4);
    MotorEsq.write(50);
    MotorDir.write(50);
  }

}





« Última modificação: 16 de Janeiro de 2011, 01:56 por Stigma »

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #1 em: 16 de Janeiro de 2011, 02:18 »
boa!

Offline nunosilvarocha

  • Mini Robot
  • *
  • Mensagens: 337
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #2 em: 16 de Janeiro de 2011, 14:17 »

Nao tenho muito jeito para criar topicos, por isso qualquer duvida digam!

Quanto ao proximo passo, gostava de inserir talvez um fototransistor para criar um seguidor de linha, e talvez um receptor IV para fazer o robot mudar de "modo" (seguidor de linha, ou wall avoider). Que me aconselham em termos de material?
E quanto ao criar uma base maior para inserir isto td? lol
So mais uma pergunta: para expansao do meu "espaço de trabalho" acham melhor pegar numa breadboard ou talvez comprar um destes http://loja.lusorobotica.com/shields/36-arduino-protoshield-pcb.html?
 

Parece-me um bom projecto, está organizado e funcional.
Se queres tudo isso e queres construir tudo numa base nova, aconselho-te um base em acrílico.
Faz o desenho do que pretendes já com os furos e cortes que vai precisar, e mãos a obra.
Quanto a breadboard, como não vais precisar de muita coisa para este projecto acho que esta chega, http://loja.lusorobotica.com/prototipagem/23-breadboard-mini-self-adhesive.html.
Agora adapta la o isso para seguidor de linhas e aproveita o projecto que já tens para ele se desviar de obstáculos.
Um dia destes já te vai buscar minis ao frigorífico.
Força nisso, e vai deixando mais fotos para vermos a evolução.

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #3 em: 16 de Janeiro de 2011, 15:11 »
Pois, acho q vou msm seguir com a base em acrilico. Tenho é q ver onde é q vou fzr isso.
So espero é q os servos tenham força, nao queria tar a comprar motores DC.
Nos proximos tempos nao vou ter mt tempo, mas também nao ha pressa.

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #4 em: 16 de Janeiro de 2011, 17:40 »
Decidir ir aos chineses comprar um carro telecomandado. Por 6e (lol) arranjei um com funcionamento por radiofrequencia, o que é bem mlhr do que usar IV. Contudo, ainda tenho q decifrar o sistema que esta para aqui montado. Isto tem aqui um IC com uma referencia: RX-3 41008289. Mas nao encontrei nada sobre isto. Alguem me pode dar uma ajudazita?

Offline nunosilvarocha

  • Mini Robot
  • *
  • Mensagens: 337
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #5 em: 16 de Janeiro de 2011, 18:24 »
Decidir ir aos chineses comprar um carro telecomandado. Por 6e (lol) arranjei um com funcionamento por radiofrequencia, o que é bem mlhr do que usar IV. Contudo, ainda tenho q decifrar o sistema que esta para aqui montado. Isto tem aqui um IC com uma referencia: RX-3 41008289. Mas nao encontrei nada sobre isto. Alguem me pode dar uma ajudazita?

Acho que era muito mais interessante seres tu a construir a base para o teu robo.
Se for um RC típico dos chineses vais ter que usar uma ponte H para controlar o motor que lhe da tracção, e o motor que controla a direcção.
Eu penso que os servos sejam capazes de aguentar, o robot não deve ficar muito pesado.
Isto para não falar, que em curvas mais apertadas o chassis dos chineses não se vai safar muito bem...

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #6 em: 16 de Janeiro de 2011, 18:38 »
Decidir ir aos chineses comprar um carro telecomandado. Por 6e (lol) arranjei um com funcionamento por radiofrequencia, o que é bem mlhr do que usar IV. Contudo, ainda tenho q decifrar o sistema que esta para aqui montado. Isto tem aqui um IC com uma referencia: RX-3 41008289. Mas nao encontrei nada sobre isto. Alguem me pode dar uma ajudazita?

Acho que era muito mais interessante seres tu a construir a base para o teu robo.
Se for um RC típico dos chineses vais ter que usar uma ponte H para controlar o motor que lhe da tracção, e o motor que controla a direcção.
Eu penso que os servos sejam capazes de aguentar, o robot não deve ficar muito pesado.
Isto para não falar, que em curvas mais apertadas o chassis dos chineses não se vai safar muito bem...

Mas eu so fui para ver se arranjava o receptor / emissor RF. Pq é bem mlhr q um IR. O resto é para arrumar no canto. lol
Só que agora estou a ver q é bem dificil descobrir o output do receptor.

Offline nunosilvarocha

  • Mini Robot
  • *
  • Mensagens: 337
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #7 em: 16 de Janeiro de 2011, 18:59 »
Decidir ir aos chineses comprar um carro telecomandado. Por 6e (lol) arranjei um com funcionamento por radiofrequencia, o que é bem mlhr do que usar IV. Contudo, ainda tenho q decifrar o sistema que esta para aqui montado. Isto tem aqui um IC com uma referencia: RX-3 41008289. Mas nao encontrei nada sobre isto. Alguem me pode dar uma ajudazita?

Acho que era muito mais interessante seres tu a construir a base para o teu robo.
Se for um RC típico dos chineses vais ter que usar uma ponte H para controlar o motor que lhe da tracção, e o motor que controla a direcção.

Eu penso que os servos sejam capazes de aguentar, o robot não deve ficar muito pesado.
Isto para não falar, que em curvas mais apertadas o chassis dos chineses não se vai safar muito bem...

Mas eu so fui para ver se arranjava o receptor / emissor RF. Pq é bem mlhr q um IR. O resto é para arrumar no canto. lol
Só que agora estou a ver q é bem dificil descobrir o output do receptor.

Põe umas fotos e descreve o circuito, pode ser que alguém te ajude.
Força nisso!!

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #8 em: 22 de Janeiro de 2011, 00:30 »
Desisti de tentar trabalhar com RF. O nivel de complexidade parece me mt elevado, por isso decidi ficar me pelo receptor IR (um TSOP). Contudo agora estou com uns pequenos problemas. Coloquei nesta thread a minha duvida
http://lusorobotica.com/index.php?topic=1726.msg34980;topicseen#new
Visto que a thread me parece morta, devidi vir aqui para ver se alguem via.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #9 em: 22 de Janeiro de 2011, 00:44 »
O RF é complexo porque?
Que modos RF tens?
Podes ter um TSOP para 38Khz e o comando funcionar a 36Khz, mas o próprio comando IR enviado pelo comando varia quando mantens o mesmo botão pressionado.
Já agora, onde compras-te o TSOP e qual é o modelo, podes dizer?
Avr fanboy

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #10 em: 22 de Janeiro de 2011, 01:36 »
O RF é complexo porque?
Que modos RF tens?
Podes ter um TSOP para 38Khz e o comando funcionar a 36Khz, mas o próprio comando IR enviado pelo comando varia quando mantens o mesmo botão pressionado.
Já agora, onde compras-te o TSOP e qual é o modelo, podes dizer?

Eu digo complexo pq estava a tentar usar um de um carro telecomandado que arranjei. E nao me entendi com aquilo.
O TSOP comprei na Aquario, TSOP 1736.
Mas entao se o sinal recebido varia, como é q implemento o codigo? Se o valor difere para o msm botao...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #11 em: 22 de Janeiro de 2011, 01:48 »
Só deves ter dois valores diferentes para um mesmo botão.
Bem, de um carro telecomandado não podes fazer muito mais que do lado do comando se é para ligar a pc, fazer o arduino usando ou transistores ou a mexer as saidas para HIGH e LOW replicar o que uma pessoa fazia, depois no lado do carro é ler as saidas do chip, passar pelo arduino se necessário e está feito, é claro que esses carros baratos só têm saidas HIGH e LOW, nada de pwm's para controlo de pontes H nem nada, não esperes mais que 4 ou 6 saidas.
Avr fanboy

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #12 em: 22 de Janeiro de 2011, 14:21 »
Eu tenho varios valores para o msm botao, mas ja me responderam no outro topico. Era como eu pensava, o emissor tmb precisa de funcionar com o protocolo RC5(dah).
Qt ao carro telecomandado so tem 2 saidas,por isso é q tmb decidi nao avançar mais com aquilo.

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #13 em: 22 de Janeiro de 2011, 21:38 »
Bem, ja consegui resolver este pequeno problema.
A unica coisa que me impede de avançar com o projecto neste momento é ainda nao ter uma base para isto. Ainda tenho que arranjar um sitio onde façam cortes em acrilico por medida...

Offline Stigma

  • Mini Robot
  • *
  • Mensagens: 40
Re: Arduino wall avoider (baseado no Smalluino)
« Responder #14 em: 27 de Janeiro de 2011, 21:55 »
Uma pequena brincadeira enquanto testava o modulo de recepçao IR: