LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: joao rexinho em 13 de Novembro de 2011, 15:47

Título: GreeBot Avançado
Enviado por: joao rexinho em 13 de Novembro de 2011, 15:47
Boas companheiros :), há muito tempo que não dou noticias, mas dado que veio o tempo da chuva vou ter de passar alguns dos fins de semanas fechado em casa, aproveito e continuo com o projecto :D. Tenho tantas noticias para vos contar desde que deixei este lugar.
Passemos ao que interessa tenho ando a fazer experiências com o processing e consegui fazer um plano que a ver está excelente. Baseia se na condução autonoma com video, não sei se conhecem, em que o robô em vez de limitar se a "fugir" dos objectos, ele passa a reconhece los e toma a melhor decisão.
 
Plano:
Base do GreeBot;100%
Usar IPOD como WebCam e a sincronização com o Processing;100%
Usar 2 módulos RF e 2 arduinos, um para enviar comandos, outro para receber os comandos este fica  no greebot;50% (falta receber os modulos)
Código do Processing para ler, reconhecer e enviar informação para o arduino que transmite o sinal;70%(falta comunicação entre os arduinos);
Fazer um pequeno braço robô com Pan and tilt and hand coisa simples, para a frente do robô;0%(falta fazer a estrutura e os servos, também estou á espera que cheguem)
Colocar no sistema Pan and tilt o IPOD;0%(Faltam servos)
Materiais:

Recetor

