見出し画像

テレワークの味方!スクリーンセーバーキラーをATTiny85で作ろう!

【警告】
すべて自己責任で行ってください。
この記事によって被った損失について当方は一切責任を負いません。

なにやら、某ウイルス感染拡大の状況で 「スクリーンセーバーキラー」なるものがニワカに脚光を浴びているとかそうでないとか。

それってどんなもの?

ZOOM会議中にフェイク入力をさせるためのプロダクトらしい。

詳しくはここで書かないのですが(!?)テレワークのために会社から支給されるパソコンでZOOMの会議をやっている間に、うっかり居眠りだとかしてしまうと一定時間パソコンを操作していないことになりますね。そうするとスクリーンセーバーやロックがかかってしまい、「サボってるな。コノヤロー」みたいな状況になってしまうようです(^_^;

それで適度に(!?)サボるためのツールがどんなものかというと…

なるほど… 

筆者はとてもテレワークができるようなキラキラ☆なエンジニアとは訳が違うプロレタリアートなので ATTiny85 を積んだマイコンボード DigiSpark で作ることにする。

ようこそ!格安Arduinoの世界へ!

ATTiny85とは

Microchip 社製の8ビット8ピンマイコンです。最低限のスペックしか持ち合わせていませんが、サクっと arduino が使えちゃったりします。  arduino の勉強したいな〜。でもLチカやっただけで飽きちゃうだろ〜な〜。 と思ったら、まずはこのマイコンで遊んでみましょう。Lチカだけやってゴミ箱行きになっても全く惜しくない金額だ。

気になるスペック
20MHz FLASH-ROM:8kB EEPROM:512B RAM:512B
GPIO:6pin I2C:1ch SPI:1ch ADC:4ch

うん。令和時代の今となっては 貧弱!貧弱ゥ〜! なスペックですね…

RAM 512B ですよ(泣)。 2バイト文字なら 140文字だけしか書けないという某SNSであれば 2tweet 分も無いわけだ(!?)

それでも先人たちの立派な遺産のおかげで、LEDをチカチカさせたり、USBでPCに何か入力を行わせたりするくらいであれば、たいへんお気軽に試せます。これは強い。

購入

画像1

普通に秋月電子などで買えます。 DIP タイプなら ブレッドボード に挿してすぐ使えて、遊びがいがあります。 1個130円

しかし、今回はUSBインターフェイスをちゃちゃっと手軽に作れる通称 DigiSpark を使うことにします。

画像2

AliExpressとかで探せばクローン品がアホのように安く売っています。1個150〜200円くらい。 やや割高だけどAmazon でも買えますね。 

こやつの回路図が 開発元の digistump 社の公式サイトにある。→ ここ

画像3

至って単純だ。だからこそわかりやすくて良いんですけどね。

DigiSpark を Arduino でいじくろう

かなり枯れた開発ボードなので、Startup についてはぐぐればザクザクと出てくる。

(1)Arduino-IDEに以下のボード情報を追加。

http://digistump.com/package_digistump_index.json

(2)ボードマネージャから [Digistump AVR Boards by Digistump] をインストール。

(3)ボードに "Digispark (Default - 16.5mhz)" を選択、書き込み装置は "Micronucleus" を選択しよう。これでUSBケーブル経由で書き込めるようになる。

Linuxマシンで書き込みできないとき!

筆者のようなLinux(Ubuntu)環境だと、書き込み時にArduino-IDE の Micronucleus のバージョンが違うよ!と怒られてしまうことがある。

Warning: device with unknown new version of Micronucleus detected.
This tool doesn't know how to upload to this new device.
Updates may be available.Device reports version as: 2.2

この対策は このあたり に書いてあります。 なお、make するとき、libusb-dev のパッケージも必要なので、あらかじめ apt install しておくといい。

あと、筆者の場合、USBハブ経由 だとDigiSparkが認識されず書き込めませんでした…。そんなときはPCのUSBポートに直接挿してみましょう〜。…空きが無い場合は気合でカバーしてください。

基本的なプログラム

Lチカ は… digitalWrite でなんとかしてください(笑)。これまたググればいくらでも出てきます。

↓以下のtutorialもたいへんわかりやすいので、ひととおり試すこともできるでしょう。

スクリーンセーバーキラーを作ろう!

ようやく本題w

イチから作るのはさすがにたいへんなのでサンプルを探してコピペプログラミングに励むことになります。以下がgithub

上記レポジトリの「libraries」からたどってゆくと…
DigisparkMouse
DigisparkKeyboard

…といったものが用意されているので、そこから辿れるサンプルなどを参考にすればすぐできるでしょう。

スクリーンセーバーキラー だったら、その名のとおり Mouse ライブラリの Sample を使えばすぐできます。

 #include  <DigiMouse.h>

void setup() {
 DigiMouse.begin(); //start or reenumerate USB - BREAKING CHANGE from old versions that didn't require this
}

void loop() {
 // If not using plentiful DigiMouse.delay(), make sure to call
 // DigiMouse.update() at least every 50ms
 
 // move across the screen
 // these are signed chars
 DigiMouse.moveY(10); //down 10
 DigiMouse.delay(500);
 DigiMouse.moveX(10); //right 10
 DigiMouse.delay(500);
 DigiMouse.moveY(-10); //up 10
 DigiMouse.delay(500);
 DigiMouse.moveX(-10); //left 10
 DigiMouse.delay(500);
}

こんな感じ。これで、スケッチを書けばマウスポインタが自動でクルクル回るやつができあがります! これで勝手にスクリーンセーバーやロックがかかってしまうことを防げるわけです。

画像4

…ここまで書いておいてですね!

同じようなWeb記事がすでにありましてですね。見事にネタかぶり(T-T)。しかも販売までされているとのこと。

ネタ被りが怖くて記事が書けるか!!(゚∀゚) 

と開き直って投稿した次第であります。

…これだけで終わったら面白く無いので、 この DigiSpark を使って、キーボード入力もできますよ。という例も紹介。 それがアイキャッチの画像にもなってるコレ↓

セリアのおもちゃをZOOMのショートカットキーボードにしよう!

…ZOOMはキーボードショートカットを覚えると、かなり捗ります!それで、よく使うショートカットだけを取り分けたキーボードに改造するという遊びもできたりします。

引き続き、快適な(?)テレワークライフを!

[了]

この記事が気に入ったらサポートをしてみませんか?