SlideShare a Scribd company logo
1 of 52
M5StickVと戯れて,
詰まった話.
shts
自己紹介
• shts(椿 翔太)
• 修士1年
• 0x17歳
• 就活中
• 研究
• CNNアクセラレータ開発
• FPGA, HLS, HPC, X(A)社
自己紹介
発表について
nncaseのreadmeに,なぜか弊ブ
ログのURLが張られてたので,
今回はnncaseの話+αで行きます.
https://github.com/kendryte/nncase/blob/master/README.md
発表について
初心者がいろいろやってみた感
じになっています.
生暖かい目でご覧ください.
あと,知見が欲しい.
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
M5StickVについて
M5Stackから発売されている,便
利デバイス.
MCUとしてKendryte K210が搭載.
プロトタイピングとかに最適.
M5StickVについて
• Left
マイクの有無や,IMUの種類など
でいくつかのバージョンが存在
する.
今回は2020/03月以降生産(出荷?)
分で,話を進める.
※SN:K2720MMxxxxxxx, MM >= 03のもの
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
IMUとお話する
内部回路の変更に伴い,SPIと
I2Cの両方が使えるようになった.
…と同時に,ピンの設定も増え
た.
https://docs.m5stack.com/#/en/core/m5stickv
IMUとお話する
1) G25をH(I2C) or L(SPI)に設定.
2) G24をH(0x69) or L(0x68)に設
定.
https://docs.m5stack.com/#/en/core/m5stickv
IMUとお話する
G24の設定はやらなくても動くこ
とがあるので,非常に厄介
この設定の話は,公式でも触れ
られていない.
(MPU6886のデータシートでも明
記されていないかも)
https://docs.m5stack.com/#/en/core/m5stickv
https://m5stack.oss-cn-
shenzhen.aliyuncs.com/resource/docs/datasheet/core/MPU-6886-
000193%2Bv1.1_GHIC_en.pdf
IMUとお話する
I2Cは出来たけど,なぜかSPIだと読めない.
I2Cは出来たけど,SPIの戻り値がおかしい.
求ム,有識者.
IMUとお話する
IMUを触ってみた記事.
https://www.shtsno24.tokyo/2020/11/m5stickvimu.html
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
KPUを使う
KPUはAIアクセラレータで,普
通のCPUコアよりCNNなどを速
く演算できる.
https://hrkz.tokyo/kendryte-k210-datasheet-jp/
KPUを使う
MaixPyでは,Tensorflowなどで
生成したモデルを,バイナリ
ファイル(Kmodel)に変換し実装
する.
この変換するツールがnncase
KPUを使う
M5StickVを買った時に
入っているサンプル
コードもこのやり方で
実装されている.
KPUを使う
M5StickVを買った時に
入っているサンプル
コードもこのやり方で
実装されている.
Kmodelの生成をやってみた.
KPUを使う
Interface10月号の中で,BodyPix
を動かそうとして,実機動作し
なかった話が出ていた.
KPUを使う
一応動作させるところまでは出
来たのでご報告.
https://www.shtsno24.tokyo/2020/10/interface10nncase.html
KPUを使う
https://www.youtube.com/watch?v=YQOUNYuV2b4
KPUを使う
KPUの使い方
• AIのモデル(tf.keras)
を作る
• tfliteに変換
• Kmodelに変換
• 実機実装
https://hrkz.tokyo/kendryte-k210-datasheet-jp/
KPUを使う
KmodelのV4を動かす
場合,M5StickVの
ファームウェアをV4対
応のものに更新する必
要がある.
https://www.shtsno24.tokyo/2020/10/interface1
0nncase.html
KPUを使う
• ひだり
Interface記事中で,動
かなかった原因は公式
が配布するKmodel V4
未対応ファームを使用
したため?
KPUを使う
• ひだり
なので,ファームをV4
対応にした.
MaixHubのサービスで,
カスタムファームも作
成できそうだが自前で
ビルドした.
https://www.shtsno24.tokyo/2020/10/interface1
0nncase.html
KPUを使う
https://www.youtube.com/watch?v=YQOUNYuV2b4
KPUを使う
• 領域指定の精度が怪し
いので,いろいろ間
違っているかも.
• モデルの出力がいくつ
かあったが,どれを使
えばいいかわからない.
• 少し動かすと,エラー
も吐かずに落ちる
https://www.shtsno24.tokyo/2020/10/interface10nn
case.html
求ム,有識者.
KPUを使う
KPUでBodyPixを動か
す話.
https://www.shtsno24.tokyo/2020/10/interface1
0nncase.html
KPUを使う
M5StickV用の独自
ファームウェアは以下
で配布中.
https://github.com/shtsno24/firmware
KPUを使う(今後)
• BodyPixを使い物にす
る
• DonkeyCarのモデル
変換(半分成功)
https://www.shtsno24.tokyo/2020/10/interface1
0nncase.html
END
補足
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
• M5StickVのファームウェア
IMUとお話する
M5StickVにはIMUが入っている
が,使っているセンサがいくつ
かある.
・MPU6886
・SH200Q
IMU:加速度とか角速度を計測するセンサ
https://www.switch-science.com/catalog/5700/
IMUとお話する
見分け方:アドレスをスキャン
・MPU6886 -> 0x68 or 0x69
・SH200Q ->0x6C(らしい)
今回は,MPU6886の話.
SH200Qの個体は持っていないので未確認.
https://tech.144lab.com/entry/2019/07/24/M5StickV_IMU
IMUとお話する
あるロットから,電源ICとI2Cの
バスが分けられた回路に変更.
(SDA, SCL)=(G27,G26)になるの
で
注意する.
https://docs.m5stack.com/#/en/core/m5stickv
IMUとお話する
G24はMPU6886のAD0(アドレス
決定用のピン)に接続されている
ので,H or Lに固定して,アドレ
スを決定する必要がある.
https://m5stack.oss-cn-
shenzhen.aliyuncs.com/resource/docs/datasheet/core/MPU-6886-
000193%2Bv1.1_GHIC_en.pdf
IMUとお話する
MPU6886に限らず,MPU/ICM系
のIMUは,SPIでの送信データの
MSBに1を立てておく必要がある.
https://m5stack.oss-cn-
shenzhen.aliyuncs.com/resource/docs/datasheet/core/MPU-6886-
000193%2Bv1.1_GHIC_en.pdf
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
• M5StickVのファームウェア
KPUを使う
Kmodelで対応するtflite
のレイヤには制限があ
るので注意.
また,tfliteへの変換時
には量子化は行わない
ようにする.
https://github.com/kendryte/nncase/blob/maste
r/docs/tflite_ops.md
KPUを使う
• ひだり
ファームの設定の中で,
Kmodelv4を使うための
設定があるので,そこ
をいじっておく.
https://www.shtsno24.tokyo/2020/10/interface1
0nncase.html
KPUを使う
ソースコードの配布は,
ライセンス周りの関係
もあるので,今のとこ
ろはなし.
https://www.shtsno24.tokyo/2020/10/interface1
0nncase.html
KPUを使う
DonkeyCarのモデル
(KerasLinear)の動作の
様子.
1fps程度なので,モデ
ル自体の改良が必要.
Agenda
• M5StickVについて
• IMUとお話する
• KPUを使う
• M5StickVのファームウェア
M5StickVのファームウェア
ボード設定.
CMOSセンサの周波数
を12MHz -> 27MHzに
変更.
M5StickVのファームウェア
MaixPyのライブラリ設
定.
Kmodel V4を使用する
場合は,ここのオプ
ションを入れておく.