(https://sites.google.com/site/roboticaelectronica/_/rsrc/1321153366781/projects/greebot-evolution/Materials.jpg?height=322&width=600)

Emissor

(https://sites.google.com/site/roboticaelectronica/_/rsrc/1321153378013/projects/greebot-evolution/Materials%202.jpg?height=322&width=600)

Modelo em 3d feito no google sketchup:
(https://sites.google.com/site/roboticaelectronica/_/rsrc/1321153731629/projects/greebot-evolution/GreebotRenovation.jpg)

(https://sites.google.com/site/roboticaelectronica/_/rsrc/1321153731629/projects/greebot-evolution/GreebotRenovation.jpg)

Imagens:
(https://sites.google.com/site/roboticaelectronica/_/rsrc/1312476198910/projects/greebot-evolution/Sem%20T%C3%ADtulo.jpg)


 primeiro emparelhamento PSP-PC e reconhecimento(PSP webCam 1.0), Mas vou usar antes um IPOD TOUCH 4G, porque tem mais qualidade( HD), tem mais autonomia,  tem mais fps, é mais leve e ocupa menos.

Actualização(26/11/2011)
Recebi material novo. Nos testes tive azar com o 434Mhz-RF link, como estou a usar uma breadboar o modulo não fica bem preso e oscila. Por de trás tinha um regulador de 5V, estava a programar com o arduino ligado via usb, quando deparo me com faiscas, o modulo encostou e fez curte circuito. O arduino ficou bem, mas o modulo nem por isso.  :-\
Então decidi montar o braço robótico e testar o sensor IR.
Fiz um video espero que gostem ;)

GREEBOT-ARM (http://www.youtube.com/watch?v=2hU2Q5_jvsc#ws)


Actualização:30/01/2012

Fiz um esquema para alimentar o meu robô, através da bateria e ao mesmo tempo carrega, com os painéis solares. Foi das primeiras vezes que soldei, por isso gostava de saber a vossa opinião.  ::)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg94.imageshack.us%2Fimg94%2F4990%2Ffotografia6.th.jpg&hash=205d3239154fbdee8ff544c7e0efb6412f33d4a8) (http://imageshack.us/photo/my-images/94/fotografia6.jpg/)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg341.imageshack.us%2Fimg341%2F7813%2Ffotografia8q.th.jpg&hash=05de941086472656c2d0409bbc4e9311b4c6390e) (http://imageshack.us/photo/my-images/341/fotografia8q.jpg/)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg11.imageshack.us%2Fimg11%2F7254%2Ffotografia7e.th.jpg&hash=f4301173e5af9d18a45b368f510637eadbab552b) (http://imageshack.us/photo/my-images/11/fotografia7e.jpg/)

Título: Re: GreeBot Avançado
Enviado por: XicoMBD em 13 de Novembro de 2011, 17:43
A ideia parece muito fixe mas já agora, uma pergunta/sugestão, porque não usar um netbook qualquer em cima do robot em vez do iPhone?
Podia ficar maior, mas para o que é facilitava outras coisas, fazias o processamento no próprio robot, não teria tantos problemas de comunicação e seria mais rápido  ;)
Título: Re: GreeBot Avançado
Enviado por: senso em 13 de Novembro de 2011, 17:47
E porque é que não corre antes o OpenCv directamente no IPhone, 1,x Ghz e 512Mb de Ram ou mais chegam bem para isso.
Título: Re: GreeBot Avançado
Enviado por: XicoMBD em 13 de Novembro de 2011, 17:48
Sim, acho que também poderia ser opção mais interessante  :)
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 13 de Novembro de 2011, 17:53
XicoMBD, sim tornaria tudo mais fácil, melhor e mais rápido, mas eu fiz desta forma com o IPOD porque era o que tinha cá em casa, por isso não ia comprar um mini PC e assim é melhor para ganhar experiencia em código e electrónica.
Senso desconhecia a função OpenCV no IPOD, vou investigar melhor. ;)
Título: Re: GreeBot Avançado
Enviado por: XicoMBD em 13 de Novembro de 2011, 19:22
Ok, força nisso!  :D
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 13 de Novembro de 2011, 20:15
Obrigado XicoMBD ;). Agora reparei que alguns códigos com a library Jmyron tem base nos teus, não te importas que eu use? eu coloco o teu nome, não quero ser acusado de plágio :(
Título: Re: GreeBot Avançado
Enviado por: XicoMBD em 13 de Novembro de 2011, 20:22
Podes usar à vontade, mas se calhar aconselhava-te era a usar openFrameworks, para esse tipo de coisa é muito melhor  ;)
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 13 de Novembro de 2011, 23:38
Para instalar o openFrameworks é necessário o virtual basic?
Título: Re: GreeBot Avançado
Enviado por: XicoMBD em 13 de Novembro de 2011, 23:46
Se estiveres em windows precisas do Code::Blocks (http://www.codeblocks.org/) ou do Visual C++ (http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express).
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 14 de Novembro de 2011, 00:01
vou ver se consigo 8), obrigado ;)
Já surgiu me uma ideia em que se eu conseguir através do OpenFrameWorks no ipod analizar imagem, depois era só conectar um led IR 38khz há parte audio, era só dar uma ordem por meio de um som que por impulsos eléctricos transformava se em frequência IR,  com o sensor IR 38Khz no arduino lia e assim o IPOD controlava o Arduino directamente.
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 26 de Novembro de 2011, 17:14
Actualizado, espero que gostem ;)

P.S.Desculpem o multipost
Título: Re: GreeBot Avançado
Enviado por: zordlyon em 26 de Novembro de 2011, 18:29
Parabéns tá com excelente aspecto... ;)

Cumprimentos,
André Carvalho.
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 26 de Novembro de 2011, 20:32
Muito obrigado André! :)

Abraço, João Lajoso.
Título: Re: GreeBot Avançado
Enviado por: JPTuga em 28 de Novembro de 2011, 17:30
Muito bom mesmo, os meus parabéns. Belo tópico para futuros iniciantes em robótica.  ;)

Cumps, Jean-Pierre Carvalho

Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 29 de Dezembro de 2011, 03:44
Muito obrigado JPTuga  ::)

