CircuitPython 10行プログラミング Step6 (1) Nano RP2040 Connectの準備と動作確認
連載の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をインストールします。
●Arduino Nano RP2040 Connectのおもなスペック
- 電源電圧 3.3V
- CPU Raspberry Pi RP2040(Cortex-M0+ ×2)
- メモリ SRAM;264Kバイト、外付けフラッシュROM;2Mバイト
- Built-in LED 13番
- I/O ディジタル;20本、アナログ;8本、PWM対応;20本、割り込み可能;20本 、電流4mA
- RF U-blox Nina W102 module;Wi-Fi、Bluetooth(BLE5.2)
- マイク STマイクロ MP34DT05
- IMUセンサ STマイクロ LSM6DSOXTR(6軸)
- I2Cピン A4;SDA、A5;SCL
- SPIピン クロック;SCK、MOSI;D11?、MISO;D12?
●環境
- Arduino Nano RP2040 Connect
- CircuitPython 7.0.0
- libフォルダ 空
- Windows10 21H1
- エディタMu 1.1.0 beta.5
●Circuitpythonバージョン7.0.0を利用
Circuitpythonの最新版を利用するために、二つのファイルをダウンロードして、インストールします。
STEP1 下記のサイトからこのボードにあったUF2のファイルをダウンロードします。下記のサイトのひとつ前のページはhttps://github.com/adafruit/circuitpython/tagsです。ここに最新版のリンクがあります。
https://github.com/adafruit/circuitpython/releases/tag/7.0.0
downloads pageをクリックします。
検索欄にRP2040 と入れます。見つけてきたNano RP2040 Connectをクリックします。
UF2ファイルをダウンロードします。
Nano RP2040 ConnectボードをPCとUSBケーブルで接続します。エクスプローラでPCを開いておきます。マイコン・ボード上にあるResetスイッチを二度連続してクリックすると、RPI-PR2というドライブがマウントされます。
ここへ、ダウンロードしたadafruit-circuitpython-arduino_nano_rp2040_connect-ja-7.0.0.uf2をドロップします。コピーが終わると、エクスプローラ上ではCIRCITPY(X:)ドライブに変わります。中身は次のようになっています。
libフォルダの中身は空っぽです。必要に応じて追加します。code.pyにプログラムを保存すると、リセット後に自動で実行されます。
STEP2 最新のライブラリlibとexampleをダウンロードします。
https://github.com/adafruit/Adafruit_CircuitPython_Bundle/tags
の一番上にあるリリースをクリックします。
September 21, 2021 auto-release
7.xとファイル名に書かれたzipファイルをダウンロードします。ダブルクリックします。examples、lib、requirementsの三つのフォルダをPCにコピーします(途中で解凍される)。
examplesはCircuitPythonのサンプル・プログラム、libは主にAdafruitのライブラリ類、requirementsは、Aというライブラリを使うとき、Aだけで動く場合はよいのですが、X、Y、Zのライブラリも同時に必要なときの情報が書かれています。
ライブラリは、必要なものだけをNano RP2040 Connectボードのlibフォルダにコピーします。全部コピーしようとすると、途中で満杯になります。
●エディタはMuを使う
中途半端なバージョンですが、執筆時点では1.1.0 beta.5でした。ダウンロードしたファイルをインストールします。最初少し時間がかかりますが、モード設定の画面が出ます。CircuitPython を選択します。
●初めてのプログラム
I2Cバスのスキャナを動かします。外部にI2Cバスのデバイスを接続するには、A4;SDA、A5;SCLと電源(3.3VとGND)です。いまは、何もつなぎません。
プログラムを書いたら、保存します。code.pyに上書きします。
なぜか、二度実行されます。ふつうは、1回だけです。プログラムの下の領域は、自動で出る場合がありますが、でないときはシリアルのアイコンをクリックします。
Nano RP2040 Connectボードには、二つのI2Cデバイスが搭載されています。0x60がATECC608A、0x6aがLSM6DSOXTRのアドレスです。
9行と10行のプログラムと12行のプログラムは、どちらもscan()関数を実行しています。
連載 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