Arduinoで作るワイヤレスPowerPointポインター - シームレスなプレゼンテーション制御
必要な部品と材料
| Arduino Leonardo | ×1 |
| IR受信モジュール(汎用) | ×1 |
| テレビリモコン | ×1 |
プロジェクト概要
PowerPointプレゼンテーションを行う際、マウスを手に持ち続けるのは不便で、プレゼンテーション専用に設計されていません。「Arduino入門」というプレゼンテーションの機会があったとき、Arduinoの機能をデモするために、簡易的なPowerPointプレゼンターツールを作成することにしました。
最初に思いついたのが「テレビリモコンを使う」ことです。リモコンはマウスよりも人間工学に基づいた形状で、プレゼンテーション操作に適しています。
必要なコンポーネント
- テレビリモコン ×1
- Arduino Leonardo(UNOでも可能だが修正が必要)×1
- IRセンサー(VS1838Bを使用)×1
- オプション:ユニバーサル基板で簡易シールドを作成
配線方法
接続は非常にシンプルです:
- センサーのGND → ArduinoのGNDピン
- センサーの5V → Arduinoの5Vピン
- センサーのデータピン → Arduinoのデジタルピン2
プログラム(2段階構成)
コードは2つのステップで構成されます:
- ステップ1:リモコンのボタン信号を解析 - IRremoteライブラリを使用して、使用したいボタンのIR信号をデコードし、シリアルモニタで値を確認します。
- ステップ2:取得した値をキーボード操作に割り当て - 解析した値をコードに組み込み、Arduino LeonardoのHID機能でキーボードの左右矢印キーとして動作させます。
ステップ1:IR信号の読み取りコード
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
int key_pressed;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // 受信開始
}
void loop() {
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume(); // 次の値を受信
}
delay(100);
}
ステップ2:PowerPoint制御コード
#include <IRremote.h>
#include "Keyboard.h"
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
int key_pressed;
int last_key_pressed;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
Keyboard.begin();
}
void loop() {
if (irrecv.decode(&results)) {
key_pressed = results.value;
Serial.println(key_pressed);
irrecv.resume();
}
// 同一キーの連続入力を防止
if (key_pressed == last_key_pressed) key_pressed = 0;
// 右矢印(次スライド) - ご自身のリモコンの値に変更してください
if (key_pressed == 18105) {
Keyboard.press(KEY_RIGHT_ARROW);
Keyboard.releaseAll();
}
// 左矢印(前スライド) - ご自身のリモコンの値に変更してください
if (key_pressed == -22951) {
Keyboard.press(KEY_LEFT_ARROW);
Keyboard.releaseAll();
}
last_key_pressed = key_pressed;
}
PowerPointでの使用方法
スライドショー モードでプレゼンテーションを開き、設定したリモコンのボタンを押すと、スライドが前後に切り替わります。
他のArduinoボードを使用する場合
Arduino Leonardo、Zero、DueはネイティブUSB機能を持ち、キーボードやマウスとして認識されます。UNOなどの他のボードでは、ATmega8U2/16U2チップのファームウェア書き換えが必要です。詳細についてはArduinoフォーラムを参照してください。
回路図
製造プロセス
- レーザーポインター:設計、製造、安全性の概要
- LIRCでプロフェッショナルなRaspberry Piユニバーサルリモコンを構築
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- Arduinoと1Sheeldで作る万能Androidリモコン──IR制御で家電を一括操作
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoプロジェクトのための最適化電源ソリューション
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド