汎用 I/O (GPIO) ピンは個別に制御できます。 これは、LED、リレー、およびその他のステートフル デバイスを制御する場合に役立ちます。 このトピックでは、.NETと Raspberry Pi の GPIO ピンを使用して LED に電力を供給し、繰り返し点滅させます。
[前提条件]
- ARM ベース (ARMv7 以上) シングルボード コンピューター (SBC)
- 5 mm LED
- 330 Ω抵抗
- ブレッド ボード
- ジャンパー ワイヤ
- Raspberry Pi GPIO ブレークアウト ボード (省略可能/推奨)
- .NET SDK 8 以降
注
このチュートリアルは、ターゲット デバイスが Raspberry Pi であることを前提として記述されています。 ただし、このチュートリアルは、Orange Pi、ODROID など、.NETをサポートする Linux ベースの SBC に使用できます。
デバイスで SSH が有効になっていることを確認します。 Raspberry Pi については、 Raspberry Pi ドキュメントの SSH サーバーの設定 を参照してください。
ハードウェアを準備する
次の図に示すように、ハードウェア コンポーネントを使用して回線を構築します。
LEDと抵抗を備えた回路を示すフリッツ図
上の図は、次の接続を示しています。
- GPIO 18 から LED のアノード(長い方の正極リード)
- LEDの陰極 (短い負のリード) を 330Ω抵抗の両端いずれかに接続する
- 抵抗330 Ωのもう一方の端子をグラウンドに接続します。
次のピン配置図を必要に応じて参照してください。
Raspberry Pi GPIO ヘッダーのピン配置を示す図。画像提供:Raspberry Pi Foundation。
画像提供:Raspberry Pi Foundation。
ヒント
GPIO ヘッダーへの接続を合理化するには、ブレッドボードと組み合わせた GPIO ブレークアウト ボードをお勧めします。
アプリを作成する
好みの開発環境で次の手順を実行します。
.NET CLI または Visual Studio を使用して、新しい.NETコンソール アプリを作成します。 BlinkTutorial という名前を付けます。
dotnet new console -o BlinkTutorial cd BlinkTutorialSystem.Device.Gpio パッケージをプロジェクトに追加します。 プロジェクト ディレクトリから .NET CLI または Visual Studio を使用します。
dotnet add package System.Device.Gpio --version 3.2.0-*Program.cs の内容を次のコードで置き換えます。
using System; using System.Device.Gpio; using System.Threading; Console.WriteLine("Blinking LED. Press Ctrl+C to end."); int pin = 18; using var controller = new GpioController(); controller.OpenPin(pin, PinMode.Output); bool ledOn = true; while (true) { controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low)); Thread.Sleep(1000); ledOn = !ledOn; }前のコードでは、次のようになります。
- using 宣言では、のインスタンスが作成されます。 宣言により、オブジェクトが破棄され、ハードウェア リソースが適切に解放されます。
- GPIO ピン 18 が出力用に開かれている
- ループは無期限に実行されます。 各イテレーション:
- GPIO ピン 18 に値を書き込みます。 が true の場合は、 (オン) を書き込みます。 それ以外の場合は、 を書き込みます。
- 1000ミリ秒待機します。
- の値を切り替えます。
アプリをビルドします。 .NET CLI を使用している場合は、
dotnet buildを実行します。 Visual Studioでビルドするには、Ctrl+Shift+B を押します。自己完結型アプリとして SBC にアプリをデプロイします。 手順については、「 .NET アプリを Raspberry Pi にデプロイするを参照してください。 を使用して実行可能ファイルに実行アクセス許可を付与してください。
Raspberry Pi でアプリを実行するには、デプロイ ディレクトリに切り替えて実行可能ファイルを実行します。
./BlinkTutorialLED は 1 秒ごとに点滅します。
CtrlC キーを押してプログラムを終了します。
おめでとうございます! GPIO を使用して LED を点滅しました。
ソース コードを入手する
このチュートリアルのソースは GitHub で使用できます。
次のステップ
GPIO を使用してバイナリ入力を読み取る方法について説明します
.NET