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

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

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

WiPy のピン配置と代替機能の表

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

ボード全般の制御(スリープモードを含む)

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

import machine

help(machine) # machine モジュールの全メンバーを表示
machine.freq() # CPU の周波数を取得
machine.unique_id() # ボードの6バイトの一意な id を返します(WiPy の MAC アドレス)

machine.idle()        # 平均電流が (~12mA) まで下がり、任意の割り込みで復帰します
machine.lightsleep()  # WLAN 以外のすべてが電源断になります(平均電流 ~950uA)
                      # Pin、RTC、WLAN から復帰します
machine.deepsleep()   # 最も深いスリープモード。MCU はリセットから開始します。Pin と RTC から復帰します。

ピンと GPIO

machine.Pin を参照してください。

from machine import Pin

# GP2 を gpio モード (alt=0) で初期化して出力にします
p_out = Pin('GP2', mode=Pin.OUT)
p_out.value(1)
p_out.value(0)
p_out.toggle()
p_out(True)

# GP1 をプルアップ有効の入力にします
p_in = Pin('GP1', mode=Pin.IN, pull=Pin.PULL_UP)
p_in() # 値を取得、0 か 1

タイマー

machine.TimerWiPymachine.Pin を参照してください。タイマーの id は 0 から 3 までの値を取ります。:

from machine import Timer
from machine import Pin

tim = Timer(0, mode=Timer.PERIODIC)
tim_a = tim.channel(Timer.A, freq=1000)
tim_a.freq(5) # 5 Hz

p_out = Pin('GP2', mode=Pin.OUT)
tim_a.irq(trigger=Timer.TIMEOUT, handler=lambda t: p_out.toggle())

PWM (パルス幅変調)

machine.Pinmachine.Timer を参照してください。

from machine import Timer

# タイマー1を PWM モードにします。幅は 16 ビットでなければなりません
tim = Timer(1, mode=Timer.PWM, width=16)

# チャネル A を 1KHz、デューティサイクル 50.55% で有効にします
tim_a = tim.channel(Timer.A, freq=1000, duty_cycle=5055)

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

machine.ADCWiPy を参照してください。

from machine import ADC

adc = ADC()
apin = adc.channel(pin='GP3')
apin() # 値を読み取り、0〜4095

UART (シリアルバス)

machine.UART を参照してください。

from machine import UART
uart = UART(0, baudrate=9600)
uart.write('hello')
uart.read(5) # 最大 5 バイトを読み込み

SPI バス

machine.SPI を参照してください。

from machine import SPI

# SPI コントローラを 2MHz で設定
spi = SPI(0, SPI.CONTROLLER, baudrate=2_000_000, polarity=0, phase=0)
spi.write('hello')
spi.read(5) # バス上で 5 バイトを受信
rbuf = bytearray(5)
spi.write_readinto('hello', rbuf) # 5 バイトを送信して受信

I2C バス

machine.I2C を参照してください。

from machine import I2C
# I2C バスを設定
i2c = I2C(baudrate=100000)
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 バイト書き出し

ウォッチドッグタイマー (WDT)

machine.WDT を参照してください。

from machine import WDT

# WDT をタイムアウト 5s で有効化(最小値は 1s)
wdt = WDT(timeout=5000)
wdt.feed()

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

machine.RTC を参照してください

from machine import RTC

rtc = RTC() # デフォルトの時刻と日付で初期化
rtc = RTC(datetime=(2015, 8, 29, 9, 0, 0, 0, None)) # 特定の時刻と日付で初期化
print(rtc.now())

def alarm_handler (rtc_o):
    pass
    # ブロックしない処理を行います
    # 注意: irq の中から telnet 経由で表示することはできません。
    # UART 経由でのみ可能です

# 5 秒後に切れる RTC アラームを作成
rtc.alarm(time=5000, repeat=False)

# RTC 割り込みを有効化
rtc_i = rtc.irq(trigger=RTC.ALARM0, handler=alarm_handler, wake=machine.SLEEP)

# RTC アラームが切れて復帰させてくれるのを待つサスペンドモードに入ります
machine.lightsleep()

SD カード

machine.SD を参照してください。

from machine import SD
import vfs

# クロックピン、コマンドピン、データ0ピン
sd = SD(pins=('GP10', 'GP11', 'GP15'))
# または拡張ボード用のデフォルトのピンを使います
sd = SD()
vfs.mount(sd, '/sd')

WLAN (WiFi)

network.WLANmachine を参照してください。

import machine, network
from network import WLAN

# WLAN サブシステムをステーションモードで設定(デフォルトは AP)
wlan = WLAN(mode=WLAN.STA)
# 固定 IP の設定にします
network.ipconfig(dns='8.8.8.8')
wlan.ipconfig(addr4='192.168.0.107/24', gw4='192.168.0.1')
wlan.scan()     # 利用可能なネットワークをスキャン
wlan.connect(ssid='mynetwork', auth=(WLAN.WPA2, 'mynetworkkey'))
while not wlan.isconnected():
    pass
# WLAN での復帰を有効化
wlan.irq(trigger=WLAN.ANY_EVENT, wake=machine.SLEEP)
# スリープに入ります
machine.lightsleep()
# この状態で FTP か Telnet のサーバーに接続すると WiPy が復帰します

Telnet と FTP のサーバー

network.Server を参照してください

from network import Server

# 新しいユーザー、パスワード、タイムアウト(秒)で初期化
server = Server(login=('user', 'password'), timeout=60)
server.timeout(300) # タイムアウトを変更
server.timeout() # タイムアウトを取得
server.isrunning() # サーバーが動作しているかどうかを確認

ハートビート LED

wipy を参照してください。

import wipy

wipy.heartbeat(False)  # ハートビート LED を無効化
wipy.heartbeat(True)   # ハートビート LED を有効化
wipy.heartbeat()       # ハートビートの状態を取得