Jetson のOSイメージはJetpack 4.5.1 (Ubuntu 18.04 LTS)
Jetson Nano (4GB)にIDEを2種セットアップします。
M5StackはGRAYモデルを使っています。
1:Visual Studio Code でPlatformIO IDE
Officialページを開く
.debのARM64を選んでダウンロード。
ONLY REQUIRED -> 寄付しない場合はJUST DOWNLOAD を実行
インストール
1 2 3 4 5 6 7 8 9 10 11 |
cd ~/Downloads/ sudo apt install ./code_1.56.0-1620166103_arm64.deb //apt でエラーになる場合は以下の方法も試す sudo dpkg -i code_1.56.0-1620166103_arm64.deb OR sudo gdebi code_1.56.0-1620166103_arm64.deb |
visual studio code を検索して起動。
日本語化
Extension で 「japanese」を検索してinstall
右下の表示される「ReStart」をクリックすれば、再起動後に日本語表示になっています。
PlatformIO IDEをインストール
Extension で 「platformio」を検索してインストールを実行。
完了したらリロードします。
再起動後、Homeをクリック
PlatformIO IDE が使用できるようになります。
2:Arduino IDE
Officialページを開く
Arduino 言語なるものを使いますが、実態はどうもC/C++ のようです。
Linux ARM 64 bits を選んでダウンロード。
インストール先を ~/.local/
とします。
1 2 3 4 5 |
tar xvf ~/Downloads/arduino-1.8.13-linuxaarch64.tar.xz mkdir -p ~/.local/ mv arduino-1.8.13 ~/.local/ cd ~/.local/arduino-1.8.13/ bash arduino-linux-setup.sh $USER |
再起動して以下を実行。
1 2 |
cd ~/.local/arduino-1.8.13/ sudo bash install.sh |
デスクトップにショートカットアイコンが作られます。
右クリックで「開く」を選ぶと、こういうワーニングが出ますが、信頼して起動しましょう。
Arduino IDE が起動し、ショートカットアイコンが変更されています。
環境設定
ファイルー>環境設定
追加のボードマネージャーのURLに以下を入力してOKをクリック
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ボードマネージャーを開いて、esp32ボードを追加
esp32と入力して検索してインストール
M5Stackライブラリーをインストール
「ライブラリを管理…」を開きます。
m5stackと入力して検索してインストール
ボード設定
M5Stack-Core-ESP32 を選択
こういうふうになります。
シリアルポート
M5StackをUSBポートに接続します。
ポートは/dev/ttyUSB0です(番号はゼロ)。
Arduino IDE で Hello World
できあいのコードを使ってみます。
スケッチ例でHelloWorldを書き込みます。
で、その前にこのままではシリアル通信ができません。
pyserialをインストールしておきます。
Arduino IDE はまだPython2を使っています。
以下を実行
1 2 |
sudo apt install python-pip -y python -m pip install pyserial |
ファイルー>スケッチ例ー>M5Stack->Basicsー>HelloWorld
M5Stack に「hello World」を書き込みます。
コンパイルに少々時間がかかりますが、完了。
こんな感じ。
また、メニュのHelloWorldの一つ上にあるFactoryTestを書き込むと、スピーカーやDisplayのtestやscanが走って、最後に「buttons Test:」のプロンプトが出るので、ボタンを左からクリックするとABCと表示されます。
MicroSDカードを挿している場合
TF card というのはSDカードのことです。ライセンスや使用料の問題とかでTFという表記を使っているそうです。
M5Stack のIMU(慣性計測ユニット)
今回使用したM5Stack GRAYにはIMU(慣性計測ユニット)が実装されています。
SWITCHSCIENCEさんで4950円也で購入したものですが、こちらでは購入時期でIMUの種類が異なります。
初期型の場合は9軸(MPU9250)
2019年8月14日入荷分以降はMPU6886 + BMM150という組み合わせ….だそうです。
つまり6軸(MPU6886)+ 地磁気センサー(BMM150)
ではどちらが実装されているかは、以下のコードでスケッチを書き込めばわかるそうです。
ファイルー>新規ファイル
以下を記述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <M5Stack.h> #include <Wire.h> #define MPU9250_ADDRESS 0x68 // I2Cアドレス。MPU6886と共通 #define WHO_AM_I_MPU9250 0x75 // MPU6886と共通 void setup() { unsigned char tempdata; M5.begin(); M5.Lcd.setCursor(20, 40); M5.Lcd.setTextSize(2); Wire.begin(); Wire.beginTransmission(MPU9250_ADDRESS); Wire.write(WHO_AM_I_MPU9250); Wire.endTransmission(false); Wire.requestFrom(MPU9250_ADDRESS, 1); tempdata = Wire.read(); if (tempdata == 0x71) { M5.Lcd.print("MPU9250 inside"); } else if (tempdata == 0x19) { M5.Lcd.print("MPU6886 inside"); } else { M5.Lcd.print("unknown device"); } M5.Lcd.printf(" (%02x)", tempdata); } void loop() { } |
スケッチー>マイコンボードに書き込む。
結果
MPU6886 inside
でした。
スケッチ例ではHelloWorldの一つ下にIMUがあります。
実行したら以下のような感じで表示されます。
M5Stackをグルグル動かして値の変化を見てみましょう。所謂「姿勢」計測です。
地磁気センサーのデータを見たい場合
ファイルー>スケッチ例ー>M5Stack->Basicsー>bmm150を使います。
左端のAボタンを押して、振ったりグルグル回してキャリブレーションします。
こんなふうに、立てた状態でグルグル回転すると…
Next
Linux 搭載のM5Stack UnitV2 AI カメラ
指先でつまめる程度のサイズ感がすごいですが、価格的にJetson Nano (2GB)より高いのがちょっと気になる….。
Appendix
M5Burner
工事中
Appendix2
Arduino IDE をWindowsにインストールする場合
手順は同じですが、USB接続する場合、USBドライバー(CP210X でCP2104 Driver)が必要になります。
COMポート番号はデバイスマネージャーを開いて、「Silicon Labs CP210x USB to UART Bridge」のCOM番号で確認できます。
Appendix3
バイナリーファイルの書き込みの場合
Linux(Ubuntu)でM5Stackにバイナリーを書き込む(メモ)
Leave a Reply