プログラミング

手のひらサイズの高機能マイコンボードM5StickC

こんにちは、Lineaです。プログラマーの方です

今回は最近ハマっているM5StickCという超小型のマイコンボードを紹介します
画像のように手のひらサイズですが、高機能で自作のプログラムを動かすことのできるすごい奴です
プログラミングもビジュアルプログラミングというブロックを組み合わせる方法でできるのでお手軽です

M5StickCとは

もう少しM5StickCについて詳細に解説します
M5StickCはM5Stack社が開発している小型の多機能マイコンボードです
特徴としてはマイコンだけでなく液晶やバッテリー、ボタン、ジャイロセンサーなど様々なデバイスが筐体にパッケージされている点です
M5StickCでは最初から各種デバイスが接続されているので本体だけでも色々な事ができてしまいます
また、搭載しているマイコンもESP32という高性能なもので、なんとデュアルコアです

ちなみに搭載しているデバイス、機能を一覧にすると

  • マイコン
  • LCD液晶
  • バッテリー
  • ボタンスイッチ
  • LED/赤外線LED
  • 6軸ジャイロ加速度センサー
  • マイク
  • ブザー
  • Wifi/Bluetooth

これだけの機能が最初から搭載されているのは中々に衝撃的です
追加のセンサーなどを接続できる端子やコネクタ(Grove規格)も搭載しているので電子回路と組み合わせて使うこともできます
公式の拡張用センサーやユニットも色々発売されており、それらは端子に差すだけで使えるようになるのでそれだけでも色々遊べそうです

M5StickCシリーズには2機種ありますが、どちらも2000円台で販売されています
一昔前だとArduinoUNOが買えるかなぐらいの値段で様々なデバイスがついてくるのでお得感がすごいです

こちらが基本のM5StickCです

こっちは少し液晶が大きくなったM5StickCPlusです。見分け方は液晶のサイズと濃いオレンジ色です
自分が持っているのもこちらです

兄弟機としてより画面の大きいM5Stackシリーズも存在しています

何ができるのか

M5StickCが安くて高機能なことは説明してきましたが、これを使って何ができるのか自分が最近作ったもので紹介します

釣りゲーム

ちょっと懐かしテイストの釣りゲームです
内臓の加速度センサーを使い、本体を動きを取得して浮きを上げ下げします
液晶付きでセンサーやボタンもあるのでアイデアしだいで色々ゲームが作れそうです
ただ、画面を高速に表示するのはそれほど得意ではないので作り込むなら色々工夫が必要になります

水やりチェッカー

こちらは追加センサーの土壌水分センサーを使って土の水分を測るチェッカーです
写真では見えてないですが下の枠には水分の変化をグラフで表示もしています
ガーデニングでIoTっぽいことができないかと水分データをサーバーに保存したりと発展させていく予定です

向いてる用途としてはセンサーと通信を生かしたIoTデバイス開発の方になりそうです
ゲームには画面の表示性能やメモリなどネックになりそうな部分はありますが公式にもジョイスティック拡張もあるので頑張れば凝ったものも作れそうです

プログラミング環境

M5StickCでプログラミングできる環境は以下の3つです

  • C/C++ (Ardduino IDE、PlatformIO)
  • Mycropython
  • UIFlow

別途ライブラリなどは必要ですがArduino環境でプログラムできるのでArduinoなどに触ったことがある人には馴染みやすいと思います
MycroPythonはPythonに慣れた人向けだと思いますが、自分は使っていなので詳細はよく分からんです
UIFlowは後述しますが独自のビジュアルプログラミング環境です

Arduino環境でC/C++が一番パフォーマンスが出るんじゃないでしょうか(多分)
あと先人たちのライブラリや情報も数多くあるのがありがたいです

UIFlowは手軽さが一番のメリットですね
センサーの数値を見るだけなど簡単に試したいときはUIFlowを使っています

ビジュアルプログラミング環境(UIFlow)

そもそもビジュアルプログラミングとは細かい処理の単位で分かれたブロックを画面上でつなげて組み合わせることでプログラムを行う方式のことです
プログラムの処理の流れが視覚的にわかりやすく作れるので初心者向きとされています
学校のプログラム教育でよく使われるScratchなどが有名です

M5StickCではビジュアルプログラミング環境としてUIFlowという独自の環境が用意されています
独自ではありますが操作方法やブロックのつなげ方はかなりScratchに似ているので知っていれば同じ感覚で使うことができます

UIFlowはWebブラウザで動作するWeb版とソフトをDLして使用するローカル版が存在します
Web版ではM5StickCをWifiでネットワークに接続しておくとインターネット経由でプログラムを送信できます
内部的にはMycroPythonで動作しているらしく生成されたPythonコードを見たり、直接編集することもできます
お手軽なのはインストールの要らないWeb版ですが、たまに接続が不安定なときもあるので悩ましいです

UIFlowで作成したプログラムを動作させるためにはM5StickC側にも対応したファームウェアを予め書き込んでおく必要があります
そのため、C/C++で書いたプログラムと共存できないのが欠点です

次回ではUIFlowでプログラミングする準備と実際にプログラミングを解説していきたいと思います


投稿者

Linea
本業はゲームプログラマー プログラミングやIT系の記事を書いていきます アイコンは愛車のシトロエン DS3です

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA