編集履歴一覧に戻る
airpocketのアイコン画像

airpocket が 2024年11月15日20時26分42秒 に編集

コメント無し

本文の変更

# はじめに [M5Stack LLM Module](https://shop.m5stack.com/products/m5stack-llm-large-laguage-model-module-ax630c)はM5Stack Core向けのエッジLLMモジュールです。 M5Stack上からUIFlow2やArduinoIDEでUART越しにAPIをたたくとKWSやASRやLLMやTTSで答えてくれます。この価格帯のボードとしては相当高性能かつめちゃ簡単に使えるエッジLLMボードなので超おすすめ(今は売り切れ2ndロット待ち)商品です。 さらにはエッジAI用のSBCとしてもとても有能なので、便利なLinuxボードとしての使う際のTipsをまとめます。 必要な機材は以下の通りです。ほかにも随時USBケーブルやUSBカメラなども使用します。 ## M5Stack LLM Module 今回使用するエッジAIボードです。 ## M5Stakc Core Basic、Core2、CoreS3のいずれでもOKです。主に電源供給用に使用します。 ## Debug Board EtherポートとUSBシリアル通信ポートを備えたデバグボードです。Lniuxボードとして遊ぶならこれがあった方が100倍便利です。 # LLM Moduleにアクセス PCはWindowsを想定しています。 ## デバッグボードがある場合 デバグボードがある場合は以下の手順でアクセスできます。 ①LLM Moduleとdebug boardをFPCケーブルで接続する。 ②debug boardのType C USBポートとPCを接続する。 ③PC側でデバイスマネージャを開き、接続したCOMポートを確認する(CH340と表示されているポート)  うまく表示されていない場合、PC側にドライバがインストールされていない可能性があるためインストールする。 ④Tera Termなどのターミナルソフトを使って、ターゲットのCOMポートを開く。  通信速度は115200bps ⑤LLM ModuleのType C USBポートとPCやモバイルバッテリーなどを接続し、電源を供給する。 ## デバッグボードがない場合 ①PCで[SDK Platform-Toolsをダウンロード](https://developer.android.com/tools/releases/platform-tools?hl=ja)して任意のフォルダに解凍する。 ②LLM Module とPCをUSBケーブルで接続する。 ③PCでコンソールを開いて Platform-Toolsを解凍したフォルダに移動する。 ④以下のコマンドでデバイスが認識できているか確認する。ケーブルやPCのUSBの仕様によっては接続できないので、いろいろ変えて試してみる。 ``` adb devices ``` ⑤以下のコマンドでログインする。 ``` adb shell ``` ⑥必要なファイルはpushで送信 ``` adb push data.json /opt ``` ⑦pullでダウンロード ``` adb pull /opt/data.json . ``` # 起動音を消す @nnn112358 さんより報告。 /usr/local/m5stack/startup-script.shの該当行をコメントアウトする。 https://github.com/nnn112358/M5_LLM_Module_Report/blob/main/README.md # eMMCにファームをフラッシュ フラッシュするには、AXDLフラッシュツールを使います。 公式ドキュメントの通り進めたらOKです。 以下は手順のまとめ ※バージョンアップなどでリンク切れする可能性が高いので公式ドキュメントも確認してください。 ①[ファームウェア](https://docs.m5stack.com/en/guide/llm/llm/image)をダウンロード

-

AXDL Flash Toolをダウンロードして解凍 ③ドライバをダウンロードして解凍

+

[AXDL Flash Tool](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/software/AXDL_Flash_Tool_V1.24.13.1.7z)をダウンロードして解凍 ③[ドライバ](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/drivers/AXDL_Driver_V1.20.46.1.7z)をダウンロードして解凍

