小ロット・急ぎのものづくり 何でも相談ください

ブログBlog

2024年06月24日 [アプリ屋さんのIoT]

LEDルーレット(2)

LEDルーレット正面 突然ですが、LEDルーレットの正面の写真です。


LEDルーレット側面 続いて、LEDルーレットの側面。



LEDルーレット背面 最後に、LEDルーレットの背面となります。

前回、LEDルーレットを作成しました。仕様などは、そちらの記事を一読願えればと思います。
前回の記事の中で、ジャンパー線を工夫したことを書きました。
せっかくですので、3方向からの写真を並べて紹介したいと思います。
横からの写真を見るとわかると思いますが、ジャンパー線の使い方によって、かなり見栄えが変わることがわかると思います。

さて、ここからが本題です。
ハードウェアは、さほど難しくはありません。
ソフトウェアとの連携で少し手こずりました。ソフトウェア屋なのに恥ずかしい限りです。

ハードウェアとソフトウェアの連携で避けることができない問題があります。
それはチャタリングと呼ばれるもの。
最近のPC等のCPUは最低でも1GHz以上を利用していると思います(Windows11の必要条件です)。
1GHzということは、単純には1秒間に10億回処理を行っています。
一方人間が、どんなに頑張っても1秒間に100回以上のスピードはでないと思います。
このチャタリングは、そのスピードの差とスイッチ等の限界が引き起こす状態です。
ハードウェアスイッチは、物理的なもので、中途半端な状態では、その性質上オンとオフが安定しません。
(触れていそうで、触れていない。でも、ちょっとしたズレで一時的にオン状態になります)
そのことによって、ボタンを押した瞬間を捉えるのが簡単にはいきません。

簡単な例を出しますが、以下の様にスイッチの状態があったとします。
0,0,0,0,1,1,1,0,1,1,1・・・
8番目の「0」が果たして、ボタンから指が離れたのか、チャタリングの影響なのかの判断をしなければいけません。

WindowsやLinux、androidなどの各OSでは、OSにてそのブレなどを補正してくれます。
ですので、プログラミングでいうところのイベント処理をチャタリングなどを気にせずに作ることができます。
一方、ハードウェア直結の場合、その処理が行われないため、自分で制御プログラムを作る必要があるわけです。

以前の装置にも同じことが言えるのですが、今回はゲームなのでシビアに作る必要性がありました。
そんなことがあって、チャタリング処理とスイッチを押した後の計測を行い、停止状態で何番目のLEDが光っていたかのプログラムが大きくなったというお話でした。


IoT開発を行って、仕事の効率化や豊かな生活を送りませんか?
「Let's extend technology!!」
を合言葉に、
IoTの事例やヒント、開発記を投稿していきます!

ハードウェア業者と、話がうまくできない。
そんなときは、両方に対応している弊社にご相談ください。
お待ちしております!
WEBでのお問い合わせはこちらから

PageTop