Micro Python その2 インタラクティブシェル編

Micro Python その2 インタラクティブシェル編
目次

接続

MicroUSBでPCと接続すると、ストレージと仮想シリアルポートが認識されます。

Windowsの場合は、ストレージのみ自動認識されて(PYBFLASH)、仮想シリアルポートの方はドライバが求められます。Windows7以下のバージョンならば認識されたストレージの中のpybcdc.infをインストールしましょう。Windows8/8.1の場合はWindowsのスタートアップ設定から、「ドライバー署名の強制を無効にする」を行ってインストールする必要があります。

インタラクティブシェルで遊んでみる

Micro Pythonの機能であるインタラクティブシェルで遊んでみましょう。仮想シリアルポートを使ってPCからインタラクティブにpyboardを制御できます。

ここでは、仮想シリアルポートへの接続にpySerial付属のMinitermを使います。pySerialをインストールしていない場合はpip等でインストールできます。

オプション無しで起動するとポートを選べるので、pyboardのポートを指定します。

>python -m serial.tools.miniterm

--- Available ports:
--- COM3                 Pyboard USB Comm Port (COM3)
Enter port name:

または、起動時に-pオプションでポートを指定しましょう。

>python -m serial.tools.miniterm -p COM3
--- Miniterm on COM3: 9600,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Micro Python v1.3.3 on 2014-10-02; PYBv1.0 with STM32F405RG
Type "help()" for more information.
>>> 

無事起動出来ました。ヘルプを見てみましょう。

>>> help()
Welcome to Micro Python!

For online help please visit http://micropython.org/help/.

Quick overview of commands for the board:
  pyb.info()    -- print some general information
  pyb.delay(n)  -- wait for n milliseconds
  pyb.millis()  -- get number of milliseconds since hard reset
  pyb.Switch()  -- create a switch object
                   Switch methods: (), callback(f)
  pyb.LED(n)    -- create an LED object for LED n (n=1,2,3,4)
                   LED methods: on(), off(), toggle(), intensity(<n>)
  pyb.Pin(pin)  -- get a pin, eg pyb.Pin('X1')
  pyb.Pin(pin, m, [p]) -- get a pin and configure it for IO mode m, pull mode p
                   Pin methods: init(..), value([v]), high(), low()
  pyb.ExtInt(pin, m, p, callback) -- create an external interrupt object
  pyb.ADC(pin)  -- make an analog object from a pin
                   ADC methods: read(), read_timed(buf, freq)
  pyb.DAC(port) -- make a DAC object
                   DAC methods: triangle(freq), write(n), write_timed(buf, freq)

  pyb.RTC()     -- make an RTC object; methods: datetime([val])
  pyb.rng()     -- get a 30-bit hardware random number
  pyb.Servo(n)  -- create Servo object for servo n (n=1,2,3,4)
                   Servo methods: calibration(..), angle([x, [t]]), speed([x, [t]])
  pyb.Accel()   -- create an Accelerometer object
                   Accelerometer methods: x(), y(), z(), tilt(), filtered_xyz()

Pins are numbered X1-X12, X17-X22, Y1-Y12, or by their MCU name
Pin IO modes are: pyb.Pin.IN, pyb.Pin.OUT_PP, pyb.Pin.OUT_OD
Pin pull modes are: pyb.Pin.PULL_NONE, pyb.Pin.PULL_UP, pyb.Pin.PULL_DOWN
Additional serial bus objects: pyb.I2C(n), pyb.SPI(n), pyb.UART(n)

Control commands:
  CTRL-A        -- on a blank line, enter raw REPL mode
  CTRL-B        -- on a blank line, enter normal REPL mode
  CTRL-C        -- interrupt a running program
  CTRL-D        -- on a blank line, do a soft reset of the board

For further help on a specific object, type help(obj)
>>> 

試しにLEDを光らせてみましょう。

>>> pyb.LED(1).on()
>>> 

赤色のLEDが点灯しました。

pyb_led1

次回、LED以外の機能を使ってみます。