カワリモノ息子の技術メモ的な~

カワリモノ息子とその母の技術メモ的な〜

学校が苦手な息子くんの作品とその母の作品、はたまた日常などいろいろを在宅エンジニア母が綴る

M5StickCをUIFlowで小6息子くんと遊んだ ~圧電ブザーと最終的にはパトランプ~

M5StickCで家族集合したい

私がM5StickCを購入した目的です。
先日作った家族集合ボタンのシステムをM5StackからM5StickCに乗せ換えて動かすぞ!と。

↓ 先日作った家族集合ボタンのシステム
siroitori.hatenablog.com

これをM5StickCに乗せ換えて夫さんと息子くんの部屋に配置すれば家族集合システムの完成になります!
そのために二つも購入したんです^^

UIFlow環境をセットアップ

家族集合ボタンはUIFlowで作りました。
そのため、まずはM5StickCにUIFlowの環境をセットアップしなければなりません。

セットアップ方法はM5Stack FIREにUIFlowファームウェアを書き込む方法とほとんど変わりませんでした。
下記参照させていただきました。ありがとうございました♪
lang-ship.com

f:id:toriko0413:20200309202509p:plain

やった~これでM5StickCによるUIFlow環境も整えられました。

UIFlowのブロックプログラミングをM5Stack→M5StickC用に書き換え

そのままではうまくいかないだろうなとは思っていました。やっぱりそうでした。

↓ M5StackのUIFlowブロックプログラミング
f:id:toriko0413:20200303213633p:plain

まず大きなところでいうと、画面サイズが違うので文字の配置を再度行わないといけない。
そして「LEDバー」は存在しないので書き換え→「LED ON」「LED OFF」にしました。

これでいけるかな?

いえ、甘かったのです。

なんということでしょう。私はそれまでまったく気が付いていなかったのです。M5StickCはそれ単体では音が鳴らせないということを・・・!!!

↓ M5StickCで音を鳴らすためには、これが必要だったようです。

ポチろうとしていたまさにその瞬間、登場した息子くんのひとこと「そんなん作ればいいやん」

そして作ってくれた

さくさくと作ってくれました。
最初配線をセロハンテープでつなごうとしてたキテレツな息子くん。
そこはひとつ!となんとかお願いして、電子工作初心者の私にもわかりやすいようにブレッドボードに作ってもらいました。

(参考)↓ 何かとセロテープでつなぎたがる息子くんの過去記事
siroitori.hatenablog.com

家にあった電子工作キットから圧電ブザーを出して使いました。やったー音が鳴ったー

M5StickC側はG26とGNDにジャンパワイヤを刺します。
そのときのプログラムは以下の形。デジタル出力でON/OFFを繰り返しています。

f:id:toriko0413:20200309212238p:plain

26ピンはデジタル出力できることがわかったので、ここのピンを使いました。(と、息子くんに教わりました。)
各IOの仕様についてはコチラを参考にさせていただきました。またまたありがとうございました。

lang-ship.com

M5Stackのときと同様にこれはMQTTを使っているので実行するにはRUNボタンではなくダウンロードする必要があります。
また、プログラム実行中はダウンロードができないので再起動してすばやく「設定」のモードに切り替えてWi-Fiだけつなげてスタンバイさせた状態にしてからダウンロードさせる必要があります。

しかしこれは抵抗とかはつながなくていいものなのかしら??
息子くんは、「大丈夫、大丈夫」と言ってたけど。。はて。

もっとコンパクトにしたい

これで音が出せるようになりました。だけどブレッドボードとセットになったM5StickCをお部屋に配置するのはなんだか見た目にちょっと。(セロハンテープはもってのほか!)

という話をしていると、息子くんがもっとコンパクトに作ってくれました。ジャンパワイヤいらず。

圧電ブザー刺しただけスタイル!スマートになりました。

刺しただけはいいのですが、ちょっと工夫しました。

前述のG26とGNDでは圧電ブザーのピンに対して幅が狭くて刺せませんでした。
このため、どこに刺しているかというと、5V出力とG0に刺さっています。
G0はI/Oどちらにもなるということだったのでこれを利用したそうです。

↓ 裏面からみたところ
f:id:toriko0413:20200308232742j:plain

それに合わせてプログラムもこのようになっています。
f:id:toriko0413:20200310101813p:plain

「デジタル入出力ピン pin0 をピン番号 0 モード OUT ピンの状態 PULL_UP にする」
「デジタル入出力ピン pin0 をピン番号 0 モード IN ピンの状態 PULL_UP にする」
のところですね。
これでIN/OUTを切り替えていて、INのときだけ電流が流れるように作成したとのこと。

ちなみに刺すときはプラスマイナスを間違えないように。5V出力の方にプラス(針の長い方)、G0のほうにマイナス(針の短い方)を刺します。

これで家族集合ボタンでお部屋に配置するM5StickCは準備完了!

なのですが、息子くんもうちょっと遊ばせて!と引き続き電子工作をはじめてしまいました。

その後の進化を遂げたM5StickC

パトランプサーボモーターがつきました。

ピンクのメルくんマスコットの手にサーボモーターを輪ゴムで止めてます。
鈴のついた棒を振り回してなんとも愛らしい!

f:id:toriko0413:20200309110404j:plain

サーボモーター

UIFlowでサーボモーターを制御する書き方がわからず苦戦してた模様でしたが解決してました。
こんなふうに書きます。

f:id:toriko0413:20200310103645p:plain
setup時に「PWM出力ピン PWM0 をピン番号 26 周波数 50 [Hz] デューティ 2.5 [%] 使用タイマー 0 にする 」
としておいてから、実行させたいイベントタイミングで
「PWM0 のデューティを 2.5 [%]に設定」
「PWM0 のデューティを 12 [%]に設定」
とすれば鈴を振り下ろすような動作が実現できたとのこと。

それからタクトスイッチもつけたりして・・・色々繋がりましたw

f:id:toriko0413:20200309164650j:plain

そうそう、MESHのほうもボタンタグに加えて人感センサータグも出してきて連携させて遊んでいました。

今回使った電子部品など

息子くん保有のこのセットの中から電子部品を出して使いました。

単体で紹介


パトランプは去年秋葉原で買ったコレ
siroitori.hatenablog.com

M5StickC

f:id:toriko0413:20200309110222j:plain


スター・はてブとても嬉しいです!