前回の記事でESP32S3にC#プログラミングができる環境を準備しました。
今回から実際のプログラミングを行っていきたいと思います。
最初はやはりLチカからやってみましょう。オンボード上のLEDを点灯させてみましょう。
ハードウェア
・Freenove ESP32-S3-WROOM Board or Espressif ESP32-S3-DevKitC
プログラミング
・VisualStudio2022を起動して新しいプロジェクトを開いてください。プロジェクトテンプレートは「Blank Application(.NET nanoFramework)」を選択しましょう。
・次にLEDのコントロールに必要なパッケージをインストールします。メニューの「ツール」>「NuGetパッケージマネジャー」>「ソリューションのNuGetパッケージの管理」を選択し、ソリューションのパッケージの管理を開きます。
・左上の参照タブをクリックし、検索ボックスに「gpio」と入力します。下に表示されたリストの中から「nanoFramework.System.Device.Gpio」を選択します。右側のプロジェクト名にチェックを入れ、インストールをクリックするとパッケージのインストールが始まります。
・パッケージの依存関係をチェックしてインストールするパッケージのリストが表示されます。「適用」をクリックしてインストールを完了させます。「readme.txt」と「ソリューションのパッケージの管理」は必要ないので閉じておきましょう。
・Program.csは次のようになります。namespaceはプロジェクト名に置き換えてください。
using System.Device.Gpio; //GPIOを使うためのパッケージ
using System.Threading;
namespace ESP32S3_Blink
{
public class Program
{
private static GpioController controller;
public static void Main()
{
GpioController controller = new GpioController();
//GPIO2を出力モードで使用する
GpioPin led = controller.OpenPin(2, PinMode.Output);
//一旦出力をOFFにする
led.Write(PinValue.Low);
while (true)
{
//出力をONにする
led.Write(PinValue.High);
//1秒停止
Thread.Sleep(1000);
//出力をOFFにする
led.Write(PinValue.Low);
Thread.Sleep(1000);
//Toggleを使うとONとOFFを切り替えることができる
led.Toggle();
Thread.Sleep(1000);
led.Toggle();
Thread.Sleep(1000);
}
}
}
}
・デバッグの開始をクリックしましょう。しばらくしてボード上のLEDが点滅を始めます。
・プログラムの内容はコメントを読んでいただければ理解できると思います。
いかがでしょうか?プログラムの内容は他の言語とほとんど違いはないと思います。また、今までマイコンのプログラミングをしたことがない人でもプログラムそのものは通常のコンソールアプリケーションとほぼ一緒ですので理解しやすいと思います。
ソースコード一式はGitHub上にも上げています。
次回はオンボード上のRGB LEDを使ってみたいと思います。