PDF de programación - Modificaciones realizadas al robot Multiplo N6

Imágen de pdf Modificaciones realizadas al robot Multiplo N6

Modificaciones realizadas al robot Multiplo N6gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 22 de Febrero del 2018)
834 visualizaciones desde el 22 de Febrero del 2018
231,1 KB
8 paginas
Creado hace 11a (19/05/2012)
Modificaciones realizadas al Robot Multiplo N6

para permitir programaci´on interactiva

Einar Felipe Lanfranco - LINTI (UNLP)

einar en linti.unlp.edu.ar

Joaquin Bogado - LINTI (UNLP)

jbogado en linti.unlp.edu.ar

David Vilaseca

vilaseca en gmail.com
Juli´an da Silva Gillig

julian.dasilva.gillig en gmail.com

LINTI (UNLP) - RobotGroup

Resumen Este trabajo describe las modificaciones realizadas al robot Multiplo N6 para que
pueda ser usado como herramienta de ense˜nanza en un curso de programaci´on para alumnos de
escuelas de educaci´on media.
El lenguaje utilizado es Python, un lenguaje que, al ser interpretado, tiene un alto nivel de
interactividad, permitiendo a los alumnos ver inmediatamente los efectos de los algoritmos que
desarrollan reflejados en el comportamiento del robot.

Keywords: Robot, Multiplo, N6, Python, Lihuen, Interactivo

1.

Introducci´on

El modelo est´andar de Multiplo N6 fabricado por RobotGroup[1] es un robot personal extensible
con fines educativos de dise˜no y especificaciones libres. Es posible programar este robot en diversos
lenguajes1. Sin embargo, (hasta el momento de realizar este trabajo) el N6 solo funcionaba en modo
aut´onomo o stand alone, es decir que el ´unico modo de ejecutar un programa del robot era grab´andolo
en la memoria del robot y luego dejando que el robot lo ejecutara.

La necesidad de interacci´on, que se detalla en la siguiente secci´on, hizo necesario modificar el robot
para que acepte comandos en forma interactiva y para que pueda programarse ejecutando scripts de
Python[2] en una computadora.

Este trabajo detalla las modificaciones que fueron necesarias, las cuales pudieron realizarse sin

problemas dada la naturaleza de las licencias utilizadas en el dise˜no del Multiplo N6.

2. La necesidad de interactividad

El ciclo de desarrollo que se cumple habitualmente cuando se aprende a programar con lenguajes
compilados es el siguiente: programaci´on - compilaci´on - prueba - programaci´on (ver figura
1).

En la primer etapa de programaci´on, el estudiante recibe el enunciado de un problema que debe
solucionar y escribe el programa o una parte de este e intenta compilarlo. Durante el proceso de
compilaci´on, se detectan errores, generalmente de sintaxis, que deben corregirse para poder continuar
con la compilaci´on.

Una vez que la compilaci´on es exitosa, se obtiene el o los binarios ejecutables. A partir de ellos,
el estudiante realiza las pruebas. Los errores que se detectan en esta etapa dependen de los casos de
prueba y son de naturaleza sem´antica, es decir, que el software desarrollado no cumple con lo que se
pretend´ıa de ´el.

Entonces debe volverse a modificar el c´odigo fuente, es decir vuelve a comenzar el ciclo, retornado

a la etapa de programaci´on para corregir aquellos errores detectados en el programa.

1 Ver secci´on ’El robot Multiplo N6’

Figura 1. Ciclo de desarrollo de un programa en un lenguaje compilado

En la programaci´on de robots aut´onomos, hay que agregar (al ciclo descripto) un nuevo paso que
tiene que ver con la grabaci´on en la memoria del robot del programa compilado antes de poder realizar
las pruebas. Los errores de programaci´on que no son detectados en tiempo de compilaci´on, solamente
se hacen evidentes una vez que el programa se est´a ejecutando en el robot.

En los lenguajes interpretados con consola interactiva, como Python, el esquema de programaci´on
es levemente diferente. Al no existir etapa de compilaci´on, el ciclo se reduce a programaci´on - prueba
- programaci´on. Este ciclo m´as simple no detecta errores antes de la prueba: los errores se detectan
en tiempo de ejecuci´on. Sin embargo, durante la etapa de programaci´on, si el alumno no est´a seguro de
la sem´antica de una sentencia, puede hacer una peque˜na prueba en la consola interactiva. Este peque˜no
cambio en el esquema de programaci´on reduce considerablemente la cantidad de errores sem´anticos
y sint´acticos en el programa final, ya que el estudiante puede ver el resultado de una determinada
expresi´on antes de que el programa este completo.

Figura 2. Ciclo de desarrollo de un programa en un lenguaje interpretado

Para que este modo de programaci´on est´e disponible en el robot Multiplo N6, fue necesario reali-

zarle una serie de modificaciones a nivel hardware, firmware y software.

3. Experiencias previas

Desde el a˜no 2009, el Laboratorio de Investigaci´on de Nuevas Tecnolog´ıas Inform´aticas (LINTI)[3]
de la Facultad de Inform´atica de la Universidad Nacional de La Plata[4] trabaja con robots personales,
con los fines de incentivar tanto el inter´es de los ni˜nos y j´ovenes por aprender a utilizar la tecnolog´ıa,
como la curiosidad de docentes y adultos en el uso de la tecnolog´ıa como herramienta para la educa-
ci´on. Realizando diversas charlas en escuelas de nivel medio de la zona de La Plata y alrededores se
comenzaron a ense˜nar conceptos b´asicos de la programaci´on, utilizando para ello el robot Scribbler[5].
El robot Scribbler se programa utilizando el lenguaje Python de forma interactiva, es decir, desde
una consola de comandos. Permit´ıa tambi´en la posibilidad de guardar las secuencias de pasos en
archivos de manera an´aloga a los scripts.

