pyboardを試してみよう

投稿者:

pyboardを扱い始めました。

少し前にCircutPythonを試してみましたが、今回のpyboardはCircuitPythonの元であるMicroPython用のボードです。

それ専用のボードなので、開封してPCに差した時からPythonでプログラムを始められます。

pyboardはPC上ではPYBFLASHという名前のストレージとして見えるので、そこにPythonプログラムを書き込んだファイル(main.py)を放り投げこむだけです。

インタラクティブインタプリターモード(REPL)も使えます。macなら特に何もインストールなしでscreenコマンドで繋がります。Windowsの場合はドライバが必要で、PYBFLASHの中にあるpybcdc.infファイルでインストールを行います。

ボードの上には、リセットボタン以外にプログラムから利用できるボタンが1つ、LEDが4つ、3軸の加速度センサーが1つ、SDカードホルダーが1つ搭載されていて、まずはそれで遊んでみることができます。

MicroPythonのサイトにはシミュレーターもあるんですね。Pythonを使ってみるには良いかもしれないと思いました。

以上で終わってしまうのも寂しいので、今回は、本体にEthernetの機能を追加して、HTTP通信を試してみることにしました。

実はMicroPythonのライブラリにはnetworkというモジュールが用意されていて、うちで扱っているWIZ820ioが使えるようです。

やってみましょう。まず、MicroPythonのファームウエアをnetworkモジュールを含んだものにしないとなりません。

バージョン1.1のpyboard(Liteではない方)用のnetwork入りファームウエアが用意されているのでそこからダウンロードします。

ファームウエアのインストール方法はこちらに載っているとおりです。私はPython3でpydfu.pyを使ってファームのアップデートを行いました。

WIZ820ioとpyboardの接続はこちらに載っているのに加えて電源を繋ぎます。

WIZ820io 3V3 <-> pyboard VIN3.3
WIZ820io GND <-> pyboard GND

あとはEthernetケーブルを繋いでPythonのプログラムを書くだけです。

プログラムは、networkモジュールでWIZ820ioとの接続ピンを指定した後、IPアドレスなどの設定を行います。そのあとsocketモジュールでHTTP通信を行います。

macアドレスの設定はnetworkの中に関数が特に無いようだったので、WIZ820ioのData SheetのPDFを参照しながら、SPIで設定することにしました。

そのプログラムがこちら。

試してみる場合はご自身の環境に合わせた設定が必要です。

macアドレスは(WIZ820ioを当社から購入した場合なら)当社で発行したものがWIZ820ioの本体にシールで貼り付いていますので、そこを書き換え。それからnic.ifconfigのところは自分のローカルネットワークに合わせて変更。あとはリクエスト先サーバーのホスト名やリクエストパスなどを設定し、以上でプログラムの完成です。

できたプログラムはREPLで打ち込むか、main.pyという名前でPYBFLASHに投げ込みましょう。

ちなみに、REPLではインデントされたプログラムをコピペすると変になってしまうので、Ctrl-Eを押してからやってみると良いそうです。

このプログラムは、USR(リセットじゃないの方)のボタンを押すと指定したウェブサイトにHTTP GETをしに行きます。

ボタンを押したらインタラプトが起きて関数を実行するというところもPythonで書けるんですね。