More Related Content

Similar to M5StickVで詰まった話

2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open sourceYoshiyuki Nakamura
 
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノックシェル・ワンライナー160本ノック
シェル・ワンライナー160本ノックRyuichi Ueda
 
一年ツイッター
一年ツイッター一年ツイッター
一年ツイッターXMLProJ2014
 
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjpめもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjpMasahiro NAKAYAMA
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話Kouhei Maeda
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版Katsuhiro Morishita
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
ソフトウェア開発が好きだ
ソフトウェア開発が好きだソフトウェア開発が好きだ
ソフトウェア開発が好きだKoichi Ota
 
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~kataware
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBMToshiki Tsuboi
 
The way to the timeless way of programming
The way to the timeless way of programmingThe way to the timeless way of programming
The way to the timeless way of programmingShintaro Kakutani
 
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたいリアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたいx1 ichi
 
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationAizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationTomoaki Tamura
 
Debian tokyo-20150224-01
Debian tokyo-20150224-01Debian tokyo-20150224-01
Debian tokyo-20150224-01Yuji IMAI
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
 
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較Ryota Suzuki
 

Similar to M5StickVで詰まった話 (20)

2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
 
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノックシェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
 
C#への招待
C#への招待C#への招待
C#への招待
 
一年ツイッター
一年ツイッター一年ツイッター
一年ツイッター
 
Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11
 
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjpめもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
めもおきば新刊のお知らせ サーバーレスでHelloWorldする25の方法 #ssmjp
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
ソフトウェア開発が好きだ
ソフトウェア開発が好きだソフトウェア開発が好きだ
ソフトウェア開発が好きだ
 
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~
 
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
 
The way to the timeless way of programming
The way to the timeless way of programmingThe way to the timeless way of programming
The way to the timeless way of programming
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたいリアルタイムにデータ分析してWebサービスの面白さを伝えたい
リアルタイムにデータ分析してWebサービスの面白さを伝えたい
 
Aizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous IntegrationAizu.LT16 社会人1年目の失敗とContinuous Integration
Aizu.LT16 社会人1年目の失敗とContinuous Integration
 
Debian tokyo-20150224-01
Debian tokyo-20150224-01Debian tokyo-20150224-01
Debian tokyo-20150224-01
 
JAWSUG 20180413
JAWSUG 20180413JAWSUG 20180413
JAWSUG 20180413
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
 

M5StickVで詰まった話