Por dificultades en la importaci´on de estos robots, no se han podido conseguir unidades nuevas
desde principios de 2011. Sin embargo, se siguieron utilizando las unidades existentes. Un ejemplo de
ello fueron las pasant´ıas realizadas por alumnos del colegio Nacional de La Plata [5], [6],[7]. Durante
estas pasant´ıas, se comprob´o que un grupo de alumnos del ´ultimo a˜no del secundario, sin experiencias
previas en programaci´on, fue capaz de construir programas sencillos con los conceptos principales de
la programaci´on, como variables y funciones, durante la primer clase, y programas m´as complejos con
instrucciones de repetici´on y selecci´on dentro de scripts en menos de tres clases (de tres horas cada
una).

4. El robot Multiplo N6

4.1. Descripci´on general

El Multiplo N6 es un modelo de robot con fines educativos dise˜nado y ensamblado en el pa´ıs por

la empresa RobotGroup.

Para poder moverse, el robot cuenta con tres ruedas, dos delanteras y una trasera m´as peque˜na
que gira libremente. Las ruedas delanteras cuentan con tracci´on diferencial gracias a dos motores
de corriente continua que se controlan por software independientemente uno del otro. Esto permite
programar el robot para que vaya hacia adelante, hacia atr´as o que gire variando la velocidad de una
rueda con respecto de la otra.

Para poder “observar” el ambiente, posee varios sensores que le permiten percibir el entorno:
dos sensores reflexivos y uno ultras´onico. Los reflexivos emiten luz infrarroja y detectan cambios de
contraste entre las superficies claras y oscuras, permitiendo programar el robot para que siga una
l´ınea o detecte un borde, entre otras cosas. El sensor ultras´onico agrega la posibilidad de detectar
obst´aculos a disctancia, con precisi´on de cent´ımetros.

Todos estos sensores, los motores y un buzzer que emite frecuencias en el espectro audible se conec-
tan a una placa central basada en Arduino [8], con un microcontrolador programable ATmega32U4[9].
El robot, adem´as, tiene algunos conectores libres para otros tipos de sensores, como sensores ´opticos

o potenci´ometros, que pueden ser agregados adicionalmente en forma separada.

En la versi´on est´andar del robot Multiplo N6, los programas se escriben en la interfaz de progra-
maci´on de Arduino o Minibloq [10], luego se compilan y por ´ultimo se descargan al robot utilizando
un cable USB. Los errores de programaci´on que no se detectan en compilaci´on solo se hacen evidentes
cuando el programa ya fue descargado y se est´a ejecutando en el robot.

4.2. Especificaciones t´ecnicas

Estas son las caracter´ısticas m´as importantes del robot Multiplo N6:

Alimentaci´on
• El controlador DuinoBot posee un sistema de alimentaci´on que permite entregar hasta 12 V a
los motores partiendo de s´olo 3 pilas AA (o cualquier otra celda de 3.6 V, ya sea NiMH o Li-
Ion). Adem´as, eleva tambi´en la tensi´on de alimentaci´on de la l´ogica del circuito, permitiendo
la conexi´on de todo tipo de sensores est´andar y otros accesorios Multiplo de 5V.
• Cuando no se utilizan los motores, es posible alimentar tambi´en la placa desde el bus USB,

contando la placa con selecci´on autom´atica de la fuente de alimentaci´on.

Sensores
El robot cuenta con:
• Dos sensores infrarrojos reflexivos. Se pueden utilizar tanto como para medir luz reflejada (por
ejemplo, color), como para medir luz incidente. La aplicaci´on m´as com´un es detectar una l´ınea
en el piso para poder seguirla.
• Un sensor de distancia ultras´onico que permite identificar la distancia a un obst´aculo con
• Un sensor interno de carga de la bater´ıa que permite conocer el voltaje de la fuente de ali-

precisi´on de cent´ımetros.

mentaci´on.

por RobotGroup.

Software:
El controlador DuinoBot es compatible con Arduino y puede ser programado de forma nativa
stand-alone (escribiendo software de modo que quede residente en el microcontrolador del robot)
en C++, Bitlash [11], y otros lenguajes de alto nivel. Tambi´en puede ser utilizado en modo remoto
desde lenguajes que corran en la PC (a partir de las modificaciones propuestas en este trabajo).
Microcontrolador
• Placa controladora DuinoBot basada en el microprocesador AVR ATMega32U4 y desarrollada
• Memoria de programa: Flash de 32 KBytes.
• Memoria de datos vol´atil: SRAM 2.5 KBytes.
• Memoria de datos no vol´atil: EEPROM de 1 KByte.
• Velocidad: 14-16 MIPS @ 16 MHz.
Interfaz de usario
• Un buzzer permite la generaci´on de tonos a diferentes frecuencias.
• LED de usuario.
• LED indicador de 5V (alimentaci´on l´ogica).
• LED indicador de alimentaci´on de motores (6V / 12V).
• 4 LEDs indicadores de sentido de giro de los motores.
• Un pulsador de Reset.
• Un pulsador de Usario/Run.
Comunicaciones
• USB por hardware en el microcontrolador (lo cual permite utilizarlo como CDC, HID,
  • Links de descarga
http://lwp-l.com/pdf8976

Comentarios de: Modificaciones realizadas al robot Multiplo N6 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad