MicroPythonで使うWio Terminal - machine.Pin (GPIO)
machine.Pin (GPIO) の使用例
# Wio Terminal machine.Pin (GPIO)のサンプル# This code is provided under a CC0 Public Domain License.# http://creativecommons.org/publicdomain/zero/1.0/# 2022年6月19日 佐藤恭一 https://kyoutan.jpn.org
import timefrom machine import Pin, Map
# 出力led = Pin(50, Pin.OUT)  # 内蔵LEDが接続されている50番のGPIOを出力に設定led = Pin(Map.LED_BUILTIN, Pin.OUT)  # 内蔵デバイスは machine.Mapで定義されているので、こう書くとらくちんled = Pin(Map.LED_BUILTIN, value=1)  # 初期化と同時に出力値を指定することもできるled.init(Pin.IN, Pin.PULL_UP)  # ピンの設定を変更する。入力出力を切り替えたりとかled.init(Pin.OUT)
led.on()       # on / offでGPIOを操作できるtime.sleep(1)led.off()time.sleep(1)
led.value(1)  # valueでもGPIOを操作できるtime.sleep(1)led.value(0)
# 入力buttonC = Pin(Map.WIO_KEY_C, Pin.IN)  # GPIOを入力に設定(KEY_Cは左側のボタン)buttonC = Pin(Map.WIO_KEY_C, Pin.IN, Pin.PULL_DOWN)  # プルダウンを指定することができるbuttonC = Pin(Map.WIO_KEY_C, Pin.IN, Pin.PULL_UP)  # プルアップを指定することもできる
count = 0while True:  # ボタンが押されてる時LEDを点灯させる。10回押したら次へ進む    # led.value(buttonC.value())  # ボタンが押されている時にLEDを点灯させるだけならこの一行で良い    if buttonC.value() == 0:  # ボタンが押されたらLED点灯        led.on()        count += 1        while buttonC.value() == 0:  # ボタンが離されるまで待つ            pass    else:        led.off()  # ボタンが離されたらLED消灯
    if count > 9:        break    time.sleep_ms(50)    # print(count)led.off()
上のように簡単に使えます。
ピン番号はコネクタのピン番号(1~40)を使用します。
micropythonの標準ライブラリにある割り込み機能が Wio Terminalの ArduPyにはありませんでした。残念。
割り込みが使えないと、用途がけっこう限定されちゃう。
machine.Pinの関数一覧
>>> import machine>>> help(machine.Pin)object <class 'Pin'> is of type type  init -- <function>  value -- <function>  off -- <function>  on -- <function>  IN -- 0  OUT -- 1  PULL_UP -- 2  PULL_DOWN -- 3  IRQ_RISING -- 4  IRQ_FALLING -- 3  IRQ_CHANGE -- 2
>>> help(machine.Map)object <class 'Map'> is of type type  LED_BUILTIN -- 50  WIO_BUZZER -- 51  WIO_LIGHT -- 52  WIO_MIC -- 53  WIO_IR -- 54  WIO_KEY_A -- 55  WIO_KEY_B -- 56  WIO_KEY_C -- 57  WIO_5S_UP -- 58  WIO_5S_DOWN -- 61  WIO_5S_LEFT -- 59  WIO_5S_RIGHT -- 60  WIO_5S_PRESS -- 62  A0 -- 13  A1 -- 15  A2 -- 16  A3 -- 18  A4 -- 22  A5 -- 32  A6 -- 33  A7 -- 36  A8 -- 37  DAC0 -- 11  DAC1 -- 26  WIRE -- 0  WIRE1 -- 1  SPI -- 0  SPI1 -- 1  SPI2 -- 2  SPI3 -- 3  UART1 -- 1  UART2 -- 2

 
