micropython&electronics prezentācija

28
Python and electronics

Upload: crimier

Post on 15-Jul-2015

87 views

Category:

Engineering


2 download

TRANSCRIPT

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-python-for-microcontrollers

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