Autor Tema: Me presento  (Leído 8609 veces)

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

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Me presento
« en: 03 de Junio de 2008, 13:25:57 »
Hola a todos.
Soy nuevo en este foro que llevo ojeando varios días y me encanta.
Me he metido en los PICs con el 16F84A, estoy intentando desarrollar un proyectin pequeño porque acabo de empezar, se trata de un cochecito que se desplaza en linea recta. Cuando choca con una pared empieza a andar para atras hasta que choca otra vez y asi hasta el infinito.

Tengo escrito el programa y probado. Utilizo para grabar el PIC una placa MicroPic Trainner y quería preguntar unas cosillas.

1.-¿Cual es el mejor sistema (sensor o lo que sea) para detectar el choque fisicamente? estoy poniendo un pequeño interruptor pero no me convence, quizás haya cosas mas óptima por ahí.

y 2º.- creo que los rebotes del interruptor me estan arruinando el proyecto.

Bueno gracias a todos y un saludo.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Me presento
« Respuesta #1 en: 03 de Junio de 2008, 14:06:35 »
Saludos halowin!
No sé qué tan sofisticado quieras ser... pero... qué tal un sensor de proximidad?
Ok nos leemos!
P.D. No entiendo la idea de que el pobre cochecito choque y choque contra la pared..  :? se trata de un proyecto de cómo destruir cochecitos?  :D
 
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado jfmateos2

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Me presento
« Respuesta #2 en: 03 de Junio de 2008, 14:07:44 »
Bienvenido Hallowin:

1. El interruptor no me parece mala opción para detectar la colisión: ¿quizás uno como los que utiliza este robot en las antenas: http://members.tripod.com/robomaniac_2001/id77.htm? Aquí tienes un tutorial: http://members.tripod.com/robomaniac_2001/id149.htm



2. En esta página de RedPIC tienes información sobre cómo evitar los rebotes: http://picmania.garcia-cuervo.com/Proyectos_AUX_Botones.php

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Me presento
« Respuesta #3 en: 03 de Junio de 2008, 14:12:01 »
Hola halowin.

Con respecto a los censores, siempre hay alguno más eficiente, pero esto no quiere decir que lo tengas que usar. Un pulsador como método de saber cuando chocas contra un obstáculo, no es mala idea pero deberás saber utilizar.

Un pulsador, siempre genera una señal de rebote, esto es, cuando se pulsa, genera mucho ruido debido a que cierra el contacto y lo vuelve a abrir (por más que esté precionado). Esto es así, porque los contactos, no son eficientes. Este ruido, el PIC es capaz de leerlo y lo toma como múltiples pulsadas.

Para solucionar esto, lo que debes hacer es lo siguiente:

En el primer pulso recibido, llevar al CP a una espera de 50ms. En este tiempo puedes aprovechar al que el PC haga otro trabajo o hacerle consumir ciclos. De esta manera, una vez que el CP alla detectado el primer pulso y se dirija a otro sitio, no chequeará el puerto y así, no detectará otro pulso.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Me presento
« Respuesta #4 en: 03 de Junio de 2008, 14:15:49 »
Excelentes respuestas de los maestros del foro!
Por cierto, lo olvidaba... bienvenido al foro halowin!  :-/
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: Me presento
« Respuesta #5 en: 03 de Junio de 2008, 14:32:26 »
Saludos halowin!
No sé qué tan sofisticado quieras ser... pero... qué tal un sensor de proximidad?

No estaría mal firepic, es solo por economía.

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: Me presento
« Respuesta #6 en: 03 de Junio de 2008, 14:37:38 »
Para solucionar esto, lo que debes hacer es lo siguiente:

En el primer pulso recibido, llevar al CP a una espera de 50ms. En este tiempo puedes aprovechar al que el PC haga otro trabajo o hacerle consumir ciclos. De esta manera, una vez que el CP alla detectado el primer pulso y se dirija a otro sitio, no chequeará el puerto y así, no detectará otro pulso.


A ver si he entendido bien: detecto el choque, inicio una pausa de 50 ms y vuelvo a leer el port... pues me quedo en las mismas no?.
A ver si me explico. Si no hay choque vamos a suponer que en esa pata hay un 0, si ahora choca detecto un 1, pues actuo u punto no????

Desconectado merycr

  • PIC10
  • *
  • Mensajes: 19
