Archive for Junio, 2009

Programador PIC de bajo coste

Jueves, Junio 18th, 2009

Esta vez os traigo el que posiblemente sea el circuito más simple que he encontrado para programar PIC’s (no todos, pero si unos cuantos y de los más comunes).El programador se llama ART2003 y es bastante interesante, ya que se pueden programar micros que soporten LVP, como el 16F87x, 18F2525….

La información la obtuve de la siguiente página, y con esta he llegado a programar un PIC en una protoboard.

Fox Delta – Programador ART2003

En la versión original del circuito no necesita alimentación externa para programar, ya que se alimenta de las lineas del bus de datos del puerto paralelo. A estas alturas intuiréis cual es la pega del circuito y es que se programa a través del puerto paralelo, que junto con el puerto serie está pasando a ser historia y a desaparecer de la mayoría de los ordenadores, sobre todo portátiles.

art2003-prog-top1

Yo utilizo una versión modificada de este circuito en los robot CurRo para no tener que utilizar un programador externo y programarlo únicamente conectando el cable y un jumper. El conector DSUB25 se puede sustituir por un conector del 5 pines si nos construimos un cable para adaptarlo al puerto paralelo del pc.

El esquema que yo utilizo es el siguiente:

programador-curro

Este esquema es válido para programar los PIC16F876A que es el micro que utiliza CurRo. El esquema cambia para programar los PIC18F2525 o los de la serie 18, ya que hay una incompatibilidad de pines en la señal de programación PGM, que en los 16F876  es el pin 24 (RB3) y en los 18F2525 es el pin 26 (RB5). En realidad el circuito debe funcionar en casi todos los PIC con LVP (Low Voltaje Programing) conectando las señales PGM, PGC y PGD del circuito al pin correspondiente a esa señal en cada PIC. Otra diferencia con el original es que yo si que utilizo alimentación de 5V externa. En la foto se aprecian el conector DSUB25 y el jumper de programación.

curro1

Tiene otra pequeña pega, y es que al utilizar el fuse LVP, el pin RB3 (señal PGM) se utiliza para poner el micro en modo programación (conectandolo a 5V) y no podemos utilizarlo para otra cosa.

El software que se utiliza para programar es el WinPic800, que es software libre y que encontrareis en el enlace. Y os dejo otro enlace con un pdf que indica como configurar el WinPic para utilizar este programador.

Configuración de WinPic para el programador ART2003

La razón que me llevó a utilizar este circuito fue una vez más la simplicidad y la comodidad. El circuito es lo suficientemente sencillo como añadirlo a la electrónica del robot y que esta no se complique. Además es muy cómodo programar el robot conectándolo al ordenador sin necesidad de un programador externo, lo que me vino muy bien en el curso del CEFIRE.

Espero que os sea util.

Interface CNY70

Lunes, Junio 15th, 2009

El CNY70 es un sensor óptico reflexivo difuso, es decir el objeto a detectar es el que refleja los infrarrojos. Consta de un diodo emisor de infrarrojos y un fototransistor.vista-cny70

La base del fototransistor se gobierna con la luz infrarroja emitida por el diodo. Cuando la luz infrarroja del diodo se refleja hacia el fototransistor, este se satura y cierra el circuito (teoricamente).

Esta señal de salida del CNY es de caracter analógico  (depende de la cantidad de luz reflejada) por lo que necesita de una “digitalización” para poder utilizarse como entrada digital en un microcontrolador. Para ello normalmente se utiliza una puerta Trigger-Schmitt, ya que con su ciclo de histéresis rectifica la señal convirtiendola en digital.

En mi afán por minimizar y simplificar la electrónica de los robots “sigue-lineas”,  he probado a saltarme esta parte, ya que supone añadir al circuito de control un integrado más por cada 6 sensores. Los CNY70 se pueden conectar directamente a cualquier PIC que disponga de puerto C o superior.  Esto es posible, por que “casi” todos los pines del puerto C ( D, E…) tienen internamente un buffer Trigger-Schmitt.

Estructura I/O puerto C de un PIC

Estructura I/O puerto C de un PIC

