お菓子ケース型ガジェットの製作
ぶなまめ1号 「obniz in FRISK」
はじめに
obniz BoardをFRISKケースに入れて扱いやすくしてみました。
8連のLED、振動モーター、圧電スピーカーを内蔵しているので、これ単体で遊ぶことができます。
充電池も内蔵しているので、小電流用途なら内蔵電源で動きます。
Grove端子もついているので、センサなどが簡単につなげます。
ガジェットの外箱として、FRISKケースに入れた状態でobniz Boardの箱に戻せます。
動作
光ったりブルったり音楽を演奏したりできます。
部品一覧
部品名 | 型番等 | 数量 | 備考 |
---|---|---|---|
obniz | obniz Board | 1 | amazonで購入 |
ケース | FRISK | 1 | 会社の売店で購入 |
RGB LEDx8 | WS2812系 | 1 | Aliexpressで購入 |
圧電スピーカー | PKLCS1212E4001-R1 | 1 | 秋月電子で購入 |
振動モーター | コイン型Φ10mm | 1 | Aliexpressで購入 |
リチウムイオン充電池 | kei-702 300mAH | 1 | amazonで購入 |
充電ケーブル | ラジコンヘリ用 | 1 | Aliexpressで購入 |
バッテリーコネクタ | 平型オス | 1 | yahooで購入 |
GROVEコネクタ | HY2.0-4Pオス | 1 | aitendoで購入 |
スライドスイッチ | MSK-12C01 | 2 | Aliexpressで購入 |
マグネット | ネオジムΦ8mm | 2 | ダイソーで購入 |
その他 | はんだ、カプトンテープ | 少量 | 手持ち |
ハードウェア
ケースの加工
obnizをFRISKケースに入れるにあたり、obnizの基板は削らず、FRISKケースはいくらでも削っていいルールとしました。
FRISKの内箱(写真上)は右と下のヘリを切り取るとobniz Boardがすっぽり収まります。
外箱(写真下)は、画面表示が外から見えるように四角い穴をあけ、スイッチにあたる場所と配線を指す場所を切り取ります。
工具はハンドニブラーと黒刃カッターナイフを使いました。
電源回り
充電池は、約40×約25×約3mmのものをobnizの裏面に両面テープで貼りつけました。
絶縁が必要な部分にはカプトンテープを使っています。
充電池の出力電圧は約3.7Vです。本来は昇圧回路で5Vにするべきですが、今回はこのままスライドスイッチを経由してUSB電源の根元につないでいます。このため、IOの電圧も3.7V前後になりますが、大抵の部品はこの電圧でも動作するので自分の使い方では問題はないと判断しました。
また、リポの充電には、ラジコンヘリ用の充電ケーブルを使うことにしました。
このケーブルは、充電モジュールを内蔵しています。
充電モジュールを外に出すことで、より大きいバッテリを内蔵出来ます。
作例を参考にされる際は自己責任でお願いします。充電式電池の取扱いには十分ご注意下さい。
その他の部品
振動モーター、8連のLED、圧電スピーカー、Groveコネクタ、バッテリーコネクタ、スライドスイッチです。
各部品はobnizの外部端子の根元で基板にはんだ付けしました。接続先は以下の通りです。
部品 | 接続先 |
---|---|
振動モーター | 5番と本体のGND |
8連WS2812B | vccは6番, dinは7番,gndは本体のGND |
圧電スピーカー | 8番と本体のGND |
Groveコネクタ | vccは9番, 信号は10,11番,gndは本体のGND |
スライドスイッチは電源とスピーカー配線のそれぞれに直列に入れました。
Groveコネクタ側の写真です。スイッチ周りは手のあたりがよいように削っています。
バッテリーコネクタは充電コネクタに接続するためのもので、充電器に直結しています。
電源コネクタ側の写真です。USB端子と充電端子の二階建て構造としています。
電源スイッチは見づらいですが、充電コネクタの右側にあります。
アプリ作成のポイント
obnizIDが漏れると地球の裏側からでもいたずらされるリスクがあります。人にアプリを披露する際にもobnizIDは極力見せたくありません。そこで、 obniz.resetOnDisconnect(false); を記述しています。
また、USBからの電源供給の代わりに充電池直結としたことで、obnizのLOWバッテリー警告が出やすくなります。そこで obniz.onconnect の直後に警告を出さない設定を追加しています。
具体的な記述例を紹介します。
obnizIDの隠ぺいとLOWバッテリー警告オフ
obniz.onconnect = async function () { obniz.resetOnDisconnect(false); obniz.warning = (msg)=>{}; obniz.error = (msg)=>{}; (以下、他の処理)
8連のLEDと圧電スピーカーは公式のサンプルで動きます。端子設定部分は以下のように記述しています。
内蔵部品の接続
const leds = obniz.wired("WS2812B", {vcc: 6, din: 7}) const speaker = obniz.wired("Speaker", {signal:8, gnd:8 })
振動モータはPWMで制御できます。サンプルコードを紹介します。
振動モータでボレロを表現するコード
var pwm = obniz.getFreePwm(); pwm.start({io:5}); pwm.freq(1000); var beat = [1,0,0,0, 0,0,0,0, 0,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 0,0,0,0, 0,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 0,0,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 0,0,0,0, 1,0,0,0, 0,0,0,0, 0,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 0,0,0,0, 0,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0, 1,0,0,0] pwm.modulate("am", 41.5, beat, 20);
おわりに
ケースに入れたことで、ポケットに入れて簡単に持ち運べるようになりました。
obnizで動く様々なソフトがそのまま動くのはもちろん、定番の部品を搭載したことで配線しなおすことなくいろんなアプリを試すことができます。
また、部品ごとケースに入れたので配線が外れる心配もなく、電池も内蔵しているので某〇5Stickのようにポケットから出してすぐアプリを披露できるのもポイントです。
最後に製作したガジェットを使ったアプリの動作デモを紹介します。
elchikaには動画が貼れないのでTwitterの埋め込みにしたのですが、PCのブラウザだと埋め込みがうまく反映されなかったので、リンクも貼っています。
いずれも内蔵電池で動作しています。
ご笑覧いただければ幸いです。
免責事項
本記事の正確性については努力しておりますが、当方は利用者が当記事の情報を用いて行う一切の行為について何ら責任を負うものではありません。本記事の情報の利用、内容によって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ご自身の責任においてご利用いただきますようお願いいたします。
Author
投稿者の人気記事
-
AoiSaya
さんが
2021/05/16
に
編集
をしました。
(メッセージ: 初版)
-
AoiSaya
さんが
2021/05/16
に
編集
をしました。
-
AoiSaya
さんが
2021/05/16
に
編集
をしました。
(メッセージ: コメント追加)
-
AoiSaya
さんが
2021/05/16
に
編集
をしました。
(メッセージ: 端子接続の詳細とアプリの作り方を追加)
-
AoiSaya
さんが
2021/05/16
に
編集
をしました。
(メッセージ: 説明を加筆)
-
AoiSaya
さんが
2022/01/28
に
編集
をしました。
ログインしてコメントを投稿する