TECH BLOG




2022/4/30

M5StickCを使ってダイソーに売っている忍者刀を改造する


はじめに

うちの子供(小4)は鬼滅の刃が大好きです。
登場人物を全員漢字でかけるくらいにはまっております。

この熱量を何かに使えないかなと思い、プログラミングの勉強をかねて一緒に日輪刀を作ってみることにしました。

↓↓つくったやつです。

日輪刀の材料

材料 購入先 リンク
忍者刀 ダイソー  
M5StickC Amazonなど  
M5StickC Speaker Hat Amazonなど  
GROVEケーブル Amazonなど  
コモンタイプの赤・青2色LED 5p(リンク先はカソードコモン) 秋月電子など  
定電流ダイオード 5p(LEDに合わせて電流値を選択) 秋月電子など  
pnpトランジスタ 2p(リンク先はデュアルタイプなので1pでok) 秋月電子など  
pnpトランジスタ用変換基板 秋月電子など  
npnデジトラ 2p 秋月電子など  
CR2電池 2p 秋月電子など  
ダイオード(保護&6V→5V電圧降下用) 秋月電子など  
ユニバーサル基板 秋月電子など  
抵抗 10kΩ 秋月電子など  
アイスの棒(電池固定用) なんでもOK  

ダイソーの忍者刀です。これを改造していきます。

ダイソーの忍者刀の写真

M5StickCです。これを忍者刀の中に仕込んでプログラミングします。

M5StickCの写真

必要スキル

回路

手作り日輪刀の回路図

1. 柄の部分の加工

忍者刀を分解するとこんな感じです。
スピーカー、スイッチ、LEDの部分、電池の金具は再利用します。

ダイソーの忍者刀を分解した時の写真

中をニッパーなどでくりぬくと、M5StickC+Speaker Hat(ケースを外したもの)がピッタリ収まります。
奇跡のジャストフィットです。

ダイソーの忍者刀にM5StickCを入れた写真

電池を固定するのに、アイスの棒を切って、元からあった電池止め金具を貼り付けます。
柄の内部にうまく切り込みを入れてはまるようにすれば、しっかり固定できます。

ダイソーの忍者刀を分解した時の写真2

2. 刃の部分のLED付け替え

赤と青のLEDで、水の呼吸と日の呼吸を再現します。
忍者刀に元からついているLEDの色は赤と緑なので、はんだごてを使って取り替えます。

ダイソーの忍者刀を分解した時の写真2

赤と青の2色LEDに定電流ダイオードをはんだ付けします。
これで、LEDに定電流(今回は18mA)が流れます。
赤と青の2色LEDだと、それぞれ光らせる電圧(順電圧)が違うので抵抗で電流調整するのが難しいのですが、定電流ダイオードを使うとそんなことは考えなくて良くなります。
便利!

2色LEDと定電流ダイオードの写真

このLEDを、元々あるLEDの代わりに置き換えていきます。
5p使うと、十分な光量が得られました。

2色LEDと定電流ダイオードの写真2

3. 回路図に沿ってはんだ付け

上記の回路図の通りに、部品をはんだ付けしていきます。
下記はトランジスタと抵抗をユニバーサル基板にはんだづけしたものです。
結構こまかい。

ユニバーサル基板にトランジスタをはんだ付けした写真

スピーカーは、Speaker Hatのものは外して、忍者刀に元から入っていたものに取り換えます。
最終的にはこんな感じになります↓↓

ダイソーの忍者刀にM5StickCを入れた写真2

4. UIFlowでプログラミング

日輪刀のハードウェアが完成したので、次は中身のソフトを作ります。
以下の機能を実装していきます。

今回は子供と一緒にプログラミングするので、ビジュアルプログラミングのUIFlowを使用することにします。

4-1. LED点灯する

回路図上のG32/G33でLEDの点灯・消灯を行うことができます。

UIFlowでは下記のようにすると、G33が500msごとにHレベル⇔Lレベルとなり、LEDもそれに合わせて点滅します。

UIFLOWでLEDを制御している画像

4-2. wav再生する

M5StickCでWAVファイルを再生する方法は、下記にまとめていますので参照ください。
wav再生用のプログラムを用意していますので、wavファイルを準備してプログラムを実行します。

 M5StickCとSpeakerHatでwavを再生する

4-3. 縦斬りと横斬りを検知してLED点灯&wav再生を行う

縦斬りと横斬りの検知には、M5StickCに入っている6軸センサを使用します。

と判定しています。

これで水面切りと滝壷を使い分けできます。

って書くと簡単なのですが、結構えぐい各パラメータの調整が必要でした。。
プログラムは下記に置きましたので参照ください。

 github

また、6軸センサについては下記にまとめていますので、宜しければご覧ください。

 M5StickCの6軸センサを使う

4-4. 電源を切ったらM5StickCの電源も切れるようにする

M5StickCにはバッテリが入っているので、回路図上のスイッチを切っても動き続けてしまいます。
M5StickCの電源を切るには、入力電圧を監視して、電圧が切れたら自分で電源を切るプログラムが必要です。

↓↓こんな感じです。

UIFLOWでM5StickCの電源を切る画像

まとめ

最初は子供と一緒に楽しくやろうと思っていたのですが、想像以上に難易度が高く、後半は自分ひとりで作業してしまいました。
子供ができたのは

辺りです。

ただ、ちょっとしかできなかったけど動いたときはとても喜んでいたので、今後も一緒に何か作っていけたらと思っています。
次はもっと簡単なお題を見つけなくてはですね。


以上です。




コメント(githubのアカウントが必要です)


Tech Blog Index

2023/02/27
  ・ TVON時間カウンタ作成

2022/09/09
  ・ スタックチャンを作ってみた

2022/04/30
  ・ 日輪刀をプログラミング

2022/02/16
  ・ Statiqでブログ作成


Sponsor