![Page 1: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/1.jpg)
PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS
Alessandro [email protected]@elpaso
Davide [email protected]@davidecorio
EuroPython 2012 - Florence
License: Creative Commons Attribution - Share Alike 3.0
![Page 2: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/2.jpg)
Introduction
whowhywhat
![Page 3: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/3.jpg)
In the beginning
In the beginning was the abacus...Technology started on real things you could touch
![Page 4: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/4.jpg)
Being digital
From Big-Blue to Micro-Soft
![Page 5: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/5.jpg)
Touching the Sky
Alice in Metaphorsland: desktops, trash-bins and wizards
![Page 6: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/6.jpg)
Leaving Earth
Abstraction can be addictive
![Page 7: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/7.jpg)
Unusable interfaces
![Page 8: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/8.jpg)
It's all about Interactivity
![Page 9: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/9.jpg)
Sniffing the stacktrace
![Page 10: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/10.jpg)
Being real
Physical computing: low cost MCU's and electronic components
![Page 11: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/11.jpg)
Here comes the King
Arduino's revolution
minimaleasy to usecheapfrom artistsMade in Italyopen hardware
![Page 12: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/12.jpg)
What's inside?
hw: device: electronic prototyping boardsw: bootloadersw: librariessw: IDEcommunitylot of manualslot of examples
![Page 13: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/13.jpg)
The board
Arduino UNO
![Page 14: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/14.jpg)
MCU
Atmega 328
RAM 2 KBROM 32 KBEEPROM 1 KB14 digital pins6 PWM capable6 analog inputsUp to 16 MHzavr-gcc
![Page 15: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/15.jpg)
Power to the people!
1982 – IBM 80286
![Page 16: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/16.jpg)
Splitting the byte
Atmega 328 Registers and ports
![Page 17: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/17.jpg)
Pins
Digital IOPWM (digital)
Analog inputs
![Page 18: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/18.jpg)
PWM (pulse width modulation)
Logical 0
Logical 1
255 levels
![Page 19: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/19.jpg)
C programming
![Page 20: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/20.jpg)
Programming
setuploopblink!
![Page 21: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/21.jpg)
King's audience
Arduino talks and listens
serialsensorsRFethernet
![Page 22: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/22.jpg)
At the king's court
shieldsclones
![Page 23: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/23.jpg)
DIY Arduino
< 10 €
![Page 24: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/24.jpg)
Snake's attack
ASCII messagescompact protocols
>>> import pyfirmata
>>> print "yeah, it works!! :-D
"
![Page 25: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/25.jpg)
ASCII snake
>>> import serial>>> ser = serial.Serial('/dev/ttyACM0', 9600)>>> while 1:... ser.readline()'1 Hello world!\r\n''2 Hello world!\r\n''3 Hello world!\r\n'
>>> import serial>>> ser = serial.Serial('/dev/ttyACM0', 9600)>>> ser.write('5')
![Page 26: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/26.jpg)
The firmata protocol
http://firmata.org/wiki/Main_Page
pyfirmata to the rescue
https://bitbucket.org/tino/pyfirmata/src
![Page 27: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/27.jpg)
PyFirmata example
![Page 28: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/28.jpg)
Embedded snakes
Python on a chip
http://code.google.com/p/python-on-a-chip/
![Page 29: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/29.jpg)
Other projects
Python Arduino Prototyping APIhttps://github.com/HashNuke/Python-Arduino-Prototyping-API
Python 2B (ASCII protocol)http://arduino.cc/playground/Code/2B
![Page 30: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/30.jpg)
OpenERP arduino controller
Demo
https://github.com/elpaso/arduinocontrollerhttp://www.youtube.com/watch?feature=player_embedded&v=MkxK9bHPZxQ
![Page 31: PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS · PYTHON AND ARDUINO: A TALE OF SNAKES AND KINGS Alessandro Pasotti a.pasotti@itopen.it @elpaso Davide Corio davide.corio@domsense.com](https://reader030.vdocuments.us/reader030/viewer/2022021808/5c46954193f3c34c5061d48c/html5/thumbnails/31.jpg)
THANKS!
Alessandro [email protected]@elpaso
Davide [email protected]@davidecorio
License: Creative Commons Attribution - Share Alike 3.0