M5Stackを使って「叩いたら光るバケツ太鼓」作ってみた！

## まずは完成品をどうぞ
#加速度センサーが#加速度センターになっているのはご愛敬・・・。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">叩いたら光るバケツ太鼓。<br>LEDの光をスマホで上手に撮影する方法が知りたい・・・。<a href="https://twitter.com/hashtag/M5Stack?src=hash&amp;ref_src=twsrc%5Etfw">#M5Stack</a><a href="https://twitter.com/hashtag/LED?src=hash&amp;ref_src=twsrc%5Etfw">#LED</a> <a href="https://twitter.com/hashtag/%E5%8A%A0%E9%80%9F%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%BF%E3%83%BC?src=hash&amp;ref_src=twsrc%5Etfw">#加速度センター</a><a href="https://twitter.com/hashtag/%E3%83%90%E3%82%B1%E3%83%84%E5%A4%AA%E9%BC%93?src=hash&amp;ref_src=twsrc%5Etfw">#バケツ太鼓</a> <a href="https://t.co/pbM9uMPFsw">pic.twitter.com/pbM9uMPFsw</a></p>&mdash; ぜらちん (@kk_puruzera) <a href="https://twitter.com/kk_puruzera/status/1652917709531914241?ref_src=twsrc%5Etfw">May 1, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## なにこれ
なんぜこんなの作ったのか、はぜひ下記の[note](https://note.com/kk_puruzera)記事をご覧ください。

https://note.com/kk_puruzera/n/n8f371914f418

https://note.com/kk_puruzera/n/nfa2995eb7d64

仕組みは以下のとおりです。
1. バケツ太鼓の胴部分に加速度センサーをつける
2. 何もしていないときのY座標値を確認する
3. 太鼓を叩いた＝確認した数値以上の座標値を検出した、とする
4. 取得した数値が変わる度に太鼓の胴に巻き付けたLEDテープをランダムに光らせる

## 使ったもの
＜部品＞
リンク先はすべてSWITCH SCIENCEです。
- [M5Stack Core2](https://www.switch-science.com/products/6530)
- [M5Stack用6軸IMUユニット](https://www.switch-science.com/products/6623?_pos=61&_sid=b32f9ddbc&_ss=r)（加速度センサー）
- [M5Stack用NeoPixel互換 LEDテープ 100 cm [A035-D]](https://www.switch-science.com/products/5211?_pos=35&_sid=1842cb9c3&_ss=r)
- [GROVE - 4ピンケーブル](https://www.switch-science.com/products/798?_pos=14&_sid=13bd58bfa&_ss=r)（リンク先は20cmの5本セットですが、センサーとM5Stackを繋げられれば長さは何cmでもいいです。今回は加速度センサーとLEDテープをそれぞれ接続するので最低2本必要です。）
- [ジャンパワイヤ(オス～オス)](https://www.switch-science.com/products/57?_pos=2&_sid=cee5e5552&_ss=r)（M5StackとGROVEケーブルを繋げるのに使います。長さは10cmもあればいいと思います。リンク先は15.5cm）

＜開発環境＞
[UIFlow](https://flow.m5stack.com/)
今回の開発はUIFlowを使用しました。
ブロックプログラムなのでラクチン。

＜バケツ太鼓＞
ガムテープとバケツがあれば簡単に作れます。
バケツが大きければ大きいほど大きな音が鳴ります。
思いのほか響くのでご自宅で試す際はご注意を。
また、バチもあるとより太鼓っぽい音がなります。
作り方はこちら→[バケツとガムテープだけで本格和太鼓！](https://allabout.co.jp/gm/gc/428542/)

## プログラム
今回はM5StackCore2を設定しています。
また、ユニットは「RGB LED」「IMU」を選択し、以下の通り設定しました。

- RGB LED
　Port：A（33,32,V,G）
　Number：155（LEDの個数です。テープの長さによって異なります。がんばって数えました←）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2122198/39358bbb-ae27-82dc-d7d7-9e453a6b349f.png)

- IMU（加速度センサー）
　Port：Custom
　SDA/TX：21
　SCL/RX：22
　※実際のPINの差し口に合わせて設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2122198/51cacd0a-bc64-7898-0642-86d9243ca569.png)

作成したブロックプログラムはこちら
![Uiflow図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2122198/8ac33d42-ffd8-f940-bc83-9389899bf818.jpeg)

一応Pythonコードも

<details><summary>Pythonコード</summary>

```Python
from m5stack import *
from m5stack_ui import *
from uiflow import *
import unit

screen = M5Screen()
screen.clean_screen()
screen.set_screen_bg_color(0xFFFFFF)
neopixel_0 = unit.get(unit.NEOPIXEL, unit.PORTA, 155)
unit_imu_1 = unit.get(unit.IMU6886, (21,22))

R = None
G = None
B = None

label0 = M5Label('label0', x=134, y=111, color=0x000, font=FONT_MONT_14, parent=None)

import random

while True:
  label0.set_text(str(unit_imu_1.acceleration[1]))
  neopixel_0.setColorAll(0x000000)
  if 10 < (unit_imu_1.acceleration[1]):
    R = random.randint(0, 255)
    G = random.randint(0, 255)
    B = random.randint(0, 255)
    neopixel_0.setColorAll((R << 16) | (G << 8) | B)
  else:
    neopixel_0.setColorAll(0x000000)
  wait_ms(2)

```

</details>

## つくってみて
光るってやっぱりおもしろいです。
太鼓叩くたびに光るから、よりおもしろい！
最初はLEDの色も指定していましたが、せっかくならランダムがいいね、となり作り変えました。
LEDなので表現できない色もありますが（茶色、灰色など）、毎回違う色のほうがおもしろいですよね。
これを量産し、複数のバケツ太鼓につけて合奏したら、耳にも目にもにぎやかなイベントができそうです。

## 今後に向けて
イベント用にしたいのでM5Stackを介さなくても光る方法を検討したいところ。
そんなこと可能なのでしょうか。
せめてもう少し小さいマイコンにしたいところです。
また、今回はとにかく素早く作りたかったので経験のあるM5Stackと加速度センサーを使用しましたが、
振動を検知する方法も試したいです。
M5Stackに振動センサー搭載されてるはずなんですよね・・・。
うまく扱えず後回しにしましたが、時間を見つけて再チャレンジしてみます。
やっぱりモノづくり楽しい。