Estou com uma duvida será possivel fazer este circuito?
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg59.imageshack.us%2Fimg59%2F4125%2Fserapossivel2.jpg&hash=b87972548ed8969b47155a57baf085348c38ab7a) (http://imageshack.us/photo/my-images/59/serapossivel2.jpg/)

eu fico na duvida porque basicamente a bateria fica em paralelo com o painel fotovoltaico, e pelo que li não é aconselhado, mas não sei porquê? Suponho que seja porque se o painel fotovoltaico captar menos energia e só produzir vamos supor 3V, e a bateria ter 7,5V, a intesidade final irá diminuir e o regulador de tensão deixará de diminuir para 5V  ??? ???
então pensei num segundo caso:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg841.imageshack.us%2Fimg841%2F8308%2Fserapossivel.jpg&hash=bd08e665cb80c1af3823e13961943a3377cce44f) (http://imageshack.us/photo/my-images/841/serapossivel.jpg/)

Aqui pensei em desligar o regulador e ligar o painel quando o robô estiver em repouso. E quando for para andar desligo o painel e ligo o regulador, assim evita o problema.
 
Título: Re: GreeBot Avançado
Enviado por: senso em 29 de Dezembro de 2011, 04:27
O diodo previne isso, só conduz quando o painel produz mais que a voltagem da bateria.
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 30 de Dezembro de 2011, 02:28
Hum ok, muito obrigado senso :)
Amanha irei montar o circuito e testa lo  ;D
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 07 de Janeiro de 2012, 19:46
Olá. desculpem o multi post  :(
Tenho feito alguns testes com o modulo RF link 434 MHZ. E tentei fazer um codigo simples para controlar o meu robô. Aqui esta o do transmissor:
Código: [Seleccione]
// transmitter.pde
//
// Simple example of how to use VirtualWire to transmit messages
// Implements a simplex (one-way) transmitter with an TX-C1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include <VirtualWire.h>
const char *x;
const char *msg= x;
void setup()
{
    Serial.begin(9600);   // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(1200); // Bits per sec
vw_set_tx_pin(3);
x="g";
}

void loop()
{
 
  if (Serial.available() > 0) {
    int inByte = Serial.read();

    switch (inByte) {
       vw_setup(1200);
    case 'g':    // pausa
    x="g";
   
     break;
    case 'd':    // frente
    x="d";
 break;
    case 'a':    // trás
    x="d";
 break;
    case 'w':    // direita
    x="w";
 break;
    case 's':    // esquerda
    x="s";
       break;
     }
    }
    msg=x;
 Serial.println(msg);

    digitalWrite(13, true); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, strlen(msg));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13, false);
    delay(200);
}

e aqui o do receptor:
Código: [Seleccione]
// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include <VirtualWire.h>
int motorEsq = 11;
int motorDrt = 10;
void setup()
{
    Serial.begin(9600); // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(1200); // Bits per sec
vw_set_rx_pin(3);
    vw_rx_start();       // Start the receiver PLL running
   pinMode(motorEsq, OUTPUT);
 pinMode(motorDrt, OUTPUT);
}

void loop()
{
  char msg;

    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
int i;

        digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");

for (i = 0; i < buflen; i++)
{

    Serial.print(buf[i]);
msg=buf[i];

}
Serial.println("");
        digitalWrite(13, false);
    }
   
     switch (msg) {
    case 'g':    // pausa
      analogWrite(motorEsq, 0);
      analogWrite(motorDrt, 0);
      break;
    case 'd':    // frente
      analogWrite(motorEsq, 65);
      analogWrite(motorDrt, 190);
      break;
    case 'a':    // trás
      analogWrite(motorEsq, 190);
      analogWrite(motorDrt, 65);
      break;
    case 'w':    // direita
      analogWrite(motorEsq, 65);
      analogWrite(motorDrt, 65);
      break;
    case 's':    // esquerda
      analogWrite(motorEsq, 190);
      analogWrite(motorDrt, 190);
      break;
      }
    }

Faço o upload para os respectivos arduinos, através dos pinos 13, consigo ver que esta a enviar e a receber, o analogWrite dos servos motores estão a 0 até ai tudo bem. Mas quando dou ordem ao arduino transmissor, o receptor só lê uma vez, o led pisca uma vez e só o motor esquerdo é que fica a funcionar, mando ordens para o arduino receptor mas ele não muda fica sempre só com o motor esquerdo a funcionar sempre na mesma direcção.

Gostava de saber qual é o possível erro? :-\
Título: Re: GreeBot Avançado
Enviado por: joao rexinho em 30 de Janeiro de 2012, 18:40
actualização: 30/01/2012