TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: jesus_cadiz en 18 de Julio de 2006, 14:27:31

Título: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: jesus_cadiz en 18 de Julio de 2006, 14:27:31
Pues perdonadme pero he intentado 5 veces publicar respuestas en el hilo anterior http://www.todopic.com.ar/foros/index.php?topic=12886.0 (http://www.todopic.com.ar/foros/index.php?topic=12886.0) y ha sido imposible. El foro no para de darme problemas, no se si sera a mi solo o a tod el mundo..

Aun a riesgo de que me repriman los moderadores ahi van mis "avances" con el avisador de marras

este es el codigo Basic

Código: Visual Basic
  1. DISPARO VAR PORTA.2         'PIN USADO PARA EL PULSO DE DISPARO
  2. ECO VAR PORTA.3             'PIN USADO PARA EL ECO
  3. MEDIDA VAR WORD             'VARIABLE de 16 bits PARA ALMACENAR LA MEDIDA
  4.  
  5. 'las pausas estan acortadas para reducir el tiempo de simulacion
  6.  
  7. Define   LCD_DREG   PORTB  'bit de datos del LCD empezando
  8. Define   LCD_DBIT   0      'por B.0 ,B.1, B.2 y B.3
  9. Define   LCD_RSREG   PORTB 'bit de registro del LCD conectar
  10. Define   LCD_RSBIT   5     'en el puerto B.5
  11. Define   LCD_EREG   PORTB  'bit de Enable conectar en el
  12. Define   LCD_EBIT   4      '"puerto B.4    
  13. proceso:
  14. pause 1              'pausa inicial para estabilizar el circuito (50ms)
  15. disparo=0            'Inicializa el valor de DISPARO
  16. PULSOUT DISPARO,1    'Manda un pùlso de disparo para empezar a medir
  17. gosub leer_eco       'Llamada a funcion para leer el ancho del eco recibido
  18. goto proceso         'Vuelve e iniciar cuando se ha leido el eco
  19.  
  20. leer_eco:                           'Funcion de leer el eco
  21.    select case eco                 'si hay eco no manda pulso de disparo
  22.        case 1                      'Si no nay eco
  23.              GOTO PROCESO          'Vuelve a iniciar el proceso
  24.        case 0                      'Si hay eco
  25.            PULSIN ECO,1,MEDIDA     'Lee el acho del pulso de eco y lo guarda en medida
  26.            medida= medida/54       'para convertir en cm
  27.            Lcdout $fe, 1, "DISTANCIA:", #medida, " cm"          'Muestra el valor medido en el LCD
  28.            if medida <10 then
  29.             lcdout $FE, $C0                                              
  30.             Lcdout "Cuidado" 'Aviso                 'Aviso
  31.            endif
  32.             GOTO PROCESO            'Vuelve a lanzar el proceso
  33.    end select
  34. end

Y aqui una captura del simulador PicSimulatorIDE (por cierto magnifico programa) donde le meto el pulso de eco por RA3 y sale esto...

