このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

pyboard 用クイックリファレンス

以下のピン配置は PYBv1.1 用です。pyboard の他のバージョン(PYBv1.0PYBLITEv1.0-ACPYBLITEv1.0 )のピン配置もあります。

PYBv1.1 pinout

以下は pyboard のクイックリファレンスです。このボードを初めて使用する場合は、まず次の章を読むよう検討してください。

ボードの一般的な制御

モジュール pyb を参照してください:

import pyb

pyb.repl_uart(pyb.UART(1, 9600)) # REPL を UART(1) に複製
pyb.wfi() # 割込みまで CPU を一時停止します
pyb.freq() # CPU とバスの周波数を得ます
pyb.freq(60000000) # CPU の周波数を 60MHz に設定します
pyb.stop() # 外部割込みまで CPU を停止します

遅延とタイミング

モジュール time を使います:

import time

time.sleep(1)           # 1 秒スリープします
time.sleep_ms(500)      # 500 ミリ秒スリープします
time.sleep_us(10)       # 10 マイクロ秒スリープします
start = time.ticks_ms() # ミリ秒カウンターの値を得ます
delta = time.ticks_diff(time.ticks_ms(), start) # 時間差を算出します

ボード上の LED

pyb.LED を参照:

from pyb import LED

led = LED(1) # 1=赤、2=緑、3=黄色、4=青
led.toggle()
led.on()
led.off()

# LED 3 と 4 は PWM 照度(0-255)をサポートします
LED(4).intensity()    # 照度を得ます
LED(4).intensity(128) # 照度を半分に設定します

ボード上のスイッチ

pyb.Switch を参照:

from pyb import Switch

sw = Switch()
sw.value() # True または False を返します
sw.callback(lambda: pyb.LED(1).toggle())

ピンと GPIO

pyb.Pin を参照:

from pyb import Pin

p_out = Pin('X1', Pin.OUT_PP)
p_out.high()
p_out.low()

p_in = Pin('X2', Pin.IN, Pin.PULL_UP)
p_in.value() # 0 または 1 を返します

サーボ制御

pyb.Servo を参照:

from pyb import Servo

s1 = Servo(1) # ポジション 1 (X1, VIN, GND)のサーボ
s1.angle(45) # 45 度に回転
s1.angle(-60, 1500) # 1500ms で -60 度に回転
s1.speed(50) # 以降のサーボの回転に適用

外部割込み

pyb.ExtInt を参照:

from pyb import Pin, ExtInt

callback = lambda e: print("intr")
ext = ExtInt(Pin('Y1'), ExtInt.IRQ_RISING, Pin.PULL_NONE, callback)

タイマー

pyb.Timer を参照:

from pyb import Timer

tim = Timer(1, freq=1000)
tim.counter() # カウンター値を得ます
tim.freq(0.5) # 0.5 Hz
tim.callback(lambda t: pyb.LED(1).toggle())

RTC (リアルタイムクロック)

pyb.RTC を参照:

from pyb import RTC

rtc = RTC()
rtc.datetime((2017, 8, 23, 1, 12, 48, 0, 0)) # 指定の日時を設定します
rtc.datetime() # 日時を得ます

PWM (パルス幅変調)

pyb.Pinpyb.Timer を参照:

from pyb import Pin, Timer

p = Pin('X1') # X1 は TIM2, CH1 を持ちます
tim = Timer(2, freq=1000)
ch = tim.channel(1, Timer.PWM, pin=p)
ch.pulse_width_percent(50)

ADC (アナログ-デジタル変換)

pyb.Pinpyb.ADC を参照:

from pyb import Pin, ADC

adc = ADC(Pin('X19'))
adc.read() # 値 0-4095 を読み込みます

DAC (デジタル-アナログ変換)

pyb.Pinpyb.DAC を参照:

from pyb import Pin, DAC

dac = DAC(Pin('X5'))
dac.write(120) # 0 から 255 の範囲で出力

UART (シリアルバス)

pyb.UART を参照:

from pyb import UART

uart = UART(1, 9600)
uart.write('hello')
uart.read(5) # 5 バイトまで読み込みます

SPI バス

pyb.SPI を参照:

from pyb import SPI

spi = SPI(1, SPI.CONTROLLER, baudrate=200000, polarity=1, phase=0)
spi.send('hello')
spi.recv(5) # バス上で 5 バイトを受信
spi.send_recv('hello') # 5 バイトを送受信

I2C バス

ハードウェア I2C は I2C('X')I2C('Y') で pyboard の X と Y の半分で利用できます。あるいは、ペリフェラルの整数識別子、たとえば I2C(1) を渡します。バス名の代わりに sclsda ピンを明示的に指定することにより、ソフトウェア I2C も利用できます。詳細については machine.I2C を参照してください。

from machine import I2C

i2c = I2C('X', freq=400000)                 # ハードウェア I2C オブジエクトを作成
i2c = I2C(scl='X1', sda='X2', freq=100000)  # ソフトウェア I2C オブジエクトを作成

i2c.scan()                          # ペリフェラルアドレスのリストを返します
i2c.writeto(0x42, 'hello')          # アドレス 0x42 のペリフェラルに 5 バイト送信します
i2c.readfrom(0x42, 5)               # ペリフェラルから 5 バイト受信します

i2c.readfrom_mem(0x42, 0x10, 2)     # ペリフェラル 0x42 のスレーブメモリ 0x10 から2バイト読み込みます
i2c.writeto_mem(0x42, 0x10, 'xy')   # ペリフェラル 0x42 のスレーブメモリ 0x10 へ2バイト書き込みます

注記: 古い I2C サポートについては pyb.I2C を参照:

I2S バス

machine.I2S を参照。

from machine import I2S, Pin

i2s = I2S(2, sck=Pin('Y6'), ws=Pin('Y5'), sd=Pin('Y8'), mode=I2S.TX, bits=16, format=I2S.STEREO, rate=44100, ibuf=40000) # create I2S object
i2s.write(buf)             # オーディオサンプルのバッファを I2S デバイスに書き出す

i2s = I2S(1, sck=Pin('X5'), ws=Pin('X6'), sd=Pin('Y4'), mode=I2S.RX, bits=16, format=I2S.MONO, rate=22050, ibuf=40000) # create I2S object
i2s.readinto(buf)          # I2S デバイスからのオーディオサンプルをバッファに読み込む

I2S クラスは現在、テクニカルプレビューとして利用できます。プレビュー期間中は、ユーザーからのフィードバックを歓迎します。このフィードバックに基づいて、I2S クラス API と実装が変更される可能性があります。

PYBv1.0/v1.1 には1つの I2S バス、id=2 があります。PYBD-SFxW には2つの I2S バス、id=1 と id=2 があります。I2S は SPI と共有されます。

CAN バス (Controller Area Network)

pyb.CAN を参照:

from pyb import CAN

can = CAN(1, CAN.LOOPBACK)
can.setfilter(0, CAN.LIST16, 0, (123, 124, 125, 126))
can.send('message!', 123)   # id 123 でメッセージを送信
can.recv(0)                 # FIFO 0 でメッセージを受信

ボード上の加速度センサー

pyb.Accel を参照:

from pyb import Accel

accel = Accel()
print(accel.x(), accel.y(), accel.z(), accel.tilt())