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ピンのコネクタがそのまま利用できました。
※黄色の下地のポートを利用した。
●サンプル・プログラムPushButton
プッシュ・ボタン用のサンプル・プログラムは「IoTへの挑戦 Raspberry PiでWindows 10 IoT Coreを動かす(5)」でダウンロードした一連のサンプル・プログラムの中に次に示すようにPushButtonのフォルダとして格納されています。
●VisualStudio2015でPushButtonのプロジェクトを開く
VisualStudio2015を起動して、メニューバーから、
ファイル>開く>プロジェクトソリューション(P)… |
を選択すると、プロジェクトを選択するウィンドウが表示されます。PushButtonのフォルダを開くとCSのフォルダがあります。このフォルダには、次に示すフォルダ、ファイルが格納されています。
PushButton.slnを選択しボタン「開く」をクリックしてプロジェクトを開きます。
プロジェクトを開き、ソリューションエクスプローラで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; |
プッシュ・ボタンのピン番号の値を次のように変更します。
private const int BUTTON_PIN =26; |
MainPage.xaml.csのソース・プログラムの修正を終えた後、Raspberry Pi 2 Model Bのテスト回路を用意して、電源を投入しRaspberry Pi 2 Model Bが起動したのを確認してから ▼(右向き)のスタートのアイコンをクリックし、PushButtonのプログラムをスタートします。
●ボタンを押すと
LEDが消灯しているとラズベリーパイに接続されているモニタの表示は白になり、LEDが点灯するとモニタの表示は赤くなります。
モニタの表示が白色のときにボタンを押すと、次に示すように表示が赤くなり、Button Pressedと表示されます。
ボタンを離してもLEDは点灯したままで、赤い表示も変わらずButton Releasedと表示されます。
次にボタンを押すとLEDは消灯し、モニタの表示も白くなりButton Pressedと表示されます。
ボタンを離すと、LED、モニタの色はそのままで、Button Releasedと表示されます。
以上の状態を繰り返します。Blinkyはシステム・タイマがイベントになりました。今回のPushButtonのプログラムではGPIOの入力がイベントになりました。次回、その仕組みを確認しプログラムの中身をステップ動作で調べてみます。
(2016/3/16 V1.0)
<神崎康宏>