(http://img470.imageshack.us/img470/6418/image1fp4.th.jpg) (http://img470.imageshack.us/my.php?image=image1fp4.jpg)


Parece que ya solo queda depurar un poquillo el codigo para ponerle los retardos apropiados, los baje para que la simulacion no tradara una eternidad, y montar un prototipo, aunque teniendo en cuenta mi torpeza en el mundo "real" esto va a ser lo mas complicado
Tambien falta hacer que despues del disparo cuente un tiempo 35ms y si no ha recibido eco que tire otro disparo, pero no acaba de salirme el asunto. A ver si alguien con mas experiencia en Basic me orienta.

Saludos y cualquier comentario o correccion sera agradecida por los siglos de los siglos..... :lol:
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: Chaly29 en 18 de Julio de 2006, 15:04:17
Hola jesus_cadiz, acabo de hacer la prueba en el link que se venia trabajando y no presento problemas, deberías tratar de re-hacer este post en el link que mencionas.

Los problemas "si los tienes" son debido a que se esta haciendo una mejora a los servidores en los cuales esta alojado el foro, por lo tanto ese es el motivo de los mismos, habra que saber tener paciencia asta que la gente termine con ese trabajo.

Un saludo.

Atte. CARLOS.
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: jesus_cadiz en 18 de Julio de 2006, 15:14:04
De acuerdo Chaly29

Creo que lo mejor sera borrar el anterior, lo que hay alli no tiene ningun interes, ya que son todos comentarios mios y mas bien palos de ciego sobre el tema, aunque aparecen con el nombre de otro usuario, de cuando se jodieron los registros de la primera semana de julio.

A ver si algun moderador le parece bien y si no no reescribire alli y borrare este


Saludos
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: jesus_cadiz en 18 de Julio de 2006, 15:57:38
Aqui la simulacion con proteus

(http://img477.imageshack.us/img477/2066/image2gz1.th.jpg) (http://img477.imageshack.us/my.php?image=image2gz1.jpg)


y los ficheros correspondientes
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: aitopes en 19 de Julio de 2006, 09:22:05
Por fin encuentro otro usuario del PIC Simulator IDE en el foro! :) :-/

A la tarde voy a mirar un poco lo que hiciste, ya que tengo guardados un par de emisores y receptores de 40 Khz, y esta es la oportunidad para jugar un poco con ellos. :o

Saludos.
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: jesus_cadiz en 19 de Julio de 2006, 09:25:17
Espero ansioso tus comentarios y a ver si puedes probarlo fisicamente...

En las dos simulaciones que realize, tanto en Pic Simulator IDE como Proteus parece que funciona aunque habra que depurar el codigo para hacerlo mas fino

Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: Resistencio en 26 de Marzo de 2007, 00:39:41
Hola, este codigo asi, no anda ni a "ganchos"...

no sera asi al principio ??? :

Symbol disparo = PORTA.2  'PIN USADO PARA EL PULSO DE DISPARO
Symbol eco = PORTA.3  'PIN USADO PARA EL ECO
Dim medida As Word  'VARIABLE de 16 bits PARA ALMACENAR LA MEDIDA


Hace solo unas horas que baje el soft y me lei el tutorial de AITOPES...no entiendo como esta hecho esto !!!

la segunda parte, no sera ??? :

Define LCD_DREG = PORTB  'bit de datos del LCD empezando
Define LCD_DBIT = 0  'por B.0 ,B.1, B.2 y B.3
Define LCD_RSREG = PORTB  'bit de registro del LCD conectar
Define LCD_RSBIT = 5  'en el puerto B.5
Define LCD_EREG = PORTB  'bit de Enable conectar en el
Define LCD_EBIT = 4  '"puerto B.4


En fin, todavia no se nada de C, pero esto parece un aporte a la confusion (todo esto lo digo a riesgo de equivocarme) por favor si estoy equivocado corrijanme, plz...

___________________________________
"Justo a mi, me toco ser YO" QUINO...
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: aitopes en 26 de Marzo de 2007, 08:16:16
Hola Resistencio!
Las correcciones que has hecho son correctas. A lo mejor se ha "mezclado" el codigo con algun otro Basic.

Saludos!
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: dogflu66 en 26 de Marzo de 2007, 17:05:17
El tema esta en que no ha utilizado el basic del Pic Simulator IDE, utilizo solo el simulador para comprobar que funciona el codigo.
El codigo basic que se ve de fondo no esta editado en el editor de basic del PSI. Solo recordar que el PSI es el simulador el cual lleva varias
herramientas y una de ellas es el compilador de basic.
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: dogflu66 en 26 de Marzo de 2007, 17:08:57
Y arriesgándome un poco yo diria que ha utilizado Basic Proton, que es muy parecido al basic del PSI, de hecho son casi iguales.
Título: Re: Avisador de colision por ultrasonidos (nuevo hilo)
Publicado por: aitopes en 26 de Marzo de 2007, 19:34:03
!Claro! ha cargado el "HEX" generado con otro compilador!

Como solo uso el PSI y su basic, esa es una posibilidad que nunca use!

Entonces, habria que ver si los tiempos que hay definidos no son muy grandes y por eso el PSI pareciera que no "hace nada". En realidad si hace, pero tan lento que no lo vemos....

Yo solo veo un "pause 1" que no se si es un segundo o ms.

Saludos!