TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: Nocturno en 23 de Agosto de 2008, 09:54:25
-
Os presento un sencillo pero útil proyecto: un mando a distancia IR para activar y detener a la Roomba serie 500, aunque podemos programarle cualquier otro código y servirá para otro dispositivo. Lleva un PIC 10F220
(http://www.micropic.es/images/imagenes/MandoRoombaFrontal.jpg) (http://www.micropic.es/index.php?option=com_content&task=view&id=78&Itemid=1)
La fabricación es muy sencilla, y el coste de todos sus componente no llega a 1 euro.
(http://www.micropic.es/images/imagenes/MandoRoombaInterior1.jpg) (http://www.micropic.es/index.php?option=com_content&task=view&id=78&Itemid=1)
Si quieres ver más detalles y descargar esquema, codigo fuente y simulación Proteus, puedes ver el artículo completo aquí (http://www.micropic.es/index.php?option=com_content&task=view&id=78&Itemid=1).
-
:-/ Hola Manolo!, he tenido que buscar Roomba... pues no sabía que era je je je
Seguro que no podrá limpiar mi banco de trabajo je je je... "está dinamitado" :D
Muy buen proyecto, e interesante la implementacion dentro del portapilas! :mrgreen:
Norberto
-
Tienes razón, tenía que haber explicado algo de la Roomba.
Es un robot barredor para la casa, probablemente el mejor invento del hombre después de la lavadora y del lavavajillas.
(http://www.blauden.com/files/roomba%20530.jpg) (http://www.irobot.com/sp.cfm?pageid=122)
Tiene un botón bien gordo para encender y apagar, pero la mía vive bajo un muebe y es incómodo agacharse hasta allí para ponerla en marcha; por eso hice el mando a distancia.
-
:mrgreen: http://www.todopic.com.ar/foros/index.php?topic=16212.0 (http://www.todopic.com.ar/foros/index.php?topic=16212.0) :mrgreen:
-
Hola Manolo!
Segun vi en tu proyecto, alimentas el LED con 3v. No se que Led IR usas, la mayoria de los leds infrarojos usan bastante mas de 20mA para funcionar. Casi todos una caida de voltaje de unos 1.6v, y a ese voltaje los vishay6400 consumen 100mA.
Te lo digo porque si le das 3v no se si quemaras antes el PIC o el LED :D
Salu2!
PS: por cierto, estuve investigando el 10F202... Es posible que tenga un timer, pero que no tenga interrupcion para el overflow? Como funciona entonces?
-
Pues no sé qué marca es el led que uso, pero lo medí con el polímetro y caen 2,8V en él, así que con 3V me va estupendamente porque el PIC sigue alimentado todo el rato.
Y además, lo alimento simultáneamente con varios pines para aumentar la intensidad.
Mira el código fuente; no usa interrupciones.
-
Que ingenioso lo de alimentar con varios pines! :shock: La verdad no se me habria ocurrido!
Si, ya vi como generas las señales sin el timer. Pero mi dudad es si el 10F202 tiene un timer, pero no tiene interrupcion por overflow. Por lo que vi parece que no, pero en el datasheet no encuentro nada.
Por cierto, estoy mirando de comprarme una Roomba :mrgreen: Mi casa no puede tener este nivel de polvo, que mi novia es alergica y cada vez que viene a casa se la pasa estornudando
Salu2
-
Hola Nocturno:
Primero darte la enhorabuena por el buen proyecto de bajo coste y además muy interesante. Pero tengo una duda respecto al código, desde mi más profundo desconocimiento, has puesto un tren de pulsos a 38KHz...pero de donde sale este dato cuando pones un delay de 15 us y otro de 1 o 3 us...Seguro que es una pregunta tonta, pero como dicen...a preguntas tontas, respuestas inteligentes :P.
Un saludete y gracias.
-
Pues muy inteligente no será mi respuesta, porque no he entendido la pregunta, ¿a qué te refieres?
-
Pues muy inteligente no será mi respuesta, porque no he entendido la pregunta, ¿a qué te refieres?
Me refiero a como sabes que el tren de pulsos es de 38Khz, ¿cómo has realizado ese cálculo?, ¿de dónde sale dicho dato en el código que has implementado?
Espero haberme explicado bien ahora :P
-
Creo que te he entendido ahora.
Te refieres a que método he seguido para saber que este bucle oscila a 38KHz, ¿no?
for (i=0;i<100;i++){
output_b(0); delay_us(15);
output_b(0xff); delay_us(3);
}
Si es así, hay 3 formas de resolverlo:
a) mirando el ASM generado por el compilador y contando los ciclos de reloj de cada iteración del bucle
b) utilizando un simulador y comprobando lo que tarda en ejecutarse cada iteración del bucle
c) comprobando la salida en el osciloscopio
En mi caso utilicé el método empírico, o sea, el tercero :)
-
A ver Genio puede mostrarme esa señal con tu Oscilocopio como se ve?
Es que yo para medir Señales sino tengo un patron voy perdio :D :D
yo estoy ahora mismo en un proyecto haciendo un Receptor y un Transmisor.
-
Se me olvida encontre este programa Shareware
http://www.pcremotecontrol.com
-
Si es así, hay 3 formas de resolverlo:
a) mirando el ASM generado por el compilador y contando los ciclos de reloj de cada iteración del bucle
b) utilizando un simulador y comprobando lo que tarda en ejecutarse cada iteración del bucle
c) comprobando la salida en el osciloscopio
Es así, me refería a eso, pero aún así tengo mis dudas. Si entendemos frecuencia como el número de veces que se repite un ciclo en un segundo y si partimos que tu pulso tanto para codificar un 1 como 0 es de 3us en ton y 15 en toff, el pulso es de 18us o diciendolo de otra manera tu ciclo es de 18us. f= 1 / 18 us = 55555.5Hz es decir 55Khz. He aqui donde tengo la duda del porqué de los 38Khz, ya que no puedes meter el delay de 1ms que hacen después de enviar los 100 pulsos ya que de lo contrario imagino que la señal sería no periodica y por tanto no se podría hablar de frecuancias. Todo esto que estoy diciendo es desde mi total ignorancia sobre el tema de señales que nunca se me ha dado demasiado bien...
Se me olvida encontre este programa Shareware
http://www.pcremotecontrol.com
Que hace exactamente ese programa stk500...
-
Se me olvida encontre este programa Shareware
http://www.pcremotecontrol.com
Que hace exactamente ese programa stk500...
Pues con ese programa como dice su nombre puede controlar con la PC control remoto y si lee mas vera que hay circuitos de otros para captar la trama IR de 38Khz , aqui ete pongo algo mas sencillo
http://www.circuit-projects.com/control-circuits/infrared-remote-controller-project-by-tk19-or-sfh506.html
:mrgreen:
-
c4_esp_VR, en ese cálculo que has hecho no has incluido el tiempo que tarda el micro en procesar los comandos output_b y el bucle.
Si lo ejecutas en el simulador comprobarás como desde una iteración hasta la siguiente han pasado 26us
A ver Genio puede mostrarme esa señal con tu Oscilocopio como se ve?
Es que yo para medir Señales sino tengo un patron voy perdio :D :D
yo estoy ahora mismo en un proyecto haciendo un Receptor y un Transmisor.
¿Porqué un patrón?, ¿no puedes capturar la trama y analizarla?
-
Sera algo complicado explicartelo para mi ya que yo uso el timer de un Atmega :5} y en la aplicacion que tengo es para recibir solo 1 canal , todavia ni me aparece la señal y sigo experimentando.