Python and electronics
My experience in Python 
● First project – parsing RigasSatiksme data 
● Various optimisations, school projects 
● Webmin-like interface 
● Some Linux utilities 
● Electronics
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
My experience in electronics 
● Simple circuits 
● PC repairs 
● Microcontroller-enabled circuits 
● User-friendly electronics
What electronics are about? 
● Getting data from sensors 
● Processing data 
● Sending data to actuators
Why electronics 
Because it's cool!
What one could use electronics for? 
● Assistance in everyday tasks 
● Work optimization 
● Entertainment 
● 
● 
● 
● Space exploration
Blending it together
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
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
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
Python + Firmata for Arduino
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
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/
Raspberry Pi
Raspberry Pi
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
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
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/
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-
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
MicroPython disadvantages 
● Has a limited set of modules implemented 
● Has some memory limitations 
● https://github.com/micropython/micropython/wiki/Differences
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
MicroPython 
Summary 
● Is pure Python 
● Good for beginners in electonics 
Suitable projects: 
● From simple to complicated projects
OpenMV
Python-powered machine vision 
● Has MicroPython firmware, so all the 
advantages 
● Face/object detection 
● Object tracking 
● Thermal vision 
● http://hackaday.io/project/1313-openmv
Videos 
● http://youtu.be/To-KUylzmOM 
● http://youtu.be/T0ZxvSrkm58 
● http://youtu.be/9zFYHiPbdQI 
● http://youtu.be/AuMY1aiAN4k 
● http://youtu.be/s8KxrKeUsDU 
● http://youtu.be/AuMY1aiAN4k 
● http://youtu.be/Fk3Op-CsmFA
Docs 
● http://docs.micropython.org/en/latest/index.html

MicroPython&electronics prezentācija

  • 1.
  • 2.
    My experience inPython ● 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 inelectronics ● Simple circuits ● PC repairs ● Microcontroller-enabled circuits ● User-friendly electronics
  • 5.
    What electronics areabout? ● Getting data from sensors ● Processing data ● Sending data to actuators
  • 6.
  • 7.
    What one coulduse electronics for? ● Assistance in everyday tasks ● Work optimization ● Entertainment ● ● ● ● Space exploration
  • 8.
  • 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 onMCU + 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
  • 12.
    Python + Firmatafor Arduino
  • 13.
    Python + Firmatafor 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/
  • 15.
  • 16.
  • 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 beginnercan 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
  • 25.
  • 26.
    Python-powered machine vision ● Has MicroPython firmware, so all the advantages ● Face/object detection ● Object tracking ● Thermal vision ● http://hackaday.io/project/1313-openmv
  • 27.
    Videos ● http://youtu.be/To-KUylzmOM ● http://youtu.be/T0ZxvSrkm58 ● http://youtu.be/9zFYHiPbdQI ● http://youtu.be/AuMY1aiAN4k ● http://youtu.be/s8KxrKeUsDU ● http://youtu.be/AuMY1aiAN4k ● http://youtu.be/Fk3Op-CsmFA
  • 28.