この記事は、2021年の Seeed UG のアドベントカレンダー の 25日目の記事です。
今回の内容
この記事では、自分が良く使っている「Grove Shield for micro:bit」や、micro:bit で使える Groveモジュールに関係した話を書いていこうと思います。
公式ページでいうと、以下が関連する内容になります。
- 日本語版
- 英語版
Grove Shield for micro:bit について
自分が Groveモジュールと micro:bit を合わせて使う場合、「Grove Shield for micro:bit」を使うことが良くあります。
「Grove Shield for micro:bit」は、「Grove Inventor Kit for micro:bit」というキットの中に含まれていたり、単品でも購入できたりするシールドで、micro:bit で Groveモジュールを扱うのを便利にしてくれます。
自分は、以下のツイートなどに出てくる LEDテープを使う場合に、特によく利用しています。
新バージョンのmicro:bit(v2)と micro:bit用GROVEシールド v2.0 の組み合わせ。
— you (@youtoy) November 29, 2020
このシールド用の拡張機能が新バージョンの micro:bit でも動くことを念のため確認! pic.twitter.com/cCh9o8SNQV
わりと最近だと、ダイソーで売っているおもちゃの刀を光らせるのに使ったりしました。
MakeCode と組み合わせて利用する
このシールド と MakeCode を組み合わせて使う場合、 特定の Groveモジュールに関しては専用の拡張ブロックが用意されています。
専用の拡張ブロックに対応したモジュールの中には、Wi-Fi に接続するモジュールもあったりします(それについて、過去に以下の記事を書いています)。
●【IoTLT 2020】 micro:bit を使った IoT(Grove - UART Wifi V2 との組み合わせ、IFTTT利用) - Qiita
https://qiita.com/youtoy/items/459289951134544e73eb
また、縁あって以下のエンジニアブログに、このキットに関する記事を寄稿させていただいたこともあり、そこで上で話題に出している専用ブロックを使っています。
●micro:bit(マイクロビット)用のビジュアルプログラミング環境でGroveモジュールを使う 〜マイクロビット用Grove Inventor キット〜 - Seeed K.K. エンジニアブログ
https://lab.seeed.co.jp/entry/2020/05/22/120000
micro:bit で Groveモジュールを使う
特定の Groveモジュールには専用ブロックが用意されていますが、それ以外のモジュールも MakeCode標準のブロックと組み合わせて micro:bit で使うことができます。
それについて、冒頭に掲載していた「microbit wiki Page」のほうに「Grove compatible with Micro:bit」という部分があり、そこには以下のような対応表が掲載されています。
ご覧の通り、かなり大量の Groveモジュールが並んでいます。
この中の一番右の列を見ると、先ほど話に出していた MakeCode の専用拡張ブロックがあるかどうかが分かるようになっています。
その他、スイッチサイエンスさんの「micro:bit用GROVEシールド v2.0」のページを見ていくと、以下の部分に Excelファイルへのリンクが掲載されています。
このファイルを開くと、ここでも MakeCode で利用可能な Groveモジュールの表が掲載されていて、色付きで見やすい表になっています(ただし、上記の Wiki の表と比べて、掲載されているモジュールの数がかなり少ないような...)。
MakeCode と組み合わせて利用する
専用ブロックがあるモジュールは、公式の Wiki に使い方が出てたりするので、専用ブロックがないものをいくつか試してみようと思います。
Grove振動センサー(SW-420)
最初は、以下の振動センサを試してみます。
●Grove振動センサー(SW-420)- Grove Vibration Sensor - Seeed Studio
https://jp.seeedstudio.com/Grove-Vibration-Sensor-SW-420-p-3158.html
●Grove - Vibration Sensor(SW-420) - Seeed Wiki
https://wiki.seeedstudio.com/Grove-Vibration_Sensor_SW-420/
仕様的には、MakeCode の以下を使うことになりそうです。
●Digital Read Pin
https://makecode.microbit.org/reference/pins/digital-read-pin
適当に試しているとうまくいかず、その後に試行錯誤したり調査をしているとプルアップをする必要がありそうだと分かりました。
そして、「振動センサ プルアップ」というキーワードでさらに調べていたら、以下の記事が出てきました。
●micro:bitを使ってみる 48 〜Grove振動センサ - MSR合同会社
https://msr-r.net/try-microbit-48/
「プルアップ・プルダウンなし」でも大丈夫とのことだったので、以下でも想定通りの動きになることを確認してみました。
上記を動作させている様子はこちらです。
無事に動作しているようです。
Grove スイッチ(P)
次はこちらです。
●Grove スイッチ(P) - Grove Switch(P) - Seeed Studio
https://jp.seeedstudio.com/Grove-Switch-P-p-1615.html
●Grove - Switch(P) - Seeed Wiki
https://wiki.seeedstudio.com/Grove-Switch-P/
仕様を見ると、先ほどと似たような感じで使えそうです。
試しに以下のプログラムで動かしてみました。
上記を動作させている様子はこちらです。
想定している通りの動作を確認できました。
Grove 光センサー v1.2
次は、アナログ入力を試していきます。
試すセンサーは、以下の光センサーです。
●Grove 光センサー v1.2 - Grove Light Sensor - Seeed Studio
https://jp.seeedstudio.com/Grove-Light-Sensor-v1-2-LS06-S-phototransistor.html
MakeCode で、センサーで取得した値をシリアル通信で出力する、という単純なプログラムを作って動かしてみます。
MakeCode上でシリアル通信の出力を表示させつつ、センサーの近くを手で覆ったり、覆っている手を遠ざけたり、ということをやってみると、以下のグラフが得られました。
おわりに
今回、micro:bit で Groveモジュールを使う話を、まとまりがない感じで色々と書いていきました。
まだまだ自宅に micro:bit とは組み合わせてない Groveモジュールがあるので、それらもまた今後使っていければと思っています。
気になった内容
「振動センサ」の部分に登場していた記事のタイトルに「48」という番号がついていたので、他にも micro:bit に関する記事がたくさんありそうだと思って調べてみたら、以下一覧ページがありました。
●【連載】micro:bitを使ってみる - MSR合同会社
https://msr-r.net/category/%e3%80%90%e9%80%a3%e8%bc%89%e3%80%91microbit%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/
その中で気になる記事が 1つあったので、メモとして残してみました。
また、別の機会に試すことができたらと思います。
●マイクロビットとM5Stackでゲートウェイをつくる - MSR合同会社
https://msr-r.net/gateway-microbit-and-m5stack/