Programación en Python con Robots - JUICa 2012
Transcript of Programación en Python con Robots - JUICa 2012
![Page 1: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/1.jpg)
Programación en Python con RobotsJUICa 2012
Grupo de Desarrollo Lihuen - Fernando López - Sofía Martin
Noviembre 2012
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 2: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/2.jpg)
Programación en Python con RobotsTemario
El proyecto: Entre Robots, juegos y lenguajes: unaexperiencia de aprendizaje real en las aulasLos RobotsIntroducción a Python
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 3: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/3.jpg)
Primer curso de programación usando robots y Python
ObjetivosIncentivar el interés de los niños y jóvenes en el uso de latecnología con fines educativosTrabajar en mecanismos de resolución de problemas
Más específicamente ...Difundir y trabajar con Software LibreEnseñar aspectos de programación utilizando Python
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 4: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/4.jpg)
Primer curso de programación usando robots y Python
ObjetivosIncentivar el interés de los niños y jóvenes en el uso de latecnología con fines educativosTrabajar en mecanismos de resolución de problemas
Más específicamente ...Difundir y trabajar con Software LibreEnseñar aspectos de programación utilizando Python
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 5: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/5.jpg)
Entre Robots, juegos y lenguajes: una experiencia deaprendizaje real en las aulasEl proyecto
2012: Subsidiado por la Fundación YPFEquipamiento en las escuelas
20 robots1 netbook1 filmadora
Capacitación para docentes y alumnosAcompañamiento para su implementación
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 6: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/6.jpg)
El proyecto de robotsEn las escuelas
Características10 escuelas.10/15 docentes por escuela.5 alumnos por escuela.Conocimientos previos desiguales.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 7: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/7.jpg)
El proyecto de robotsEn las escuelas
Características10 escuelas.10/15 docentes por escuela.5 alumnos por escuela.Conocimientos previos desiguales.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 8: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/8.jpg)
El proyecto de robotsEn las escuelas
Características10 escuelas.10/15 docentes por escuela.5 alumnos por escuela.Conocimientos previos desiguales.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 9: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/9.jpg)
Programando con Python y RobotsRecursos Necesarios
Plataforma LinuxRobots inalámbricos
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 10: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/10.jpg)
Programando con Python y RobotsContenidos Mínimos
Conceptos básicos de programación.Paradigma...Introducción al lenguaje Python.Implementación de algoritmos sencillos.Funciones para manipulación del robot.Manual de guía.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 11: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/11.jpg)
Programando con Python y RobotsContenidos Mínimos
Conceptos básicos de programación.Paradigma...Introducción al lenguaje Python.Implementación de algoritmos sencillos.Funciones para manipulación del robot.Manual de guía.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 12: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/12.jpg)
Programando con Python y RobotsContenidos Mínimos
Conceptos básicos de programación.Paradigma...Introducción al lenguaje Python.Implementación de algoritmos sencillos.Funciones para manipulación del robot.Manual de guía.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 13: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/13.jpg)
Programando con Python y RobotsActividades
Se organizan actividades lúdicas (juegos, carreras, obras de teatro,bailes, etc.)
Donde se intenta que los alumnos presenten sus trabajos en unajornada (interna o externa)
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 14: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/14.jpg)
Vídeo de los chicos practicando
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 15: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/15.jpg)
El proyecto de software libreEn las escuelas
CaracterísticasAplicaciones educativasConexión con el proyecto Conectar Igualdad.Jornadas en las escuelas.Aplicación del uso de la aplicación al área de estudio.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 16: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/16.jpg)
El proyecto de software libreEn las escuelas
CaracterísticasAplicaciones educativasConexión con el proyecto Conectar Igualdad.Jornadas en las escuelas.Aplicación del uso de la aplicación al área de estudio.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 17: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/17.jpg)
El proyecto de software libreEn las escuelas
CaracterísticasAplicaciones educativasConexión con el proyecto Conectar Igualdad.Jornadas en las escuelas.Aplicación del uso de la aplicación al área de estudio.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 18: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/18.jpg)
El proyecto de software libreEn las escuelas
CaracterísticasAplicaciones educativasConexión con el proyecto Conectar Igualdad.Jornadas en las escuelas.Aplicación del uso de la aplicación al área de estudio.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 19: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/19.jpg)
Los RobotsCaracterísticas Básicas
Los Robots
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 20: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/20.jpg)
Los RobotsCaracterísticas Básicas
Basados en hardware y software libreInalámbricos3 Baterías AAVarios SensoresNacionales - Empresa RobotGroup
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 21: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/21.jpg)
Los RobotsDetalle
Forman parte del sistema constructivo Multiplo de RobotGroup.Pueden programarse en C++ o con bloques (MiniBloq).Las piezas plásticas pueden replicarse con una cortadora láser.El controlador del robot es una placa Arduino con algunasmodificaciones.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 22: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/22.jpg)
Los RobotsRobots utilizados en el curso
Son versiones modificadas del N6.Cuentan con un módulo XBee para la comunicación.Tienen un firmware basado en Firmata que permite controlarlosde forma remota.API en Python desarrollada en conjunto entre el LINTI yRobotGroup.
Clases de alto nivel → en conjunto.PyFirmata → por terceros, modificada.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 23: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/23.jpg)
Los RobotsEsquema de conexión
XBee (por USB)
Comandospara el firmware
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 24: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/24.jpg)
SensoresSensores utilizados en el curso
Sensor ultrasónicoFuncionamientoping()getObstacle()Alternativa más económica...
Sensores de línea / cuenta vueltasFuncionamientogetLine()getWheels()
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 25: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/25.jpg)
Otros sensores
FotoresistenciasCámara fotográfica → se podría suplir...Un switch para detectar obstáculosMicrófono
Intensidad de ruido ambienteIntensidad en determinada frecuencia
Para algunos sería práctico ampliar la API
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 26: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/26.jpg)
PythonCaracterísticas Básicas
Introducción a Python
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 27: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/27.jpg)
PythonCaracterísticas Básicas
Es interactivoMulti plataformaPermite una programación prolija eintuitivaEs posible programar aplicacionescomplejasMuy usadoEs software libre
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 28: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/28.jpg)
PythonEl Intérprete
Desde el shell de Python Utilizando un IDE: Geany
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 29: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/29.jpg)
Características Generales del Lenguaje PythonFunciones
Una función agrupa un conjunto de sentencias.Puede tener argumentosSintaxis:
def nombre(parametros):sentencia1sentencia2sentencia3
El cuerpo de la funcióndebe estar indentado!
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 30: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/30.jpg)
Características Generales del Lenguaje PythonEstructuras de Control
Sentencia if
if expresion:sentencia1sentencia2
Sentencia while
while expresion:sentencia1sentencia2
Sentencia for
for var in lista:sentencia1sentencia2
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 31: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/31.jpg)
Materiales adicionales
http://robots.linti.unlp.edu.ar/
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 32: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/32.jpg)
Primeros PasosInstalando
Primeros pasos
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 33: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/33.jpg)
Primeros PasosConectando el robot y la computadora
Se conecta el módulo decomunicaciones a un puertoUSB de la computadora.Luego se enciende el robotpara que reciba las órdenesde la computadora.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 34: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/34.jpg)
Primeros PasosConectando el robot y la computadora
Se conecta el módulo decomunicaciones a un puertoUSB de la computadora.Luego se enciende el robotpara que reciba las órdenesde la computadora.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 35: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/35.jpg)
Primeros PasosConectando el robot y la computadora
Se conecta el módulo decomunicaciones a un puertoUSB de la computadora.Luego se enciende el robotpara que reciba las órdenesde la computadora.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 36: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/36.jpg)
Primeros PasosConectando el robot y la computadora
Se conecta el módulo decomunicaciones a un puertoUSB de la computadora.Luego se enciende el robotpara que reciba las órdenesde la computadora.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 37: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/37.jpg)
Primeros PasosConectando el robot y la computadora
Importamos la librería para trabajar con el robot:from duinobot import *Encender el robot
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 38: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/38.jpg)
Primeros PasosIniciando la actividad
from du inobot import ∗b = Board ( "/dev / ttyUSB0 " )b . r e p o r t ( )mi_robot = Robot (b , 0)mi_robot . s e t I d (3 )
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 39: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/39.jpg)
Primeros Pasos¿Movemos el robot?
Hacia Adelante
forward(velocidad, tiempo)Ejemplos:forward()forward(1, 0.5)
Hacia Atrás
backward(velocidad, tiempo)Ejemplos:backward()backward(1, 0.5)
Probemos ...backward(-10)forward(-10)
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 40: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/40.jpg)
Primeros Pasos¿Movemos el robot?
Hacia Adelante
forward(velocidad, tiempo)Ejemplos:forward()forward(1, 0.5)
Hacia Atrás
backward(velocidad, tiempo)Ejemplos:backward()backward(1, 0.5)
Probemos ...backward(-10)forward(-10)
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 41: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/41.jpg)
Primeros Pasos¿Movemos el robot?
Girando a la Izquierda
turnLeft(velocidad, tiempo)Ejemplos:turnLeft()turnLeft(1, 0.5)
Girando a la Derecha
turnRight(velocidad, tiempo)Ejemplos:turnRight()turnRight(1, 0.5)
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 42: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/42.jpg)
Primeros PasosUsando los sensores
¿Cómo obtenemos los valores de los sensores?senses()ping()getObstacle()
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 43: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/43.jpg)
Demo en vivo con sensores
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 44: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/44.jpg)
Primeros PasosEjemplo con sensores
Evita obstáculos
robot.forward()obstaculos = 0while obstaculos < 10:
if robot.getObstacle(15):robot.backward(40, 1)robot.turnLeft(50, 0.5)robot.forward()obstaculos = obstaculos + 1
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 45: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/45.jpg)
Ampliando el manejo del robot
MotivaciónIncentivo a la programación usando teléfonos Android.Innovación en nuevas tecnologías.
IntegraciónLos robots ejecutando algún programaJoystickCelulares
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 46: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/46.jpg)
Ampliando el manejo del robot
MotivaciónIncentivo a la programación usando teléfonos Android.Innovación en nuevas tecnologías.
IntegraciónLos robots ejecutando algún programaJoystickCelulares
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 47: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/47.jpg)
Programando en Android¿Qué es remotebot?
Aplicación cliente-servidor.Está compuesto de:
Un servidor Python que se ejecuta en una PC con GNU/Linux.Un cliente en Java que se ejecuta en Android.
Permite controlar robots simples desde disposivos Android.Contiene un Wrapper completo de la clase Robot.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 48: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/48.jpg)
Programando en AndroidEl código
from duinobot import *b=Board("/dev/ttyUSB0")r=Robot(b, 1)
r.forward(50, 2)r.turnLeft(25, 2)r.backward(50, 1)r.forward(100, 1)r.stop()
b.exit()
import ar.edu.unlp.linti.robot.*;import ar.edu.unlp.linti.robot.exceptions
.*;/* ... */try {
Board b = new Board("http://10.0.0.1:8000","/dev/ttyUSB0");
Robot r = new Robot(b, 1);r.forward(50, 2);r.turnLeft(25, 2);r.backward(50, 1);r.forward(100, 1);r.stop();
} catch (CommunicationException e) {System.out.println("Ups...");e.printStackTrace();
}/* ... */
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 49: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/49.jpg)
Programando en AndroidMétodo de comunicación
Acceso a Internet o a la LAN del servidor.HTTP y JSON.Peticiones del cliente en un HTTP POST.Resultado del comando en la respuesta.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 50: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/50.jpg)
Programando en Android¿Por qué esos protocolos?
Bluetooth (IEEE 802.15.1) para proyectos similares.El N6 usa ZigBee (basado en IEEE 802.15.4).HTTP tiene mucho overhead pero...
Librerías para hacer clientes en cualquier lenguaje.Servidor en Python BaseHTTPRequestHandler.Mensajes JSON en texto plano.HTTP + JSON → Javascript.Posiblidad a futuro de robots remotos.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 51: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/51.jpg)
Programando en Android¿Por qué esos protocolos?
Bluetooth (IEEE 802.15.1) para proyectos similares.El N6 usa ZigBee (basado en IEEE 802.15.4).HTTP tiene mucho overhead pero...
Librerías para hacer clientes en cualquier lenguaje.Servidor en Python BaseHTTPRequestHandler.Mensajes JSON en texto plano.HTTP + JSON → Javascript.Posiblidad a futuro de robots remotos.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 52: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/52.jpg)
Programando en Android¿Por qué esos protocolos?
Bluetooth (IEEE 802.15.1) para proyectos similares.El N6 usa ZigBee (basado en IEEE 802.15.4).HTTP tiene mucho overhead pero...
Librerías para hacer clientes en cualquier lenguaje.Servidor en Python BaseHTTPRequestHandler.Mensajes JSON en texto plano.HTTP + JSON → Javascript.Posiblidad a futuro de robots remotos.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 53: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/53.jpg)
Programando en Android¿Por qué esos protocolos?
Bluetooth (IEEE 802.15.1) para proyectos similares.El N6 usa ZigBee (basado en IEEE 802.15.4).HTTP tiene mucho overhead pero...
Librerías para hacer clientes en cualquier lenguaje.Servidor en Python BaseHTTPRequestHandler.Mensajes JSON en texto plano.HTTP + JSON → Javascript.Posiblidad a futuro de robots remotos.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 54: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/54.jpg)
Programando en Android¿Por qué esos protocolos?
Bluetooth (IEEE 802.15.1) para proyectos similares.El N6 usa ZigBee (basado en IEEE 802.15.4).HTTP tiene mucho overhead pero...
Librerías para hacer clientes en cualquier lenguaje.Servidor en Python BaseHTTPRequestHandler.Mensajes JSON en texto plano.HTTP + JSON → Javascript.Posiblidad a futuro de robots remotos.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 55: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/55.jpg)
Programando en AndroidArquitectura de Remotebot
menu
Router inalámbrico
Peticiones HTTP
App RemoteBotpara Android
Servidor RemoteBotescrito en Python
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 56: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/56.jpg)
Demo
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 57: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/57.jpg)
Programando en AndroidProtocolo en JSON
3 entidades agrupan métodos y funciones:robotboardmodule
3 tipos de mensajes:Peticiones del cliente.Valores retornados.Excepciones con stacktrace.
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 58: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/58.jpg)
Programando en AndroidEjemplo del protocolo
Para instanciar una Board un cliente remotebot envía mensajeJSON:
[{"target": "board","board": {"device": "/dev/ttyUSB0"},"command": "__init__"
}]
Si el dispositivo no existiera se produciría una excepción en Pythony la respuesta del servidor sería:
{"type": "exception","name": "SerialException(u\"could not open port /dev/
ttyUSB0...\"","stacktrace": "Traceback (most recent call last):..."
}
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 59: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/59.jpg)
Para leer el sensor de distancia “ping” se usa el mensaje:[{"target":"robot","board":{"device":"/dev/ttyUSB0"},"id":1,"command":"ping","args":[]}]
El resultado tiene la forma:{"type": "returnvalues","values": [100]}
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 60: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/60.jpg)
¡Gracias a la UNCa y a la AESI por lainvitación!
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots
![Page 61: Programación en Python con Robots - JUICa 2012](https://reader030.fdocuments.mx/reader030/viewer/2022020203/58734bc41a28ab0b108bb6cd/html5/thumbnails/61.jpg)
Página proyecto: http://robots.linti.unlp.edu.ar
Repositorio duinobot: http://lihuen.linti.unlp.edu.ar
Blog de software libre: http://sl.linti.unlp.edu.ar
Código remotebot: https://github.com/fernandolopez
Contacto: soportelihuen [AT] linti.unlp.edu.ar
Twitter: @SL_Informatica
Facebook: Lihuen GNU/Linux
Grupo de Desarrollo Lihuen - Fernando López - Sofía MartinProgramación en Python con Robots