Post antiguos….

Posts de mi blog antiguo:


Programador PIC de bajo coste

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

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

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:

Servo desmontado

Servo desmontado

 
Ponenciometro desoldado
 
Divisor de tensión
 
Divisor en su lugar
Tope mecánicoTope cortadoMontaje de los engranajesSe me olvidaba, tambien lo he probado con servos HiTec HS311.
Otro día … más!

 

Ganadores del Desafío Robot

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

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


“Efectos” ópticos

Quien no ha visto (o hecho el mismo) a alguien armado con una lupa quemando un trozo de papel con la ayuda de la luz del Sol.  Esto que puede parecer un juego de niños me dio un susto de muerte ayer, os pongo en situación… la luz del Sol que entra por una ventana incide sobre un espejo de aumento a los que son tan aficionadas las mujeres…. y ocurre lo que hemos visto cientos de veces sobre un papel…

p6170016.jpg

Por suerte el rayo de la “estrella de la muerte” no le dio a ninguno de los numerosos papeles que pueblan la mesa y solo “partió” la carcasa del modem. Si roza un papel  (la impresora está al lado del modem) todo lo que tengo se habría convertido en ceniza.


¿Como se gana GANDIBOT?

El título puede parecer un poco pretencioso por mi parte… pero no es mi intención hacer un manual para ganar este concurso, sino recopilar mis sensaciones en el y analizarlo.

Ambiente en GANDIBOT 2001

El concurso.

Link a la pagina del concurso: GANDIBOT
El concurso lo organiza la Escuela Politécnica Superior de Gandia (dependiente de la UPV) como un reclamo para que estudiantes de secundaria y ciclos formativos participen, conozcan la escuela… y con un poco de suerte captar clientela.

La verdad es que es una buena idea, y ponen mucho empeño (y trabajo) en organizarlo todos los años. Aunque como todo se puede mejorar.

Este año se va a hacer la cuarta edición de este concurso que ha ido ganando en participación todos los años.
Gandibot tiene dos categorías de concurso:

 

  1. Categoría LEGO-K’NEX. Para robots montados con estos kits. Los participantes en esta categoría suelen ser alumnos de 4º de ESO o Bachillerato llevados por profesores de tecnología. Esta categoría tiene dos pruebas “Velocidad” y “Botes”.
  2. Categoría libre. Para cualquier robot que no entre en la categoría anterior. También tiene dos pruebas, “Salir del mogollón” y “Velocidad”. En esta categoría normalmente participan alumnos de ciclos formativos de grado superior y de ingenierías, aunque el año pasado también se coló algún profesor de estas disciplinas… Que conste que no fui yo, mi ética (no se si profesional) me lo impide. Participar en una competición para la que he preparado a alumnos me parece jugar con ventaja… yo no estaría haciendo el mismo esfuerzo que ellos.

¿Qué orgullo puedo sentir de “quitarle” un premio que no está destinado a mi a alguien que se lo merece mas que yo?…. ¡Qué vergüenza si pierdo!

Para ambas categorías, los robots deben ser completamente autónomos y cada equipo de dos personas lleva un robot. Si queréis más información sobre las características de los robots aquí tenéis la bases:

Categoría libre.

Categoría LEGO.

En la prueba “salir del mogollón” se introducen varios robots en una superficie como la de la imagen. El robot debe salir del recinto sin cruzar completamente ninguna linea negra y sin empujar o dañar al resto de robots. El tiempo que tiene para salir está limitado y si el robot no sale queda descalificado.

Salir del mogollón

Los robots que pasan la prueba anterior se clasifican para la prueba de velocidad, que consiste en dar una vuelta en un circuito cerrado (linea negra sobre fondo blanco) sin bifurcaciones. Si el robot se sale de la linea queda descalificado, y el ganador es el que hace la vuelta rápida.

Nuestra participación:

Aquí estamos el día del concurso después de la entrega de dorsales, aunque falta Pedro que no pudo venir. Es fácil reconocerme, soy el mas bajito :D

Los robots que llevamos los podeis ver en la entrada ROBOTIN 2.0.
El equipo

