Smdn.Devices.MCP2221は、GPIO付きUSB2.0→I2C/UARTプロトコルコンバータMCP2221/MCP2221Aを制御するための.NETライブラリです。

MCP2221/MCP2221AではUSB-HIDインターフェイスを介したGPIOやI2C等の制御ができるため、USBポートのある通常のPCでI2Cデバイス等を制御することができます。 このためデバイスの制御にRaspberry PiやArduinoなどのボードを別途用意する必要はなく、またUSB-HIDもWindows, Linuxを含むほとんどのOSでは標準でサポートされているため、ドライバのインストールも必要ありません。

またSystem.Device.Gpioとのアダプタインターフェイスを提供するSmdn.Devices.MCP2221.GpioAdapterを使用すると、Iot.Device.Bindingsがサポートするデバイスを使用することができます。 これにより、通常のPCとUSBケーブル、MCP2221/MCP2221A、C#コードのみのシンプルな構成で、さまざまなデバイスを動作させることができます。

This software is released under the MIT License. 本ライブラリはMITライセンスでリリースされています。

リポジトリ

ドキュメントおよびソースコードの参照・入手はGitHub smdn/Smdn.Devices.MCP2221にて行えます。

For more information, including English documents, please visit GitHub smdn/Smdn.Devices.MCP2221 repository.

インストール

ビルド済みのNuGetパッケージはSmdn.Devices.MCP2221およびSmdn.Devices.MCP2221.GpioAdapterより入手できます。

コマンドラインでインストールする場合は、次のコマンドでパッケージを追加してください。

NuGetパッケージの追加
dotnet add package Smdn.Devices.MCP2221
dotnet add package Smdn.Devices.MCP2221.GpioAdapter

動作例・サンプルコード

本ライブラリを使ってさまざまなデバイスを接続・制御する例です。

MCP2221/MCP2221AとPCの接続方法、必要なパーツと配線例などについてはhttps://github.com/smdn/Smdn.Devices.MCP2221/tree/main/doc/wiringを参照してください。

以下の動画のサンプルコードおよび配線例、実行手順等は各リンク先をご覧ください。

GPIOピンに接続されたタクトスイッチの状態を読み取る
カスケード接続されたシフトレジスタを操作する
I2C接続の温湿度・気圧センサBME280から値を読み込む
I2C接続のOLEDキャラクタディスプレイSO1602Aを制御する

このほかにも、https://github.com/smdn/Smdn.Devices.MCP2221/tree/main/examplesにてサンプルコードを参照できます。

不具合・要望・質問等

不具合の報告、ライブラリに対する修正案等がありましたらIssuesまたはPull requests、要望や質問等はDiscussionsへお願いします。 言語は英語のほうが望ましいですが、日本語のほうが助かります。

バージョン履歴

バージョンごとの変更点はリンク先をご覧ください。