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

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

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #75 en: 29 de Marzo de 2005, 05:08:00 »
tambien es buena idea lo del servo horizontal para cambiar el centro de gravedad en cada momento hacia la pata que apoya; sera cuestion de irlo viendo cuando vaya kedando todo montado; pero sin duda es una buena idea que permite solucionar de una forma elegante este problema

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #76 en: 29 de Marzo de 2005, 12:42:00 »
El giro tambien es complicado...

"An mpeg movie of AT-ST turning (316K) "
http://www.users.qwest.net/~kclague/at-st/index.htm
Saludos desde Granada, España.

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #77 en: 30 de Marzo de 2005, 04:07:00 »
He cambiado las 2 plataformas de abajo, poniendolas de forma que se keden mas juntas, y den mayor estabilidad en la parte central del bot, y no estoy seguro, todo sera cuestion de comprobarlo, pero creo que ahora la inercia que tiene cuando levanta una pierna es irse hacia adelante no hacia un lado.

Respecto a lo del giro, sinceramente, aun ni habia pensado en como hacerlo, lo primero que kiero hacer es un robot que ande en linea recta de forma correcta. Este fin de semana espero que ande sus primeros pasos, en cuanto tenga algo dejare algunas fotos, o si alguien me presta un poco de sitio web, podria colgar un pequeño video comprimido en divx.

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #78 en: 30 de Marzo de 2005, 04:14:00 »
He estado viendo los videos sobre ese bot que colgaste dogflu, y la verdad es que viendo como es capaz de moverse sin necesidad de tener una pierna doblemente articulada, me ha hecho replantearme si usar una pierna con 2 articulaciones;  o con una sola, y luego hacer uso de un motor para controlar el eje de gravedad como sugeria nocturno, y otro motor para ayudarnos a realizar los giros.

Sera cuestion de ver como trabaja en cada caso... Las piernas con 2 articulaciones me gustaban sobre todo pq le permitian realizar movimiento curiosos como sentarse, o simular unos pasos o carreras mas realistas. Pero las piernas con 1 sola articulacion la verdad es que tampoco kedan nada mal.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Proyecto ROBOT
« Respuesta #79 en: 30 de Marzo de 2005, 04:44:00 »
Pues viendo el vídeo creo que el robotito tiene 3 articulaciones en cada pierna (¿o debería decir "pata"? Muchas risas )
Fíjate que no tiene "rodillas" pero sí que tiene "tobillos" y una "cadera" con dos ejes de rotación:
- hacia dentro y hacia afuera, buscando el centro de gravedad
- rotacional sobre la vertical, para que la "cabeza" avance sobre la pata apoyada

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Proyecto ROBOT
« Respuesta #80 en: 30 de Marzo de 2005, 05:34:00 »
A mi bot solo le faltan dos ruedas y lineas y lineas de codigo...
Cuando llegue a un diseño definitivo, le hare PCB, por ahora no hago mas que ponerle y quitarle cosas...



salu2

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #81 en: 30 de Marzo de 2005, 06:51:00 »
En la cadera si me habia fijado, lo que no me habia dado cuenta era de que tuviera otra articulacion en los tobillos.. y supuestamente para que se usan estos tobillos artificiales? para los cambios de direccion, supongo, no?

manex si tienes algo de codigo de tu bot en ccs, lo puedes postear para darnos ideas sobre como realizar la programacion?

Para el control del movimiento del bot, he pensado usar la rutina de interrupcion por desbordamiento del TIMER0, para cada cierto tiempo decir a los motores que se paren o se activen unos u otros, y de esta forma no entorpecer la programacion en el main().

Y ahora lo que keda por ver es si uso PWM para controlar la velocidad (que segun he leido es posible, aunke aun no lo he probado), o si uso simplemente output_bit(PIN_xx,1); Ademas el uso de PWM por hardware para el PIC18F452 o el PIC16F877 solo seria posible en 2 patitas, es decir en 2 motores....

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Proyecto ROBOT
« Respuesta #82 en: 30 de Marzo de 2005, 08:20:00 »
Hola

Por ahora el bot está en fase mecanica, pero ire añadiendole codigo estos dias. Los dos motores son manejados mediante un L293B, y por ahora tengo una subrutina a la que llamo con diferentes valores segun quiero que se mueva el robot:

Codigo:

void Giramotor(int value)
{
// VALUE=0   ADELANTE-ADELANTE
// VALUE=1   ADELANTE-ATRAS
// VALUE=2   ATRAS-ADELANTE
// VALUE=3   ATRAS-ATRAS
// VALUE=4   MOTORES PARADOS
   switch (value)
   {
      case 0: output_high(PIN_C0);
              output_low(PIN_C1);
              output_high(PIN_C2);
              output_low(PIN_C3);
              break;
      case 1: output_high(PIN_C0);
              output_low(PIN_C1);
              output_low(PIN_C2);
              output_high(PIN_C3);
              break;
      case 2: output_low(PIN_C0);
              output_high(PIN_C1);
              output_high(PIN_C2);
              output_low(PIN_C3);
              break;
      case 3: output_low(PIN_C0);
              output_high(PIN_C1);
              output_low(PIN_C2);
              output_high(PIN_C3);
              break;
      case 4: output_float(PIN_C0);
              output_float(PIN_C1);
              output_float(PIN_C2);
              output_float(PIN_C3);
              break;
      default:break;
    }
}



cuando tenga mas, os cuento.

salu2

PD: Tornar, lo que dices de las interrupciones, es interesante, se me ocurre que mediante el MAIN se cambie una variable, y en la interrupcion por timer, se aplique la modificacion (lo digo de cara a mi rutina aunque abre muchas puertas la cuestion).

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #83 en: 31 de Marzo de 2005, 04:31:00 »
Hola manex, gracias por postear algo de codigo. La unica parte del codigo que no entiendo es para que se usa "output_float(PIN_C0);".