Llevamos al concurso tres robots “trillizos” (pero como los trillizos también piensan distinto) y el resultado yo diria que fue bastante bueno, aunque con un poco más de tiempo hubiese sido inmejorable. Los tres robots pasaron la prueba eliminatoria (Salir del mogollón) aunque a uno de ellos le costó bastante.

La “técnica” para esta prueba consiste en hacer avanzar el robot mientras esté sobre blanco, y al detectar la linea negra o un obstáculo retroceder, girar y volver a avanzar. El truco está en cuanto retrocedes y giras. También se puede seguir la linea pero corres el riesgo de encontrar primero una isla interior… es cuestión de gustos.

En estos vídeos podéis ver como fue esta prueba:

 

 

En la prueba de velocidad tuvimos más problemas. Dos de los tres robots se salieron del recorrido y fueron descalificados, pero el otro consiguió completar el circuito y fue el más rápido.

GANAMOS.

La lástima fue que los otros dos se salieran (en horas de pruebas no se salieron nunca) por que podíamos haber copado el podio. Los tres robots iban igual de rápido y el que ganó le saco mas de dos segundos al segundo.

En estos vídeos podéis ver las tres pruebas de velocidad:

 

 

Y los ganadores:

 

Y una foto de los ganadores haciendo una entrevista para una tele local. Más tarde los volverían a entrevistar en la tele de la UPV… vamos que se hicieron famosillos. :D

No sueltan la PDA del premio ni aunque los maten.
Ganadores

Mi opinión:

Como concurso para dar a conocer la robótica entre los estudiantes creo que cumple, aunque quizá debería publicitarse un poco mas por que en muchos sitios no se conoce.

A pesar de esto la EPSG se lo curra. Al instituto que lo solicita les da (regala) el material necesario para construir un robot y un cursillo sobre como montarlo, programarlo, etc. Además imparte un curso de 30 horas para alumnos (previo pago) con el mismo material.

Las pruebas necesitan retoques. La primera la veo demasiado sencilla, cualquier robot que evite la linea y que no pierda piezas tiene muchas posibilidades de salir del mogollón. La prueba de velocidad no tiene mas misterio que no perder la linea. En mi opinión lo deberían de poner un poco mas difícil.

El arco para medir el tiempo en la prueba de velocidad falló como una escopeta de feria y más de un robot tuvo que repetir varias veces la salida por que el cronometro no se quería poner en marcha.

¿Por qué ganamos?

A parte de la suerte… nos benefició que los demás participaran con el material que tan amablemente proporciona la EPSG aunque algunos habían sido “mejorados”. Los nuestros eran de cosecha propia y haberlo”parido” da ventajas. Esta ventaja nos permitió sobrealimentar los servos (los mismos que llevaban todos), mientras que los demás alimentaban a 9V regulados nosotros lo haciamos con una batería de 12v directamente…si, ya se… un poco BASTO… pero funcionó.
Moraleja:

Si quieres participar utiliza algo más rápido que un servo.

Lo dejo que me ha quedado un poco largo.

Salu2!


Robotin 2.0

Despues del fiasco de 2006 en el que no consegui un robot funcional para que los alumnos participaran en la GANDIBOT, me replanteé la estrategia a seguir durante el curso para que finalizaran el proyecto antes del concurso y esta vez surgio efecto, lo consiguieron (en realidad hicieron algo más que participar).

En esta ocasión el trabajo fue mucho mas guiado. El año anterior me dí cuenta que perdiamos mucho tiempo “diseñando” el chasis y la disposicion de los elementos en el mismo, asi que para ganar tiempo fijé las dimensiones del chasis, los circuitos impresos y la disposicion de todos los elementos. De esa forma solo se dedicaban al diseño de los circuitos, montaje, programación, pruebas y documentación del proyecto.

El resultado fue:

Robotin 2.0

un siguelineas con tracción diferencial propulsado por dos servos Futaba S3003 modificados para giro continuo. En los servos se mantuvo su electronica.

En cuanto a la electrónica del robot comparada con la de su hermano mayor fue modificada sustancialmente. No se cambió nada básico (micro, sensores, etc…) pero si el diseño de las placas de circuito impreso. En esta versión se diseñaron tres placas: una CPU, una placa de interfaz y otra para los sensores ópticos.

