前回↓
試作1号機
プログラムはいったん置いておいて、機構を作ります。
機構は簡単です。レーザーモジュールから光を出し、受光素子で光が届いているかを監視するだけです。
レーザーモジュールの吟味をします。
秋月電子通商で売っているレーザーモジュールとアマゾンで売っているレーザーモジュールを購入しました。
\ | 秋月 | amazon |
---|---|---|
Φ | 8.9mm | 6.0mm |
電流 | 40mA | 30mA |
電圧 | 3.1V | 3-6V |
価格 | ¥370 | ¥84 |
波長 | 650nm | 650mm |
うーん、安定性とかだと秋月だけど、価格差がありすぎるのでAmazonのものを使用します。
放熱と固定を兼ねて部屋に転がっているΦ0.6mmのVVFケーブルにはんだ付けします。
受光素子は秋月で売っているCdS(カドミウムセル)を使用します。
CdSは光が当たると抵抗値が下がり、暗くなると抵抗値が上がります。
回路としては、CdSと1Ω抵抗でラズパイの3.3Vを分圧して電圧を読み取るだけです。
レーザーの電流量が不安なので、レーザーは直流電源より取得します。
↓固定と放熱を兼ねて電気工事用のIV電線にレーザーモジュールをはんだ付けしました。
#include "Keyboard.h"
void setup() {
Serial.begin(9600); // シリアル設定
analogReadResolution(12); // ADC設定
}
uint16_t raw; // ADCの生データ用
float v1; // 電圧用
void loop() {
raw = analogRead(26); // 電圧読み取り
v1 = raw * 3.3 / (1 << 12); // 生データ->電圧
Serial.print("X"); // シリアルで電圧を送信
Serial.print(v1);
if (v1>3) {
Keyboard.press('A'); // HIDでAと入力
}else{
Keyboard.release('A');
}
}
GPIO26から電圧を取得し、電圧をシリアルで送信し、HID機能で'A'と入力します。
無事に動けば完成です。
レーザーでキーボードを入力できるようになりました。
これをあといっぱい作ればWASDのゲームとかもできますね。
今回はカドミウムセルを使いましたが、応答速度が少し遅いため次はフォトトランジスタ等を使うといいかもしれません。
https://akizukidenshi.com/catalog/g/g102325/
置き換える場合は波長特性に注意が必要です。