どのような機能をスイッチBOXに割り当てるか?
スイッチBOXで手元操作してみたい機能としては、
1. PS5の起動とスリープ(レストモード)
2. エアフローのON-OFFや風量調節
3. コックピットイルミネーションの色味設定
があります。
1. は今回の企画の出発点として外せない機能です。
2. はシートのファンと、上方のファンのON-OFFや風量の調節機能が、それぞれのコードの途中にあります。プレイ中に風量を調節したくなることは意外と多いので、それが手元で簡単にできるようになればとても便利で、配線の取り回しも目立たなくなります。
3. はイルミネーションLEDでコックピットの間接照明を行い、色調を調節できるようにします。
室内を薄暗くして間接照明に彩られたコックピットが浮かび上がればさらに雰囲気が高まりますし、暗くした分だけ節電にもなります。
まずは肝心のリモート起動メカから製作開始
クルマ好きにとってエンジンスタートは気持ちのモードが切り替わる儀式です。
まず、PS5の電源ボタンを直接押す方式については、小型サーボモーターに目をつけました。
サーボモーター(以下:サーボ)はモーターの回転を減速してアームに伝えるものですが、アームの動きを思い通りにコントロールすることが可能です。
例えば”Arduino nano”(アルデュイーノ・ナノ)という名称の小さなマイコンボードにこのサーボを繋ぐとプログラムの命令通りに作動させることができるので、PS5の小さな電源ボタンを指先のようにデリケートなタッチで押すことも可能になります。
そこで今回のプログラムでは、スイッチBOXの ”START/STOP” ボタンを押せば、<サーボモーターが作動して PS5の電源ボタンを押す> というプログラムをマイコンボードに書き込んで作動させることにします。
プレイ終了時には、再び”START/STOP” ボタンを押せばスリープモードになりますから、狙い通りの結果が期待できそうです。
というわけでまずはボタンを押す”プッシュ装置”(木製w)を製作。
3Dプリンターがあればこういう装置も簡単に作れるでしょうね。3Dプリンターも近いうちに導入して使いこなせるようになりたいなと妄想中です。(^^)
サーボモーターのアームが1の方向に少し回転し、リンクロッドを介してレバーを2の方向に引くと、3の部分が矢印の方向に動いて電源ボタンを押し込むことができます。
また、ボタンを傷めたり無理な力がかからないように、リンクロッドには弾力性をもたせ、ボタンとの接触部分はホットボンドを薄く盛り上げてタッチをソフトにしてあります。
PS5の電源ボタンは細い縦長で、ボタンを押し込む量も2ミリ程度ですから、それを正確かつ適切な押し加減で操作する必要があります。
そこでまず、プッシュ装置がPS5筐体の形状にぴたりとはまって正確に位置決めされる構造にしました。
その上でボタンを押し込むストローク量や押し込む時間はコンマ1ミリ単位の制御をプログラムで簡単に調整できるようにします。
リレーとLEDの動作制御システムを製作する
アナログなメカニズム部分が完成したので、次はリレーとLEDの動作制御システムを制作します。
”START/STOP”ボタンを押してもPS5がスリープ復帰するまでのタイムラグは15秒ほどあります。
その間、真っ暗なモニターをぼーっと眺めて過ごす時間はスタートの儀式にはふさわしくありませんから、何か対策が必要でしょう。
そこで、”START/STOP”ボタンを押したら、ボタンを押すと同時にスイッチBOXに並べた10個のLEDランプが復帰までの間、カラフルな点滅をする演出にしました。
こういった複数の仕事がこなせるのもマイコンボードならではの面白さです。
Arduino nanoと起動メカとLEDランプを仮接続し、PCで作成したプログラムをArduino nanoに書き込みました。
実際の作動を見ながら、LEDの点滅パターンプログラムを作成します。
マイコンボードを導入するメリット
「マイコンボード」「プログラム」と聞くだけで、3年前の私は「自分には無理!」と拒否反応が出ていました。そんな私が今ではマイコンボートの活用でDIYの面白さが10倍になったと言っても過言ではありません。
今回の場合だと、プログラムで制御するメリットは何と言っても、リレーの動作スピードや角度と回転量、LEDの点滅パターンや点滅のタイミングなど、全てが数値で簡単に設定できることです。
難点はプログラムを理解して自分で設計できるようになることと、電気的な工作ができる技術ですが、簡単なプログラムの書き方はすぐに理解できるので、ネットから知識と情報を拾い上げていけば誰でもマイコンボードが使えるようになります。
例えば1秒毎に点灯と消灯を繰り返し続けるパターンでLEDを点滅させるなら以下のプログラムだけです。
void setup() {
pinMode(13,OUTPUT);
}
void loop() {
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}
少し解説すると、
・LEDを繋ぐのはマイクロコンピュータの13番ピンですよ。
・その13番ピンで以下の動作を繰り返しなさい。
・1秒(1000㍉秒)点灯。
・1秒(1000㍉秒)消灯。
というような内容がプログラム独特の書式で記述されています。
興味のある方は、「Arduino 入門」で検索すると、親切に解説してくれているサイトが多すぎて困るほどヒットします。
最もポピュラーでホビー活用の実例が多いマイコンボードであるArduinoについて学ぶと、DIYで実現できることが無数に広がり、自分では不可能だと思っていたことができるようになるので、それが楽しくて私もすっかり虜になりました。(^^)