Slide 1

Slide 1 text

「M5Stack」をGUIとMicroPythonで動かしてみた Arisa @arinyanm 2019年3月13日みんなのPython勉強会#43

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

こんなことをしています 名 前 所 属 職 種 運 営 Pythonきっかけ IT系企業で新規事業の立ち上げ 企画、マーケティング、事業広報 SIerIoTLT~楽しいIoT全員集合~ Chainer User Group AIの勉強をしたい(in 2017年) Arisa @arinyanm

Slide 4

Slide 4 text

今の悩み と やりたい こと

Slide 5

Slide 5 text

今の悩みとやりたいこと ✔今の悩み ✔やりたいこと ・初対面の人と話す時緊張する ・話しのネタに尽きると困る ・沈黙をどう過ごして良いか分からない ・初対面の人と話をする時もネタに困 らないようにIoTガジェットがネタを 提供してくれる

Slide 6

Slide 6 text

やりたいことと欲しい機能 ✔やりたいこと ・初対面の人と話をする時もネタに困らないようにIoTガジェットがネ タを提供してくれる ✔欲しい機能 ・FacebookのQRコードの表示 ・自己紹介文の表示 ・話しのネタリストの表示 ・ボタンで表示内容の切替え

Slide 7

Slide 7 text

Pythonが使えるマイコン Raspberry Pi(ラズベリーパイ) Raspberry Pi(ラズベリー パイ)は、ARMプロセッサ を搭載したシングルボードコンピューター。イギリス のラズベリーパイ財団によって開発されている。日本 では略称としてラズパイとも呼ばれる。 主に教育で利用することを想定しているが、IoTが隆盛 した2010年代後半以降は、安価に入手できるIoT機器 として趣味や業務に広く用いられている。IoT教育にお いては、ソフトウェア開発に強いRaspberry Piと、 ハードウェア開発に強いArduinoの組み合わせが一般 的である。 (Wikiより) スイッチサイエンスホームページより https://www.switch-science.com/ IT Media

Slide 8

Slide 8 text

Pythonが使えるマイコン micro:bit(マイクロビット) イギリスのBBCが主体となって作った教育向けのマイコン ボードです。英国では11歳~12歳の子供全員に無償で配布さ れており、授業の中で活用が進んでいます。 ユーザーが動作をプログラミングできる25個のLEDと2個のボ タンスイッチのほか、加速度センサと磁力センサ、無線通信 機能(BLE)を搭載しています。mbedのように、USBケーブ ルでPCと接続し、プログラムをドラッグアンドドロップで書 き込むことが可能です。 全ての開発環境がウェブブラウザ上で動作するため、初心者 にとってハードルとなりがちな環境構築を行う必要がありま せん。パソコンがオフラインになってしまった場合でも動作 が止まらないように工夫されているため、学校の授業など ネットワーク環境が不安定であってもスムーズに開発を続け ることができます。 スイッチサイエンスホームページより https://www.switch-science.com/

Slide 9

Slide 9 text

Pythonが使えるマイコン MicroPython pyboard 【開発元】 micropython.org 【仕様】 ・搭載MPU:STM32F405RG(168MHz浮動小数点付きCortex-M4) 1024KBフラッシュROM、192KB RAM ・microUSBコネクタ(電源とシリアル通信用) ・microSDカードスロット ・センサ:MMA7660(3軸加速度センサ) ・リアルタイムクロック(オプションでバッテリバックアップ可能) ・GPIO×56 ・12ビットA/Dコンバータ×3、アナロググラウンドシールド×4 ・12ビットD/Aコンバータ×2 ・LED×4(赤、緑、黄、青) ・リセットボタン、ユーザスイッチ ・3.3V LDO電圧レギュレータ(最大250mA、入力電圧範囲3.6V~16V) ・ファームウェアアップグレード用のROM内のDFUブートローダ 【価格】 MicroPython pyboard ヘッダー付き【DEV-14413】 6,432円 MicroPython pyboard ヘッダーなし【2390】 5,782円 マルツホームページより http://select.marutsu.co.jp/list/detail.php?id=733

Slide 10

Slide 10 text

Pythonが使えるマイコン obniz(オブナイズ) この小さなobniz board1台あれば、インターネット(API) 経由であらゆる言語・環境から簡単に、ハードウェアプログ ラムや高度なIoT製品の製作ができます。 スマートフォンでQRコードをスキャンしたらすぐにプログラ ムページへ。 HTMLの中のjavascriptだけですべてプログラムできます。 Python SDKをβ版で提供中。 obniz製品ページより https://obniz.io/

Slide 11

Slide 11 text

Pythonが使えるマイコン M5Stack(エムゴスタック) ■M5Stackの特長 M5Stackは、320 x 240 TFTカラーディスプレイ、microSD カードスロット、スピーカーを備えたコンパクトで便利な開 発モジュールです。ESP32を搭載しているため、Wi-Fiおよび Bluetooth通信を扱え、Arduino、MicroPythonでの開発が可 能です。 ※ESP32とは ESP32シリーズは Wi-FiとBluetoothを内蔵する低コスト、 低消費電力なSoCのマイクロコントローラ(Wikiより) スイッチサイエンスホームページより https://www.switch-science.com/

Slide 12

Slide 12 text

