レビュー

Pythonと同じ文法でマイコンを操作できる「MicroPython」、エミュレーターもあり気軽に遊べる


マイクロコンピューターや組み込み機器で使われるプログラミング言語はCC++が一般的ですが、プログラミング初級者にとっては学習障壁が比較的高い言語でもあります。Python 3と高い互換性があるプログラミング言語処理系「MicroPython」を使うと、プログラミング初心者でも理解しやすいPython 3の文法を使って手軽にマイコンをプログラミングすることができます。

MicroPython - Python for microcontrollers
http://micropython.org/

MicroPythonは、Pythonの文法を使ってマイコンや組み込み機器のプログラミングができる言語処理系です。ソースコードがテストされた割合を示すコード網羅率はコア部分については98.4%であり、x86ARMXtensaといった命令セットに対応しているとのこと。

例えば、MicroPython用マイコン「pyboard」で以下のコードを実行すると、pyboardのLEDをオンにして「Hello MicroPython!」とシリアルコンソールに出力することができます。


また、ブラウザ上でpyboardを操作できるウェブアプリも公開されています。ウェブアプリの画面はこんな感じ。


黒いコンソール画面で「pyboard用ライブラリをインポートし、LEDをオンにする」コードを記述してEnterキーを押すと……


右下に表示されている仮想pyboardのLEDが赤く点灯しました。


「CHOOSE A DEMO...」をクリックすると、MicroPythonによるさまざまなプログラミングのデモを楽しむことができます。


例えばシリアルバスのI2Cで接続した液晶ディスプレイを操作する「I2C LCD」を選択して「RUN SCRIPT」をクリックすると……


仮想の液晶ディスプレイにMicroPythonのロゴマークが表示されました。


サンプルコードそのものは以下。ハードウェア関連の関数を含んだMicroPythonのモジュール「machine」と、フレームバッファを操作するモジュール「framebuf」を読み込んで、液晶ディスプレイにロゴを表示しています。

import machine
import framebuf

scl = machine.Pin('X9')
sda = machine.Pin('X10')
i2c = machine.I2C(scl=scl, sda=sda)

fbuf = framebuf.FrameBuffer(bytearray(64 * 32 // 8), 64, 32, framebuf.MONO_HLSB)

logo = framebuf.FrameBuffer(bytearray(17 * 17 // 8), 17, 17, framebuf.MONO_HLSB)

logo.fill(0)
logo.fill_rect(1, 1, 15, 15, 1)
logo.vline(4, 4, 12, 0)
logo.vline(8, 1, 12, 0)
logo.vline(12, 4, 12, 0)
logo.vline(14, 13, 2, 0)

fbuf.fill(0)
fbuf.blit(logo, 23, 7)

i2c.writeto(8, fbuf)


MicroPythonはpyboardのみならず、ESP32ESP8266でもファームウェアをインストールすることで利用可能。MicroPythonソースコードはGitHub上に公開されています。

GitHub - micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
https://github.com/micropython/micropython

この記事のタイトルとURLをコピーする

・関連記事
自ら電気を生み出す「バッテリーレスIoT」にぴったりなマイコンチップ「ONiO.zero」が登場 - GIGAZINE

スマホ不要でGPSによる位置情報共有やメッセージの送受信が可能になるマイコン用オープンソースソフトウェア「Meshtastic」 - GIGAZINE

自作マイコンとさまざまな装置でカクテルを作ってくれる「Drinkmotizer」 - GIGAZINE

ソフトウェアエンジニアがハードウェアのプログラミングをする時に注意すべきこと - GIGAZINE

指先サイズで500円なのにWi-Fi内蔵・Linux搭載でIoTにも使えるコンピューター「Omega2」 - GIGAZINE

in レビュー,   ソフトウェア,   ウェブアプリ,   ハードウェア, Posted by darkhorse_log

You can read the machine translated English article here.