はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

.NET nanoFrameworkでM5StickC Plusのブザーを鳴らしてみる

前回

hatsune.hatenablog.jp
前回は、.NET nanoFrameworkでの開発準備とM5StickC Plusでの簡単なアプリの実行まで実施しました。
今回は、M5StickC Plus本体に内蔵されているブザーを鳴らしてみたいと思います。

事前準備

Install the nanoFramework firmware

M5StickC PlusにはnanoFrameworkは標準インストールされていないので、nanoFrameworkをインストールします。

接続ポート番号の確認

USBでM5StickC PlusをPCに接続したら、USB Serial Portのポート番号を確認します。今回の環境では「COM6」が該当しました。

Flasherアプリケーションのインストール

OSの[スタート]メニューから「Developer PowerShell for VS2022」を起動します。

dotnet tool install --global nanoff

nanoFrameworkfファームウェアをインストール

M5StickC Plusをターゲットにして「COM6」経由でnanoFrameworkをアップロードします。

nanoff --target M5StickCPlus --update --serialport COM6

Visual Studioの準備

Visual Studioを機能拡張する

Visual Studioには.NET nanoFramework Extensionをインストールして機能拡張しておきます。
この機能拡張によりnanoFrameworkアプリのテンプレートが追加されます。
このテンプレートで作成したプロジェクトには、NuGetから自動的に「nanoFramework.CoreLibrary」ライブラリが追加されています。

「nanoFramework.M5StickCPlus」ライブラリを追加する

M5StickC Plusの画面などハードウェアにアクセスするために、M5StickC Plus用のライブラリを追加します。

ここまでが、M5StickC Plusを使うアプリ開発を行う上での共通の事前準備となります。

ブザーを鳴らず

ボタンをクリックしたらブザーを鳴らす

ブザーを一定時間鳴らすには、PlayToneメソッドを使います
PlayToneメソッドには「周波数(Hz)」と「継続時間(ミリ秒)」の2つのパラメータがあります。
M5ボタンをクリックすると440Hz(ISOの国際標準ピッチ)の音を1秒間鳴らすには次のようなコード記述します。
gist.github.com
www.youtube.com

ボタンをクリックしている間だけブザーを鳴らす

では、ボタンをクリックしている間だけブザーを鳴らすようにしたいときはどうしたらよいでしょうか。
M5StickCPlus.ButtonM5.Pressイベントの処理をコメントアウトして、代わりにButtonDownイベントとButtonUpイベントの処理を追加します。
gist.github.com
www.youtube.com

次回

次回は本体LED関連についてを予定しています。