PDF de programación - Programación interactiva en Multiplo N61

Imágen de pdf Programación interactiva en Multiplo N61

Programación interactiva en Multiplo N61gráfica de visualizaciones

Actualizado el 13 de Enero del 2021 (Publicado el 22 de Febrero del 2018)
889 visualizaciones desde el 22 de Febrero del 2018
155,5 KB
16 paginas
Creado hace 11a (30/08/2012)
Programación interactiva en

Multiplo N6





Objetivos del trabajo

● Permitir que el robot Multiplo N6 acepte comandos

de manera interactiva.

● Construir una API de alto nivel para controlar los

robots que permita utilizar la mayor parte del
material generado para el proyecto Scribbler.





Características del N6

● Basado en el controlador AVR ATMega32u4.
● Tracción diferencial en dos de sus ruedas.
● Elevador de voltaje a 12V a partir de 3 pilas AA.
● Sensores ultrasónicos, de línea y de carga de batería.
● Leds, switches de power y reset y un buzzer.
● Puerto de comunicaciones USB.
● Software compatible con Arduino.





Características del N6

● Como el software es compatible con Arduino, se

puede programar utilizando el mismo IDE.

● También soporta Bitslash y Minibloq.
● No tiene forma de comunicarse con un controlador

externo (excepto el puerto USB, utilizado para la
programación) pero tiene varios puertos libres para
agregar componentes como sensores.

● Su licencia RobotGroup-Multiplo Pacifist License

(RMPL), basada en MIT License, permite modificar
el hardware y el software.





Enseñando a programar con robots

● Se partió de experiencias previas con alumnos de

secundario (últimos años), los cuales fueron
enfrentados a un manual con ejemplos de código.

● Los alumnos aprendían por prueba y error copiando

y modificando el código propuesto.

● Se contaba con robots de un proyecto anterior y se

deseaba realizar una experiencia similar.

● Utilizar un lenguaje interpretado y sencillo permite

realizar pruebas y correcciones en forma rápida.





Compilado vs Interpretado





Compilado vs Interpretado





Los cambios realizados

Los cambios realizados fueron en 3 frentes
● Hardware
● Firmware
● Software





Los cambios realizados en el Hard

● Básicamente, fue necesario agregar algún método de

comunicación para que el robot pueda recibir
comandos remotos

● Se optó por la opción de utilizar XBee por su

sencillez en cuanto a la integración con Arduino.
● Se trata un emisor/receptor de radio del lado del
robot y otro del lado de la PC que controlará al
robot.

● El XBee permite conexiones punto a punto y punto

a multipunto.





Los cambios realizados en el Firm

● Hablamos de firmware debido a que solamente se

graba este programa al robot y ningún otro.
● Este firmware se encarga de interpretar los

comandos que le envía la computadora por el
protocolo de XBee.

● El firmware se trata de una modificación de Firmata
que además permite identificar a que robot se envía
cada mensaje.

● El firmware está escrito en el lenguaje en que se

programa el AVR y permanece residente.





Los cambios realizados en el Soft

● Los programas para el robot se escriben en Python
● Son interpretados y enviados al robot en forma

codificada utilizando PySerial y PyFirmata.

● La programación puede hacerse mediante scripts

almacenados en la memoria de la computadora o a
través de la consola de Python.

● Esto permite hacer pruebas rápidas que permiten ver

si el código escrito hace que el robor se comporte
como uno espera.





Los cambios realizados en el Soft
permite interactuar con los robots en forma sencilla.

● Para que esto sea posible se creó una API en Python que

● La API abstrae el XBee (clase Board) de más bajo nivel

que permite interactuar con varios robots a la vez.

● Los mensajes de esta clase en general requieren cierta
especificidad, por ejemplo para identificar a que robot
va dirigido el mensaje.

● Los mensajes son enviados haciendo referencia a el

objeto Board que identifica un dongle particular.

● Por ejemplo, para que el robot con id=1 avance 10

segundos:



– b.motors(50, 50, 10, 1)



Los cambios realizados en el Soft

● También abstrae a un robot (clase Robot) que

permite crear una instancia de un robot y enviarle
mensajes.

● Es necesario, cuando se crea el objeto robot,

asociarlo a un dongle.

● Por ejemplo, para hacer que el robot avance 10

segundos:

– r.forward(10)

● Como cada robot conoce su identificador, no es

necesario enviarlo.





Los cambios realizados en el Soft





Integración con el proyecto

Lihuen GNU/Linux

● Para integrar este trabajo con el proyecto Lihuen fue
necesario crear un paquete instalable (.deb) que una
vez agregado a los repositorios, pudiera instalarse
con las herramientas provistas por la distribución.

● La última versión de este paquete es

robot_0.09_all.deb.

● Además existe un proyecto del mismo grupo de

trabajo para poner en práctica la enseñanza de
programación con Python utilizando robots
personales.





Trabajo a futuro

● Investigar más a fondo el tema de interacción entre

robots.

● Integrar la API de Python en Minibloq
● Hacer pruebas con sistemas económicos de visión

por computador utilizando webcams y librerías
como OpenCV.
  • Links de descarga
http://lwp-l.com/pdf8968

Comentarios de: Programación interactiva en Multiplo N61 (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