Closed22

M5Stack Tab5を触ってみる

mikomiko

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 三脚ネジ穴

mikomiko

開発プラットフォーム

  • UIFlow2
  • Arduino IDE
  • ESP-IDF
  • PlatformIO
mikomiko

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

mikomiko

UIエディタでは、M5UIかM5GFXのどちらかのライブラリを利用し、
画面デザインができる。

mikomiko

配置したパーツは、ノーコードでイベント設定が可能。

mikomiko

ビルド

クイックスタート通りやればOK
https://docs.m5stack.com/ja/uiflow2/Tab5/program

mikomiko

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

mikomiko

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))
mikomiko

ボタンをタップ後にデータが表示されることを確認した。

Custom Editを無効にすると、手動コーディングが消え去るので注意。

げんげん

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

げんげん

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

mikomiko

教えてもらった内容を反映する。

サイドパネルにある+ボタンからモジュールを追加できる。

HTTPモジュールを使い、HTTP Requestを試せるようになった。

mikomiko

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

mikomiko

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
mikomiko

画面表示だけは問題ないが、
WIFI.begin()を仕込むと再起動が繰り返されている。

pin設定を変更すればいけるらしいけど、
やり方がわからないので諦める。

mikomiko

UIFlow2で各モジュールを試しながら、コーディングしていくしかないだろうか?

HTTP Requestは試せたので、何かしらには試せそう。

mikomiko

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

このスクラップは2ヶ月前にクローズされました