LoginSignup
6
0

More than 5 years have passed since last update.

M5StackとGPSで遊ぶ

Posted at

Pythonが動くマイコンで遊んでみようと思いM5Stackを買いました。

M5StackはEspressif ESP32マイコン、ディスプレイ、SDカードスロット、ボタン、ブザーが搭載されており、かわいいプラスチックの筐体にパッケージされています。基板をむき身で持つよりずっと安心できますね。

製品ラインナップはマイコンが搭載される コア とセンサ機器を搭載する モジュール に分かれています。 モジュールにはコアの下側にスタックして接続するものとGroveコネクタにより接続するものがあります。

買ったもの

  • M5Stack Fire (失敗!)
  • M5Stack Gray
  • M5Stack GPS Module

MVIMG_20190306_135111.jpg

M5Stack Fire

M5Stack Fireはコアの一つで、標準のコアに9軸センサとPSRAMが追加されています。

メモリも多いし、9軸センサも載ってるし、バッテリ付きモジュールも同梱してるし、これは便利だと思ったわけですが罠がありました。同時に購入したGPSモジュールが動きません。

MicroPythonからGPSモジュールのUARTにアクセスするとリブートしてしまい、何故だろうと調べまくった結果、以下のことがわかりました。

  • M5Stack FireのPSRAMは16番、17番ピンを使用 (回路図)
  • GPSモジュールのUARTは16番、17番ピンを使用

おい嘘だろ…。

カッとなったわたしはPSRAM未搭載の別のグレードであれば動くだろうと考え千石通商へ走り、M5Stack Grayを手に入れました。こちらは正常に動作。

開発環境の構築

MicroPythonを動かすには以下のツールが必要です。

UART VCPドライバのインストール

Macの人はbrewでインストールすると簡単です。

brew cask install silicon-labs-vcp-driver

esptoolのインストール

Macの人はbrewでインストールすると簡単です。

brew install esptool

adafruit ampyのインストール

brewで提供されていないのでpipでインストールします。
(Python2じゃないと動かなかったような気がする)

pip install adafruit-ampy

ファームウェアのインストール

esptoolがインストールされていれば以下の手順でインストールできます。 firmware.bin はダウンロードしたファイルを指定しましょう。

esptool.py --chip esp32 --port /dev/cu.SLAB_USBtoUART erase_flash
esptool.py --chip esp32 --port /dev/cu.SLAB_USBtoUART write_flash --flash_mode dio -z 0x1000 firmware.bin

GPSモジュールを駆動するサンプルコード

Ambientさんのサイトで書かれていた M5StackでGPS衛星の現在位置を表示する をSDカードにGPSログを取得するよう改造して動かしました。 main.pymicropyGPS.py を同じディレクトリに置いたら次のようにファイルを転送します。

ampy -p /dev/cu.SLAB_USBtoUART put main.py
ampy -p /dev/cu.SLAB_USBtoUART put micropyGPS.py

M5Stackの側面についているボタンを短押しするとリセットされ、プログラムが実行されます。

00100lPORTRAIT_00100_BURST20190311220859759_COVER.jpg

改造後のコードはgithubに上げました。

6
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0