Noticias:

¡Bienvenido a la HispaLUG! - Asociación para aficionados a LEGO®

Menú Principal

MOC-Guardian de habitación

Iniciado por jcaro, 30 de Enero de 2010, 14:58:34 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

jcaro

Buenas, os presento este proyectillo, un guardian de habitación  :Police: Su cometido, disparar, no muy pacifista, pero muy divertido^^




El guardián está compuesto por dos motores, un sensor de sonido, y uno de ultrasonidos. Su funcionamiento es el siguiente, al detectar un ruido (en mi caso el picaporte de la puerta al abrirse es mas que suficiente) empieza a realizar un barrido, si durante el barrido detecta la presencia de alguien, dispara el proyectil.




Al programarlo se presento sobretodo un problema, y es que el sensor de ultrasonidos detecta cualquier objeto, sea persona o no, por lo que es bastante habitual que si tiene algo a una distancia cercana dispare por error. Para ello intente crear otro programa que mediante un barrido inicial detectara los objetos que tenía cerca para luego comprobar si había algo nuevo y disparar. Lamentablemente no he conseguido que funcione demasiado bien.

Aquí os dejo un video, y como siempre, los programas en RobotC, el primero es sin barrido inicial, y el segundo con este.

https://www.youtube.com/watch?v=P8nxS2Y0k8w

Los programas:

https://www.megaupload.com/?d=8YVVMAD0

https://www.megaupload.com/?d=8CH6WLN3

saludos  :guino:

Jetro

Divertido es un rato   :D

Me ha llamado la atención que el barrido primero que se ve en el vídeo es algo... titubeante, no parece completo. Y luego depués de haber disparado sigue buscando y tirando del gatillo.... ¿Tienes más cañones? (llevo una temporada pidiendo los que encuentro en mis pedidos en BL y me he hecho con media docena larga pensando precisamente en algo así xD)

wonki

Muy interesante, yo que tengo MINDSTORMS nunca se me ha ocurrido hacer algo así, aunque yo sólo hago lo que veo en https://www.nxtprograms.com/index1.html, debo lanzarme a hacer cosas yo solo

PotaG

El robot esta bien pero para que el programa se entendiera mejor deberías poner comentarios de lo que estas haciendo, si no se hace difícil seguirlo, sobre todo si no se sabe de RobotC.
Y otra cosa, en la task edisparo() del segundo programa repites 6 veces este código:

  PlaySound(soundBeepBeep);
  nMotorEncoderTarget[disparo]=35;
   motor[disparo]=50;
   wait1Msec(1000);
   motor[disparo]=0;
   wait1Msec(1000);
   while(nMotorEncoder[disparo]!=0)
   {
    motor[disparo]=-5;
   }
   motor[disparo]=0;
   wait1Msec(1000);


Como he dicho, desconozco la sintaxis de RobotC, y perdón por si estoy metiendo la pata, pero creo que se podría hacer una subrutina con ese código y llamarla 6 veces desde edisparo() reduciría mucho el tamaño del programa.

jcaro

Buenas, toda la razón PotaG. Efectivamente el código no está para nada optimizado, es un proyecto que se quedo a medias antes de empezar la época de examenes, y lo fui completando durante esta. La próxima añadiré comentarios.

En cuanto a lo del barrido inicial, este en realidad lo que hace es dividir el angulo recorrido en 6 sectores, almacenando el valor recibido del ultrasonido en cada sector mediante un array. La teoría es que en el resto de barridos (cuando hay un sonido el sistema hace 6 barridos y luego vuelve a la posición original) en cada sector solo se dispare si el valor de ultrasonidos es menor que el almacenado en el array. Es decir cuando detecte un intruso. De ahí que se repita dicha parte del código 6 veces, pero como bien dices, se podría hacer con una función a la que se le llamara desde edisparo.

Jetro, solo tengo ese disparador. Te recomiendo un sistema para el disparo parecido al código que ha escrito PotaG en el post, sobretodo por lo del sonido, ya que es muy util para realizar pruebas sin que te lluevan proyectiles por toda la habitación. Te dejo un video de un MOC que supongo se aproximará a lo que quieres hacer y es una pasada.

https://www.youtube.com/watch?v=RRyoxIWl6Mg

saludos

lokosuperfluoLEGOman

Muy curioso el guardián, ya sólo le falta que tenga varios disparadores y/o que pueda recargar :D
| flickr // [url=http://tinyurl.com/78f4nt

Jetro

Cita de: jcaro en 30 de Enero de 2010, 23:51:03 PM
Jetro, solo tengo ese disparador. Te recomiendo un sistema para el disparo parecido al código que ha escrito PotaG en el post, sobretodo por lo del sonido, ya que es muy util para realizar pruebas sin que te lluevan proyectiles por toda la habitación. Te dejo un video de un MOC que supongo se aproximará a lo que quieres hacer y es una pasada.
Recuerdo otro en el cual el simple giro del tambor dispara los cañones pero no encuentro el link.

jcaro

Pues que lástima, por qué me gustaría ver como dispara sin interrumpir en el giro del tambor.

Wonki animate a hacer tus propias cosillas, yo suelo altenar mis ideas con modelos de páginas como esas que me parecen interesantes. Un saludo!!