Teams会議中のスリープモード防止策

電子工作入門
Pocket

先日、Teams会議中に会話が弾んだところでPCのスリープが起動するシーンが数回発生しました。

そんなのはWindowsの設定から「システム」→「電源とスリープ」に入って設定を変更すりゃいーじゃん!というツッコミが聞こえてきそうですが、会社のPCってユーザー側にはCドライブ内の書き込み権限は与えられていないんですよね。

これ、最近は普通ではないかと思います。

つまり会議中だろうが、何だろうがマウスをグリグリ動かし続けるか、キーボードをカタカタやっていないと会話が弾んだところで一定の時間が経過するとスリープモードになってしまい、弾んでいた会話が途切れてしまい、更に再ログイン→Teams再接続という無駄な時間を過ごすことになります。

何とか回避出来ないかなーと思い、調べてみるとこんな商品がありました。↓

ですが、ちょっと高いですよね。4,900円ともなると、ちょっと高価なゲーミング系のマウスとか、トラックボールマウスが買えてしまいそうです。という事で、、、

   

スリープ防止マウスに代わるモノを自作してみる事に、、、

最初に電子工作系のラズベリーパイで実現出来ないか?色々調べてみたところ、、、

最近出たばかりのRaspberry pi picoという今までのラズパイとは少し毛色の違うマイコンボードがあり、この商品であればHID(クルマのライトではなくHuman Interface Deviceの略称)のコントロールが可能である事が判明。

例えば、マウスでカーソルを動かしたり、キーボードのキーを押す操作、ゲーム用のジョイスティックやパッドの操作をマイコンボードでコントロール出来るのです。

こいつならいけそう!しかも1個、500程度だから安い!

いきなりマニアックな単語を連発しちゃいましたが、そもそも「ラズパイ」って何よ!?という方もいらっしゃるかと思いますので、すごく簡単に説明すると所謂「シングルボードコンピューター」の事で、プログラミングを書き込んで昔のファミコンのカセットのように決まったプログラムを繰り返し動かしたりする事が出来る代物です。

最も最新の高性能なラズパイの場合、超小型であるにも関わらず、最大メモリ8GBでラズパイ自体にLinuxベースのOSを入れてパソコンと同等の処理を行う事も出来たりします。

   

今回の用途ではPCのような使い方ではなくマイコンボードとして簡単なプログラムを書きこんで、マウスを定期的に同じ操作を繰り返しさせるだけなので容量も少なくて良いし、メモリもそこまで必用になるような処理ではありません。

このような用途にピッタリのマイコンボードが無いか?調べると、行きついたのはこの二つでした。

・Raspberry pi pico
・Arudino Pro micro

どちらも実売500円~700円程度となっており、HIDコントロールが可となっています。さっそく販売状況を調べてみました。が、ピコ(ラズパイ)の方は最近出たばかりで大人気の様子。Amazonでヘッダーピン装着済で1000円ちょいで出ていましたが、500円程度で売られているものはどこも売り切れでした。

そこで目を付けたのがもう一つのアルディーノです。こちらはどういう訳か、互換品と呼ばれるモノばかりが大量に出回っており、たまたまセールのタイミングで2個で1189円というのがあったのでこちらをポチってしまいました。正規品は1個2000~2500円程度するみたいです。

折角なので電子工作という物にも少し触れてみたいのでLEDランプやらブレッドボードというtest用のボードやジャンパーピン等も購入。中高時代に習ったオームの法則を思い出しながら抵抗器等も含め、全部で3000円程度使ってしまいました。結局、Amazonのやつと変わんねーじゃん?というツッコミは無しで。。。w

電子工作

上記、写真の真ん中少し左の銀色の袋の上に置いてあるのがArduino互換品のマイコンボードです。

後は以下、Arduino公式サイトからArduinoIDEという開発環境(無料)をPCにダウンロードし、プログラミングを書ける状態にします。プログラミングはラズパイならPythonやC、C++、Arduinoは良く分かりませんが恐らくC言語かC++ではないかと思います。

どうせ、ライブラリからコピペしまくってパラメータをカスタマイズする程度だと思うので、ぶっちゃけ言語は何でも良いかなーと思っています。ですが、ハイスペックなラズベリーパイでサイトからスクレイピングしてリアルタイムの情報をLCDモニタに表示させる等したいのであれば、ラズパイでPythonを勉強しておくと良いかと思います。

   

少し余談になりますが、例えば自分の場合、良く見るサイト言えば、株価、FeedlyのRSSフィード、Twitter、Yahooニュース、天気、路線情報、WordpressのJetPack(自身のサイトのPV数)、Googleサーチコンソール、、、等です。

まだまだありそうですが、このような外部サイトのデータは恐らくスクレイピングでクローリングし値を取得し、ラズパイ経由でLEDドットモニタや有機ELディスプレイに定期的にOUTPUTする事が可能ではないかと思われます。

スクレイピングはサイトによっては禁止されている場合もあるかもしれませんのでご注意を。。。

このような作業はどこかの誰かから聞いた気がするのですがJavaScriptやPHPよりもPythonの方がやり易いのだとか。。。(違ったらゴメンナサイ)