Re: Me presento
« Respuesta #7 en: 03 de Junio de 2008, 14:47:20 »
A ver si me explico. Si no hay choque vamos a suponer que en esa pata hay un 0, si ahora choca detecto un 1, pues actuo u punto no????

No, porque si hay un choque, al principio la señal de la pata oscilará de 0 a 1 (el efecto rebote), tienes que esperar esos 50ms para que se estabilice la señal y entonces volver a testear la pata: si está a 0 es que el pic había pillado uno de los rebotes, y si está a 1 es que de verdad se había pulsado el botón.

Para esperar los 50ms simplemente consume tiempo.

Si quieres, te paso una librería para pic 16f84a con un montón de subrutinas de retardo (desde 4ms hasta 20 segundos), a mí me ha venido muy bien para mis proyectos  :mrgreen:


Es la primera vez que pongo un mensajito para contestar a alguien, espero no haberme explicado muy mal  :D


Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Me presento
« Respuesta #8 en: 03 de Junio de 2008, 14:59:29 »
Yo creo que te explicaste bien merycr, gracias por tu aporte!
La opción que te han comentado de implementar retardos por software para evitar los rebotes es excelente halowin...
Ahora bien, para reforzar la cuestión también podrías implementar anti-rebotes por hardware... ya lo tienes así?
Aquí en el foro se ha comentado que si la detección del pulsador es importante (como en tu caso) es buena idea colocar anti-rebotes por hard y por soft.
Ok ya nos comentaras tus avances.
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: Me presento
« Respuesta #9 en: 03 de Junio de 2008, 15:07:49 »
Os entiendo perfectamente pero quizás no me se explicar.

Si el cochecito avanza todo feliz (sin choque) en la pata x habrá un 0, si ahora choca leeré de esa pata un 1 con lo cual entiendo que ya ha chocado y por tanto me da igual que se priduzca la secuencia 10101010101010 con detectar el primer 1 me vale no?

Seguro que teneis razón perdonar mi ingenuidad.

Desconectado merycr

  • PIC10
  • *
  • Mensajes: 19
Re: Me presento
« Respuesta #10 en: 03 de Junio de 2008, 15:13:51 »
Si no vas a necesitar decectar otro choque, sí que te vale con detectar solamente el primer 1.

Pero como lo que quieres es que choque varias veces, supongo que necesitarías el retardo para distinguir cuando el 1 producido es un segundo (o tercer o cuarto..) choque de cuándo es un rebote de un choque anterior.

De todas maneras esto del retardo por software (el de hardware ya no sé) es muy sencillo y son sólo un par de instrucciones, que nunca vienen mal =)

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: Me presento
« Respuesta #11 en: 03 de Junio de 2008, 15:20:07 »
Perfecto merycr.

Ahora si nos entendemos, claro en mi caso los choques se producirán espaciados quizas medio minuto en lo que recorre la distancia entre dos paredes.

Ahora comprendo lo del retardo en caso de ¡ salvar obstaculos ! en el que los choques se pueden producir muy seguidos y ahí si es necesario lo que tu me dices.

Vale aclarado.

Desconectado merycr

  • PIC10
  • *
  • Mensajes: 19
Re: Me presento
« Respuesta #12 en: 03 de Junio de 2008, 15:25:02 »
Me alegro de haberte ayudado   :-/

Suerte con tu cochecito!  :mrgreen:

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Me presento
« Respuesta #13 en: 03 de Junio de 2008, 15:37:31 »
Merycr, ya eres todo un maestro de los uC, felicitaciones!  :-/
Halowin, acuérdate de los anti-rebotes por hardware, también te pueden ayudar. Que tengas éxito en tu proyecto!
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: Me presento
« Respuesta #14 en: 03 de Junio de 2008, 16:14:51 »
Gracias firepic, la cosa es que intento evitar hardware ya que no es mi fuerte y todo lo que pueda resolver con sw mejor.
Quería preguntar otra cosilla abusando de vuestros conocimientos:

1.- Veo en muchos esquemas que para encender un led ponen una resistencia en serie con el led de 330 oh y la pata del PIC, que a 5V me da una intensidad de 15 mA, ¿Es suficiente para encender el led?

2.- Para el circuito del reset veo que ponen una resistencia de 10 K que da una intensidad de 0.5 mA ¿ Es esto correcto? ¿No es muy poca corriente en ambos casos?

Gracias.


 

anything