M5Stackの種類 スイッチサイエンスホームページより https://www.switch-science.com/ M5Stackは、320 x 240 TFT カラーディスプレイ、 microSDカードスロット、ス ピーカーを備えたコンパクト で便利な開発モジュールです。 ESP32を搭載しているため、 Wi-FiおよびBluetooth通信を 扱え、Arduino環境での開発 が可能です。 M5Stack Basic 本製品はM5Stack Basicに、 加速度、ジャイロ、磁気を計 測可能な9軸センサ、 MPU9250を搭載したモデル です。 M5Stack Gray (9軸IMU搭載) M5Stack FIRE M5GOに近い仕様です。 M5GOと比較すると、 PSRAMが追加され、9DoFの センサが変わっています。 M5GO IoTスターターキット M5Stack本体と、すぐに使え る六つのGROVE互換モジュー ルが付属した、IoTをはじめる のにピッタリなキットです。 本体裏はLEGO互換の特別 バージョンとなっており、 LEGO互換のパーツも付属し ます。

Slide 13

Slide 13 text

M5Stackの種類 スイッチサイエンスホームページより https://www.switch-science.com/ ■M5Stack Facesの特長 9軸センサMPU9250搭載のM5Stack Grayに、キーボード、 テンキー、ゲーム機風のインターフェイス・パネルを揃 えたポケットコンピュータです。これらのカバーパネル を着け換えることで多岐にわたる使用が可能となります。 M5Stack Faces (9軸IMU搭載、各種カバー付き)

Slide 14

Slide 14 text

M5Stackの開発環境 ■Arudino、UIFlowが選べます。

Slide 15

Slide 15 text

M5Stackの開発環境 ■MicroPythonの場合、オフライン・オンラインを選択できます。 Arudino MicroPython M5UIFlow M5Cloud オフライン オンライン

Slide 16

Slide 16 text

MicroPythonとは MicroPythonは、オーストラリアのDamien George氏が開発し、2014 年に公開されたpyboardに付属する形で最初のバージョンがリリースさ れました。マイコンで動作するように最適化されたPython 3の処理系 であり、最近ではMicro:bit用のプログラミング言語としても注目され ています。MicroPythonは、パソコンからマイコンや組み込みシステム に簡単にコードを転送できるように、Pythonとの互換性が保たれてい ます。 マルツホームページより http://select.marutsu.co.jp/list/detail.php?id=733

Slide 17

Slide 17 text

MicroPythonとCpythonの違い ■MicroPythonのホームページに記載があります。

Slide 18

Slide 18 text

M5Stackの購入 ■国内であれば、「スイッチサイエンス」から購入できます。

Slide 19

Slide 19 text

M5Stack Community ■フォーラム内で質問ができます。

Slide 20

Slide 20 text

M5Stackの環境構築 ■まずはM5Cloudを試しました。 Arudino MicroPython M5UIFlow M5Cloud オフライン オンライン

Slide 21

Slide 21 text

M5Stack Communityで質問してみました① ■現在は、M5Cloudの代わりにM5UIFlowを推奨しているそうです。 When I used M5Could for my M5Stack Faces, the IDE shows the comment, "File Syscing...", for a long time. Thus I pressed button A and power button to reset as the IDE mentioned "(If there is no response for a long time, press and hold the button A and press the reset button to enter safe mode and try again)", however, still shows the comment, "File Syscing...". How can I deal this trouble? Should I try another day? We suggest you program FACES with flow.m5stack.com We are developing and promoting this programming platform instead of M5Cloud. Here's the getting started documentation. https://docs.m5stack.com/#/en/quick_start/m5core/m5stack_cor e_get_started_MicroPython

Slide 22

Slide 22 text

M5Stackの環境構築 ■次にオフラインを試しました。 Arudino MicroPython M5UIFlow M5Cloud オフライン オンライン

Slide 23

Slide 23 text

M5Stack Communityで質問してみました② ■M5UIFlowは独自のファームウェアが必要なようです。 Is it possible to rewrite the firmware from for offline to cloud? I rewrote the firmware for cloud with "m5cloud-20180516-v0.4.0.bin". However, the display of M5Stack didn't show anything information such as Wi-Fi setting. And I have heard gggggg sounds from M5Stack. Have you tried the UIFlow Firmware?

Slide 24

Slide 24 text

M5Stackの環境構築 ■次にオフラインを試しました。 Arudino MicroPython M5UIFlow M5Cloud オフライン オンライン

Slide 25

Slide 25 text

M5Burner ■実行ファイルを実行し、ファームウェアを書き込みます。

Slide 26

Slide 26 text

M5Burner ■実行ファイルの処理が終わるとこのような画面になります。

Slide 27

Slide 27 text

M5UIFlow ■設定画面で、API keyの入力、言語とデバイスの選択をします。

Slide 28

Slide 28 text

M5UIFlow ■開発ができるGUI画面にアクセスできます。

Slide 29

Slide 29 text

M5UIFlow ■画面を切り替えるとコードが入力できる画面へ移ります。

Slide 30

Slide 30 text

M5UIFlow Forum Docs Examples Undo Redo Manager Run

Slide 31

Slide 31 text

M5UIFlow ■自己紹介文とFacebookのQRコードを表示させました。

Slide 32

Slide 32 text

これからやりたいこと ■今回はできませんでしたが 以下の様な動きをさせたいと考えています。 【パターン1 ボタン単押しによる機能切換え】 ✔ボタンAを押したらQR CodeのJPEGを表示 ✔ボタンBを押したら紹介文を表示 ✔ボタンCを押したら追加情報を表示 【パターン2 メニュー表示による機能切換え】 ✔ボタンAを押したらQR CodeのJPEGを表示 ✔ボタンBを押したらメニュー画面を表示 ✔ボタンA/Cでセレクトボタン ✔ボタンBを押したら決定 ▶Facebook QR ▶Company QR ▶Sentence 1 ▶Sentence 2 ▶Sentence 3

Slide 33

Slide 33 text

大変だったこと ■デバイスの扱い ■ファームウェアのバージョン

Slide 34

Slide 34 text

Thank you for your attention!! Arisa @arinyanm