0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#でIoTプログラミング on ESP32 #1

Last updated at Posted at 2025-02-04

前回の記事でESP32S3にC#プログラミングができる環境を準備しました。
今回から実際のプログラミングを行っていきたいと思います。

最初はやはりLチカからやってみましょう。オンボード上のLEDを点灯させてみましょう。

ハードウェア

・Freenove ESP32-S3-WROOM Board or Espressif ESP32-S3-DevKitC

プログラミング

・VisualStudio2022を起動して新しいプロジェクトを開いてください。プロジェクトテンプレートは「Blank Application(.NET nanoFramework)」を選択しましょう。

・次にLEDのコントロールに必要なパッケージをインストールします。メニューの「ツール」>「NuGetパッケージマネジャー」>「ソリューションのNuGetパッケージの管理」を選択し、ソリューションのパッケージの管理を開きます。

esp32s3-1-01.png

・左上の参照タブをクリックし、検索ボックスに「gpio」と入力します。下に表示されたリストの中から「nanoFramework.System.Device.Gpio」を選択します。右側のプロジェクト名にチェックを入れ、インストールをクリックするとパッケージのインストールが始まります。
esp32s3-1-03.png

・パッケージの依存関係をチェックしてインストールするパッケージのリストが表示されます。「適用」をクリックしてインストールを完了させます。「readme.txt」と「ソリューションのパッケージの管理」は必要ないので閉じておきましょう。
esp32s3-1-04.png

・Program.csは次のようになります。namespaceはプロジェクト名に置き換えてください。

Program.cs
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を使ってみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?