XIAO用IOエキスパンダ
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
XIAO用IOエキスパンダは、Seeed Studio XIAOシリーズの機能を拡張するために設計された最先端の拡張ボードです。MCP23017チップを搭載し、16個の追加IOピンを提供することで、プロジェクトの制約を取り除きます。趣味でより多くのコンポーネントを試したい方や、信頼性の高いIO拡張ソリューションを求めるプロフェッショナルに最適です。このボードはXIAOシリーズと互換性があり、シームレスな統合を実現し、開発プロセスをよりスムーズかつ効率的にします。
特徴
- XIAOとのシームレスな統合: Seeed Studio XIAOシリーズと完全に連携するよう設計されています。
- 16個の追加IOピン: MCP23017により、プロジェクト用に16個の追加IOピンを提供します。
- アドレス設定可能なI2Cインターフェース: デフォルトのI2Cアドレスは0x21ですが、0x20に設定変更可能です。
- 頑丈な設計: 高品質な素材で作られており、長寿命と信頼性を確保します。
仕様
- チップ: MCP23017
- IOピン数: 16
- 通信プロトコル: I2C
- デフォルトI2Cアドレス: 0x21(0x20に設定変更可能)
- 動作電圧: 3.3V
- 寸法: 21mm x 17mm
応用例
XIAO用IOエキスパンダは多用途で、以下を含むさまざまなアプリケーションに使用できます:
- ホームオートメーションシステム: スマートホーム設定で制御可能なデバイス数を拡張。
- ロボティクス: センサー、モーター、その他のコンポーネントを追加し、IOピン不足を解消。
- ゲームコンソール: ボタンやスイッチが豊富なカスタムコントローラーや周辺機器を設計。
- 産業用制御システム: 産業設定でより多くのデバイスやセンサーを管理。
- 教育プロジェクト: マイコンや電子工学を学ぶ際に、IOピン数の制限を気にせずに学習可能。
ハードウェア概要
このセクションでは、XIAO IOエキスパンダボード上の各コンポーネントとインターフェースについて詳しく説明します。
0. 標準XIAOパッド
これらはXIAOマイクロコントローラーを接続するための標準パッドです。
1. J1パッド
J1パッドは、MCP23017のRST、INTB、INTAピンをXIAOのD6、D1、D0ピンに接続するかどうかを、はんだ付けで選択できます。上から順にRST、INTB、INTAです。
デフォルトでは、拡張ボードを使用する際にエリア8の追加出力パッドが有効になります。これを無効にしたい場合は、J1エリアの隣接する2つのパッドをナイフで切断する必要があります。
2. MCP23017チップ
これは主要なI/Oエキスパンダチップで、16個の追加IOを提供します。
3. J2パッド
このパッドはI2Cアドレスを選択するためのものです。デフォルトのアドレスは0x21です。このパッドをはんだ付けすると、アドレスを0x20に変更できます。
4. MCP23017出力ピン
これらはMCP23017チップからの出力ピンです。各ピンの定義はボードの裏面に記載されています。PA0からPB7までの範囲で、合計16個のIOを提供します。
5. Groveパッド
Groveモジュールを接続したい場合は、提供されているGroveソケットをはんだ付けできます。このGroveインターフェースはI2Cバスに接続されています。ここでIICピンを使用する場合、エリア4の拡張IOピンは使用できなくなります。
6. VCCピン
これは他のコンポーネントに電力を供給するために使用できる出力ピンです。
7. GNDピン
これは他のコンポーネントを接地するために使用できる出力ピンです。
8. 追加出力パッド
これらはGND、INTB、INTA、RSTを含む追加の出力パッドです。これらのピンを他の場所で使用するためにはんだ付けすることができます。
はじめに
XIAO用IOエクスパンダーのクイックスタートガイドへようこそ。このガイドでは、新しいIOエクスパンダーボードをXIAO RP2040メインコントローラーと組み合わせてセットアップし、使用を開始する方法を説明します。
ハードウェアの準備
この拡張ボードを使用する主な方法は3つあります。
モード1: SMD
XIAOのピンが未ハンダ付けの場合、直接SMD方式を選択してXIAOと拡張ボードをPCBボードにハンダ付けし、GPIO拡張機能を使用することができます。
写真に示されているPCBは展示用であり、この記事の時点では販売されていません。
モード2: XIAOが拡張ボードにピン列を介して直接接続
この方法では、GPIO拡張ボードに接続するために、接続ワイヤを直接ハンダ付けすることができます。
モード3: XIAOが拡張ボードに長いピン列を介して接続し、拡張ボードがピン列をハンダ付けして拡張
この接続方法では、DuPontケーブルをGPIO拡張ボードに自由に取り付けることができます。アプリケーションに便利な配線が可能です。
ハンダ付けが完了したら、拡張ボードをXIAO RP2040メインコントローラーに接続する準備が整います。
XIAO RP2040をプログラミングするには、TYPE-C USBデータケーブルが必要です。一端をXIAO RP2040に、もう一端をコンピューターに接続してください。XIAO RP2040のプログラミングに関する詳細なガイドについては、こちらのWikiをご参照ください。
ソフトウェアの準備
ボードをプログラミングする前に、XIAO用の特定のライブラリが必要です。MCP23017ライブラリをこのGitHubリンクからダウンロードしてください。ダウンロード後、プログラミング環境にライブラリをインストールしてください。
デモ: IO出力の高低レベル
Arduino IDEで新しいスケッチを開き、以下のサンプルコードをコピーしてください:
#include <Adafruit_MCP23X17.h>
Adafruit_MCP23X17 mcp;
void setup() {
Serial.begin(9600);
Serial.println("MCP23xxx ブリンクテスト!");
if (!mcp.begin_I2C()) {
Serial.println("エラー.");
while (1);
}
Serial.println("ループ中...");
for(int i=0; i<16; i++) {
mcp.pinMode(i, OUTPUT);
}
}
void loop() {
mcp.digitalWrite(15, LOW); //PB7
mcp.digitalWrite(14, HIGH); //PB6
mcp.digitalWrite(13, HIGH); //PB5
mcp.digitalWrite(12, HIGH); //PB4
mcp.digitalWrite(11, HIGH); //PB3
mcp.digitalWrite(10, HIGH); //PB2
mcp.digitalWrite(9, HIGH); //PB1
mcp.digitalWrite(8, HIGH); //PB0
mcp.digitalWrite(7, HIGH); //PA7
mcp.digitalWrite(6, HIGH); //PA6
mcp.digitalWrite(5, HIGH); //PA5
mcp.digitalWrite(4, HIGH); //PA4
mcp.digitalWrite(3, HIGH); //PA3
mcp.digitalWrite(2, HIGH); //PA2
mcp.digitalWrite(1, HIGH); //PA1
mcp.digitalWrite(0, HIGH); //PA0
delay(1000);
}
上記のコードをXIAOにアップロードしてください。コードが正常にアップロードされると、PB7ピンを除くすべてのピンが3.3Vの高電圧になることが確認できます。
この拡張ボードはデジタル入力と出力のみ使用可能であり、PWMやアナログ入力および出力機能は使用できません。
ピンアドレス指定
単一ピン操作を使用する場合(例: pinMode(pinId, dir)、digitalRead(pinId)、digitalWrite(pinId, val))、以下のIDを使用してピンを指定します。例えば、GPB0のモードを設定する場合は、pinMode(8, ...)を使用します。注意 MCP23008およびMCP23S08はGPAxピンのみを持っています。
MCP23x17 ピン番号 | ピン名 | ピンID |
---|---|---|
21 | GPA0 | 0 |
22 | GPA1 | 1 |
23 | GPA2 | 2 |
24 | GPA3 | 3 |
25 | GPA4 | 4 |
26 | GPA5 | 5 |
27 | GPA6 | 6 |
28 | GPA7 | 7 |
1 | GPB0 | 8 |
2 | GPB1 | 9 |
3 | GPB2 | 10 |
4 | GPB3 | 11 |
5 | GPB4 | 12 |
6 | GPB5 | 13 |
7 | GPB6 | 14 |
8 | GPB7 | 15 |
FAQ
1. XIAO用IOエクスパンダが応答しないのはなぜですか?
回答: XIAOモジュールが拡張ボードに正しく接続されていることを確認してください。また、必要なライブラリがインストールされていること、Arduino IDEで正しいボードとポートが選択されていることを確認してください。
2. XIAO用IOエクスパンダは他のマイクロコントローラーでも使用できますか?
回答: はい、IOエクスパンダは主にXIAOモジュール用に設計されていますが、I2C通信をサポートする他のマイクロコントローラーでも使用可能です。コードや接続を調整する必要がある場合があります。
3. IOエクスパンダのMCP23017チップのI2Cアドレスを変更するにはどうすればよいですか?
回答: デフォルトのI2Cアドレスは0x21に設定されています。0x20に変更したい場合は、ボード上の「J2」とラベル付けされたジャンパーを確認してください。このジャンパーをハンダ付けすることでアドレスを変更できます。
4. IOピンでノイズや不安定な動作が発生する原因は何ですか?
回答: 接続が確実であり、干渉がないことを確認してください。プルアップまたはプルダウン抵抗を使用することで入力ピンを安定させることができます。また、電源が安定しており、接続されたすべてのデバイスに必要な電流を供給できることを確認してください。
リソース
- [ZIP] Eagleファイル
- [PDF] データシート - MCP23017
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートを提供しております。お客様のご希望やニーズに応じた複数のコミュニケーションチャネルをご用意しています。