Seeed XIAO RP2040をArduinoIDEで使用する。

最終更新日 2022年3月28日

Seeed XIAO RP2040を入手しました。購入先でそこそこ価格がバラつくのですが、秋月での通販注文時に送料無料にするために追加購入した次第です。
earlephilhower氏の RaspberryPiPico/RP2040 ボードライブラリではサポート機では無いのですが、流石Seeed社です。ちゃんとArduinoIDEで開発出来るようサポートされていました。
Wiki:https://wiki.seeedstudio.com/XIAO-RP2040-with-Arduino/

ユーザフォーラムもしっかりしていると思います。https://forum.seeedstudio.com/c/products/rp2040/100
ただ、活発とはいえないかも。

本体はUSBType-Cです。今後Type-Cに置き換わってゆくのでしょうね。PCと接続するのですが、そのままでは認識されません。ちゃんとWikiを読んでから実施する必要があります。

ハードウエアの接続:

  1. BOOTボタン(B)を押したままにして、XIAORP2040をPCに接続します。
  2. 「RPI-RP2」ディスクがPCに表示され、XIAO RP2040の電源LEDがオンになっている場合、接続は完了です。

ソフトウエアのセットアップ:

  1. オペレーティングシステムに応じて最新バージョンのArduinoIDEをダウンロードしてインストールします。
    ※既にインストール済みならスキップ
  2. Arduinoアプリケーションを起動します。
  3. Example:brink を開いておきます。
  4. デバイスマネージャにてXIAORP2040をArduinoIDEに追加します。
    ※既にインストール済みならスキップ
    [ファイル]> [設定]に移動し、 [追加のボードマネージャーのURL]に
    https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
    が追加されていますか?
  5. SeeedXIAORP2040の最新ライブラリは1.12.0のようです。
    ※1.9.3の方が安定しているみたいです。
  6. [ツール] -> [ボード]に移動し、[ XIAORP2040]を見つけて選択します。
  7. [ツール]> [ポート]に移動し、接続されているXIAORP2040のシリアルポート名を選択します。
    正しく認識されているとCOMx(SeeedXIAORP2040)と云う表示になると書かれていますが、
    Windows7環境ではそもそも認識されないかもしれません。
    デバイスマネージャでは黄色三角のPicoArduinoが出ていました。
    自分は強引にAtmelCorpのドライバを選択して認識させました。もっとスマートな方法があるはずですが。
  8. Example:brinkをbuildしてUploadします。このときbrinkのコードはレタッチしてシリアルプリントする様にした方が動作確認になると思います。

実行確認:

XIAO RP2040 with Arduino Wikiに幾つかのサンプルスケッチが掲載されているのですが、これがなかなか動かないです。
XIAORP2040単体での動作確認がうまくゆくのにSeeeduino XIAO Expansion board_v1.0に設置してテストしたいと思うとうまくゆかない事が多々ありました。

XIAORP2040単体:

XIAORP2040+XIAO 拡張ボード:

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

を使う方がお勧めです。
XIAO 拡張ボードはWire1でアクセスする必要があります。また、I2Cアドレスにも注意です。I2Cスキャナで実際に確認して使う事をお勧めします。ドキュメント(ブロック図)には0x78と云う記載があります。なぜ?

/*
 * 2022年3月28日 T.Wanibe
 * XIAORP2040 + Seeeduino XIAO Expansion boardの環境でOLCDに表示させる
 * ビルドがなかなか通らなかった。
 * Adafruit_SSD1306のライブラリは新しいモノで無いとダメな模様
 * OLCDのアドレスはI2Cスキャナのコードを実行して確認する事をお勧め。
 * 最大2093056バイトのフラッシュメモリのうち、スケッチが65636バイト(3%)を使っています。
 * 最大262144バイトのRAMのうち、グローバル変数が9600バイト(3%)を使っていて、ローカル変数で252544バイト使うことができます。
 */
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH    128                     // OLED display width, in pixels
#define SCREEN_HEIGHT   64                      // OLED display height, in pixels
//#define OLED_RESET    4
#define OLED_RESET      -1
#define OLED_ID         0x3c                    // initialize with the I2C addr 0x3D or 0x3C
Adafruit_SSD1306        display(SCREEN_WIDTH,SCREEN_HEIGHT,&Wire1,OLED_RESET);
//-------------------------
void setup(){
        Wire1.setSDA(SDA);
        Wire1.setSCL(SCL);
        Wire1.begin();
        display.begin(SSD1306_SWITCHCAPVCC, OLED_ID);  
        display.clearDisplay();
}
//-------------------------
void loop() {
        // text display tests
        display.setTextSize(1);
        display.setTextColor(WHITE);
        display.setCursor(0,0);
        display.println(F("Hello, world!"));
        display.setTextColor(BLACK, WHITE);             // 'inverted' text
        display.println(F("Hello, world!"));
        display.setTextSize(2);
        display.setTextColor(WHITE);
        display.println(F("Hello, world!"));
        display.display();
        delay(5000);
        display.clearDisplay();
        display.display();
}


戯言(nonsense)に戻る


問い合わせ頁の表示


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。