Kickstarter で募集15,000ポンドを目標に募集して、最後は97,803ポンド集まっていたMicro Pythonのボードが先々週くらいに届いていました。
自分が選択していたのはこれ
[code lang=text]
Wireless kit: get a Micro Python board ready-to-run, a Bluetooth module, a graphical LCD, a servo motor, touch sensor, a speaker and amplifier chip, microphone, light sensor, LEDs, push buttons, header pins, solderless breadboard, resistors, capacitors, wires, and online instructions.
[/code]
やっと触れたので少しメモです。
主にチュートリアルにそって試しました。
Micro Python – Python for microcontrollers
Macとつなぐ
USBケーブルで繋げば認識していました。
まず、ドライブとして”NO NAME”のデバイスがマウントされます。
ファイルが格納されており、それぞれ次のようなファイルです。
- boot.py: pyboardを起動した時に動作するスクリプトで、設定なんかを書いとく。
- main.py: メインのスクリプトで、boot.pyを実行した後呼ばれる。
- README.txt: よくあるりーどみー
- pybcdc.inf: Widnows用のドライバファイル
main.pyに次のように書いておくと、pyboardを再起動してもLED4(青)が点灯します。
[code lang=python]
import pyb
pyb.LED(4).on()
[/code]
慣れ親しんだpythonのシェルでLEDを操作できる!
Micro Python – Python for microcontrollers
terminalからscreenで接続します。
[code lang=bash]
screen /dev/tty.usbmodem1a1222
[/code]
接続するとpythonのシェルになるので、普通にpythonできます。
例えば、こんな感じでLEDをチカチカさせることができます。
[code lang=python]
led = pyb.LED(2)
while True:
led.toggle()
pyb.delay(1000)
[/code]
簡単ですね!
スイッチ
pyboardには2つのスイッチがついていて、RSTと書かれた方がリセットスイッチで、
USRと書かれた方はユーザーがプログラムすることができるようになっています。
[code lang=python]
>>> sw = pyb.Switch()
>>> sw()
False
>>> sw() #ボタンを押しながら実行してみる
True
[/code]
押されたときを検出するには、callbackを登録しておくことで実現できます。
[code lang=python]
sw.callback(lambda: print('press!'))
[/code]
この後、USRボタンを押すと press! と表示されます。
加速度センサ
[code lang=python]
>>> accel = pyb.Accel()
>>> accel.x()
1
>>> accel.y()
-1
>>> accel.z()
22
[/code]
セーフモードと初期化(工場出荷時設定にリセット)
- セーフモード:
- 起動した状態でUSRボタンを押しながら、RSTボタンを押して離す。
- オレンジのLEDだけが点灯しているときにUSRボタンを離す。
- 工場出荷時リセット:
- 起動した状態でUSRボタンを押しながら、RSTボタンを押して離す。
- オレンジと緑の両方が点灯しているときにUSRボタンを離す。
USB mouse(HID)モード
USB HIDデバイスとして認識させることができるみたい。
boot.py
[code lang=python]
import pyb
pyb.usb_mode('CDC+HID')
[/code]
これでpyboardを起動し直すと、MacではKeyboardとしての設定画面が表示されたが、特に設定せずウィンドウを閉じた。
次にこんなプログラムを走らせてみる。
[code lang=python]
import pyb
switch = pyb.Switch()
accel = pyb.Accel()
while not switch():
pyb.hid((0, accel.x(), accel.y(), 0))
pyb.delay(20)
[/code]
これで、pyboardでマウスカーソルを制御することができる! お手軽!
lcd
lcdは外部モジュールを接続します。
今回は届いた中にlcdが入っていたので組み立ててつけました。
チュートリアルのコードを動かすとこんなかんじです。
[code lang=python]
lcd = pyb.LCD('X')
lcd.light(True)
for x in range(-80, 128):
lcd.fill(0)
lcd.text('Hello uPy!', x, 10, 1)
lcd.show()
pyb.delay(25)
[/code]
おわり
今日はここまで。