M5Stack Tab5を触ってみる

M5Stack Tab5

1万円で買えるにしては、スペックが良いもの。
ESP32-P4 デュアルコアメインコントローラ
ESP32-C6 ワイヤレスモジュール
Wi-Fi 6
内蔵 3D アンテナ & MMCX 外部アンテナ端子
5″ 720P MIPI-DSI ディスプレイ
GT911 マルチタッチ
SC2356 2 MP カメラ
USB-A Host + USB-C OTG
RS485 産業用インターフェース
Grove & M5BUS 拡張
microSD カードスロット
Stamp 拡張パッド
ES8388 オーディオコーデック
ES7210 AEC デュアルマイク
1 W スピーカー + 3.5 mm ヘッドホン
BMI270 6軸センサ
RX8130CE リアルタイムクロック
Reset/Boot & Power ボタン
NP-F550 着脱式バッテリー
標準 1/4″-20 三脚ネジ穴

開発プラットフォーム
- UIFlow2
- Arduino IDE
- ESP-IDF
- PlatformIO

C++での開発の場合、WIFI.begin()
実行後にエラーで落ちるらしい。
PlatformIOでの開発にしたかったが、UIFlow2で開発を進める。

ビルド
クイックスタート通りやればOK

ここでWi-Fi設定しておけば、PCとTab5をUSB接続しなくともテストできるみたい。

Wi-Fiと画面表示を確認する。

接続確認するために、HTTP Requestを試したいが、
パーツ自体はない?
request2ライブラリを利用してみる。

Custom Editを有効にする。
この瞬間よりノーコードライフ終了。
ボタンに以下のイベントを設定してみた。
def button0_clicked_event(event_struct):
global page0, button0, label0, label1, label2, label3, label4, label5, wlan, http_req
# 取得中表示
label0.set_text('Loading...')
try:
# HTTPリクエスト実行
http_req = requests2.get(
"https://httpbin.org/get",
headers={"Content-Type": "application/json"}
)
# レスポンスを整形
result = format_json_response(http_req.text)
# 各ラベルに表示
label0.set_text('HTTP Response Data')
label1.set_text('URL: ' + result['url'])
label2.set_text('Origin IP: ' + result['origin'])
label3.set_text('Host: ' + result['host'])
label4.set_text('UA: ' + result['user_agent'])
label5.set_text('Referer: ' + result['referer'])
except Exception as e:
label0.set_text('Error: ' + str(e))

ボタンをタップ後にデータが表示されることを確認した。
Custom Editを無効にすると、手動コーディングが消え去るので注意。

HTTP モジュールは左サイドパネルの Software カテゴリから追加出来きますー

げんさんはやはり神だった・・・

部分的にカスタムコードを使うなら Sysytem>Execute mpy code シリーズでブロック内・外に埋め込めれる

教えてもらった内容を反映する。
サイドパネルにある+ボタンからモジュールを追加できる。
HTTPモジュールを使い、HTTP Requestを試せるようになった。

Sysytem>Execute mpy code でコードも書ける。

PlatformIO
一応、PlatformIOも試しておく。
プロジェクト作成時、Board選択一覧に存在しないので、
テキトーにプロジェクトを作成してplatformio.ini を以下の通りに書き換える。
[env:esp32p4_pioarduino]
platform = https://github.com/pioarduino/platform-espressif32.git#54.03.20
upload_speed = 1500000
monitor_speed = 115200
build_type = debug
framework = arduino
board = esp32-p4-evboard
board_build.mcu = esp32p4
board_build.flash_mode = qio
build_flags =
-DBOARD_HAS_PSRAM
-DCORE_DEBUG_LEVEL=5
-DARDUINO_USB_CDC_ON_BOOT=1
-DARDUINO_USB_MODE=1
lib_deps =
https://github.com/M5Stack/M5Unified.git
https://github.com/M5Stack/M5GFX.git

UIFlow2で各モジュールを試しながら、コーディングしていくしかないだろうか?
HTTP Requestは試せたので、何かしらには試せそう。

M5GFXを使い慣れていなかったので、
ダミーデータだけどもダッシュボードを作成してみた。