CircuitPython 10行プログラミング STEP7 (1) XIAO RP2040の準備と動作確認
連載のSTEP1はとてもコンパクトなマイコン・ボードTrinket M0を、STEP2はArduino MEGAと大きさが同じGrand Central M4 Expressを利用しました。STEP3はAdafruit Metro M4 Express AirLift (WiFi)を利用しました。大きさはArduino UNOと同じです。
STEP4では、いろいろなセンサを搭載したAdafruit Feather nRF52840 Sense(別の名称;Feather Bluefruit Sense)を利用します。BLE(技適のコードがモジュール上に刻印されている)が利用できるボードです。同じBLEのモジュールが搭載されているのがAdafruit Feather nRF52840です。
STEP5では、Raspberry Pi Pico(RP2040)を利用しました。STEP6では、Raspberry Pi Pico(RP2040)といくつかのセンサを搭載したNano RP2040 Connectを利用しました。CircuitPythonのバージョンは、現時点の最新7.0.0をインストールします。
今回STEP7で利用するマイコン・ボードはXIAO RP2040です。前回のRaspberry Pi Pico(RP2040)と同じCPUですが、コンパクトです。
●XIAO RP2040のおもなスペック
- 電源電圧 3.3V
- CPU Raspberry Pi RP2040(Cortex-M0+ ×2)
- メモリ SRAM;264Kバイト、外付けフラッシュROM;2Mバイト
- LED Power、3色UserLED、RGB LED
- I/O ディジタル;11本、アナログ;4本、PWM対応;11本
- RF なし
- I2Cピン D4;SDA、D5;SCL
- SPIピン (CS;D7)、クロック;SCK;D8、MOSI;D10、MISO;D9
- UARTピン TX;D6、RX;D7
- 外形 20×17.5×3.5mm
- ボタン リセット・ボタン、ブート・ボタン
- USB Type-C
●XIAO RP2040のピン配置
●環境
- XIAO RP2040
- CircuitPython 7.2.0-alpha.1
- libフォルダ 空
- Windows10 21H2
- エディタMu 1.1.0 beta.6
●Circuitpythonバージョン7.2.0-alpha.1を利用
Circuitpythonの最新版を利用するために、二つのファイルをダウンロードして、インストールします。
STEP1 下記のサイトからこのボードにあったUF2のファイルをダウンロードします。下記のサイトのひとつ前のページはhttps://github.com/adafruit/circuitpython/tagsです。ここに最新版のリンクがあります。
https://github.com/adafruit/circuitpython/releases/tag/7.1.1
downloads pageをクリックします。
検索欄にXIAO RP2040と入れます。見つけてきたSeeeduino XIAO RP2040をクリックします。
CircuitPython 7.2.0-alpha.1のUF2ファイルをダウンロードします。
XIAO RP2040ボードをPCとUSBケーブルで接続します。エクスプローラでPCを開いておきます。マイコン・ボード上にあるリセット・ボタンを押し、押したままブート・ボタンを押して離し、最後にリセット・ボタンを離します。RPI-PR2というドライブがマウントされます。
ここへ、ダウンロードしたadafruit-circuitpython-seeeduino_xiao_rp2040-ja-7.2.0-alpha.1.uf2をドロップします。コピーが終わると、エクスプローラ上ではCIRCITPY(X:)ドライブに変わります。中身は次のようになっています。
libフォルダの中身は空っぽです。必要に応じて追加します。code.pyにプログラムを保存すると、リセット後に自動で実行されます。
STEP2 最新のライブラリlibとexampleをダウンロードします。
https://github.com/adafruit/Adafruit_CircuitPython_Bundle/tags
の一番上にあるリリースをクリックします。
7.xとファイル名に書かれたzipファイルをダウンロードします。ダブルクリックします。examples、lib、requirementsの三つのフォルダをPCにコピーします(途中で解凍される)。
examplesはCircuitPythonのサンプル・プログラム、libは主にAdafruitのライブラリ類、requirementsは、Aというライブラリを使うとき、Aだけで動く場合はよいのですが、X、Y、Zのライブラリも同時に必要なときの情報が書かれています。
ライブラリは、必要なものだけをXIAO RP2040ボードのlibフォルダにコピーします。全部コピーしようとすると、途中で満杯になります。
●エディタはMuを使う
中途半端なバージョンですが、執筆時点では1.1.0 beta.6でした。ダウンロードしたファイルをインストールします。最初少し時間がかかりますが、モード設定の画面が出ます。CircuitPython を選択します(ボードがつながっていれば自動認識する)。
●初めてのプログラム
I2Cバスのスキャナを動かします。外部にI2Cバスのデバイスを接続するには、D4;SDA、D5;SCLと電源(3.3VとGND)です。気圧センサのAdafruit LPS22HBボードをつなぎました。
プログラムを書いたら、保存します。code.pyに上書きします。
from board import *
from busio import I2C
i2c = I2C(SCL,SDA)
while not i2c.try_lock():
pass
print([hex(i) for i in i2c.scan()])
実行します。0x5dを見つけてきました。
連載 CircuitPython 10行プログラミング Step8 release8.0.0 Alpha1
(4) I2Cで温度センサTMP117
(5) アナログ入力 ジョイスティック
連載 CircuitPython 10行プログラミング Step7 release7.2.0-alpha.1
(2) 気圧センサLPS22HB
連載 CircuitPython 10行プログラミング Step6 release7.0.0
(1) Nano RP2040 Connectの準備と動作確認
(2) Nano RP2040 Connectの搭載センサIMU LSM6DSOX
(3) Nano RP2040 ConnectにI2CでIMUセンサLSM9DS1
(5) Nano RP2040 Connectで確度0.1℃の温度計TMP117+ht16k33
連載 CircuitPython 10行プログラミング Step5
(1) Raspberry Pi Picoの準備と動作確認 (2) digitalio (3) Raspberry Pi Picoのmicrocontroller (4) アナログ入力 (5) PWM出力 (6) I2S出力 (7) I2C ① OLEDディスプレイ (8) I2C ② 温湿度センサ (9) I2C ③ 気圧センサ (10) Raspberry Pi PicoのSPI ① TFTディスプレイ
連載 CircuitPython 10行プログラミング Step4
(1) Adafruit Feather nRF52840 Senseの準備 (2) Lチカ (3) 搭載センサ (4) BLE①ペリフェラル (5) BLE②セントラル
連載 CircuitPython 10行プログラミング Step3
(1) Metro M4 Express AirLift (WiFi)の準備 (2) ロータリ・エンコーダ (3) eInk/ePaper (4) Wi-Fi その1 接続 (5) Wi-Fi その2 ソケット (6) Wi-Fi その3 電圧測定 (7) 気圧センサLPS25HB (8) サーミスタ
連載 CircuitPython 10行プログラミング Step2
(1) Grand Central M4 Expressの準備 (2) グラフィック・ディスプレイOLED (3) RTC DS3231 (4) モジュール/SDメモリ (5) 複合センサ BME680 (6) ロードセル+ADS1220 (7) サーボ・モータ① (8) サーボ・モータ② (9) I2S UDA1334A (10) D-Aコンバータ
連載 CircuitPython 10行プログラミング
(1) Trinket M0の準備 (2) ディジタルI/O (3) アナログ入出力 (4) I2C 温湿度センサSi7021 (5) SPI 熱電対+MAX31855 (6) UART 距離センサTFMini (7) 1-Wire 温度DS18B20 (8) ロータリ・エンコーダ (9) 7セグメントLED (10) FANコントロール (11) UART GPS (12) I2C Lチカ MCP23017