Como bien dices, podriamos usar la variable global "value", y meter la funcion que has hecho "void Giramotor(int value)" en la rutina de interrupcion del timer0, para luego modificar la variable "value" a nuestro gusto en el main() cuando lo necesitemos. A ver si este finde me pongo con ello a ver que tal funciona. Cuando tenga algo lo posteo con el codigo y su simulacion en Proteus.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #84 en: 31 de Marzo de 2005, 11:00:00 »
Lo creo por que lo veo.....
LegWay Following a Line (video)
LegWay Spinning (video)
http://www.teamhassenplug.org/robots/legway/

mas de lo mismo:
, as shown in this movie (AVI, 1Mb)
http://news.lugnet.com/robotics/?n=22181
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #85 en: 31 de Marzo de 2005, 11:30:00 »
Me he construido un simulador de PWM para probar servos de 50Hz (futaba S3003=>50Hz), y si no me fallan los calculos con el PIC16F877 a 20Mhz se queda muy por encima de los 50Hz, ¿sabeis si estoy en lo cierto?...
Saludos desde Granada, España.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Proyecto ROBOT
« Respuesta #86 en: 31 de Marzo de 2005, 12:20:00 »
Está guay eso del equilibrio. De hecho ya estuvimos hablando en un hilo del foro de eso mismo. Mira:
http://miarroba.com/foros/ver.php?foroid=58527&temaid=2052508&marcar=autoequilibrado

Incluso publiqué el link a un vídeo que me dejó estupefacto:
http://www.geology.smu.edu/~dpa-www/robo/nbot/hill_bounce.wmv

Fíjate que el bicho incluso es capaz de superar los baches sin caerse.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Proyecto ROBOT
« Respuesta #87 en: 31 de Marzo de 2005, 16:25:00 »
Veamos, el OUTPUT_FLOAT pone un pin en estado flotante osea lo pone en input. Para que? El driver L293B exige dos pines mas (EN1/2 y EN3/4) que activan y desactivan el par de lineas para cada motor. Despues de probar en proteus, descubri que podia parar los motores, poniendo en estado flotante los pines que excitan el motor. Asi, EN1/2 y EN3/4 los pongo a VCC y me ahorro dos pines mas.

Siguiente cuestion... en un ataque de autoestima, decidí que mi BOT debia ser excesivamente complicado... luego me tranquilice un poco y me puse manos a la obra. Resultado por ahora:

El robot tiene dos modos de movimiento:
1- Rastreo normal (libre albedrio, cuando toca pared retrocede y se mueve pa otro sitio).
2- Movimiento segun patron de conducta

Es este segundo modo en el q me concentro. La cuestion es, que el robot se mueve de acuerdo a las ordenes que lleva almacenadas en un array.

Asi, al principio el programa "lee" la primera orden del array, y de ahi sacará un sentido de giro (adelante,atras,izda,dcha) y una cantidad de ciclos (0...65535). Entonces, el TMR1 se pone en marcha, de modo que cada milisegundo salte la interrupcion, y decremente el numero de ciclos.
De mientras, en el MAIN se dan ordenes al motor segun el sentido, y se sigue adelante con el asunto, hasta que ciclos=0. Entonces, un flag se activa, y en consecuencia se salta del MAIN otra vez al interprete, y se lee la siguiente orden del array.
Asi suma y sigue hasta que acaba el array, una vez finalizado volveria a empezar del principio.

Por poneros un ejemplo de array: "SFA1000L400B5000R2000A5000EF" que se traduce como "Comienza Archivo, Adelante 1000ms, Izda 400ms, Atras 5000ms, Derecha 2000ms, Adelante 5000ms, Final Archivo".

Ah, los patrones de conducta estarian almacenados en una eeprom 24LC512 (caberian bastantes), y se seleccionarian mediante el LCD y los botones.


Cuando tenga mas os cuentoooo

salu2

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Proyecto ROBOT
« Respuesta #88 en: 31 de Marzo de 2005, 17:44:00 »
Se de los americanos que salieron hace un par de años y he visto el robot japones que circula con dos ruedas junto con otros andadores tocando musica y bailando (por la tele). Lo que no sabia es que esta tecnología estuviera ya tan al alcance a nivel particular, lo digo por el de tu enlace ... lo que me sorprende del que se muestra en el enlace que expuse es la simplicidad de este montaje, una controladora con H8 a 16Mhz y dos sensores de luz visible con salida analógica, con solo estos dos sensores logra el programa la información suficiente para mantener en equilibrio la estructura y por lo que se ve con bastante eficacia...

¿Cuanto tiempo tardaran en sacarlo sobre una sola rueda?... se admiten apuesta...
Saludos desde Granada, España.

Desconectado tornar

  • Moderador Local
  • PIC18
  • *****
  • Mensajes: 342
RE: Proyecto ROBOT
« Respuesta #89 en: 01 de Abril de 2005, 03:41:00 »
Ayer hice el codigo del que estuvimos hablando manex, le he tenido que meter un pre-divisor de frecuencia de 2, para que se ejecute la interrupcion por desbordamiento del TIMER0 cada poco tiempo, o de lo contrario perdemos el control de los motores durante demasiado tiempo.

Aki os dejo el link al .rar que he colgado en el almacen con el codigo y su simulacion en proteus. La simulacion muestra por LCD el estado actual del robot en cada momento, y los motores reaccionan de acuerdo a dicho estado...

http://miarroba.com/foros/ver.php?foroid=348538&temaid=3031683