記事

IoTへの挑戦 Raspberry PiでWindows 10 IoT Coreを動かす(8)

押しボタン・スイッチの検出を行うプログラムをテスト

 今回はRaspberry Pi 2 Model Bで押しボタン・スイッチの検出を行うサンプル・プログラムをテストします。テストは次に示すように動作します。

  • GPIO5と3.3VにLEDと330Ωの抵抗を接続する
  • 押しボタン・スイッチが押されるごとに点滅する

 LEDと抵抗はBlinkyのテストで利用したものと同じです。Blinkyのサンプル・プログラムはLEDの点滅をGPIO6で行っていました。ボタン・スイッチのサンプル・プログラムはGPIO5でLEDの点滅を制御しています。「IoTへの挑戦 Raspberry PiでWindows 10 IoT Coreを動かす(5)」で示した写真の回路から、GPIO5へ接続を変更しました。

スイッチの追加
 タクト・スイッチなどの押しボタン・スイッチをGPIOポートとGNDに接続します。今回のテストではPCケースから取り外したリセット・スイッチ用の押しボタン・スイッチがケーブル、コネクタ付きで保存してあり、それを利用しました。
 そのため、押しボタン・スイッチの検出はGPIO26に変更しました。この変更によるプログラムの修正はあとで示します。GPIO26ピンはGNDピンと並んでいますのでリセット・スイッチの2ピンのコネクタがそのまま利用できました。

iot01a-c25a208a.png

iot2-f4b6961c.png

   ※黄色の下地のポートを利用した。

サンプル・プログラムPushButton
 プッシュ・ボタン用のサンプル・プログラムは「IoTへの挑戦 Raspberry PiでWindows 10 IoT Coreを動かす(5)」でダウンロードした一連のサンプル・プログラムの中に次に示すようにPushButtonのフォルダとして格納されています。

iot03-c45f88d9.png

VisualStudio2015でPushButtonのプロジェクトを開く
 VisualStudio2015を起動して、メニューバーから、

  ファイル>開く>プロジェクトソリューション(P)…


を選択すると、プロジェクトを選択するウィンドウが表示されます。PushButtonのフォルダを開くとCSのフォルダがあります。このフォルダには、次に示すフォルダ、ファイルが格納されています。
 PushButton.slnを選択しボタン「開く」をクリックしてプロジェクトを開きます。

iot04-11eea174.png

 プロジェクトを開き、ソリューションエクスプローラでMainPage.xaml.csを開きますと次に示すようにソース・プログラムが表示されます。
 ソース・プログラムMainPage.xaml.csの後ろのほうに、次に示すようにLEDやプッシュボタンに接続されるGPIOのピン番号を指定する記述があります。

private const int LED_PIN = 6;
private const int BUTTON_PIN = 5;
private GpioPin ledPin;
private GpioPin buttonPin;

iot05-38e76650.png

 プッシュ・ボタンのピン番号の値を次のように変更します。

private const int BUTTON_PIN =26;

iot06-c4cadd4d.png

 MainPage.xaml.csのソース・プログラムの修正を終えた後、Raspberry Pi 2 Model Bのテスト回路を用意して、電源を投入しRaspberry Pi 2 Model Bが起動したのを確認してから ▼(右向き)のスタートのアイコンをクリックし、PushButtonのプログラムをスタートします。

ボタンを押すと
 LEDが消灯しているとラズベリーパイに接続されているモニタの表示は白になり、LEDが点灯するとモニタの表示は赤くなります。
 モニタの表示が白色のときにボタンを押すと、次に示すように表示が赤くなり、Button Pressedと表示されます。

image011-3aa6313a.jpg

 ボタンを離してもLEDは点灯したままで、赤い表示も変わらずButton Releasedと表示されます。

image013-1e987a09.jpg

 次にボタンを押すとLEDは消灯し、モニタの表示も白くなりButton Pressedと表示されます。

image015-95c1f3be.jpg

 ボタンを離すと、LED、モニタの色はそのままで、Button Releasedと表示されます。

image017-30315a52.jpg

 以上の状態を繰り返します。Blinkyはシステム・タイマがイベントになりました。今回のPushButtonのプログラムではGPIOの入力がイベントになりました。次回、その仕組みを確認しプログラムの中身をステップ動作で調べてみます。

(2016/3/16 V1.0)

<神崎康宏>

連載メニュー IoTへの挑戦 Raspberry PiでWindows 10 IoT Coreを動かす

(1) 5千円台のマイコン・ボードRaspberry PiでWindows10が動く

(2) Windows 10 IoT Coreのダウンロードとインストール

(3) Windows 10 IoT Core Dashboardが開発基地

(4) 無償で使える開発ツールVisual Studio2015のインストール

(5) Visual StudioでLEDを点灯するサンプル・プログラムを動かす

(6) VisualStudio 2015のデバッガの機能を利用してBlinkyの動きを見る

(7) Blinkyプロジェクトの中身を見る

(8) 押しボタン・スイッチの検出を行うプログラムをテスト

(9) デバッガを使ってPushButtonの処理内容を確認

(10) UIをもたないでバックグラウンドで実行されるプログラム

(11) ボタンとLED点滅の新規プロジェクトの作成