M5StickCの小ネタ

みなさんこんにちは。スイッチサイエンスの大木です。 Maker Faire Kyotoが終わってほっとしています。出展された方も来場された方もおつかれさまでした。

さて、今回のMaker Faire Kyotoで突発的に少しだけ販売した、M5Stackの新製品M5StickCのスケッチを書いていてちょっと調べないとわからなかった小ネタを書いておきます。

転送レートについて

開発時にコンパイルしたスケッチを転送する速度がM5Stackより上がっており、最高1.5Mbpsで転送できます。1.5Mbpsの転送は大変快適です。ただそのためにはArduino IDEの設定ファイルboards.txtを修正する必要があります。

  • Macでは ~/Library/Arduino15/packages/esp32/hardware/esp32/1.0.2/ にありました。
  • Windowsでは C:\Users\ (ユーザー名) \AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\ にありました。

Arduino IDEを終了して、boards.txtに

pico32.menu.UploadSpeed.921600=921600
pico32.menu.UploadSpeed.921600.upload.speed=921600

という2行があるので、この4ヶ所の921600を1500000に書き換えます。

pico32.menu.UploadSpeed.1500000=1500000
pico32.menu.UploadSpeed.1500000.upload.speed=1500000

これで転送速度1.5Mbpsが選択できるようになります。

f:id:ohki_s:20190508112332p:plain

6軸センサについて

6軸センサはSH200QというICを使っています(リンク先はpdfです)。データシートの38ページにチップから見た各軸の向きが書いてありますが、M5StickCから見るとボタンのM5ロゴを正面に見て上がY軸+、右がX軸+、手前がZ軸+方向です。

 f:id:ohki_s:20190508114105p:plain

LCDについて

解像度は80×160ドットです。 画面のバックライト輝度は電源IC AXP192によって制御されていて、スケッチではAxp.ScreenBreathを使います。設定できるのは7から15までの9段階です。7にしてもかすかに表示は見えます。

CPUクロックについて

消費電力を下げるためにCPUクロックを落とすことができます。CPUクロックを変えるにはsetCpuFrequencyMhz()を使います。このクラスはM5Stackが提供しているライブラリではなくarduino-esp32内のesp32-hal-cpu.h 内で宣言されています。

esp32-hal-cpu.hによると搭載しているクリスタルの周波数で動作周波数の下限が決まります。M5StickCが搭載しているESP32-PICO-D4(リンク先はpdfです)はデータシート3.3章によると40MHzのクリスタルを搭載していますので、10MHzが下限です。

ですので、setCpuFrequencyMhz(10) で一番遅い10MHz動作にできます。