Autor Tema: Proyecto ROBOT  (Leído 50894 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #135 en: 28 de Abril de 2005, 04:35:00 »
Para no tener que ir enviando uno a uno un archivo que ocupa unos 10 mb, decidme algun maletin donde kereis que lo suba.

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #136 en: 29 de Abril de 2005, 05:00:00 »
Puesto que los maletines que he probado del foro estan demasiado llenos o no responden adecuadamente, mantendre ambos libros en el emule durante un par de semanas y os pasare el enlace ed2k para que os los descargueis. Ahora mismo no estoy en casa y kizas hasta pasado el puente no os pueda poner el enlace.

Un saludo.

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #137 en: 03 de Mayo de 2005, 05:47:00 »
Este es el nombre del libro sobre RNA"s, tal como lo teneis que buscar en el emule,
para aquellos que esteis interesados en descargarosle,le tendre compartido al menos
durante unas semanas, aunke ya hay mas gente que le tiene:


eBook - Artificial Intelligence - Neural Networks - Algorithms, Applications and Programming Techniques .pdf

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #138 en: 03 de Mayo de 2005, 05:47:00 »
Aki dejo el programa que uso actualmente en mi bot para que le echeis un vistazo,
esta diseñado para llevar conectado un sensor de ultrasonidos SRF08 al bus I2c,
el cual incluye un pequeño sensor LDR para medir la luz,y un sensor PIR para
detectar movimiento en la patita D7 de nuestro PIC.




#include <18F452.h>
#fuses NOWDT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use I2C (master,sda=PIN_C4, scl= PIN_C3)
#include <lcd_placa.c>

typedef enum {parado, adelante, atras, derecha, izquierda} mov;
mov mov_bot=parado;
unsigned int aux;

//*************Rutina de interrupcion por desbordamiento del TIMER0*************
#INT_RTCC
void rutina_rtcc()
{
 IF (mov_bot==parado)
 {
  output_bit(PIN_C1,0);
  output_bit(PIN_C2,0);
 }
 ELSE
 {
   switch (mov_bot)
   {
    case adelante:
    output_bit(PIN_D0,1);
    output_bit(PIN_D1,1);
    break;

    case atras:
    output_bit(PIN_D0,0);
    output_bit(PIN_D1,0);
    break;

    case derecha:
    output_bit(PIN_D0,0);
    output_bit(PIN_D1,1);
    break;

    case izquierda:
    output_bit(PIN_D0,1);
    output_bit(PIN_D1,0);
    break;
   }
   output_bit(PIN_C1,1); // enable-disable motor 1
   output_bit(PIN_C2,1); // enable-disable motor 2
 }
}
//******************************************************************************

void main()
{
int16 distancia,luz;
char distancia_L, distancia_H;

set_tris_a(0xFF);
set_tris_c(0b00000001);
set_tris_d(0b00000001);
set_tris_e(0b100);

lcd_init();
lcd_putc("f");
lcd_putc("Inicializando...
");
FOR (aux=20;aux>0;aux--)
{
 lcd_gotoxy(1,2);
 printf(lcd_putc,"%d secs ",aux);
 delay_ms(1000);
}
lcd_putc("f");
aux=0;

output_float(PIN_C3);
output_float(PIN_C4);
setup_counters(rtcc_internal,rtcc_div_2);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
mov_bot=parado;

lcd_putc("f");
lcd_putc("SLEEPING");
WHILE(input(PIN_D7)==1) // 1 -> NO ha detectado movimiento
{
}
lcd_putc("f");
lcd_putc("MOV. DETECTADO");
delay_ms(1000);
lcd_putc("f");

WHILE (1)
{
 aux=aux+1;
 IF (aux==100)
 {
  mov_bot=parado;
  lcd_putc("f");
  lcd_putc("SLEEPING");
  delay_ms(2000);
  WHILE(input(PIN_D7)==1) // 1 -> NO ha detectado movimiento
  {
  }
  lcd_putc("f");
  lcd_putc("MOV. DETECTADO");
  delay_ms(1000);
  lcd_putc("f");

  aux=0;
  mov_bot=adelante;
 }

 i2c_start();
 i2c_write(0xE0); //Direccion del SRF08 en escritura
 i2c_write(0x00); //registro usado
 i2c_write(0x51); //comando calculo distancia en centimetros
 i2c_stop();
 delay_ms(100);
 i2c_start();
 i2c_write(0xE0); //Direccion del SRF08 en escritura
 i2c_write(0x01); // apunta al registro 0x01
 i2c_stop();
 i2c_start();
 i2c_write(0xE1); //Direccion del SRF08 en lectura
 luz=i2c_read(1); //lee la luminosidad
 distancia_H=i2c_read(1); //lee el byte alto de la distancia
 distancia_L=i2c_read(0); //lee el byte bajo de la distancia
 i2c_stop();
 distancia=make16(distancia_H,distancia_L);
 IF (luz<15)
 {
  mov_bot=parado;
  delay_ms(100);
  lcd_putc("f");
  lcd_putc("SLEEPING");
 }
 ELSE
 {
  mov_bot=adelante;
  lcd_putc("f");
  printf(LCD_putc,"Dist.: %lu cm
Luz: %lu lux", distancia, luz);
  IF (distancia<15)
  {
   mov_bot=parado;
   delay_ms(3000);
   mov_bot=adelante;
  }
  IF (distancia<30)
  {
   mov_bot=derecha;
   delay_ms(1000);
   mov_bot=adelante;
   delay_ms(200);
  }
 }
}
}

Desconectado poochysss

  • PIC10
  • *
  • Mensajes: 35
RE: Proyecto ROBOT
« Respuesta #139 en: 14 de Mayo de 2005, 10:46:00 »
hola a todos

pues soy un aficionado a la robotica y este prollecto me gusta, la pena es que aun  no se utilizar pics, asi que voy pococ a poco

la cosa esque estoy intentando hacer un sensor se proximidad, antes habeis puesto este esquema

http://www.pablin.com.ar/electron/circuito/varios/proximid/


alguien lo ha montado?   esque yo lo monte y me detecta a 5 centimetros solo y si lo ponia hacia la luz tambien se enciende

y como pone detecta asta un 1m +o- pues me parece muy raro


si lo poneis hacia la luz tambien deberia encenderse?

saludos   Giño

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #140 en: 14 de Mayo de 2005, 10:59:00 »
Hola yo tengo los componentes pero todavía no lo monte, espero montarlo la semana que viene y te comento como me funciona, pero creo recordar que había gente del foro que lo tenia montado y le funcionaba, haber si alguien postea algo... si no esperate y contrastamos datos...
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #141 en: 14 de Mayo de 2005, 11:02:00 »
Pd.

En principio es un sensor codificado y no debería tener interferencias externas...
Saludos desde Granada, España.

Desconectado poochysss

  • PIC10
  • *
  • Mensajes: 35
RE: Proyecto ROBOT
« Respuesta #142 en: 14 de Mayo de 2005, 11:23:00 »
hola

por eso me estrañaba lo de q tambien se active con la luz normal, porque al ser codificado ...


haber si alguien se anima a postear resultados

saludos y gracias

Desconectado poochysss

  • PIC10
  • *
  • Mensajes: 35
RE: Proyecto ROBOT
« Respuesta #143 en: 14 de Mayo de 2005, 13:19:00 »
hola de nuevo

creo q ya encontre el problema, q en vez de poner condensadores de 100 nf   puse de 100 yf  jejeje

espero q sea de eso , tendre q esperar asta el lunes pa comprarlos



saludos

Desconectado PIC-o-matic

  • PIC10
  • *
  • Mensajes: 7
RE: Proyecto ROBOT
« Respuesta #144 en: 15 de Mayo de 2005, 03:51:00 »
Ese circuito que mencionais va bastante bien. Yo lo he montado y he conseguido como unos 50 cm. más o menos.

Lo que sí que tendreís que tener en cuenta es el filtro UV/SUNLIGHT al que se hace referencia porque la influencia de la luz visible puede ser muy notable, incluso puede llegar a hacer que no funcione el circuito.

La versión que yo monté no usa el transistor para atacar el led indicador. Como fototransistor usé el BPW77 (que incluye lente de concentración) y de fotodiodo el TSUS5400, si no recuerdo mal. Imagino que el circuito debería funcionar con cualquier pareja que utilice la misma longitud de onda. El circuito lo saqué del libro "Robots móviles: Estudio y construcción" de F. Giamarchi, lo digo como curiosidad.

Lo de las lentes que se menciona en el enlace, no lo he probado al menos con el fotodiodo emisor, pero sí que quiero hacerlo. A ver si consigo alguna de ellas.

Bueno, espero que os sirva de algo esto.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #145 en: 15 de Mayo de 2005, 07:27:00 »
Gracias por la información, y si la luz solar es suficiente intensa o la luz interior con algunos tipos de lámparas puede llegar a saturar al receptor, aun que este codificado puede haber problemas, esto es normal (pero si están codificados funcionan mucho mejor) yo con mis antiguos sensores lo que hacia en primer lugar al conectar la corriente al robot es hacer varias lecturas sin obstáculo para así calibra internamente el sensor por software... y esto daba muy buenos resultados... por supuesto hay que colocarles el canutito o visera de color negro, en mi caso serian mucho mas largos de lo normal por no estar estos codificados...
Saludos desde Granada, España.

Desconectado poochysss

  • PIC10
  • *
  • Mensajes: 35
RE: Proyecto ROBOT
« Respuesta #146 en: 15 de Mayo de 2005, 07:45:00 »
gracias por la informacion

no sabia lo de esos filtros para la luz externa  

el lunes contaré

saludos

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #147 en: 17 de Mayo de 2005, 18:51:00 »
Termine de montar el circuito y de hacer las pruebas, funciona perfectamente le hice una pequeña modificación para conseguir algo mas de ganancia entre 15 y 27 cm...
aquí esta la pequeña modificación la ganancia efectiva es aproximadamente el doble de la normal del circuito...

Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #148 en: 17 de Mayo de 2005, 18:54:00 »
PD.
Todas la pruebas a 5V...
Saludos desde Granada, España.

Desconectado poochysss

  • PIC10
  • *
  • Mensajes: 35
RE: Proyecto ROBOT
« Respuesta #149 en: 18 de Mayo de 2005, 09:20:00 »
hola

bueno ya lo he montado bien y va de fabula, con el receptor bpw77 me dectecta unos 4 metros  sin filtro y lo puse  cara al sol y no lo detecto


le puse un potenciometro de 10k pararlelo a la resistenci de 10 k q va al receptor parar modular la distancia de deteccion , pero no funciona mu bien


saludoss