玄関のカギ監視システムを作って2年経ちました
初めに
2年前のGWに玄関のカギ監視のIoTシステムを作りました。 pikapikalight.hatenadiary.com 1年後の2022年に振り返りをしてみました。 pikapikalight.hatenadiary.com そして2年たった今現在、一度も電池交換することなく玄関カギのIoTを実現できています。 正直ここまで電池持つとは思ってませんでした。TWELITE CUE素晴らしい。
電池残量
カギ監視のキーデバイスはモノワイヤレスのTWELITE CUEを使用しています。玄関のカギに磁石をセロテープでつけてTWELITE CUEに内蔵されている磁気センサで開閉を検知する仕組みです。コイン電池 CR2032 で動きます。
標準のソフトで電源の電圧値も取得できるようになっていたのでそれも記録していました。
2年間の結果がこちらです。
ウチの玄関のカギは2個ついているので2個センサーをつけていて、上側がD1、下側がD2です。
気温と相関ありそうなデータが取れました。2年間問題なく動いていた実績も感慨深いです。
2年経って2.4V程度まで落ちましたがまだちゃんと動いています。
このシステムは開閉を検知した時と定期的に1分に1回の通信をしています。モノワイヤレスのHPによると「1分に1度の定期送信のみの場合、約700日」と記載あります、その通りに2年間1分間隔で動き切りました。素晴らしいです。
感想
玄関のカギ状態監視IoTは自分のような心配性人間(カギかけたっけ症候群)にとって間違いなく有用ですし、子供がちゃんと予定通りに時間に家に帰ってきているのかを確認できるという使い方もあります。個人で実用的なモノを作ったのはこれくらいですが、これは頑張って作ってよかったと思える代物です。
初めてのAliExpress
初めに
昨年末の話ですがクリスマス向けの工作でLEDドット絵クリスマスツリーを作りました。
Dot Xmas tree 🎄made with M5Atom and LED tape@M5Stack#M5StackXmas2022 pic.twitter.com/pIfCwXGGO5
— PikaPikaらいと (@KPmilk3) 2022年12月22日
作っている途中で使用しているLEDテープ(100LEDS/m)が不足する事態に。
LEDテープはたくさん手持ちが有ったので油断してました。持っているのは144LEDS/mサイズのものがほとんどで100LEDS/mがないことに気づかなかった。 100LEDS/mというサイズは1つのドットがちょうど1センチ角になります。他のサイズのテープではドットが長方形になってしまうので、100LEDS/mというサイズが必要なのです。 買い足そうとするもどこも在庫なしで、泣く泣く過去作品をばらして部品取りするということをしました。クリスマス向けの工作中。
— PikaPikaらいと (@KPmilk3) 2022年12月15日
はたして間に合うか😓 pic.twitter.com/ZJuZDR4fZ5
クリスマス向けの工作中。
— PikaPikaらいと (@KPmilk3) 2022年12月19日
途中でLEDテープ(100個/1m)の手持ちが足りなくなって、買い足そうにも何処にも在庫無し😩泣く泣く過去作品をバラして何とかハードは完成。
後はソフトを作りこまねば。M5Stack Christmas Contestに間に合うか😵💫 pic.twitter.com/KN0MNIbq3x
その後も100LEDS/mというサイズのLEDテープは国内の通販サイトでは見つからず、
もしかすると2度と入手できないかも。
ドット絵工作はネタを思いついたらやりたくなるので何とか入手したい。
探索範囲を広げるとAliExpressのBTF-LIGHTING Official Storeで購入できる事が分かり、 AliExpressに初挑戦することとなりました。
事前調査
日本では入手難しそうな電子部品をAliExpressで輸入している投稿をツイッターでよく見かけていました。なかなか届かない荷物を待ちわびるイメージです。
AliExpressが中国のアリババの通販サイトであることはなんとなく知っていましたが輸入という未知の響きに今まで手を出すことはありませんでした。
やはりクレジットカードの登録に躊躇してしまいます。支払方法に関してネットでざっくり調べてみて、Vプリカというプリペイド式のVISAカードを使うこととしました。
Vプリカ
コンビニで買えるとのことなので近所のローソンで購入しました。Loppiでなんとなくそれっぽいボタンを押していったら無事Vプリカの画面にたどり着きました。
2000円から10000円まで選べますが5000円までは手数料が200円だったので5000円にしました。いきなり1万円は突っ込めない小心者です。
発券して、レジでお金を払うと番号が書かれたレシートを渡されました。5200円と引き換えになったレシートの感熱紙のペラペラ感に一抹の不安を感じる安定の小心者。
スマホアプリをインストールしてカードを登録していきます。最初にアカウント登録する必要ありました。アカウント増えるの嫌ですが仕方なし。
後から知りましたがアカウント開設不要のVプリカギフトなるものもあるみたいなのでそっちのほうが楽だったのかもしれません。
アカウント登録、カード登録自体はサクサク進んで無事カードが使えるようになりました。
AliExpress
うわさでは聞いていましたがAliExpress安いです。異常な安さのモノも多数。
狙いの100LEDS/m LEDテープは1個1185円でした。しかも送料無料。中国からの輸入なのにどうなってるの。
ここは5000円を使い切るために4個買い溜めをすることにしました。
まずはアカウント登録しなきゃと思いきやGoogleやTwitterなどの連携が出来るではないですか。アカウント増やしたくない人なのでGoogleアカウントでログインしました。
トラブル発生
カード有効期限を入力する段でトラブル発生。Vプリカアプリ画面のカードのデザイン色が濃い青でちょうど有効期限のところが濃紺で黒文字が判読できない。
画面の拡大もできないしでどうしようかと思いましたがVプリカの有効期限は1年らしいので12月/23年だろうと判断しました。決済できたので正解だったようです。
Vプリカのカードのデザインはベーシックな青のやつとブタ?のキャラのやつの2つから選べたのですが、もしまた使うことがあればブタにしようと心に刻みました。
カード名義を入力する際にもトラブル発生。 Vプリカは本名でなくニックネーム(ここでは仮にABCDE)がカード名義になるのですが、購入画面でABCDEと入れると「姓と名の間はスペース区切り」というエラーメッセージが出て入力できません。なんてこったスペース入れないといけなかったのかと思い、ニックネームの再登録ができないか調べるも、出来なさそう。これは詰んだかと思いましたが、ダメもとで適当にスペース入れてやれと A BCDE ですすめたら無事決済できました。
あとで知りましたがそもそもVプリカのニックネームにスペースは入れられない仕様でした。 そしてFAQにまさにこの問題の対応方法が載ってました。自分の方法は正しかったようです。 vpc.lifecard.co.jp
トラブルを乗り越えて無事購入手続きできました。手続き完了のメールも日本語で届きました。 この日が2022/12/27。到着予定は2023/1/20です。
100LEDS/mのLEDテープがどこにも売ってないので、とうとうアリエクに手を出した。
— PikaPikaらいと (@KPmilk3) 2022年12月27日
今日注文して1/20着予定。はたしてどうなるか😑
到着
輸送状況について逐一メールが届きます。2023/1/3に通関手続き完了のメールが来て、翌1/4には日本に届いたとのメールが。では明日あさってくらいに届くなと思っていたら、なんとその日のうちに荷物が届きました。12/27に注文してから8日目です。思ってたよりめちゃめちゃ早かった。
AliExpressで12/27に注文したブツがもう届いた。正月を挟んでたのに8日間で届くとはスゴい😮 pic.twitter.com/gbaHCQKUIp
— PikaPikaらいと (@KPmilk3) 2023年1月4日
結び
初めてのAliExpressショッピングは無事成功して、LEDテープ(100LEDS/m)を入手することができました。 今回のようにAliExpressでないと買えないものを買うためには今後も使うと思います。
ここ数年、ツイッターを始め、はてなブログを始め、ヒーローズリーグに参加し、Micro Maker Faire に出展しと色々な新しいことにチャレンジしてきて、世界がどんどん広がる楽しさを味わっています。
今年も新しいことにチャレンジする一年を目指します。
この先チャレンジしたいこと
・オリジナルの基板を作る
・githubをちゃんと使える人になる
・ふるさと納税
・そのことをブログで書く
Hamamatsu Micro Maker Faire 2022に出展した
初めに
LEDテープを使用した電子工作作品を作ってツイッターで公開する事を始めて約2年。やっていることはMekarと言ってもよさそうです。MakerたるものMaker Faireに出展することは憧れです。
地元である浜松でMicro Maker Faireが開催されるとあっては黙っていられません。
makezine.jp
開催日時は2022年 11月5日(土)13:00-17:00
場所は浜松科学館 (ウチから車で15分くらい)
休日も何かと忙しい身である私(主に子供の塾や習い事の送迎)ですが、これなら参加できそうです。
思い切って参加申し込みしたところ、無事に承認されました。
申し込み
作品の写真のリンクや説明を記載する必要がありましたが、ProtoPediaに作品登録していたおかげて簡単に書き上げることできました。
PikaPikaらいと | ProtoPedia
展示作品ですが、「立方体万華鏡×LEDテープ」は出すとして、他をどうしようかちょっと悩みました。私の作品はほとんど光ものなので明るい環境だとよく見えないという弱点があります。しかしやはり実物を見てもらいたいので「LEDテープでおウチ花火」、「虹を投影する懐中電灯」、「ドレミえ~る」を出すということで申し込みをしました。
申し込みをした後、メールの返信が来るはずだったのですがなかなか来ない。と思っていたら、なんと迷惑メールに振り分けられていました。そのままにしてたら承認メールにも気付かないところでした。危なかった。
事前準備
Makerの展示会に出展するのは初めてですし、見に行ったこともほとんどありません。展示物の準備はいいとして、他に何を用意したらいいものか。そんな時に頼りになったのはやっぱりからあげ先生のブログでした。ありがたや。 karaage.hatenadiary.jp
学んだ事
- 必要なものをリストアップしておく。
工具や文具、デジカメなど意外と当日忘れやすいのでリストでチェック。 - 名刺があるとGood → 今回結局準備できなかったですが、あったほうがよかったと思いました。
- 説明資料を用意する。SNS OK,写真OKを明記する。
今回の会場は電源が基本的にない(希望者のみ)という厳しい環境です。作品すべてモバイルバッテリーで4時間動作させる必要があります。とりあえず手持ちのバッテリーをかき集め、さらに大きめのもの一つ購入、さらに乾電池式のモバイルバッテリーを一台購入し、乾電池を20個ほど用意しました。
説明資料はパワーポイントで作成し、ProtoPediaの作品リンクのQRコードを入れておきました。QRコード作成はこちらのサイトを使わせていただきました。
m.qrqrq.com
プリントを机に直貼りするのはよくないと思い100円ショップでテーブルクロスを購入。
撤収時に資料をはがす必要なくそのまま片付け出来て良かったです。
当日準備
11時から出展者の受け付け開始で13時開始。1時間もあれば準備できると思い、11時に家を出るという余裕をかましたら浜松市駅北駐車場が思ったより混んでいて時間を取られてしまい11時40分に会場到着。そこから必死で設営して12時40分でなんとか完了。焦りました。初心者が余裕かますのはダメですね。他の出展者さんの展示を見る余裕もなく始まってしまいました。
#HamamatsuMMF2022
— PikaPikaらいと (@KPmilk3) 2022年11月5日
ギリギリで設営完了。
バッテリー最後までもつか😅 pic.twitter.com/W42VW1oWV1
服は目立つように、昨年のヒーローズリーグでいただいたProtoPedia賞の副賞のProtoPedia Tシャツを着ていきました。実はM5Stack Tシャツとどっちにしようか迷っていたのですが、自分のブースの真正面がSeeedさんのブースだったのでM5Stackは自粛しました^^;
行く前にProtoPedia Tシャツ来てる姿をツイッターに載せるつもりが余裕なくて出来ませんでしたが、来場者のツイッター投稿でProtoPedia Tシャツ来てる私がバッチリ写っていて、ProtoPedia の中の人に気付いてもらえました。
Tシャツきてくれてて嬉しい!
— ProtoPedia@ハッカソン運営・応援キャンペーン開催中 (@ProtoPedianet) 2022年11月5日
各作品の反響
「立方体万華鏡×LEDテープ」
protopedia.net 一番リアクションあったのはこれでした。のぞいた瞬間「すごい」と言ってくれる方が多かったです。(体感だと100人くらい、実際は30人くらいかな) どういう仕組みか聞いて来られる方も多く、その都度説明をしました。掲示資料にはQRコードを載せてここを見てねしか書いてなかったのですが、もう少し詳しく書いてもよかったと思いました。 説明資料のQRコードを撮影して、自分でも作ってみようという方も何人かおられ、展示した甲斐がありました。 反省点としては、パッと見はただの箱なので「穴のところを覗いてみてください」と声掛けしないとなかなか見てもらえないということが分かりました。もし今度これを展示する機会があれば穴のところに「ここ覗いてみて」とポップを貼っておこうと思います。
立方体のLED万華鏡が凄すぎる@KPmilk3 の作品#HamamatsuMMF2022 pic.twitter.com/atZDCEVXBH
— R-MONO Lab (@r_mono_lab) 2022年11月5日
マイクロメイカーフェア浜松@KPmilk3 さんの作品
— PONDA (@PONDA_make) 2022年11月5日
やはりLEDでピカピカしているのはいいなぁ(^^) pic.twitter.com/NCQldD8B5o
「虹を投影する懐中電灯」
protopedia.net
子供受けが良かったです。
明るい会場なので、はっきり見せるのが難しかったですが、白いボードを用意してそれなりに虹が見えるようにしたのが正解でした。
にじをがったい!🌈🌈
— ちはや☻ギターぼうず (@Chihaya188Gt) 2022年11月5日
りったいまんげきょうもすごいきれいだった@KPmilk3 pic.twitter.com/3FRnSMRsmb
浜松科学館の館員のかたも熱心に見てくれました。中身を見せただけでピンホールカメラだと理解され、上下が逆に投影されることをすぐに気付かれました。さすがです。虹を投影する機械。プリズムとか回折格子かなとおもったら全然ちがって、レインボーカラーのLEDテープの前にスリットを置いただけ。スリットが無いと色が混ざってしまい白色になってしまう。 #HamamatsuMMF2022 pic.twitter.com/Qd7qZTOAEq
— まえこっかくのSUZUKIさん💉💉💉💉 (@create_clock) 2022年11月5日
「LEDテープでおウチ花火」
protopedia.net
会場の入り口の近くの机だったので来場者はすぐにこれが目に入ったはずですが、やはり明るい場所では見えずらかったためか、花火を表現していることに気付かれない方も多かったです。
バッテリー節約のためLEDのパワーを小さくしていたのですが、もっと明るくすればよかった。
「ドレミえ~る」
protopedia.net
おもちゃのピアノを用意していたので、子供の食いつきはよかったです。ただ小さいお子様の場合はドレミが光っていることなどお構いなしで単純にピアノを楽しんでました。
M5StickC内臓マイクを使っているので、周りの声などを拾ってしまって、すぐ全体が真っ赤になってしまうという弱点も分かりました。展示会に出すには表示スケールの自動調整機能が必要です。今後の検討課題です。
展示中の出来事
これまで身バレしないようにツイッターなどをやっていましたが、地元でリアル展示ということで、知り合いが来るかもと覚悟していました。そしたら閉場間際で「〇〇さんですよね」との声が。以前仕事でお世話になった大学の先生に見つかりました。初めての身バレですが信頼できる方なので問題なしです。来年は自分も出展したいと意欲を見せてましたのでライバル登場です。
展示中はツイッターを見る余裕もなく、終わった後で確認したところ、衝撃の事実が。
なんと、からあげ先生がご家族で来場していたではありませんか。
karaage.hatenadiary.jp
しかも動画を見るとお嬢様が「ドレミえ~る」を試されているし、奥様とおぼしき「カタツムリかわいい」の声、さらに「立方体万華鏡×LEDテープ」も撮影してくださっている。
間違いなく会話していると思うのですが、お顔など全く覚えていません。なんてこった。
全体の感想
Maker Faireで面白いのは世界で1台しかない装置が大集合しているところですね。「よく作ったなこれ」って作品を見ると自分はまだまだだなと思い知らされ、逆にやる気につながります。
今回、初めての展示会出展で、初めてリアルいいねを体験することができました。 ツイッターのいいねもうれしいですが、リアルでのいいねは何よりうれしいものでした。
今回、自分の展示でいっぱいいっぱいで他の方のブースを見て回る余裕がほとんどなく、せっかくMakerの方と直接お話しできる機会だったのにもったいないことをしました。来年リベンジしたいです。
MicroとはいえMaker Faireに自分が作品を出展する日が来るとは2年前には想像できませんでした。それまでは仕事以外ではんだ付けやプログラムをしたことなかったのですが、いったん自分のための電子工作やってみると面白すぎる。気付けばこんなところまで沼にはまっている。
初めての展示会出展、非常に貴重な経験でした。関係者の皆様ありがとうございました。 いつの日かTokyo Maker Faireに出れるくらいの作品を生み出せるよう精進します。
アノマロカリスロボ作成記
初めに
これまで動くものを作ったことはなかったのですが、スタックチャンを作るためにサーボモーターを購入し、そこから動くものへの工作意欲がわいてきました。勉強のため機構に関する書籍を探していたのですが、そこで出会った一冊がこちらです。
作成の記録
Tweitterで過程を紹介していたのでまとめます。
こちらの本に載っていた「古代生物アノマロカリスロボを作ろう」
— PikaPikaらいと (@KPmilk3) 2022年2月18日
CADで設計して3Dプリンターで作ってみました。
動くモノを作るの楽しい😆 https://t.co/oU7y8b2X1q pic.twitter.com/yL147NVGD0
アノマロカリスロボの中身。
— PikaPikaらいと (@KPmilk3) 2022年2月19日
チューチュートレインの動きと似てます🙂 pic.twitter.com/ELl3smqU5g
アノマロカリスロボ&LEDを3Dプリンターで作成してみました。 https://t.co/3Y6g4d1gt2 pic.twitter.com/32tDy7myZ8
— PikaPikaらいと (@KPmilk3) 2022年3月4日
アノマロカリスロボ改
— PikaPikaらいと (@KPmilk3) 2022年3月20日
歩いた?😅 pic.twitter.com/dY5LWE8BvD
3Dプリンターで作るアノマロカリスロボ。
— PikaPikaらいと (@KPmilk3) 2022年3月25日
初号機は組み立て性が酷かったですが、何回も作り直してみて、かなり改善できました。
もう少し作り込んだらデータ公開したいと思います。 pic.twitter.com/18btRU2U2Z
3Dプリンターで作るアノマロカリスロボ。
— PikaPikaらいと (@KPmilk3) 2022年3月26日
モーターではなく風車を使って動かすようにしてみました。試行錯誤して思いついたこの形は自分的にかなり達成感あります😁
基本の機構は、たなかじゅんさん @juntnk のこの本からのものです。https://t.co/6y0FkjHmA3 pic.twitter.com/1jjdP4mran
#アノマロカリスロボ
— PikaPikaらいと (@KPmilk3) 2022年5月5日
今日は海で遊んでます。
カメラだとプロペラ止まって見えますが、風が強くて実際はかなりの高速回転です。 pic.twitter.com/5tF5zSuuhm
機構のキモ
書籍の中ではコの字クランクで実現する方法を紹介されていますが3Dプリンタで作成するのは困難だったので、円柱を位相をずらして並べる構造にしました。
縦にプリントします
3Dデータ公開
データを公開しました。
アノマロカリスロボに興味を持ってもらった方はこのデータにとらわれずに、ぜひ自分なりの実現方法の模索やアレンジをして欲しいです。
github.com
泳がせてみた記録
最終的には泳がせたいです。現行品をお風呂で無理やり泳がせてみた結果・・・こいつ泳げます。
モーターを防水する方法を考えないと。
アノマロカリスロボ改
— PikaPikaらいと (@KPmilk3) 2022年4月11日
漕いでる?🚣♀️ pic.twitter.com/5zkc8YB6gw
アノマロカリスロボ
— PikaPikaらいと (@KPmilk3) 2022年4月16日
こいつ泳げるぞ🏊♂️ pic.twitter.com/ZtVLXMhuJk
ドット絵カメラシステムを作った
初めに
昨年末にLEDドット絵の世界に足を踏み入れました。
pikapikalight.hatenadiary.com
ドット絵のデータはExcelを駆使してそれなりに効率化できたのですが、それでもなかなか大変な作業でした。
カメラで撮った絵をリアルタイムでドット絵に変換できたら簡単にドット絵が作れて楽しそうと思い、挑戦してみました。
完成品
結論を先に。こんなのを作ることが出来ました。 youtu.be
ハードウェア
カメラはM5StackのUNIT-Vを使いました。以前こいつで色々やっていて、UNIT-VのMicroPythonはWS2812が動かせることを覚えていたのです。
pikapikalight.hatenadiary.com
ここで問題が一つ、UNIT-VのGroveコネクタは5V出せるのですが電流はほとんど流せない。とてもじゃないけど16x16=256個のLED点けることはできない。LEDパネルとUNIT-Vの電源を別々にとるしかないけれど、それだと配線がすっきりしない。
考えた末に閃きました。以前作成した「虹を投影する懐中電灯」と同じく、パネルの方に先に電源をつないでそこからコントローラーの方に電源をつなぐことで配線をすっきりさせる手法です。
電源コネクタにはUSB-Cを、UNIT-Vとの接続にはGroveコネクタを使えるように改造しました。
ソフトウェア
恥ずかしながらコードを公開します。
私はこれまでほとんどC言語しか使ったことがなく、このUNIT-Vで初めてPythonにふれました。正直、言語としての良さは理解できてません。
けれどたったこれだけのコードでこれが作れる事実はすごいなと思います。
import sensor, image, time, lcd from Maix import GPIO from modules import ws2812 from fpioa_manager import * fm.register(board_info.CONNEXT_A) class_ws2812 = ws2812(board_info.CONNEXT_A,256) while 1: try: sensor.reset() break except: time.sleep(0.1) continue sensor.set_hmirror(1) sensor.set_vflip(1) sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.B64X64) sensor.skip_frames(time = 1000) sensor.set_contrast(-2) sensor.set_saturation(2) sensor.set_auto_gain(True) sensor.run(1) r_num = 0 g_num = 0 b_num = 0 for i in range(10): a = class_ws2812.set_led(i,(10,10,10)) a=class_ws2812.display() img = sensor.snapshot() img2 = img.resize(1, 1) print(img2.get_pixel(0, 0)) r_num = r_num + img2.get_pixel(0,0)[0] g_num = g_num + img2.get_pixel(0,0)[1] b_num = b_num + img2.get_pixel(0,0)[2] time.sleep(0.1) print(r_num) print(g_num) print(b_num) rgb_ave = (r_num + g_num + b_num) / 3 print(rgb_ave) r_factor = rgb_ave / r_num g_factor = rgb_ave / g_num b_factor = rgb_ave / b_num print(r_factor) print(g_factor) print(b_factor) sensor.set_auto_gain(False,sensor.get_gain_db()) print(sensor.get_gain_db()) try: while(True): img = sensor.snapshot() img2 = img.resize(16, 16) img2 = img2.histeq() k = 0 sc = 5 for i in range(8): for j in range(16): rr = img2.get_pixel(i * 2, j)[0] * r_factor gg = img2.get_pixel(i * 2, j)[1] * g_factor bb = img2.get_pixel(i * 2, j)[2] * b_factor rr = int(rr) / sc gg = int(gg) / sc bb = int(bb) / sc rgb = (int(rr),int(gg),int(bb)) a = class_ws2812.set_led(k,rgb) k = k + 1 for l in range(16): rr = img2.get_pixel(i * 2 + 1, 15 - l)[0] * r_factor gg = img2.get_pixel(i * 2 + 1, 15 - l)[1] * g_factor bb = img2.get_pixel(i * 2 + 1, 15 - l)[2] * b_factor rr = int(rr) / sc gg = int(gg) / sc bb = int(bb) / sc rgb = (int(rr),int(gg),int(bb)) a = class_ws2812.set_led(k,rgb) k = k + 1 a=class_ws2812.display() time.sleep(0.1) except KeyboardInterrupt: pass
コードのポイント
sensor.set_framesize(sensor.B64X64)
framesizeを正方形にしておくことで16x16に変換したときに歪まないようになります。
sensor.set_contrast(-2) sensor.set_saturation(2)
こうしたほうがなんとなく色がくっきりするような気がしたのでこうしてますが、気のせいである可能性大です。
r_num = 0 g_num = 0 b_num = 0 for i in range(10): a = class_ws2812.set_led(i,(10,10,10)) a=class_ws2812.display() img = sensor.snapshot() img2 = img.resize(1, 1) print(img2.get_pixel(0, 0)) r_num = r_num + img2.get_pixel(0,0)[0] g_num = g_num + img2.get_pixel(0,0)[1] b_num = b_num + img2.get_pixel(0,0)[2] time.sleep(0.1) print(r_num) print(g_num) print(b_num) rgb_ave = (r_num + g_num + b_num) / 3 print(rgb_ave) r_factor = rgb_ave / r_num g_factor = rgb_ave / g_num b_factor = rgb_ave / b_num
起動時にホワイトバランスを補正するシーケンスです。起動時に白いものにカメラを向けて補正値を算出することで色の再現性を上げられないかと考えたコードです。本当は16x16個分の補正値を出した方がいいんでしょうが、そこまでやってません。 img.resize(1, 1)で1画素データにしてしまってそのRGBの補正値を出しています。この辺、今後の検討課題です。
sensor.set_auto_gain(False,sensor.get_gain_db())
auto_gainをFalseにするのは必須です。これをしないとチカチカしちゃいます。
img2 = img.resize(16, 16)
カメラの画像を16x16にするたった一行の呪文です。
k = 0 sc = 5 for i in range(8): for j in range(16): rr = img2.get_pixel(i * 2, j)[0] * r_factor gg = img2.get_pixel(i * 2, j)[1] * g_factor bb = img2.get_pixel(i * 2, j)[2] * b_factor rr = int(rr) / sc gg = int(gg) / sc bb = int(bb) / sc rgb = (int(rr),int(gg),int(bb)) a = class_ws2812.set_led(k,rgb) k = k + 1 for l in range(16): rr = img2.get_pixel(i * 2 + 1, 15 - l)[0] * r_factor gg = img2.get_pixel(i * 2 + 1, 15 - l)[1] * g_factor bb = img2.get_pixel(i * 2 + 1, 15 - l)[2] * b_factor rr = int(rr) / sc gg = int(gg) / sc bb = int(bb) / sc rgb = (int(rr),int(gg),int(bb)) a = class_ws2812.set_led(k,rgb) k = k + 1
sc = 5 はRGB値を5分の一に下げて、明るさ=消費電流を下げる処置です。 16個ごとに逆転させているのは使用したLEDパネルがそういう並びのものだったからです。
完成
スナフキンのフィギュアがいい感じに出たときは感動しました。
玄関のカギ監視システムを作って一年経ちました
初めに
一年前のGWに玄関のカギ監視システムを作りました。 pikapikalight.hatenadiary.com 運用して一年経ちましたので、その後の話をします。
トラブル
最初はM5AtomLiteで運用していたのですが、数か月後データが途切れるようになりました。どうもWi-Fiが切れてしまっているようで、電源OFF/ONで復帰するのですがたびたびトラブル発生するようになりました。
M5AtomLiteのアンテナに問題ありという情報もありましたので、M5Stack Basicに変更してみました。プログラムはUARTのピン番号のみ変更するだけでほぼそのままです。その後は安定して通信できるようになりました。
カギ監視
1年間運用してみて問題なく鍵の状態をスマホで監視できています。これは思った以上に便利でした。
ウチの子供は小学校低学年なのですがちゃんと想定時間に帰宅していることがスマホで確認できます。
家族で長時間のお出かけするときなども間違いなく鍵をかけたことがスマホで確認できます。
心配性な自分にとって、もはやなくてはならないIoTです。
電池残量
TWELITE CUEはコイン電池 CR2032 で動きます。運用して一年経っても電池交換なしに動いています。
TWELITE CUE標準のソフトでは磁気センサの状態の他に電源の電圧値も取得できるようになっていたのでそれも記録していました。
その結果がこちらです。
ウチの玄関のカギは2個ついているので2個センサーをつけていて、上側がD1、下側がD2です。
徐々に減っていくのは当然なのですが、今年の2月中旬以降は上がっています。これを見るに電池の電圧は残量以外に気温にも連動しているようです。
この感じだとあと半年ほどは電池交換なしでいけそうです。
感想
電池交換なしに一年以上運用できました。コストパフォーマンス的には十分イケてるんじゃないでしょうか。
ケーキを五等分する為の懐中電灯を作った
初めに
我が家は5人家族なのですが、ホールケーキを5人で分ける際など等分にカットするのに困っていました。 そんな中、素晴らしい発明品のニュースが。
レーザーでラインを照射するというナイスアイデア。「仲良く分けるんです」ケーキをぴったり“等分”にできる装置を高校生が発明…使ってみた感想を聞いた #FNNプライムオンライン https://t.co/dbrcUK94zK
— FNNプライムオンライン (@FNN_News) 2022年1月24日
真似したい。けどさすがにこれは大がかりすぎるので、単純化してみました。
試作
光で細いラインを作るのは難しいです。この発明品のようにレーザーを使えばできますが装置的には大がかりになってしまいます。そこで簡単にできる方法を考えました。光でなく影を使う方法です。
手持ちの100円ショップの懐中電灯に対して、中心から72度の角度でラインを引いたアタッチメントを3Dプリンタで作りました。
これをはめて照射すると
やりました。狙い通りに影のラインができます。このタイプの懐中電灯は反射板の効果で、ある程度は平行な光が作れるので影もしっかりでました。
この影にそってナイフを入れれば、
最初の試作で成功です。
改良
最初の試作ですでに目的の機能は実現できましたが、懐中電灯との接続部分の寸法が甘く、セロテープで貼り付ける処置だったため作り直すことにしました。
そこで思ったのが、「これって単純にカバーにマジックでラインを描けばいいだけじゃないの?」
最近3Dプリンタを毎日のように使っていたため、何でもかんでも3Dプリンタで作ってしまってましたが、より簡単な方法を求めるのがエンジニアの性です。
五等分の線を描くために下敷きとなる模様をCADで作成し紙に印刷しました。
懐中電灯の透明カバーを外し、この模様にあててマジックで線を描きます。
線を描いたカバーを懐中電灯に戻して、スイッチON
バッチリです。
成果
ケーキ
かに玉
思ったより適応範囲は多そうです。
今後の課題
懐中電灯は対象物にまっすぐ照射する必要があります。自分で持ってカットもするのは難しいので、子供に持たせてお父さんがカットする運用を想定していました。ところが実際に子供に持たせてみたところ、微妙に斜めに照射して自分の取り分をちょっとでも大きくしようとするズルをしました。それを瞬時に思いつくところはすごい。 まっすぐ当てるための固定方法が課題です。
最後に
五等分のラインを描くための下敷き模様です。印刷してお使いください。