La CPU:

Basada en un AT89S52 (MCS-51 de ATMEL) con 8Kb de memoria flash para programas funcionando a 12MHz (1Mips).

CPU de Robotin 2.0
Los cambios mas sustanciales de la CPU respecto a Robotin 1.0 radican en el programador. En esta versión se añadió el circuito de programación ISP de ATMEL, de forma que se pudiera programar el micro sin sacarlo de la placa conectandolo al puerto paralelo del PC.

Otro de los cambios está en los conectores del los puertos de E/S. En la versión anterior se disponía de un conector de cable plano para cada uno de los puertos (4) que además incluían la alimentación. Para esta versión los puertos 0 y 2 comparten un conector de 20 hilos que también recibe la alimentación de 5V de la placa de interfaz. El puerto 1 dispone de su propio conector (no utilizado y pensado para futuras ampliaciones), y se eliminó el puerto 3 (las señales de programación están en este puerto) sustituido por un microswitch utilizado para cambiar el programa para cada prueba del concurso.

El ultimo cambio es la eliminación de esta placa del regulador de tensión para la alimentación del micro.

La placa de interfaz:

Circuito de interfaz

Se conecta con la CPU con un conector de cable plano de 20 hilos. Tiene conectores para cuatro servos, cuatro bumper, dos conectores para dos CNY70 (auxiliares) y un conector de seis hilos para conectar la placa de sensores (cuatro CNY70 mas), así como los inversores Trigger-Schmmit de los CNY.

La entrada de alimentación del robot está en esta placa. El robot se alimenta con dos pilas de 9V en paralelo. El regulador alimenta a los inversores y a la CPU a través del conector de la misma. La alimentación de los servos no está regulada y reciben la tensión directamente de las pilas.

Circuito de sensores:

Placa de sensores

Tiene cuatro sensores de linea y las resistencias de polarización.

Todos los circuitos impresos están diseñados en ORCAD y realizados en una maquina CNC Protomat C30s.

El chasis:

Chasis de Robotin 2.0

El chasis se fabricó con Plexiglass blanco de 4mm de espesor y para sujetar los servos plexiglass de transparente de 1mm.

Continuará…

Salu2!


Robotin 1.0

Este fue mi primer robot. Lo hice hace dos años para que mis alumnos de 2º de Desarrollo de productos electrónicos del IFPS de Cheste tuvieran una base en la que fijarse al construir su propio siguelineas.

Fue mi perdicion, el que quedó enganchado al tema fui yo.
Robotin a la faena.

La finalidad era que construyeran un robot y participaran con el en el GANDIBOT del 2006.

Utiliza dos servos futaba S3003 trucados para giro continuo con su propia electrónica y dos sensores CNY70 para seguir la linea. Tiene dos circuitos impresos:

  • Uno con el regulador de tensión y el microcontrolador. Un AT89S52 a 12 Mhz (es un 8052 con 8Kb de memoria flash programable con ISP de ATMEL) con conectores de cable plano independientes para cada puerto del micro.
  • El otro dispone de la electrónica necesaria para conectar al micro hasta:
    • 6 CNY70
    • 4 Bumpers
    • 2 servos.

    Los servos se alimentan directamente con la tensión de dos pilas de 9 voltios conectadas en paralelo.

Utiliza dos de los puertos del micro, quedando los otros dos disponibles para futuras ampliaciones.

Aquí un video del su funcionamiento.La gente alucinaba de que se diese la vuelta al final de la linea.

 

El chasis está hecho con perfil de aluminio perforado y varilla roscada. Las ruedas son de aeromodelismo, se utilizan en los trenes de aterrizaje de aviones pequeños.

Lamentablemente no nos dio tiempo de terminar los robots a tiempo para participar en GANDIBOT de 2006, pero la experiencia de ese curso fue muy buena y pienso que mereció la pena. (En 2007 lo conseguimos)
Ya os aviso que hay un Robotin 2.0, por lo que omito los esquemas de la electrónica etc… pero cuando tenga un poco de tiempo publicaré la segunda versión con todo lujo de detalles.

El nombre se lo puso mi compañero José Ferri, lo hizo involuntariamente pero el pobre se quedó con el.

Salu2!