少し話しが脱線しましたが、色々な用途に使えそうなマイコンボード。私の場合、先ずはスリープ防止のマウス(又はキーボード)作成ともう一つ、自分の在宅ワークや勉強環境はロフトなのですが、夜上る時に照明を点けて登れないので暗いんですよね。人感センサーで自動ON/OFFのLED簡易証明を作りたいと思いました。

さて、マイコンボードってどの程度の大きさなのか?気になる方もいらっしゃるかと思います。こんなに小さいんですよ。

マイコンボード

基盤無しのプログラミングのみであれば、フリスクの箱に2、3個収納出来そうですね。まあ、2つ、3つ入れなくてスライドスイッチやディップスイッチを付けてプログラムを使い分ける事が出来れば1つで十分かもしれません。

その辺の制御やスイッチ操作等は今回購入したLEDやブレッドボードで後日検証していきたいと思います。

   

PCにマイコンボードをつないでみた!

今回購入した互換品に説明書はありませんでした。兎にも角にもPCに接続してみました。接続は互換品側がMicroUSBでPC側は普通のUSB3.0です。おー!本体内蔵のLEDランプが点灯しました!

マイコンボードLED

いよいよ次はプログラミングです。

先ずはArduinoIDEを起動し、ツールメニューからシリアルポートに進み、刺したUSBポートを選択します。

次に同じくツールメニューからボードに進み、対応する機種を選択します。機種にもよりますが、今回私が購入したPro micro互換品はコードネームがLeonardoだったのでこちらを選択。

次に、スケッチメニューからライブラリをインクルードというメニューに進みMouseを選択します。すると1行目に下記文言が表示されます。

1行目:#include <Mouse.h> //ライブラリを選択すると自動で記述されます

2行目:#define d 4000 //マクロ(定数)の宣言です。4000は好みに応じて各自調整。ms秒?短すぎると、うっとうしい。

3行目:#define i 5 //マクロ(定数)の宣言です。こちらはマウスムーブの移動量です。5にしてみましたが、各自で好みに応じて調整。

4行目以降は下記のような記述で良いのではないかと思います。Arduinoは使える容量領域が小さいのでなるべく文字数は少なくした方が良いでしょう。プログラムに使える領域は32kbでしたので約15,000文字~20,000文字程度?そんなに使わないかな。

void setup() {
Mouse.begin();
}
void loop() {
Mouse.move(i, 0, 0);
delay(100);
Mouse.move(i * -1, 0, 0);
delay(100);
delay(d);
}

検証ボタン(レ点チェックボタン)で問題が無ければROMに書き込みます。PCにも保存しておきましょう。焼き込みが完了し、USBに刺すと自動的に実行し無限ループに入るはずです。おー、マウスが勝手に動き回ります!スゲー。

上記、機能はタクトスイッチ等でON/OFF出来るといいですよね。また、よく使うctr+alt+delやアカウント名等、自動入力出来るボタンも設定出来ると便利と思いました。パスワードは流石にマズイ?笑

   

注意)元々の自動スリープは省エネのみならず、セキュリティ対策として自身が離籍した時に他の人にPCの中身を見られないようにする為の機能でもありますので注意が必要です。会議中等、自身が近くにいる時に使用する等、情報漏洩には十分気をつけてください。

今回は先ずは目的の一つは達成出来たので次回はLEDを使った世間で言われる「Lチカ」というのにチャレンジしたいと思います。LEDの点灯だけであれば簡単そうですが、スイッチの操作は難しそうですよね。先ずはこれが使えるようにして、今回の機能をバージョンアップしたり、人感センサーによるLEDライト等、やってみたいと思います。人感センサーはLeonardoである必要はないので同シリーズのnanoでも良いかも。。。

プログラミングは最近、急に忙しくなってきました。

JavaScriptもやっておりますが、フロントエンドの開発にも少し飽きてきたのでスクレイピングなんかも面白そうですし、どうせならマイコンボードと組み合わせてちょっとステップアップしようかなーとか、仕事では最近VBAで色々とやりたい事が増えてきたり、何だか忙しくなってきました。

以上、スリープモード防止策でした。

補足)
今回私がAmazonで購入した互換品はもう売り切れになっていましたが似たような別の互換品があったので紹介します。が、互換品はアタリハズレがあるかもしれませんので自己責任でお願いします。

また、半田付けを必要とするような使い方をする場合、ご自身で半田付けする為の工具が必要になります。私は昔ラジコンをやっていたのでその時の工具を使用しましたが、電子工作ともなるとかなり精密な作業になるので、なかなか難しかったです。

不慣れな方や、半田小手を持っていない。でもブレッドボードに刺して遊んでみたい。そんな方は少し割高ですが、元々ヘッダーピンが半田付けされているものも売ってる場合がありますので、探してみるのも良いかと思います。

互換品(半田付けされていない)↓

余談)今回作成したスリープ防止USBは似たようなものがメルカリにも出品されておりました。流石にプログラミング迄やるのは自信が無いや。。という方はこういうのを買ってしまうのも在りかと思います。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

はじめまして。アカサティナです。今はサラリーマンです。定年まで続けたいとは思っていません。色々第二の人生を考えてます。最近ブログを始めました。70年代生まれ、昭和の人です。ブログはWordPress、テーマは「ストーク」を使ってます。