M5StickCで家族集合したい
私がM5StickCを購入した目的です。
先日作った家族集合ボタンのシステムをM5StackからM5StickCに乗せ換えて動かすぞ!と。
↓ 先日作った家族集合ボタンのシステム
siroitori.hatenablog.com
これをM5StickCに乗せ換えて夫さんと息子くんの部屋に配置すれば家族集合システムの完成になります!
そのために二つも購入したんです^^
UIFlow環境をセットアップ
家族集合ボタンはUIFlowで作りました。
そのため、まずはM5StickCにUIFlowの環境をセットアップしなければなりません。
セットアップ方法はM5Stack FIREにUIFlowファームウェアを書き込む方法とほとんど変わりませんでした。
下記参照させていただきました。ありがとうございました♪
lang-ship.com
やった~これでM5StickCによるUIFlow環境も整えられました。
UIFlowのブロックプログラミングをM5Stack→M5StickC用に書き換え
そのままではうまくいかないだろうなとは思っていました。やっぱりそうでした。
↓ M5StackのUIFlowブロックプログラミング
まず大きなところでいうと、画面サイズが違うので文字の配置を再度行わないといけない。
そして「LEDバー」は存在しないので書き換え→「LED ON」「LED OFF」にしました。
これでいけるかな?
いえ、甘かったのです。
なんということでしょう。私はそれまでまったく気が付いていなかったのです。M5StickCはそれ単体では音が鳴らせないということを・・・!!!
↓ M5StickCで音を鳴らすためには、これが必要だったようです。
ポチろうとしていたまさにその瞬間、登場した息子くんのひとこと「そんなん作ればいいやん」
そして作ってくれた
さくさくと作ってくれました。
最初配線をセロハンテープでつなごうとしてたキテレツな息子くん。
そこはひとつ!となんとかお願いして、電子工作初心者の私にもわかりやすいようにブレッドボードに作ってもらいました。
(参考)↓ 何かとセロテープでつなぎたがる息子くんの過去記事
siroitori.hatenablog.com
家にあった電子工作キットから圧電ブザーを出して使いました。やったー音が鳴ったー
MESHから通知するやつM5StackからM5StickCにのせかえようとしてて、やだぁM5StickCってブザーついてないの!って今頃気がついて騒いでたら、息子が作ってくれました😊 pic.twitter.com/ZyUV450fl2
— しろいとり子 (@siroitori0413) 2020年3月8日
M5StickC側はG26とGNDにジャンパワイヤを刺します。
そのときのプログラムは以下の形。デジタル出力でON/OFFを繰り返しています。
26ピンはデジタル出力できることがわかったので、ここのピンを使いました。(と、息子くんに教わりました。)
各IOの仕様についてはコチラを参考にさせていただきました。またまたありがとうございました。
M5Stackのときと同様にこれはMQTTを使っているので実行するにはRUNボタンではなくダウンロードする必要があります。
また、プログラム実行中はダウンロードができないので再起動してすばやく「設定」のモードに切り替えてWi-Fiだけつなげてスタンバイさせた状態にしてからダウンロードさせる必要があります。
しかしこれは抵抗とかはつながなくていいものなのかしら??
息子くんは、「大丈夫、大丈夫」と言ってたけど。。はて。
もっとコンパクトにしたい
これで音が出せるようになりました。だけどブレッドボードとセットになったM5StickCをお部屋に配置するのはなんだか見た目にちょっと。(セロハンテープはもってのほか!)
という話をしていると、息子くんがもっとコンパクトに作ってくれました。ジャンパワイヤいらず。
つなぎ方を工夫してシンプルにぶっ刺せるようになりました🎶 pic.twitter.com/57zgGgWx4w
— しろいとり子 (@siroitori0413) 2020年3月8日
圧電ブザー刺しただけスタイル!スマートになりました。
刺しただけはいいのですが、ちょっと工夫しました。
前述のG26とGNDでは圧電ブザーのピンに対して幅が狭くて刺せませんでした。
このため、どこに刺しているかというと、5V出力とG0に刺さっています。
G0はI/Oどちらにもなるということだったのでこれを利用したそうです。
↓ 裏面からみたところ
それに合わせてプログラムもこのようになっています。
「デジタル入出力ピン pin0 をピン番号 0 モード OUT ピンの状態 PULL_UP にする」
「デジタル入出力ピン pin0 をピン番号 0 モード IN ピンの状態 PULL_UP にする」
のところですね。
これでIN/OUTを切り替えていて、INのときだけ電流が流れるように作成したとのこと。
ちなみに刺すときはプラスマイナスを間違えないように。5V出力の方にプラス(針の長い方)、G0のほうにマイナス(針の短い方)を刺します。
これで家族集合ボタンでお部屋に配置するM5StickCは準備完了!
なのですが、息子くんもうちょっと遊ばせて!と引き続き電子工作をはじめてしまいました。
その後の進化を遂げたM5StickC
パトランプとサーボモーターがつきました。
そして今日こうなった!笑
— しろいとり子 (@siroitori0413) 2020年3月9日
(環境音うるさめ) pic.twitter.com/B0TddazlOM
ピンクのメルくんマスコットの手にサーボモーターを輪ゴムで止めてます。
鈴のついた棒を振り回してなんとも愛らしい!
サーボモーター
UIFlowでサーボモーターを制御する書き方がわからず苦戦してた模様でしたが解決してました。
こんなふうに書きます。
setup時に「PWM出力ピン PWM0 をピン番号 26 周波数 50 [Hz] デューティ 2.5 [%] 使用タイマー 0 にする 」
としておいてから、実行させたいイベントタイミングで
「PWM0 のデューティを 2.5 [%]に設定」
「PWM0 のデューティを 12 [%]に設定」
とすれば鈴を振り下ろすような動作が実現できたとのこと。
それからタクトスイッチもつけたりして・・・色々繋がりましたw
そうそう、MESHのほうもボタンタグに加えて人感センサータグも出してきて連携させて遊んでいました。
今回使った電子部品など
息子くん保有のこのセットの中から電子部品を出して使いました。
M5StickC
スター・はてブとても嬉しいです!