Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Robotica
Robotica
com
Revista Electrónica Mensual
Número 04 ABRIL 2012
- ¿Podría Usted?
YO ROBOT
Robótica Mexicana realiza esta revista de
manera electrónica sin fines de lucro. El
autor permite que esta revista pueda ser
distribuida para efectos educativos o de
promoción sin fines de lucro por cualquier
medio impreso o electrónico sin previo
consentimiento siempre y cuando se cite la
fuente.
Búscanos en
FaceBook:
Robótica Mexicana
Albert Einstein
El Nuevo ASIMO ha hecho
grandes avances en su
predecesor. De hecho el
nuevo ASIMO puede
ASIMO 2012 caminar junto a ti (tomando
tu mano si lo deseas), y
características de movilidad
avanzada, como mover
carros y otros objetos
alrededor a voluntad. Y con
un completamente nuevo
sistema que controla todas
las funciones de ASIMO.
ASIMO puede
autónomamente actuar
como recepcionista, o hasta
llevar bebidas en una
charola, El nuevo ASIMO es
más ágil que antes, siendo
capaz de correr 6 Km./h y
dar vueltas mientras corre.
Galileo Galilei
Introducción
Arduino es una plataforma
de hardware libre, basada en
Cuatro meses que ya han dejado algunas experiencias una placa con un micro
importantes en el camino. Alianzas entre Instituciones controlador y un entorno de
Educativas e Industria Privada, mayor participación en desarrollo, diseñada para
eventos de robótica, incremento de ventas para algunos facilitar el uso de la electrónica
proveedores, pero sobre todo un poco mas de en proyectos multidisciplinares.
conocimiento.
Por otro lado el software
leemos, aprendemos y practicamos día con día para que desarrollo que implementa
andar tu senda pero nos interesa hacerla más sencilla; Processing/Wiring y el cargador
alguien alguna vez así lo ha hecho para nosotros. de arranque (boot loader) que
corre en la placa.
Gracias a todos los Profesores, Estudiantes y
Arduino se puede utilizar para
compañeros que confían en este proyecto sin fines de
desarrollar objetos interactivos
lucro. Por tus aportaciones, tus escritos y tus comentarios
autónomos o puede ser
estamos difundiendo esta revista electrónicamente con
conectado a software del
gran éxito.
ordenador (por
Continuamos esperando tus participaciones, por ejemplo: Macromedia
minúsculas que puedan parecer siempre hay alguien Flash, Processing, Max/MSP,
buscando información y quizá tú la tienes disponible. Pure Data). Las placas se
pueden montar a mano o
adquirirse. El entorno de
Basados en su misión de ser socios tecnológicos de las instituciones educativas del país, Grupo
Mediatec ha puesto en marcha el Tour NAO 2012 donde por medio de visitas, eventos y conferencias
alrededor del robot humanoide NAO, se acerca la tecnología de vanguardia a su público objetivo
fomentando así el estudio de las ciencias, la investigación y el desarrollo tecnológico en el sistema
educativo nacional.
El Tour NAO 2012 está abierto a las universidades mexicanas e instituciones del sector educativo en
general y se presenta con diversas opciones en un esfuerzo por promover las nuevas tecnologías en el
terreno de la robótica, la inteligencia artificial, las ciencias computacionales, la ingeniería y las
matemáticas.
FIX Ingeniería y el Capitulo IIE 777 del Instituto Tecnológico y de Estudios Superiores de
Monterrey, Campus Puebla tienen el honor de invitarle al Seminario del Micro Controlador
Propeller que se llevará a cabo los días 28 y 29 de Mayo en las Instalaciones del ITESM Puebla.
El Micro Controlador Propeller es un micro controlador de ocho procesadores que corre bajo
un lenguaje especial (llamado Spin) o a través de lenguaje ensamblador. Su característica
principal de diseño es el remplazo de interrupciones por múltiples procesadores. Esto permite
a los desarrolladores crear código más sencillo de limpiar y más rápido de implementar,
mientras se mantiene un esquema sólido de tiempo.
El Propeller cuenta con una estructura limpia y la facilidad de desarrollar múltiples tareas
utilizando recursos compartidos.
Un sistema configurable de reloj proporciona a los cogs la misma señal de reloj (hasta 80MHz). La Figura 1Figura
Error! No text of specified style in document.-1(b) muestra como cada cog toma su turno en la opción exclusiva
del acceso leer/escribir de la memoria principal del chip Propeller a través del Hub. El acceso exclusivo
leer/escribir es importante porque significa que dos cogs no pueden intentar modificar el mismo dato en
memoria al mismo tiempo. También previene que un cog lea una dirección particular de memoria mientras que
otro lo está escribiendo. Así el acceso exclusivo asegura que nunca existirán conflictos de acceso que puedan
alterar los datos.
Figura Error! No text of specified style in document.-1: Paquete de Micro controlador Propeller e
interacciones Hub - Cog
(a) Micro controladores Propeller en paquete (b) Extracto del diagrama de bloque del Propeller
de 40-pins DIP, TSOP y QFN que describe la interacción de Hub y Cog.
32 KB de la memoria principal del chip Propeller es RAM y se utiliza para el programa y almacenamiento de
datos, otros 32KB son ROM y almacena útiles tablas tales como registro, anti registro, seno y tablas de
caracteres gráficos. La ROM también almacena el código de arranque que es usado por el Cog 0 al inicializar e
interpretar el código que cualquier cog puede usar para buscar y ejecutar alguna aplicación de la memoria
principal. Cada cog tiene la habilidad de leer los estados de cualquiera o todos los 32 pins de Entrada/Salida del
chip Propeller así como establecer sus direcciones y estados de salidas en cualquier momento.
El diseño único de multiprocesamiento del chip Propeller genera una variedad de aplicaciones del micro
controlador relativamente simples que de otra forma serian difíciles. Por ejemplo, los procesadores se pueden
asignar a entradas de audio, salidas de audio, ratón, teclado y quizá TV o Pantalla LCD para crear un sistema de
computo basado en micro controladores con procesadores de sobra para trabajar en tareas más convencionales
tales como el monitoreo de entradas, sensores y control de salidas y actuadores. La Figura 2(a) muestra un chip
Propeller generador de una imagen de video que podría ser utilizada en algún tipo de aplicación. El Propeller
también sobresale como controlador robótico, con la habilidad de asignar procesadores a tareas tales como
control de motores DC a través de PWM, video procesador, matriz de sensores de vigilancia y alta velocidad de
comunicación con robots cercanos y/o Computadoras Personales.
La Figura 2(b) muestra un ejemplo de un Robot Balanceado con sensores de video, el prototipo inicial fue
desarrollado con un Kit Educativo Propeller.
A pesar de que el chip Propeller es muy poderoso no significa que es difícil de usar. El chip Propeller se presenta
de una manera manejable para proyectos simples tales como indicador de luces, botones, sensores, bocinas,
actuadores y pantallas pequeñas encontrados en diseños comunes. Usted podrá ver algunos ejemplos de tales
circuitos en el siguiente Kit Educacional de Laboratorio Propeller.
(a) El Micro controlador Propeller genera (b) Robot De Balance Hanno Sander, el prototipo
graficas para mostrar en pantalla. Esta inicial fue desarrollado con el Kit Educativo
aplicación también usa un ratón estándar PS/2 Propeller y el programa ViewPort. Foto cortesía
para controlar las graficas (no mostrado). de mydancebot.com.
Antes de que un cog pueda comenzar a ejecutar una aplicación Spin tiene que cargar un intérprete en memoria
desde la ROM del chip Propeller. La Figura 3(a). Las aplicaciones Spin son almacenadas en la memoria RAM
principal como fichas lo cual hace que el cog vaya repetidamente a buscar y ejecutar (Figuras 3b y c). Algunos
ejemplos de acciones del cog pueden basarse en los valores de las fichas como se muestra en la Figura 3(c).
Incluyen lectura/escritura a los registros de configuración, variables y pines de entrada/salida así como lectura
de ROM.
Los cogs pueden ejecutar códigos de maquina generados por lenguaje ensamblador. Como se muestra en la
Figura 4, estos códigos de maquina son cargados en los cogs de 2KB (512 longs) de memoria RAM y ejecutados
en alta velocidad, hasta 20 millones de instrucciones por Segundo (MIPS). La RAM del cog no utilizado por
instrucciones maquina puede proporcionar memoria de alta velocidad para el cog con cuatro ciclos de reloj
(50ns a 80MHz) por lectura/escritura.
(Hub) Memoria Principal (Hub) Memoria Principal Buscar/Ejecutar (Hub) Memoria Principal
KB
R R
Pila + VAR Pila+ VAR Pila + VAR
A A
R Conjunto de Conjunto de Conjunto de COG
COG
Caracteres COG M Caracteres M Caracteres
A
Un Cog Ejecutando lenguaje ensamblador puede accesar de igual forma a la memoria principal del Propeller a
través del Hub. El Hub garantiza el acceso a la memoria principal a los Cogs cada 16 ciclos de reloj. Dependiendo
de cuando el Cog decide verificar la memoria principal el tiempo de acceso puede ser entre 7 y 22 ciclos de reloj
lo cual equivale, al peor escenario de tiempo de acceso a la memoria, a 275ns a 80 MHz. Después del primer
acceso el lenguaje ensamblador puede sincronizarse con el Cog alternándose en una ventana de acceso a la
memoria principal manteniendo los subsecuentes accesos a un ciclo fijo de 16 ciclos de reloj (200ns).
Configuracion
Aplicacion
4 ciclos
R de reloj Figura Error! No text of
Pila + VAR specified style in document.-3:
A
Conjunto de ASM Cog RAM Cog Ejecutando Lenguaje
7 a 22
M Caracteres
2 KB
Ensamblador
Ciclos de
Registro, reloj, COG (512 largo)
R Antiregistro y
Arranque
Tablas 16 ciclos
O una vez
Interprete sincronizado
M
Debido a que cada Cog tiene acceso a la memoria principal RAM del chip Propeller los Cogs pueden trabajar en
conjunto intercambiando información. El lenguaje Spin tiene características incorporadas para pasar direcciones
de una o más variables usadas en código a otros objetos y Cogs. Esto hace la cooperación entre Cogs muy
sencilla. El código en un Cog puede ejecutar código en otro Cog y pasarle una o más direcciones variables (ver
Figura 5). Estas direcciones variables pueden ser utilizadas por dos Cogs para intercambiar información.
COG
R
Pila + VAR
Figura-4: Dos (o más) Cogs trabajando en
A conjunto a través de memoria compartida.
Conjunto de
M Caracteres
COG
Registro,
R Antiregistro y
Arranque
Tablas
O
Interprete
M
Los Cogs del chip Propeller están numerados del Cog 0 al Cog 7. Una vez que la aplicación se carga en el chip
Propeller este carga un intérprete en Cog 0 y este interprete comienza a ejecutar las fichas del código Spin
almacenadas en la memoria principal. Entonces los comandos en el código Spin pueden ejecutar bloques de
código (que puede ser Spin o Lenguaje Ensamblador) en otros Cogs como muestra la Figura 6. El código
ejecutado por otros Cogs puede ejecutar otros Cogs no importando si es Spin o Código Ensamblador y ambos
lenguajes pueden parar otros Cogs para poner fin a procesos innecesarios o incluso para sustituirlos con otros
diferentes.
2
1
COG
Figura-5: Arranque de Cogs
COG
El código en un Cog puede poner en marcha
0
3
otros Cogs el cual puede poner en marcha
COG otros…
COG
4
Los Cogs también pueden parar otros Cogs
para liberarlos y usarlos en otras tareas.
COG
Spin es un lenguaje de programación basado en objetos. Los objetos son diseñados para construir bloques o una
aplicación y cada archivo .spin puede ser considerado un objeto. Mientras que la aplicación puede ser
desarrollada como un objeto simple (un programa), las aplicaciones son comúnmente una colección de objetos.
Estos objetos pueden proporcionar una variedad de servicios. En los ejemplos se incluyen soluciones que de otra
forma complicaría el código, la comunicación con los periféricos, control de actuadores y monitoreo de
sensores. Esta construcción de objetos bloque son distribuidos a través del objeto de intercambio Propeller
(obex.parallax.com) y también en el archivo de librería en la herramienta de programación Propeller.
Incorporando estos objetos pre-escritos en una aplicación puede reducir su complejidad y tiempo de desarrollo
significativamente.
La Figura 7 muestra como los objetos se pueden utilizar como aplicaciones al construir bloques, en este caso,
para un robot que mantiene una distancia entre si y un objeto que esta sensando. El código de aplicación en el
siguiente objeto Robot.spin hace que el uso de objetos pre-escritos para detección infrarroja (IR Detector.pin)
controle los cálculos del sistema (PID.spin) y controle el motor (Servo Control.spin)
Note que estos objetos pre-escritos pueden usar otros objetos por turnos para hacer sus tareas. En vez de
generar objetos para hacer trabajos en tu aplicación puede también escribirlos como borradores y si se
convierten en útiles puede enviarlos para que se publiquen en el Intercambio de Objetos Propeller en
obex.parallax.com.
Archivo Objecto
Arranca un cog
Arranca un cog
Spin + Ensamblador
En la Figura 7, el objeto Following Robot.spin se identifica como archivo objeto inicial. Este archivo es la primera
línea de código ejecutable donde el chip Propeller comienza cuando la aplicación corre. En cada caso el Cog 0
arranca y comienza ejecutando código del objeto superior. Nuestro objeto superior en el ejemplo Following
Robot.spin contiene código que inicializa 3 objetos debajo del, convirtiéndolo en “objeto padre” de los tres. Dos
de estos tres bloques en su turno inicializan un “objeto hijo” construyendo bloques de sí mismos. Dos de los
bloques objetos construidos inicializan Cogs adicionales para hacer sus tareas así que un total de tres Cogs se
utilizan en esta aplicación. Independientemente de si un objeto padre comienza un Cog en Spin o Ensamblador
los objetos hijos tienen un sistema integrado y documentación que proporciona una interface simple con su
padre para controlar o monitorear.
A pesar de que no se muestra en la figura recuerde de la Figura 6 que un objeto puede inicializar más de un Cog.
También un objeto puede inicializar un proceso en un Cog y puede terminarlo nuevamente para dejarlo
disponible a otros objetos. A pesar de que cualquier objeto puede inicializar y detener un Cog es una buena
práctica hacer responsable de parar al Cog al Objeto que lo inicializo.
Como se ejecuta el código en el chip Propeller
La herramienta de programación Parallax puede utilizarse para desarrollar aplicaciones en el chip Propeller.
Cuando una aplicación se carga en el chip Propeller el código Spin se compila en los ficheros y el Código
Ensamblador opcional se compila en códigos maquina.
La herramienta Propeller transfiere la aplicación al chip Propeller típicamente con una conexión serie USB. El
programador puede escoger cargarlo directamente en la memoria RAM principal del chip Propeller o en una
EEPROM (Memoria de Solo Lectura Eléctricamente Borrable Programable por sus siglas en Ingles). Como se
muestra en la Figura 8, si el programa se carga directamente en la RAM el chip Propeller lo ejecuta
inmediatamente. Si el programa se carga en la EEPROM el chip copia la información a la RAM antes de comenzar
la ejecución.
Serie Seria
sobre
USB sobre
(a) Cargar Programa directo en RAM Propeller (b) Cargar el Programa en EEPROM
USB
Cargar programas de una Computadora a la RAM toma alrededor de 1 segundo mientras que la carga de
programas a EEPROM toma algunos segundos (abajo de 10 segundos en la mayoría de los casos). Mientras que
cargar programas en RAM puede ser más rápido para probar resultados de cambios durante el diseño del código
los programas deberían estar cargados en EEPROM cuando la aplicación es finalizada o si se espera que
comience después de un ciclo de encendido o re inicialización. Los programas cargados en RAM son volátiles, lo
que significa que se pueden borrar por una interrupción de corriente o reinicializado del chip Propeller. En
contraste los programas cargados en EEPROM no son volátiles. Después de un ciclo de encendido el chip
Propeller copia el programa de la EEPROM en la RAM y comienza a ejecutarse nuevamente.
La inteligencia consiste no sólo en el conocimiento, sino
también en la destreza de aplicar los conocimientos en la
práctica.
Aristóteles
Leonardo Da Vinci
http://www.aprenderobotica.com/
ROBOCHALLENGE- YAZAKI PREMIO A&T
Robochallenge se creó con el fin de incentivar el
interés en la Ingeniería Mecatrónica y para promover Este concurso plantea el objetivo de
una interacción temprana con el mundo de la incentivar, estimular y propiciar el interés
Electrónica, Automatización, Robótica, Inteligencia de los estudiantes en áreas de investigación y
Artificial y Sistemas Digitales entre los estudiantes. desarrollo, tanto científico como tecnológico
en materia de automatización y tecnología.
Robochallenge AREA 1
Este año el reto consistirá en diseñar y construir un Premio A&T consiste en la presentación de
mecanismo autónomo que sea capaz de clasificar trabajos y proyectos tanto a nivel
distintas baterías (4 formas distintas) en sus licenciatura y posgrado, contando con la
respectivos depósitos previamente establecidos. El evaluación de reconocidos doctores tanto del
robot tendrá que recorrer la pista de competencia y Tecnológico de Monterrey como de otras
dependiendo de la pieza que encuentre, deberá de ser universidades.
capaz de identificarla y dirigirse al depósito adecuado.
La presentación de los proyectos se hace
Premio Primer Lugar: $10,000.00 Premio Segundo mediante la elaboración de un trabajo escrito
Lugar $2,500.00
que contenga la información del proyecto
durante la primera etapa del mismo, y en la
Robochallenge AREA 2
segunda se expondrán los mejores proyectos
Este año el reto consistirá en diseñar y construir un durante el congreso así como su publicación
vehículo autónomo de rescate que sea capaz de en la revista de divulgación científica del
encontrar, trasladar y depositar el mayor número de congreso.
piezas metálicas (representando a una persona). El
robot tendrá que recorrer la pista de competencia con El ganador será merecedor a un premio
diferentes obstáculos representando ambientes económico.
naturales (tierra, piedras, troncos, lodo etc.),
encontrar la pieza y llevarla al área indicada.
www.congreso-mecatronica.com
Premio Primer Lugar: $15,000.00
Premio Segundo Lugar: $5,000.00
SALON DE ROBÓTICA,
ASTRONOMÍA Y MEDIO AMBIENTE
C.R.E.A.T.E.
CURSOS DE ROBOTICA EDUCATIVA - ASTRONOMIA Y MEDIO AMBIENTE
Dirigidos a niños de Nivel Primaria; jóvenes Nivel Secundaria y
Preparatoria.
INSCRIPCIONES ABIERTAS
Mayores informes 664 634 6148
Nextel 152*155825*2
E-mail createarobot@gmail.com
Misión de San Diego 10237, Zona Río Tijuana, B.C.
http://www.caracol.org.mx/
BASIC Stamp es un micro controlador que posee un intérprete especializado de BASIC que se
encuentra en su memoria ROM. Este micro controlador es fabricado por Parallax, Inc. y es popular
entre los aficionados a la electrónica desde principios de la década de 1990 por su facilidad de
aprendizaje y su fácil uso, así como el lenguaje de programación BASIC que se requiere para
controlar este chip.
BASIC Stamp posee la forma de un chip DIP (Dual In Package), encontrándose en una placa
de circuito impreso que contiene los elementos esenciales para un microprocesador:
Un micro controlador que contienen la CPU, ROM que posee el interprete de BASIC y varios
elementos periféricos.
Memoria, de tipo EEPROM
Un reloj interno
Una fuente de alimentación.
Conexiones externas de entrada y salida.
www.moway-robot.com
http://www.wix.com/inforobotica/inforobotica
MultiON es una empresa 100% Mexicana, fundada en 1989 líder en la
comercialización de servicio y soporte de software científico y técnico para la
educación, investigación, industria y gobierno.
Cursos
Seminarios
Webinars
Presencia en expos
http://www.multion.com.mx/
REFLEXIONES
SOBRE
ROBÓTICA
ROBOTICAMEXICANA
www.roboticamexicana.com