[編集中]ArduinoでジャンクLEDランタンの修理

電子工作

前提

3000円で購入した
LOGOS「Bamboo ゆらめき・かぐやランタン」のジャンク品。
電源が入らない状態から修理、
Arduinoを使用して
ゆらめきモードの搭載を行っていきます。
(2年前にやった内容なのでうろ覚えの部分があります)

公式の動画↓
(肝心のゆらめき部分はよくわからず…)

現状

こちらが届いた状態。
画像中央、電源&明るさ調整のボリュームノブが外れています。

問題の部分をバラしたところ。
プラスチックの部品が溶け、
本体とボリュームノブを付けていた接着剤も外れてます。
(今思えばここだけ直せばよかったのでは…)

LEDは大丈夫そう。

バッテリー、充電制御部分も生きてました。

やること

ざっくり分けるとこんな感じ。

▽ハード
 ・ボリュームノブ
 ・電源部分

▽ソフト
 ・明るさ制御
 ・モード切替
  (通常、ゆらめき)
 ・ゆらめきモード

購入したもの

・Arudino ?
・スイッチ付き可変抵抗
・MOS FET
・昇圧
・リレー
・ボリュームノブ

ハード側

Arduinoでプログラムを書いてLEDを制御しようにも、
ハード側が繋がっていないとテスト出来ません。
なのでまずはハード側を修理して、
Arduino経由でLEDを制御出来る状態にしておきます。

ボリュームノブ

土台部分は3Dプリンターで作成。

ボリュームノブはアルミ製で純正より良い感じ。
これは先に配線を付けてしまって土台が通せなくなっているところ…

電源部分

一応、回路図?です。
(ハードは素人なのでご容赦ください…)
LEDが12Vのため、
バッテリーからの3Vを昇圧して12Vにし、
Arudino電源とLED用のMOSFETに繋ぎ、
MOSFETの出力をArduinoのPWM経由で制御します。

こんな感じで何とか本体に入るようにします。

たしか本体の側面にホットボンドで付けた記憶が…
熱で溶けないかと心配でしたが今のところ問題無いです。

ソフト側

ソフト側はちょっと書くこと多め、
ガンマ補正、移動平均、ガウス間欠、ROM書き込み…

入力→出力 変換

可変抵抗の値に応じて
LEDの明るさを変えるだけであれば、
map関数などを使用して
「アナログ入力(0~1023)」の値を
「PWM出力(0~255)」の値に
「変換」すれば良いです。

この時はエクセルでテーブルを作成しました。
要素数1024の配列を用意し、
中身は各インデックスに合った256段階の値を設定。

これでとりあえず光るようになりました。
ボリュームノブを回すと、それに応じて明るさが変化します。
TODO:画像

明るさ制御 – ガンマ補正

色々調べているうちに
「ガンマ補正」というものがあることを知り、
せっかくなので取り入れてみました。
ざっくり言うと、数値的な明るさの変化と、
人間の目に見える明るさの変化が異なるので、
良い感じに人間に合わせてあげようってことだと思います。(多分)
こちらもテーブルを作成。

「ガンマ補正」の処理を「変換」の後ろに追加します。

明るさ制御 – ちらつき対策

ここでLEDがたまにチラつく問題が発生。

「アナログ入力(0~1023)」の数値が
何もしてなくても微妙に動くことが原因でした。
ハッキリとわかるくらい明るさが変わるので
あまり良い感じではないです。

↓実際に読み込んだ値
 10の中に11が混ざっています。

緩和方法は色々あるのですが、
今回は移動平均を使用しました。

一応、簡単に説明します。例えば
直近5個をバッファに詰めて移動平均するとして、
値が10, 10, 11, 10, 10だったとすると、
10 + 10 + 11 + 10 + 10 = 51 / 5 = 10.2
小数点部分を四捨五入して10になり、
これで少しなら値がズレても影響しなくなります。

まだ稀にちらつくこともありますが
かなり軽減することが出来ました。

「変換」の後ろに「移動平均」を追加します。

モード切替

ここまでで”通常モード”は実装出来ました。
次は”ゆらめきモード”の実装となるのですが、
その前にモードを切り替えれるようにします。

ここの方法は結構悩みましたが
結果として、
「電源をON/OFFする度にモードを切り替える」
ことにしました。

ゆらめきモード

画像のテスト

引用のテスト

これは引用です

https://kasairo-blog.com/

実装

あれをどうこう
これをどうこう
そしたらこう

各種条件

あれこれそれこれ
なんとかかんとか

リストのテスト

  • これはリストやで
  • これはリストやで
  • これはリストやで
  1. これはリストやで
  2. これはリストやで
  3. これはリストやで

テーブルのテスト

これはヘッダーこれはヘッダーこれはヘッダー
これはテーブルこれはテーブルこれはテーブル
これはテーブルこれはテーブルこれはテーブル
これはテーブルこれはテーブルこれはテーブル

Javascriptのテスト

コメント

  1. kasairo より:

    コメントのテスト

  2. kasairo より:

    fdsfsdfdsfs

タイトルとURLをコピーしました