LoginSignup
0

More than 5 years have passed since last update.

Centos7でM5Stack開発

Last updated at Posted at 2018-09-22

別に大したことはないが「centos7 M5Stack」と検索したらそのものずばりなものがなかったので。私みたいな俄に思いついてスターターキットで買うような人向けに。

やったこと

  • インストール
  • スケッチ例「display」を書き込む

実施環境

  • Linux version 3.10.0-862.11.6.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) )
  • CentOS Linux release 7.5.1804 (Core)

カーネルの更新を先にやっておいた方が良いのかもしれないが……。
ていうかいつの間にか7.5になってたか。

インストール

Arduino IDE

買う時に確認していると思うが、M5StackはArduino IDEで開発できる。

  • Arduino IDEのページあたりからダウンロードする。
    • Linux 64bitとか32bitを選択する。
  • tar.xzファイルがダウンロードされるのでこのページのようなコマンドで展開する。
  • 展開したファイル(arduino-x.x.xとかのフォルダになるはず)の中のinstall.shを実行する → アプリ一覧に登録される。

(余談)インストールするときに寄付するか聞かれる。ハードの販売は利益追求してないのだろうか。まあarduinoを買ったわけじゃないしと思って寄付したが……寄付の説明ぐらい多言語にしておいてほしい。

IDEの環境設定

Arduino IDEで開発できるといってもそのまま対応しているわけではない。
まあここらへんはWindowsや他のOSと似たような感じなのでググれば似たような話は出てくる。例えば下記

M5Stack の環境設定(Arduino & MicroPython)
M5Stackを試す2 (環境構築編)

ボードマネージャー / espressif

https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide に各OSの手順がある。
ただしcentosそのものはない。fedoraを参考にする。しかし問題は次のステップ。

sudo dnf install git python3-pip python3-pyserial

dnfがちゃんと設定されればそのままできるのかもしれないが、結局私はできなかった。
git, pip, python3が入っていることを確認して続きを実行。
後になってpyserialが……みたいなことになって下記を行った。

pip install pyserial

M5Stackのライブラリ

Arduino IDEを起動する。
ツール>ボードの一覧の下の方にESP32某が並んでいて、その下の方にM5Stack-Core-ESP32があるはずなので選択。
次にスケッチ>ライブラリをインクルード>ライブラリを管理 でM5Stackと検索してM5Stackというやつをインストール。(M5Stack by M5Stackでも良いらしいが)。

試してみる

ファイル>スケッチ例>M5Stack>Basics>Displayを選択。
「→」ボタンを押して「マイコンボードに書き込む」。
ここで私は3件ほど事件が。

  1. 「SD.h」に対して複数のライブラリが見つかりました
  2. No module named serial.tools.list_ports
  3. /dev/ttyUSB0 permission denied

対処は下記。

  1. ダウンロード(インストール)したArduinoのlibrariesにSDフォルダがあるので消す(tar.gzで固めて残しておいても良いが)
  2. 先述のとおり、pip install pyserialする
  3. これが私の頭ではよくわからん。結局chmod 666 /dev/ttyUSB0した。OSを再起動するたびにやらないといけないらしいが……

無事書き込めると、M5Stackの電源みたいなボタンを押すたびに赤青緑みたいに色が変わったあと小さな□○△みたいになって、そのあと三角形がわーとなる画面になる。わーとなるのはうざいので試しに下記のようにfillTriangleをコメントにしてみた。

// the loop routine runs over and over again forever
void loop(){

  //rand draw 
  //M5.Lcd.fillTriangle(random(M5.Lcd.width()-1), random(M5.Lcd.height()-1), random(M5.Lcd.width()-1), random(M5.Lcd.height()-1), random(M5.Lcd.width()-1), random(M5.Lcd.height()-1), random(0xfffe));

  M5.update();
}

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
0