interface-cny70

Lamentablemente eso significa que debemos utilizar al menos un PIC de gama media… por ejemplo un PIC16F876 o cualquier otro de 28 pines o más. Pero por mi experiencia creo que merece la pena; los últimos siguelineas (CurRo y VallBot) funcionan de esta forma.

Trucaje de servos futaba S3003

Viernes, Junio 12th, 2009

Para proyectos sencillos que utilicen motores en rotación continua, me gusta utilizar servos modificados para el giro continuo, pero manteniendo su electrónica. La razón es más bien práctica:

  • Solo se necesita una salida digital para controlar velocidad y sentido de giro de un motor.
  • El diseño de la electrónica se simplifica (No hace falta el puente en H).
  • El motor se gobierna como un servo sin trucar.

Hasta hace poco los trucaba cortando el tope mecánico y sustituyendo el potenciómetro del eje por un multivuelta del mismo valor. El inconveniente es que hay que hacerle un taladro al chasis del servo para poder ajustar el “paro” del motor. Además me resulta difícil conseguir los multivuelta con tornillo de ajuste horizontal y no vertical.

Servos trucados con potenciometro

Servos trucados con potenciómetro

Ahora lo que hago es sustituir el potenciometro por un divisor de tensión hecho con resistencias de 2K57 y tolerancia del 1%. El paro del motor lo ajusto por software y suele estar en torno a los 1300 microsegundos de ancho de pulso. La unica pega es que el tiempo en alto del PWM para parar el servo cambia de un motor a otro.

Pongo aquí un “Paso a paso” fotográfico del método:

Desmontaje del servo

Desmontaje del servo

Servo desmontado

Servo desmontado

Potenciometro del eje desmontado

Potenciómetro del eje desoldado

Divisor con resistencias

Divisor con resistencias

Divisor soldado en su lugar

Divisor soldado en su lugar

Eliminando el tope mecanico

Eliminando el tope mecanico

Tope cortado

Tope cortado

Montaje de los engranajes

Montaje de los engranajes

Se me olvidaba, tambien lo he probado con servos HiTec HS311.
Otro día … más!

Ganadores del Desafío Robot

Jueves, Junio 4th, 2009

Soy de lo que no hay… el post anterior lo he terminado después de que se celebrara el concurso del que hablo, por lo que tengo más cosas que contar que antes…

Lo que pasó el Viernes 29 de Mayo en la Ciudad de las Artes y las Ciencias es importante, por lo que voy a dar un salto temporal hasta el viernes y cuando tenga más tiempo retrocederé para contar el resto. Empecemos  por poner un enlace a la noticia oficial del concurso.

La Ciudad de las Artes y las Ciencias celebra la competición “Desafío Robot”desafio-robot09-0011

Desde nuestro instituto (IES Botànic Cavanilles de la Vall d’Uixó) participamos con tres robots en la categoria libre del concurso. Ya lo contaré con más detenimiento, pero aprovechando que el Pisuerga pasaba por Valldolid, el diseño de CurRo, la semana cultural, etc… montamos un curso intensivo de tres días y  un concurso interno (VallBot) y los tres mejores obtuvieron como premio la participación en el Desafío Robot. Durante esos tres días, los alumnos montaron,  soldaron, programaron e hicieron todo lo posible para que los robots funcionaran. El concurso lo hicimos en el salón de actos del instituto… bueno, pero esa es otra historia que merece ser contada con mayor detenimiento.

El concurso (Desafio Robot) estuvo bastante bien organizado, aunque como todo tuvo cosas mejorables. La toma de tiempos de las rondas clasificatorias  se hizo con precisión de décimas de segundo, pero inexplicablemente en la lista de aparecían “redondeadas” al segundo. Otro fallo detectado fue la toma de medidas; en la que nadie reparó en medir el diámetro de las ruedas (60mm como máximo) y se coló algún robot con ruedas sensiblemente más grandes, aunque como no paso la clasificación nadie puso objeciones. Por lo demás todo discurrió con normalidad y fluidez, de hecho incluso terminamos antes de lo previsto a pesar de las pruebas a cerca de 90 robots.