④ドライバ解凍先フォルダからIMAGE FLASH\AXDL_Driver_V1.20.46.1\Driver_V1.20.46.1\DriversForWin10\DriverSetup.exeを実行してインストール ④フラッシュツールの解凍先からIMAGE FLASH\AXDL_Flash_Tool_V1.24.13.1\AXDL_V1.24.13.1\Bin\AXDL.exeを実行 ⑤フラッシュツールの左上のアイコンを押して、ダウンロードしたファームを読み込む ⑥Type C USBケーブルをPCに刺し、Module LLMには刺さないで待機 ⑦フラッシュツールの▶アイコンを押して、書き込み待機状態にする。 ⑧Module LLMのType C USBの隣ボタンを押しながら、Type C USB挿入すると自動的に書き込み開始。 10分弱程度で書き込み終了。 # 固定IP @mongonta555 さんより報告。 https://x.com/mongonta555/status/1855511008305107175 # ネットワーク接続 開発の上でネットワーク接続は必須なので、Etherで接続。 ①debug board上のコネクタにLANケーブルを挿す ②USBシリアル、もしくはadbツールを使ってシステムにアクセス ③必要ならIPアドレスを固定して再起動 ④ip a コマンドでeth0のIPアドレスを確認 ⑤PCから調べたIPアドレスへSSHするなどしてネットワーク接続を確認  ※usre:root / pass:123456 # OpenCVインストール Computer Vision系やるならOpenCVは必須なので入れます。 ``` apt update sudo apt install libgl1 pip install opencv-python ``` # USBカメラ接続 @devemin さんより報告。 https://x.com/devemin/status/1855615695100506150 LLM ModuleのUSBポートにHubなどを通してUSBカメラを接続すると/dev/video0として認識される。 python でサンプルキャプチャするコード ※OpenCV使用 ``` import cv2 # Import OpenCV library # Camera device ID (usually, USB cameras use ID 0 or 1) camera_id = 0 # Open the camera cap = cv2.VideoCapture(camera_id) # Check if the camera opened successfully if not cap.isOpened(): print("Camera not found.") # If the camera is not found exit() # Exit the program # Camera settings: Resolution (width and height) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920) # Set width to 1920 pixels cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080) # Set height to 1080 pixels # Camera settings: Frame rate (FPS) cap.set(cv2.CAP_PROP_FPS, 30) # Set frame rate to 30 FPS # Camera settings: Exposure, Brightness, and Contrast cap.set(cv2.CAP_PROP_EXPOSURE, -6) # Set exposure (negative values decrease exposure) cap.set(cv2.CAP_PROP_BRIGHTNESS, 0.5) # Set brightness (0.0 to 1.0, where 0 is dark and 1 is bright) cap.set(cv2.CAP_PROP_CONTRAST, 0.5) # Set contrast (0.0 to 1.0, where 0 is low contrast and 1 is high contrast) # Verify the applied settings width = cap.get(cv2.CAP_PROP_FRAME_WIDTH) height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT) fps = cap.get(cv2.CAP_PROP_FPS) exposure = cap.get(cv2.CAP_PROP_EXPOSURE) brightness = cap.get(cv2.CAP_PROP_BRIGHTNESS) contrast = cap.get(cv2.CAP_PROP_CONTRAST) print(f"Resolution: {width}x{height}") print(f"Frame rate: {fps} FPS") print(f"Exposure: {exposure}") print(f"Brightness: {brightness}") print(f"Contrast: {contrast}") # Capture one frame ret, frame = cap.read() # If the frame is successfully captured if ret: # Save the captured image to a file cv2.imwrite('captured_image.jpg', frame) print('Image saved: captured_image.jpg') # Success message for image saving else: print("Failed to capture image.") # Failure message for image capture # Release the camera cap.release() # Close any OpenCV windows (if any are used for display) cv2.destroyAllWindows() ``` # Wi-Fiドングル USBドングルでWi-Fi接続しようとしたけどカーネルソースが無くてムリ # 入れておきたいツール ## tree ``` apt install tree ``` ## vim vscodeでリモートログインするなら不要ですけど。 行番号表示など軽く設定しておくと便利。 ``` sudo apt install vim vim ~/.vimrc ``` 追記する ``` set number syntax enable set expandtab set tabstop=4 set shiftwidth=4 ``` # Tips ## rootのpass は、123456 ## カーネルヘッダ公開されました https://x.com/HanxiaoM/status/1856581063021105413 [ダウンロード](https://t.co/0Qr6rvKtxk) ## JimmyのHiの音声は /opt/m5stack/data/audio配下の2つのWAVファイル https://x.com/mongonta555/status/1855533752417493017 # 参考リンク [M5Stack Store](https://shop.m5stack.com/products/m5stack-llm-large-laguage-model-module-ax630c)販売ページ [M5Stack docments](https://docs.m5stack.com/en/module/Module-llm)公式ドキュメント、リンク [Palsar2 Toolchain](https://pulsar2-docs.readthedocs.io/en/latest/user_guides_quick/quick_start_ax620e.html#):step by step でAX_modelへの変換 など [OS Image update](https://docs.m5stack.com/en/guide/llm/llm/image):LLM ModuleのOS Image Flash方法 [ax-samples](https://github.com/AXERA-TECH/ax-samples):vision model  [ax-llm](https://github.com/AXERA-TECH/ax-llm):LLMを触りたい [AXERA model zoo](https://drive.google.com/drive/folders/11aRxsFqJfGXhFMlInudj3Bi8SR-08TXl)実行用バイナリもあるので試せる。動かせる。    @nnn112358 さんのレポート! https://github.com/nnn112358/M5_LLM_Module_Report/tree/main @nananauno さんのまとめ https://zenn.dev/nananauno/scraps/259405f6aeaa90 # 参考アカウント https://x.com/qqc1989 AXERA社中の人(DEV)らしき https://x.com/kawagutt AXERA社中の人(JA) https://x.com/hirotakaster LLM Module tester/contributer https://x.com/HanxiaoM M5Stack社中の人(DEV) https://x.com/M5Stack M5StackのBoss! https://x.com/nnn112358 StickVのころからお世話になってます https://x.com/ksasao StickVのころからお世話になってます https://x.com/devemin ModuleLLMでROS動かす人 https://x.com/mongonta555 ModuleLLMにスタックチャンを宿らせる人