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

の一番上にあるリリースをクリックします。

  January 19, 2022 auto-release

 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

(1) Seeed XIAO BLE Senseの準備

(2) 6軸IMU LSM6DS3TR-C

(3) 6軸IMU LSM6DS3TR-CとBLE

(4) I2Cで温度センサTMP117

(5) アナログ入力 ジョイスティック


連載 CircuitPython 10行プログラミング Step7 release7.2.0-alpha.1

(1) XIAO RP2040の準備と動作確認

(2) 気圧センサLPS22HB

(3) BMP280と7セグメントLEDの表示

(4) LPS22HBと7セグメントLEDの表示


連載 CircuitPython 10行プログラミング Step6 release7.0.0

(1) Nano RP2040 Connectの準備と動作確認

(2) Nano RP2040 Connectの搭載センサIMU LSM6DSOX

(3) Nano RP2040 ConnectにI2CでIMUセンサLSM9DS1

(4) Nano RP2040 ConnectのWi-Fi

(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

前へ

ANALOG OUTPUT ② MKR WiFi 1010にDAC MCP4725

次へ

CircuitPython 10行プログラミング STEP7 (2) 気圧センサLPS22HB