Como una imagen vale más que mil palabras, aquí tenéis nuestras clasificaciones:

No fuimos los más rápidos, pero si lo suficiente como para clasificarnos entre los nueve que pasaban a las semifinales. desafio-robot09-015A partir de aquí tuvimos mucha suerte, ya que en el sorteo de las semifinales cada robot cayó en una semifinal distinta y no tuvimos que competir entre nosotros.

Aquí están los vídeos de las tres semifinales:

A partir de aquí os podéis imaginar… los tres robots de la final del mismo instituto, el nuestro… Increíble. Ya solo quedaba por saber como se iban a repartir los premios, pero los nervios se quedaron en las semifinales.

Vídeo de la final:

Y la entrega de premios:

En la próxima entrega os hablaré de VallBot.

Por cierto, se me olvidaba… el concurso ha tenido bastante seguimiento mediático. Ha aparecido en casi todos los periódicos y televisiones, pero sin que se nos mencione en ningún sitio (excepto en la noticia del museo) hasta tal punto es así, que en la edición de la CV de “El País” aparece la noticia con una fotografía de los ganadores de la categoría libre (nosotros) pero en el texto no  se nos menciona. Solo habla de los ganadores de la categoría Lego-K’nex que según el periodista “arrasaron” al resto. Gracias I. Zafra.

El robot del Barrio del Cristo arrasa

CurRo 09 – Desafío robot

Martes, Junio 2nd, 2009

Bueno ya llevo demasiado tiempo sin escribir y se me acumulan las cosas que quiero contar. Empiezo a correr el riesgo de olvidarme de algo… empecemos por lo antiguo.

Este año la Conselleria de educación de la comunidad Valenciana se sube al carro de los concursos de microrrobots. Junto con La Ciudad de las artes y las ciencias y el museo Príncipe Felipe organizan el concurso “Desafío Robot”.

El concurso se celebra finalmente el 29 de Mayo en el museo Príncipe Felipe, y en el pueden participar alumnos de cualquier centro de la ESO, bachillerato o ciclos formativos. La modalidad de concurso es la misma que la del GandiBot, que lamentablemente no se celebra este año. Las bases del concurso están aquí.

De manera paralela al concurso se han puesto en marcha cursos de formación para profesores (tutores del los alumnos que participan) con el fin de que adquieran o actualicen los conocimientos tecnológicos necesarios para asesorar y encauzar los proyectos de los alumnos. Estos cursos se pusieron en marcha a través de la red de CEFIRES.

He tenido el placer y el privilegio de ser el ponente de uno de estos cursos orientado a la categoría libre. Mi trabajo ha consistido en diseñar un robot al que puse de nombre CurRo (Curso de Robótica), comprar el material necesario y preparar material para las sesiones de curso.

La duración del curso fue de 30 horas repartidas en sesiones de 5 horas, en las que montamos el robot, soldamos los circuitos impresos, trucamos los servos, vimos el funcionamiento de los sensores (CNY70) y el control de los servos (Futaba s3003) y aprendimos conceptos básicos de la programación del microcontrolador (PIC16F876A) con CCS orientada al control del robot. Me hubiese gustado ver la programación con MiKroBasic pero no hubo tiempo material.

El robot que hicimos fue este:

curro2

curro1

Como podéis ver, está construido con materiales fáciles de conseguir (por lo menos en institutos) y de manipular. El chasis esta hecho con perfiles de aluminio perforado y tornilleria. La tracción la proporcionan dos Futaba S3003 trucados para giro continuo manteniendo la electrónica y dos ruedas de aeromodelismo de 57mm de diámetro.

El μC se programa “In System” con el puerto paralelo del PC  y WinPic800. En cuanto a sensores dispone de 4 CNY70 para detectar la linea y dos bumper para evitar obstáculos.

En cuanto a los asistentes al curso los  vi bastante interesados con el tema, incluso hubo pique sano entre robots.  La verdad es que estoy bastante contento de como discurrio todo, aunque con algunos aspectos a mejorar por mi parte si se repite el curso