Está en la página 1de 9

GISA Elkartea

Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
Pyfirmata
!"mo interactuar con ar#uino usan#o
$%thon % &irmata
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
Puesta a punto

'olcar en Ar#uino el sketch (tan#ar#&irmata

)nstalar p%irmata
$ hg clone https://bitbucket.org/tino/pyfirmata
$ cd pyfirmata; python setup.py install

(i necesitas servos:

'olcar en Ar#uino el sketch (tan#ar#&irmata.

)nstalar p%irmata:
$ svn export https://lagunak/svn/krnl/pyfirmata_servo/servo.patch .
$ patch -p0 servo.patch
$ python setup.py install
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
Hola mundo (blink)

*ste ejemplo hace parpa#ear el


le# enchua#o al pin #igital 1+

A#emas #e digital tambi,n ha%


analog- % a#em.s #e write
tambi,n ha% read :-/
import time
from pyfirmata import !rduino
board " !rduino#$/dev/tty%&'0$(
)hile *:
board.digital+*,-.)rite#*(
time.sleep#*(
board.digital+*,-.)rite#0(
time.sleep#*(
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
Lecturas

$ara evitar 0ue el Ar#uino nos est, man#an#o cont1nuamente #atos en


los pines #e lectura- se utili2a un )terator:

*l )terator es un threa#- por lo 0ue ha% 0ue matarlo al salir. 3o m.s


acil es romper la cone4i"n con el puerso serie- el threa# se suici#a el
solito.
it " util..terator#board(
it.start#(
board.analog+0-.enable_reporting#(
board.analog+0-.read#(
board.exit#(
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
Ventilador (Digital)
/0 def start#self(:
/1 )hile self.loop:
/2 ne)value " self.board.analog+self.pot_pin-.read#(
/3 print ne)value
/4 if self.value 5" ne)value:
/6 if ne)value 7 0.1:
,0 self.board.digital+self.motor_pin-.)rite#*(
,* else:
,/ self.board.digital+self.motor_pin-.)rite#0(
,, self.value " ne)value
,0 time.sleep#0.1(

pin.read() == 0..1

pin.write([0,1])
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
PC Speaker (PWM)
2 def __init__#self8 port8 pot_pin8 motor_pin(:
+...-
*3 self.board.digital+self.motor_pin-.mode " 9:;
+...-
/2 def start#self(:
/3 )hile self.loop:
/4 ne)value " self.board.analog+self.pot_pin-.read#(
/6 print ne)value
,0 if self.value 5" ne)value:
,* self.board.digital+self.motor_pin-.)rite#ne)value(
,/ self.value " ne)value
,, time.sleep#0.1(

pin.mode = PWM

pin.write(0..1)
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
Seros
2 def __init__#self8 port8
pot_pin8 motor_pin(:
+...-
*3 self.board.digital+self.motor_pin-.mode " &<=>?
+...-
/2 def start#self(:
/3 )hile self.loop:
/4 ne)value " self.board.analog+self.pot_pin-.read#(
/6 if #ne)value is not @one( and #self.value 5" ne)value(:
,0 angle " int#*40 A ne)value(
,* printBCs "7 CsB C #ne)value8 angle(
,/ self.board.digital+self.motor_pin-.)rite#angle(
,, self.value " ne)value
,0 time.sleep#0.1(

pin.mode = SERVO

pin.write(anguo)
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
!tro e"emplo

5epresentacion #el esta#o #el


Ar#uino con una 67) en $%89

:e igual manera po#r1amos


usar sockets- la carga #el
or#ena#or- consultas http...
GISA Elkartea
Ales Zabala
Hackmeeting 2011
http://lagunak.gisa-elkartea.org/projects/krnl
http://lagunak.gisa-elkartea.org/svn/krnl/recetario/irmata
Comentarios

*s mu% .cil #e usar.

!on la consola #e p%thon po#emos hacer pruebas #irectamente en


Ar#uino.

9ambi,n e4iste p%#uino- pero parece 0ue es un pro%ecto


aban#ona#o.

*n p%irmata ha% un #esarrolla#or ;un tanto espor.#ico/- % una


persona 0ue env1a parches ;a#em.s #el m1o :-/.

9iene sus limitaciones ;:H911/.

9o#av1a le altan cosas para implementar completamente irmata-


aun0ue lo m.s t1pico %a est..

También podría gustarte