はじめに
「ちいさいロボット2号」をSeeeduino XIAO RP2040で動かせるか確認を行いました。結論から言うと、そのままのスケッチでは動かないのですが、SG90サーボモーターとI2Cのピンアサインを変えると動かせました。
環境
PC Raspberry PI-400
OS Raspberry Pi OS(64-bit) Bullseye
IDE Arduino IDE 1.8.13
ボード Seeed Studio XIAO RP2040
ボードマネージャ Seeed XIAO RP2040 バージョン 2.7.2
なおXIAO RP2040をArduino IDEで動かすまでの設定の本家のページはこちらから
確認
XIAO RP2040のピン配置を公開されている回路図で確認しました。
ちなみに回路図は2つのバージョンがあり、違いはRGB1のところくらいなので最新版のv1.22を見て確認しました。
XIAO RP2040 NAME
ーーーーーーーーーーーーーーーーーーーー−−−
D0 GPIO26 A0
D1 GPIO27 A1
D2 GPIO28 A2
D3 GPIO29 A3
D4 GPIO6 SDA
D5 GPIO7 SCL
D6 GPIO0 TX
D7 GPIO1 RX
D8 GPIO2 SCK SG90_1
D9 GPIO4 MISO SG90_2
D10 GPIO3 MOSI
なるほどね。
1.サーボモータが片方しか動かない
まずはサーボモーターが片方しか動かない問題について確認してみます。
良く見たらD9,D10とGPIO4、3の関係が入れ子になっている。
・・・・ポカミス?
なので、D10にサーボをつなぎ直すか、ピンアサインを変更すれば、サーボモータが動かせるようになりました。
2.I2Cのセンサが繋がらない
でもまだ駄目だ、であれば、I2Cしかない。
ラズパイPicoのI2Cは
SDA GP4
SCL GP5
対する XIAO PI のI2Cは
SDA GPIO6
SCL GPIO7
・・・・1ピン違いじゃないですか?合わせておいてくださいよ〜
I2Cのピンアサインを変えるのはちょっと面倒くさい。しょうがないので動いていないXIAO RP2040のボードライブラリを使うことにします。
XIAO RP2040のボードライブラリを、Arduino IDE に入れてコンパイルするとエラーがでます。XIAO PIの必要なディレクトリがないらしい。どうやらフォルダ名の小文字がいけないらしいので、
/home/pi/.arduino15/packages/Seeeduino/hardware/rp2040/2.7.2/variants/Seeed_XIAO_RP2040
をコピーして名前を Seeed_XIAO_RP2040 から SEEED_XIAO_RP2040 に変えます。
/home/pi/.arduino15/packages/Seeeduino/hardware/rp2040/2.7.2/variants/SEEED_XIAO_RP2040
コンパイル時に以下の警告は出ますが、
警告:ライブラリServoはアーキテクチャ(avr, megaavr, sam, samd, nrf52, stm32f4, mbed, mbed_nano, mbed_portenta, mbed_rp2040)に対応したものであり、アーキテクチャ(rp2040)で動作するこのボードとは互換性がないかもしれません。
ちゃんとI2Cが使えるようになります。
おわりに
ボードマネージャでXIAO RP2040のバージョンを下げろとか、本家のページのガセねたのせいでちょっと時間がかかりましたが、とりあえず、ラズパイからはXIAO PIが使えるようになりました。これで「ちいさいロボット」がXIAO RP2040で使うことができるようになりました。
でもWindowsからはまだ、使えない。。。 これままたの機会に
おしまい
購入品情報
Seeed Studio XIAO RP2040 ボードは小さいうえにパワフルです。RP2040のCPUバグの影響か一時的に入手できませんでした。CPUバグの回避方法が判ったので、販売が再開されたようです。でもAmazonではまだ少し高いですね。
なを購入の経緯は過去記事に書いてあります。