パチDigiSpark。小さいよかわいいよ。 |
同僚さんからストレートネックから来る肩こりに困っているので何とかなりませんか?と依頼。さくっと作ってみました。
追記
■原理■
本当は加速度センサーを2個以上使って頚椎の屈曲ぐあいを計る必要があるんですが、簡易的に頭が前傾しすぎたら警告を発するようにしました。起動から5秒間の平均値を求め、それ以上前傾したらダメ!です。今回のユーザはメガネさんなのでメガネにセンサーを取り付けることにして、ポケットに本体と振動モータと電池を入れられるようにしました。
■構成■
マイコンとしてATTiny85のDigiSpark、センサにはADXL345(オーバースペック)、通知には秋月の振動モータ、ドライブは2SC1815です。振動モータは振動モータにしておくのがもったいないブラシレスです。ドライブ回路内蔵なので、電流制限抵抗省略、多分クランプダイオードも入ってるだろ、ということで外付けは省略。気になる人はちっこいダイオード付けておきましょう。電源はモバイルバッテリを使いましたが、アイドリング中の消費電流が小さいのでバッテリ側で勝手に電源をオフにしてしまいます。幸い、SANYO KBC-L3S(絶版)は微小な電流でも切れないので、今回はこれを使います。cheeroのIoT機器用バッテリもこういう用途に使えるはずなのですが、ずっと欠品のままで3ヶ月です。このまま発売停止なら何か作るんだけど…出るのかでないのかはっきりしてくれい>cheero
回路図途中まで書いたけどKeynoteとEagle混合だとうまくいかず挫折orz
(あかん) |
ということで配線図。
CSをプルアップ(1608使用) |
SDOをプルダウン(でかい) |
プラスに配線、マイナスにコレクタ、ベースに1kΩと緑、プラスに赤、エミッタに黒 |
■追記:続編■
モニタからの距離を測定するバージョンも作ってみました。■制御プログラム■
探すと見つかるインターネット。まず、これでADXLとDigisparkがちゃんとつながっていることを確認します。y方向に傾けるとオンボードのLEDが着いたり消えたりすればOK。
以下、
- 起動したら0.1秒 x 5秒間、X軸方向の加速度(傾斜)を検出し平均値を求める
- 平均値取得が終わったら0.1秒振動モータを回す
- それ以降、平均値より前傾したら振動モータを回す
だけです。つまり、メガネのツルなどにこの装置のセンサー部分(ADXL345)を取り付けて、「これ以上首を傾けたらダメ」な状態でバイブレータが鳴るまで5秒間静止します。
その後は、普通にお仕事をして、鳴ったら姿勢を改める、という仕掛けです。
その後は、普通にお仕事をして、鳴ったら姿勢を改める、という仕掛けです。
なお、傾斜スイッチと振動モータと電池だけでいいじゃん、というツッコミを禁止します。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。