De familia, emprendimientos, robótica, trabajo y los últimos 23 meses (Ups!)
Si, han pasado 23 meses desde mi ultimo Post (que vergüenza). Con suerte alguno de mis lectores originales de vez en cuando pasara por aquí. Pero si usted pensó que no hice mayor cosa en este tiempo permítame decirle lo contrario. La espera valió la pena..?. Yo creo que si.
En lo familiar dedicado a ser padre (aprendiendo en el camino), en lo personal con mis emprendimientos, y en lo laboral como trabajador dependiente en una nueva empresa (yo tengo además mi propia empresa) y con mucho, pero mucho trabajo. Darme el tiempo para escribir ahora, es solo el resultado de tener mucho por contar y compartir. Pero dejando de lado este resumen sucinto (y justificación). Mucho conocimiento ha fructificado y crecido .
En mis últimos 14 años laborales me he dedicado siempre a temas relacionados con Software y Administración de Proyectos IT, pero en el 2010 una variante me llevo mas que nunca hacia el Hardware. Mas precisamente, ha hacer Hardware. Entendiendo con esto el construir soluciones con Microcontroladores y adentrarse al mundo de la robótica. Este fue mi trabajo principal la mayor cantidad de meses del 2010. Tanto así que en conjunto con 3 amigos formamos una empresa cuyo fin es desarrollar soluciones robóticas en diversas áreas. Así en mis próximos Post me adentrare en contarles cosas interesantes, practicas y entretenidas al respecto. Por cierto seguiré escribiendo de Software y administración de proyectos.
Aquí después del salto una introducción a como un informático y un electrónico ven el mundo de la robótica, empezando por usar Microcontroladores de la era actual. Todo un mundo nuevo para un informático como yo (los avances desde las clases de la universidad en electrónica y control automatizado hasta ahora me sorprendieron), misma opinión que creo tendrá usted después de leer este y mis próximos artículos. Así pues…
A fines del primer trimestre del 2010 termine mis labores en mi empleador anterior (otra historia). Con una cantidad de dinero suficiente para un par de meses como independiente, busque en que trabajar de forma temporal mientras encontraba algún trabajo de calidad. En esas andaba cuando un buen amigo me contó de las dificultades que una empresa productiva tenia. Me menciono de como lidiaban con problemas que tal vez se podrían automatizar. Nos juntamos con ellos y después de varias reuniones unas PPTs bien hechas y mucha energía nos asociamos con esta empresa. Nosotros pondríamos el talento y ellos el capital. Hoy en día resultado de esta aventura tenemos 2 soluciones prototipos. Y aunque la sociedad se termino por problemas financieros mucho se aprendio en el camino.
Partes que se necesitan para construir y realizar una solución robótica o de control automático:
Para partir un Microcontrolador es la solución base. Si esta considerando usar algo que no sea un clásico PC para controlar o censar dispositivos externos vía puertos Seriales o USB.
Microcontroladores existen muchos. Aquí en Chile los mas usado son los de la línea PIC (Una clásica línea de Microcontroladores que se han actualizado continuamente) inicialmente se programaban a punta de Assembler, hoy en día se programan en lenguajes clásicos de distinto tipo. Cuando iniciamos la fase de investigación encontramos que los Microprocesadores mas usados en Chile eran clásicos que no estaban a la altura de nuestra expectativas, en términos de facilidad, potencia y agilidad ( y la verdad queríamos utilizar algo nuevo, moderno y ágil).
En nuestra búsqueda dimos con la empresa Parallax Inc. (USA). Parallax tiene entre sus productos clásicos una línea de Microcontrolador de la clase STAMP. El “Basic STAMP” es el mas clásico de todos, muy usado en áreas de educación y en temas productivos. Pero si el Basic STAMP era nuestra elección . Nuestro ambicioso proyecto requeriría muchos de estos Microcontroladores comunicándose y coordinándose entre si. Ese nivel de complejidad no era lo que buscábamos. Buscábamos un Microcontrolador capas de ser programado en un lenguaje amigable (no Assembler) con buena documentación y Multitarea real, no a punta de Interrupciones (La forma clásica de simular paralelismo en procesamiento monoprocesador)
Nuestra elección: El Microcontrolador “Propeller” de Parallax.
El Propeller (Hélice) es un Microcontrolador que como muchos chips de este tipo, posee una sección de proceso, generación de reloj, contador de sistema, puertos de entrada/salida, memoria RAM y ROM… pero aquí termina toda similitud con los Microcontroladores conocidos y clásicos.
Cuando analizamos el Propeller versus otros Microcontroladores, vimos su potencia y su posible complejidad. Igual nos animamos y fue nuestra elección. Apostamos a ganarle a una posible complejidad en su uso VS mas potencia para nuestros emprendimientos, en los meses siguientes confirmaríamos esta buena decisión ya que no era tan complejo de usar como pensábamos, eso si, tuvimos que conocerlo de apoco.
Al igual que otros Microcontroladores el Propeller se programa en Assembler. Pero también en otros lenguajes. Nuestra elección fue usar el propio lenguaje de Parallax llamado SPIN. Sorprende saber que hoy en día se puede programar a nivel de Microcontroladores un chip en un lenguaje como SPIN. Que controla hilos paralelos reales, que puede generar bibliotecas de objetos y que tiene toda una comunidad de desarrollo importante. Pareciera que programáramos un PC mas que un Microcontrolador. La era de generar código para control automatizado a punta de Assembler y códigos especiales ya paso…
Como se puede ver en la ilustración (ejemplo de invocación en paralelo sobre el método DispCnt). El lenguaje es de fácil lectura. El editor y compilador es gratuito y rápido. Existen otras herramientas que probamos pero que no fueron de nuestro agrado (prometían fácil debug) al no ser agiles en su uso.
Nuestra estrategia de acercamiento al Propeller, antes de comenzar a construir nuestra solución fue adquirir y aprender a usar el Microcontrolador vía las tarjetas de prueba y desarrollo que vende la empresa conocidas como “Demo Board”. La Demo Board, incluye el chip en la placa y incluye resistencias y otros conectores y partes ya incrustados en la placa. Como no queríamos quedarnos en una aprendizaje meramente educacional, también adquirimos la “Professional Development Board”. y El Kit de educación del Propeller. Este ultimo kit es por decirlo de una manera bruta un kit de partes sueltas. En las Demo Board y Profesional, estas piezas ya están armadas, pero se presentan también los conectores para probar y programar distintos sensores, entradas y salidas del Propeller. La diferencia entre la Demo y la Profesional, es solamente mas piezas pre instaladas para realizar distintos montajes de pruebas (usando cablecitos para simular pistas que en placas de producción ya están soldadas).
En mi próximo articulo andaremos en como programar el Chip Propeller paso a paso, generaremos bibliotecas de objetos y generaremos código SPIN complejo haciendo uso de Multitarea. En nuestro aprendizaje nos dimos cuenta que un Microcontrolador como este era necesario para nuestros objetivos. Pero cuando interactúan sensores de distinto tipo, con Routers 3G, conexión WIFI, Visión en 360 grados, lógica de visión artificial, movimiento de ruedas, un scanner 3D o una cámara de profundidad (como el Kinectic de Microsoft) . Todo esto para lograr un robot autónomo con capacidad de movilizarse. Necesitamos como coordinador, de todo este conjunto un computador que calcule cosas mas complejas; como rutas de navegación y desplazamiento, etc. Nosotros elegimos el FitPC2. Y con ello no solo tuvimos que programar SPIN y Propeller sino además conectar vía USB el Propeller al FitPC2, y programar en VB.NET 2010 para las pruebas de concepto y generar todo un protocolo SPIN/VB.NET 2010. De todo esto escribiere en mis próximos artículos. Para muestra una foto de nuestro prototipo en su fases iniciales (como a mediados del 2010).
Saludos Cordiales
Javier Urrutia Tobar.


(2 votos, promedio: 4.50 de 5)




