The document discusses blending Python and electronics for various projects. It outlines the author's experience with Python and electronics and compares different approaches to combining the two, including using a Raspberry Pi, Arduino with Firmata, or MicroPython. MicroPython embeds a Python interpreter directly on a microcontroller and is presented as a good option for beginners or for more advanced projects. OpenMV is also mentioned as a Python-powered machine vision platform that uses MicroPython.
2. My experience in Python
● First project – parsing RigasSatiksme data
● Various optimisations, school projects
● Webmin-like interface
● Some Linux utilities
● Electronics
3. Why Python?
● Ease to use – get started in a matter of minutes
● Ease to experiment - console&forgiveness
● Just code, don't care about low-level
● When you need low-level, it's there for you
● Great for prototyping
● … It's dynamic – you learn how to debug
4. My experience in electronics
● Simple circuits
● PC repairs
● Microcontroller-enabled circuits
● User-friendly electronics
5. What electronics are about?
● Getting data from sensors
● Processing data
● Sending data to actuators
9. 20% Python, 80% electronics
● LLL (low-level language) on MCU
● Python on PC
● PC and MCU communicate using serial or
parallel ports
● Most of the behaviour is controlled by LLL, PC
sends commands to execute functions but has
no access to MCU hardware
● High entry level needed for MCU code
10. Low-level code on MCU + Python on PC
Summary:
● More capabilities, but harder to reach them
● Fast
Suitable projects:
● Speed-related tasks
● Projects requiring to work without PC
11. 50% Python, 50% electronics
● Python + Arduino, using Firmata firmware for
Arduino side and pyFirmata library on PC side
● All the behaviour is defined by script on PC side
● LLL on MCU but you don't need to write any
13. Python + Firmata for Arduino
Summary:
● Is fastest&cheapest base for simple projects
● Might hit the limits when developing something more
complicated
Suitable projects:
● Minimalistic projects
● Cheap&fast projects, prototypes
Find out more: http://slidesha.re/1zB1Rw4
14. 80% Python, 80% electronics
● Raspberry Pi – ARM MCU with Linux
● Has tons of processing power
● Runs Python, as well as a lot of other languages
● Can easily interface with electronics
● Has Linux layer between Python and electronics
which annoys me sometimes
● http://www.raspberrypi.org/
17. Some great advantages
● All the advantages of Linux PC
● USB, HDMI, RCA, Ethernet ports, audio output
● A lot of RPi-dedicated hardware - “shields”,
extending functionality
● Huge user base
18. Raspberry Pi
Summary
● Universal and powerful
● Is great for really advanced projects
● Might be an expensive overkill for other
Suitable projects:
● All kinds of projects
19. What projects exactly?
● Computers for education
● Home media servers&HTPCs
● Print/webcam/web/file/torrent/game servers
● Robots&controllers&other awesome stuff
● DIY smart house systems&security systems
● Development-related projects
● Wearable technology & car PCs
● http://pingbin.com/2012/12/30-cool-ideas-raspberry-pi-project/
20. 100% Python, 100% electronics
● MicroPython project
● Embeds Python interpreter on a MCU
● Rewrite of CPython to be less memory-hungry
● Not as powerful as Raspberry Pi, but more powerful
than Arduino
● Compatible with Arduino and some RPi shields
● Awesome
● https://www.kickstarter.com/projects/214379695/micro-python-
21. MicroPython advantages
● Is already usable and still in active development
● Has a growing community
● Completely open-source
● Assembler bindings for speed-related tasks
● The interpreter runs on Unix
22. MicroPython disadvantages
● Has a limited set of modules implemented
● Has some memory limitations
● https://github.com/micropython/micropython/wiki/Differences
23. What a beginner can do with
MicroPython?
● Start experimenting with electronics
● Make your first simple project
● Make your first useful project
● Make your first usable project
24. MicroPython
Summary
● Is pure Python
● Good for beginners in electonics
Suitable projects:
● From simple to complicated projects