Micro Python

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ケーブルで繋げば認識していました。

IMG 6653

まず、ドライブとして”NO NAME”のデバイスがマウントされます。

Screen Shot 2014 07 13 at 14 38 01

ファイルが格納されており、それぞれ次のようなファイルです。

  • 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できます。

Screen Shot 2014 07 13 at 14 37 30

例えば、こんな感じで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]

おわり

今日はここまで。

SmartQ V5

Androidが触りたかったので試しに買ってみました。

SmartQ V5
SmartDevice V Series MID

XPreiaX10も欲しかったけど、AUとSoftbankを契約してるので更にもう一台ってのもどうかと思いこっちに。
高くはないし電話と関係ないし、壊しても問題ないしね。

ひとまずは、購入して起動してAndroid、Ubuntu、WinCEと触ってみて、公式のファームアップグレードをやってみた。
ファームアップグレードはSDにコピーして、+ボタンを押しながら電源を入れるだけ何ですが、どうもSDカードの相性があるようで、Transcendの8GのSDHCはだめで、ADATAの8Gのやつだと成功しました。