Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/3110/atom-babies
M5StackのATOM Matrixを使ったかわいいいきもの。
https://github.com/3110/atom-babies
atom-babies creature m5stack m5stakc-atom uiflow
Last synced: 12 days ago
JSON representation
M5StackのATOM Matrixを使ったかわいいいきもの。
- Host: GitHub
- URL: https://github.com/3110/atom-babies
- Owner: 3110
- License: mit
- Created: 2022-02-06T09:56:26.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-11T16:52:03.000Z (over 1 year ago)
- Last Synced: 2024-11-06T14:48:44.057Z (2 months ago)
- Topics: atom-babies, creature, m5stack, m5stakc-atom, uiflow
- Language: Python
- Homepage:
- Size: 113 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# UiFlow 版 ATOM Babies
※Arduino IDE や PlatformIO で実装する場合は[Arduino 版 ATOM Babies](https://github.com/3110/atom-babies-arduino/)を参照してください。
## ATOM Babies とは
ATOM Babies は M5Stack 社のATOM Matrixを顔とし,ATOM Mateを利用して M5StickC シリーズで使用する Hat を胴体にしたかわいいいきものです。Hat だけでなく,M5Stack 用に用意されているユニットも使用できるので,それらの機能を活用してさまざまな能力を持つ ATOM Babies をつくることができます。
ちなみに,ATOM Babies の名付け親は M5Stack 社 CEO の Jimmy Lai さんです。
## 実装方法
※現在開発中なので,しばらくはブロックの仕様がころころ変わると思います。つくったプログラムが開けなくなることもありますので,あらかじめご了承ください。
[![UiFlowでの開発の様子](https://i.gyazo.com/f278afebd08736265ef63bd5ca6bfb16.png)](https://gyazo.com/f278afebd08736265ef63bd5ca6bfb16)
ATOM Babies は M5Stack 社が M5Stack シリーズ向けに提供しているブロックプログラミング環境である[UiFlow](https://flow.m5stack.com/)を使って実装しています。ATOM Babies 用のカスタムブロックを使用することで,誰でも簡単に ATOM Babies をつくることができます。
UiFlow を使用するには,PC に M5Burner をインストールし,M5Burner を使って PC に接続した ATOM Matrix に UiFlow 用のファームウェアを書き込む必要があります。
### M5Burner のインストールと UiFlow ファームウェアの書き込み
[![M5Burnerの画面](https://i.gyazo.com/d3925e4e03ac1245d915d8533861a1fd.png)](https://gyazo.com/d3925e4e03ac1245d915d8533861a1fd)
ATOM Matrix に UiFlow のファームウェアを書き込むため,PC に M5Burner をインストールしてください。M5Burner のインストール方法や ATOM Babies に必要な ATOM Matrix 用の UiFlow ファームウェアの書き込み方については,「[M5Burner v3 の使いかた](https://zenn.dev/saitotetsuya/articles/m5stack_m5burner_v3)」を参照してください。
### ATOM Babies のカスタムブロックを UiFlow に読み込む
UiFlow のカスタムブロックは拡張子が`m5b`のファイルで,[UiFlow Block Maker](http://block-maker.m5stack.com/)や私が作った[UiFlow Custom Block Generator](https://github.com/3110/uiflow-custom-block-generator)で作成することができます。
[![Customメニュー](https://i.gyazo.com/34bd1e3d9296cb60d0fe6e959e13490e.png)](https://gyazo.com/34bd1e3d9296cb60d0fe6e959e13490e)
カスタムメニューを選択し,「Open \*.m5b file」を押し,`atom_babies_ja.m5b`を選択して読み込みます。
[![ATOM_Babiesメニュー](https://i.gyazo.com/d4cb5540307740aca6e03f29572a0bc8.png)](https://gyazo.com/d4cb5540307740aca6e03f29572a0bc8)
カスタムメニューの下に「ATOM_Babies」メニューが追加され,ATOM Babies を実装するのに使用するブロックが表示されます。
ATOM Babies のカスタムブロックを使って作ったプログラム(m5f ファイル)を読み込むときは,あらかじめ ATOM Babies のカスタムブロックを読み込ませておく必要があります。
### 顔の向き・位置について
顔の向きは USB-C の口を下にした向きを基準として以下のように定義しています。
顔の位置は顔の向きがどの方向でも以下のように定義しています。
## サンプルの説明
### まばたきをする(`samples/blink.m5f`)
ATOM Babies の顔(ボタン)を押すたびに,まばたきを始めたり止めたりします。まばたきの設定はデフォルト(1 回のまばたき,目を開けている時間が 500 ミリ秒,目を閉じている時間が 100 ミリ秒,次のまばたきを始めるまでの間隔が 1000 ミリ秒)です。
[![samples/blink.m5f](https://i.gyazo.com/9ba20c8272b57e58b4e7d3c503239f06.png)](https://gyazo.com/9ba20c8272b57e58b4e7d3c503239f06)
### おじぎする(`samples/bow.m5f`)
[![samples/bow.m5f](https://i.gyazo.com/2f97b029257fe28b5b12c54dee7ba3e5.png)](https://gyazo.com/2f97b029257fe28b5b12c54dee7ba3e5)
### 数字を表示する(`samples/digits.m5f`)
[![samples/digits.m5f](https://i.gyazo.com/c372aa67a1a02dbc1abfe3a5bd818176.png)](https://gyazo.com/c372aa67a1a02dbc1abfe3a5bd818176)
ATOM Babies の顔(ボタン)を押すたびに 0 から順に数字が表示されます。2 桁以上の数字は各桁を順に表示します。
### 人が来たらあいさつする(`samples/greeting.m5f`)
ATOM Babies:人が来るとあいさつをする(YouTube)人が目の前に来ると顔を出しておじぎをします。
ATOM MatrixにATOM MateとPIR Hatを接続[ATOM Mate](https://shop.m5stack.com/products/atom-mate)を使用して[PIR Hat](https://shop.m5stack.com/products/m5stickccompatible-hat-pir-sensor)を接続して利用します。USB-C の口を上にした状態が正しい向きになります。
PIR は Passive pyroelectric infrared detector(受動焦電型赤外線検出器)の略で,人間が発する赤外線を検知し,目の前にいるかを判断します。
PIR Hat の仕様で,いったん検知した後,次に検知するまでに 2 秒間の遅れがあります。[![samples/greeting.m5f](https://i.gyazo.com/222a273c32f6ba00ed579ac12638610b.png)](https://gyazo.com/222a273c32f6ba00ed579ac12638610b)
### 温度・湿度・気圧を表示する(`samples/env.m5f`)
ATOM Babies: 温度・湿度・気圧を表示する(YouTube)ATOM Babies の顔(ボタン)を押すと,気温・湿度・気圧がそれぞれ赤色・青色・白色の数値でスクロールして連続表示されます。
ATOM MatrixにATOM MateとENV III Hatを接続[ATOM Mate](https://shop.m5stack.com/products/atom-mate)を使用して[ENV III Hat](https://shop.m5stack.com/products/m5stickc-env-hat-iii-sht30-qmp6988)を接続して利用します。USB-C の口を上にした状態が正しい向きになります。
ENV III Hat は本体の温度に影響を受けるため,補正値(`temperature_correction`)を引いて調整してください。
[![samples/env.m5f](https://i.gyazo.com/e7a70289ae78f8174c37e49907c2c167.png)](https://gyazo.com/e7a70289ae78f8174c37e49907c2c167)
## 付録:UiFlow Custom Block Generator の使い方
`pip`で UiFlow Custom Block Generator をインストールします。
```bash
pip install git+https://github.com/3110/uiflow-custom-block-generator
```UiFlow Custom Generator を実行します。以下を実行するとカレントディレクトリに`atom_babies_ja.m5b`が生成されます。
```bash
python -m uiflow_custom_block_generator atom_babies/atom_babies_ja.json -t .
```## 参考
- [ATOM Babies](https://youtube.com/playlist?list=PL5yIB9ecl31VxCF3HHRsOgXIgWvoJSiL5)(YouTube チャンネル)
- [UiFlow](https://flow.m5stack.com/)
- [UiFlow Block Maker](http://block-maker.m5stack.com/)
- [UiFlow Custom Block Generator](https://github.com/3110/uiflow-custom-block-generator)