【Seeeduino xiao】MicroPythonでGPIO機能を使用する方法まとめ

Seeeduino xiao

本記事の内容

Seeeduino xiao初心者向けに、Seeeduino xiao RP2040でGPIO機能を使用する方法をおさらいします。

GPIO入力と出力について、実際のMicroPythonコードを解説しながら、実行結果を確認していきます。

GPIOピンとは

GPIOピンとは、General Purpose Input/Outputピンの略であり、日本語にすると汎用IOピンになります。すなわち、プログラム次第で、入力でも出力でも自由に決められるピンになります。

具体的な使用方法としては、GPIOピンとGNDの間にLEDと抵抗を挟み、GPIOピンに出力を命じてLEDを光らせる用途が挙げられます。また、GPIOピンに入力を命じて、センサで取得した値を読み取ることもできます。

Seeeduino xiao RP2040ではGPIOピンとして、P0~P7(P5は除く)とP26~P29の計11本がMicroPythonで指定できます。P5とP8~P25は番号が飛んでいるので注意が必要です。

Raspberry Pi Picoとの比較

MicroPythonを書き込めるマイコンボード同士、Seeeduino xiao RP2040とRaspberry Pi Picoで各ピンの本数を比較してみました。

Seeeduino xiao RP2040Raspberry Pi Pico
ピン総数14本40本
GPIO11本(P0~P7とP26~P29、P5は除く)26本(GP0~GP22とGP26~GP28)
電源5Vと3.3V5Vと3.3V
GND1本8本
通信規格I2C×1、SPI×1、UART×1I2C×2、SPI×2、UART×2

Seeeduino xiao RP2040とRaspberry Pi Picoとの大きな違いは、

  • GPIOピンが半分以下で、ピン総数は約1/3
  • GNDは1本のみ
  • 通信規格は各1系統のみ

です。ちなみに真ん中については、GNDが何本だろうが結局は0Vに繋がれば問題ありません。

1点目については、用途次第です。正直なところ、私はそれほど多くのGPIOピンを一度に使用したことはありません。ピン総数も少ないに越したことはないと考えています。

ただし、3点目については時たま不便に感じることがあります。I2C通信のセンサで取得した値をI2C通信のディスプレイで表示しようものなら、Raspberry Pi PicoでないとI2Cの系統数が足りません。

とはいえ、Raspberry Pi PicoでI2C通信を同時に2系統使ったとしても最大8ピンしか使用しないので、結局は40ピンの半分も使いきれないのが現状です。

GPIO入力・出力の使い方

ここからは実際にSeeeduino xiao RP2040でGPIOピンを使用するためのプログラムコードと実行結果を見ていきます。

GPIO出力(machine.Pin.OUT)

GPIO出力については以下の3行で簡単に実行できます。

import machine
led = machine.Pin(1, machine.Pin.OUT)
led.value(1)

1行目はmachineライブラリのインポートを意味します。GPIOピンを使用するには、まずはmachineライブラリを読み込む必要があります。

2行目で、使用するGPIOピンと入力/出力を指定します。今回はP1を出力で指定しました。Seeeduino xiao RP2040で指定できるピンは、P0~P7(P5は除く)とP26~P29です。

3行目でP1に3.3Vの出力を実行しています。”.value(0)”とすれば、出力を0Vにすることもできます。

GPIO入力(machine.Pin.IN)

続いて、Seeeduino xiao RP2040でGPIO入力を実行したいと思います。GPIO入力についても、以下の3行で簡単に記述できます。

import machine
inn = machine.Pin(1, machine.Pin.IN)
print(inn.value())

1行目については、GPIO出力と違いありません。同じくmachineライブラリを読み込みます。

2行目で使用するGPIOピンと、入力を指定します。今度はP1を入力で指定しました。こちらも、Seeeduino xiao RP2040で指定できるのは、P0~P7(P5は除く)とP26~P29です。

3行目では読み取った値を表示しています。入力電圧が少しでもあれば「1」、0Vであれば「0」と表示されます。

まとめ

Seeeduino xiao RP2040で使用できるGPIO機能は以下の通りです。

GPIO出力GPIO入力
プログラムコードmachine.Pin(1, machine.Pin.OUT)machine.Pin(1, machine.Pin.IN)
指定できるピンP0~P7(P5は除く)とP26~P29同左
備考“value(1)”で出力3.3V
“value(0)”で出力0V
入力0V以上で「1」
入力0Vで「0」

コメント