3110 / atom-babies

M5StackのATOM Matrixを使ったかわいいいきもの。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UiFlow 版 ATOM Babies

※Arduino IDE や PlatformIO で実装する場合はArduino 版 ATOM Babiesを参照してください。

ATOM Babies

ATOM Babies とは

ATOM Babies は M5Stack 社のATOM Matrixを顔とし,ATOM Mateを利用して M5StickC シリーズで使用する Hat を胴体にしたかわいいいきものです。Hat だけでなく,M5Stack 用に用意されているユニットも使用できるので,それらの機能を活用してさまざまな能力を持つ ATOM Babies をつくることができます。

ちなみに,ATOM Babies の名付け親は M5Stack 社 CEO の Jimmy Lai さんです。

実装方法

※現在開発中なので,しばらくはブロックの仕様がころころ変わると思います。つくったプログラムが開けなくなることもありますので,あらかじめご了承ください。

UiFlowでの開発の様子

ATOM Babies は M5Stack 社が M5Stack シリーズ向けに提供しているブロックプログラミング環境であるUiFlowを使って実装しています。ATOM Babies 用のカスタムブロックを使用することで,誰でも簡単に ATOM Babies をつくることができます。

UiFlow を使用するには,PC に M5Burner をインストールし,M5Burner を使って PC に接続した ATOM Matrix に UiFlow 用のファームウェアを書き込む必要があります。

M5Burner のインストールと UiFlow ファームウェアの書き込み

M5Burnerの画面

ATOM Matrix に UiFlow のファームウェアを書き込むため,PC に M5Burner をインストールしてください。M5Burner のインストール方法や ATOM Babies に必要な ATOM Matrix 用の UiFlow ファームウェアの書き込み方については,「M5Burner v3 の使いかた」を参照してください。

ATOM Babies のカスタムブロックを UiFlow に読み込む

UiFlow のカスタムブロックは拡張子がm5bのファイルで,UiFlow Block Makerや私が作ったUiFlow Custom Block Generatorで作成することができます。

Customメニュー

カスタムメニューを選択し,「Open *.m5b file」を押し,atom_babies_ja.m5bを選択して読み込みます。

ATOM_Babiesメニュー

カスタムメニューの下に「ATOM_Babies」メニューが追加され,ATOM Babies を実装するのに使用するブロックが表示されます。

ATOM Babies のカスタムブロックを使って作ったプログラム(m5f ファイル)を読み込むときは,あらかじめ ATOM Babies のカスタムブロックを読み込ませておく必要があります。

顔の向き・位置について

顔の向きは USB-C の口を下にした向きを基準として以下のように定義しています。

顔の向き

顔の位置は顔の向きがどの方向でも以下のように定義しています。

顔の位置

サンプルの説明

まばたきをする(samples/blink.m5f

ATOM Babies の顔(ボタン)を押すたびに,まばたきを始めたり止めたりします。まばたきの設定はデフォルト(1 回のまばたき,目を開けている時間が 500 ミリ秒,目を閉じている時間が 100 ミリ秒,次のまばたきを始めるまでの間隔が 1000 ミリ秒)です。

samples/blink.m5f

おじぎする(samples/bow.m5f

samples/bow.m5f

数字を表示する(samples/digits.m5f

samples/digits.m5f

ATOM Babies の顔(ボタン)を押すたびに 0 から順に数字が表示されます。2 桁以上の数字は各桁を順に表示します。

人が来たらあいさつする(samples/greeting.m5f


ATOM Babies:人が来るとあいさつをする(YouTube)

人が目の前に来ると顔を出しておじぎをします。


ATOM MatrixにATOM MateとPIR Hatを接続

ATOM Mateを使用してPIR Hatを接続して利用します。USB-C の口を上にした状態が正しい向きになります。

PIR は Passive pyroelectric infrared detector(受動焦電型赤外線検出器)の略で,人間が発する赤外線を検知し,目の前にいるかを判断します。 PIR Hat の仕様で,いったん検知した後,次に検知するまでに 2 秒間の遅れがあります。

samples/greeting.m5f

温度・湿度・気圧を表示する(samples/env.m5f


ATOM Babies: 温度・湿度・気圧を表示する(YouTube)

ATOM Babies の顔(ボタン)を押すと,気温・湿度・気圧がそれぞれ赤色・青色・白色の数値でスクロールして連続表示されます。

Image from Gyazo
ATOM MatrixにATOM MateとENV III Hatを接続

ATOM Mateを使用してENV III Hatを接続して利用します。USB-C の口を上にした状態が正しい向きになります。

ENV III Hat は本体の温度に影響を受けるため,補正値(temperature_correction)を引いて調整してください。

samples/env.m5f

付録:UiFlow Custom Block Generator の使い方

pipで UiFlow Custom Block Generator をインストールします。

pip install git+https://github.com/3110/uiflow-custom-block-generator

UiFlow Custom Generator を実行します。以下を実行するとカレントディレクトリにatom_babies_ja.m5bが生成されます。

python -m uiflow_custom_block_generator atom_babies/atom_babies_ja.json -t .

参考

About

M5StackのATOM Matrixを使ったかわいいいきもの。

License:MIT License


Languages

Language:Python 100.0%