Cómo interactuar con arduino usando Python y Firmata

Slides:



Advertisements
Presentaciones similares
PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS CONTROL DE BARRERA DE PARKING
Advertisements

Te presento a Python Qué es Python? Lenguaje interpretado
Estructuras de control
Controla tu entorno con un microcontrolador PIIISA
Controla tu entorno con un microcontrolador PIIISA
Cliente.pl #!/usr/local/bin/perl use Socket; ($them, $port) $port = 2345 unless $port; $them = 'localhost' unless $them; El primer argumento es.
PANTALLA RESPONSIVA AL SONIDO
FUNCIÓN IGUAL (Lo que entra igual (=) a lo que sale)
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
SINTAXISYSEMANTICA. Tengo la impresión de que Java fue diseñado para hacer que fuera difícil escribir mal código, mientras que Python está diseñado para.
Repaso/resumen Introducción a la programación Orientada a Objetos 1.Strings 2.Archivos 3.Clases y objetos 4.Herencia 5.Ventanas 6.Dibujos y Gráficos.
Armando Mtz.R. ITNL Microcontroladores
Visual SUBVERSION.
INTRODUCCIÓN A ARDUINO Carolina Pino
Operadores lógicos en PHP Programación en Internet II.
Clases y Objetos. Clases La definición mas sencilla tiene la forma:
Physical Computing Clase 4. Memoria y Variables decimal, binario, hexadecimal Ver anexo 4.1. por favor.
INTRODUCCIÓN A ARDUINO
Conceptos Básicos de Programación. Put a pin into input mode Loop Check if the pin is 0 or 5 volts If the pin has 5 volts Do something End if End Loop.
FUNCIÓN OR Una O otra, para que funcione. Función suma OR abS Es aquella función que es cierta (1), si una o las dos entradas son ciertas.
FUNCIÓN AND Para hacer que funcione, debo accionar un pulsador Y el otro.
FUNCIÓN NOR Una Opuesto a una OR. Función suma NOR abS Equivale a la asociación de la función OR, con la función NOT. Por tanto estamos.
Elaborado por Esteban Agüero Computación física con Arduino y Firefly Esteban Agüero (Valparaíso, Abril 2014) Ejercicio 2: Desvanecimiento.
Servomotores
Introducción al lenguaje PROCESSING para ARDUINO
Computación física con Arduino y Firefly
U11: Recursividad Otra manera de hacer bucles Dicen algunos pedagogos que conceptualmente mas sencilla.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
INS-204 Fundamentos de Programacion notas de clase, objetivo, programar en Python con nivel medio de destreza.
ESPECIFICACIONES DE OPERACIÓN DEL MICROCONTROLADOR
El Hardware El Software La Comunidad  Software Libre  Hardware Libre  Puerto USB  Fácil de usar  Precio reducido  Completamente independiente 
Encoders Opticos Armando Mtz. Reyes ITNL.
 ANÁLOGO  DIGITAL.
Introducción a Python Por Cristian Suárez Sistemas Operativos 1 Año 2010.
El módulo “tracemalloc”
Hola.
Hola Mundo. JEJEJEJEJEJEJEJEJEJE.
PROGRAMA DE MAESTRÍA EN INGENIERÍA DE SOFTWARE Integrantes: Edwin Pilataxi Henry Pilataxi José Dorado.
ARDUINO El proyecto Arduino: Recordando… - Pines de entrada
INTRODUCCIÓN A ARDUINO
BUZZER O ALTAVOZ Convierten una señal eléctrica en una onda de sonido. Buzzer pasivo: no disponen de corriente interna por lo que hay que proporcionar.
SISTEMAS DE AUTOMATIZACIÓN Y CONTROL ORIENTADO AL CONOCIMIENTO Y APLICACIÓN DE LOS SISTEMAS EMBEBIDOS SESION 04 José Luis Albites Sanabria MSc. Biomedical.
Clase 9: Repaso/Resumen
Paul Leger SOCKETs Paul Leger
Creación de Servicio Web
3.0 TALLER DE ARDUINO PRESENTACIÓN PARA ALUMNOS DE CUARTO CURSO DE EDUCACIÓN SECUNDARIA OBLIGATORIA.
Nociones básicas sobre C++
Paul Leger SOCKETs Paul Leger
Ayudantía de EC: Sockets
Estructuras de Datos en Python
CLASE IV.
Usando for, while y do while
Nociones básicas sobre C++
Alarma de vigilancia con notificación por correo
Taller de Programación en Redes
Multitareas en Arduino
00:46 1 El software educativo es definido como un conjunto de programas, documentos, procedimientos, y rutinas asociados con la operación de un sistema.
Hola.
Hola mundo HOLA.
ACCIDENTES EN LA ESCUELA. ¿Podemos evitar los accidentes? ¿Cómo?
Primeros pasos con Arduino
Present Perfect Camp Spanish 3 &
PROGRAMACIÓN (2).
Hola.
Who is George and where is he from? Your daughter is my cousin.
Hola.
Variables, Expresiones y Enunciados
Hola. hola hola hola.
ARDUINO ARDUINO El proyecto Arduino: Recordando… - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino.
Transcripción de la presentación:

Cómo interactuar con arduino usando Python y Firmata Pyfirmata Hackmeeting – 2011 GISA Elkartea Ales Zabala

Volcar en Arduino el sketch StandardFirmata. Instalar pyfirmata: Puesta a punto Volcar en Arduino el sketch StandardFirmata. Instalar pyfirmata: Volcar en Arduino el sketch StandardFirmata Instalar pyfirmata $ hg clone https://bitbucket.org/tino/pyfirmata $ cd pyfirmata; python setup.py install Si necesitas servos: $ svn export https://lagunak/svn/krnl/pyfirmata_servo/servo.patch . $ patch -p0 < servo.patch $ python setup.py install Hackmeeting – 2011 GISA Elkartea Ales Zabala

Este ejemplo hace parpadear el led enchufado al pin digital 13 Hola mundo (blink) Este ejemplo hace parpadear el led enchufado al pin digital 13 Ademas de digital también hay analog, y además de write también hay read :-) import time from pyfirmata import Arduino board = Arduino('/dev/ttyUSB0') while 1: board.digital[13].write(1) time.sleep(1) board.digital[13].write(0) Hackmeeting – 2011 GISA Elkartea Ales Zabala

Lecturas Para evitar que el Arduino nos esté mandando contínuamente datos en los pines de lectura, se utiliza un Iterator: it = util.Iterator(board) it.start() board.analog[0].enable_reporting() board.analog[0].read() El Iterator es un thread, por lo que hay que matarlo al salir. Lo más facil es romper la conexión con el puerso serie, el thread se suicida el solito. board.exit() Hackmeeting – 2011 GISA Elkartea Ales Zabala

Ventilador (Digital) pin.read() == 0..1 pin.write([0,1]) 24 def start(self): 25 while self.loop: 26 newvalue = self.board.analog[self.pot_pin].read() 27 print newvalue 28 if self.value != newvalue: 29 if newvalue > 0.5: 30 self.board.digital[self.motor_pin].write(1) 31 else: 32 self.board.digital[self.motor_pin].write(0) 33 self.value = newvalue 34 time.sleep(0.5) Hackmeeting – 2011 GISA Elkartea Ales Zabala

PC Speaker (PWM) pin.mode = PWM pin.write(0..1) 6 def __init__(self, port, pot_pin, motor_pin): [...] 17 self.board.digital[self.motor_pin].mode = PWM 26 def start(self): 27 while self.loop: 28 newvalue = self.board.analog[self.pot_pin].read() 29 print newvalue 30 if self.value != newvalue: 31 self.board.digital[self.motor_pin].write(newvalue) 32 self.value = newvalue 33 time.sleep(0.5) Hackmeeting – 2011 GISA Elkartea Ales Zabala

Servos pin.mode = SERVO pin.write(angulo) 6 def __init__(self, port, pot_pin, motor_pin): [...] 17 self.board.digital[self.motor_pin].mode = SERVO 26 def start(self): 27 while self.loop: 28 newvalue = self.board.analog[self.pot_pin].read() 29 if (newvalue is not None) and (self.value != newvalue): 30 angle = int(180 * newvalue) 31 print"%s => %s" % (newvalue, angle) 32 self.board.digital[self.motor_pin].write(angle) 33 self.value = newvalue 34 time.sleep(0.5) Hackmeeting – 2011 GISA Elkartea Ales Zabala

Representacion del estado del Arduino con una GUI en PyQT Otro ejemplo Representacion del estado del Arduino con una GUI en PyQT De igual manera podríamos usar sockets, la carga del ordenador, consultas http... Hackmeeting – 2011 GISA Elkartea Ales Zabala

También existe pyduino, pero parece que es un proyecto abandonado. Comentarios Es muy fácil de usar. Con la consola de python podemos hacer pruebas directamente en Arduino. También existe pyduino, pero parece que es un proyecto abandonado. En pyfirmata hay un desarrollador (un tanto esporádico), y una persona que envía parches (además del mío :-). Tiene sus limitaciones (DHT11). Todavía le faltan cosas para implementar completamente firmata, aunque lo más típico ya está. Hackmeeting – 2011 GISA Elkartea Ales Zabala