SlideShare a Scribd company logo
1 of 28
Download to read offline
レスコンでの制御と
STM32はいいぞ話
自己紹介(個人)
• RCJに2006年より参加
主な戦歴:2014年 東海大会Bopen優勝
2015年 ジャパンオープン尼崎 予選通過(7位)、決勝1回戦負け
2016年 北九州オープン 準優勝
・ロボカップSSL(ibis)にて回路班(通信回路作成&運用)
・ブログ:http://blog.livedoor.jp/tec_kanpaku/
・Twitter:@OkadaTechnology
自己紹介(大学)
• レスキューロボットコンテスト
第16回レスコン:東京予選0点で予選落ち
第17回レスコン:東京予選全体7位通過、本選セカンドミッション落ち
第18回レスコン:愛知予選全体1位通過、本選ファイナルミッション出場
(レスキュー工学大賞、ベストチームワーク賞、計測自動制御学会特別賞、inrevium杯受賞)
・第20回ロボットグランプリ大道芸部門 準優勝
静岡大学ロボットファクトリー
Shizuoka University Robot Factory
レスコンでの制御
•マスタースレーブによるアーム制御
•JY901を用いた姿勢制御
•エンコーダーを用いた回転速度制御
マスタースレーブによるアーム制御
• 5自由度アームを3自由度マスターによる制御
→アームの形状より無限個の解が存在
1.第3節の垂直条件
2.前回との偏差が最小
・マスター側のフィルタ処理
メディアンフィルタ→1次ローパスを
通すことでマスター側アーム角度を
1°精度で求めることが可能に
JY901(カルマンフュージョンコンパス)を
6軸モードにして使用
• メカナム姿勢制御
姿勢が目標角から±5度ずれると
車体を回転させ修正
• クローラー姿勢制御
姿勢が目標角から±5度ずれると
左右の出力(回転速度)を調節す
ることで姿勢を修正。
この時、出力の変化量を非線形処理
を行うことで人間の感覚に近づける
(初めは少しで途中で強く変化)
JY901を用いた姿勢制御
0
50
100
150
200
250
300
350
0 10 20 30 40 50
出力
入力偏差[°]
非線形処理後
処理前
エンコーダーを用いた回転速度制御
エンコーダー回転速度を一定に保つ
→直進性能の向上(モーターの個体差を吸収、瓦礫等の巻き込み補償)
1. モーター動作関数に飛ぶ度にエ
ンコーダーのカウントを読む
2. 回転数の最大値を求める
3. 最大値からのそれぞれの誤差率
を求める
4. 誤差率に1を足し合わせる
5. モーター出力にかけ合わせる
STM32の開発
• STM32Cube
• Atollic TrueSTUDIO for STM32
なぜ、STM32Cube・HALなのか
• GUIでピン設定、クロック設定を行い
HALのひな型を吐いてくれるソフト
→GUIでピンを決められるので
ミスが少ない&ソフト的にど
こに使うかわかったうえで回
路が引ける
• STM32のすべての機能を使え、低レ
イヤまで触ることができる
→高機能ペリフェラルやメモリ
管理がしっかりできる
→mbedではない機能もたくさん使え
る
HALでの高機能ペリフェラル例(DMA)
• DMA(のダイレクト・メモリ・アクセス・コントローラ)
CPUに負荷をかけることなく、ペリフェラルおよびメモリ間 の
効率のよいデータ転送に対応できる
→感覚的にはDMAでペリフェ
ラルを動かすと入力であれば
勝手に配列にデータが入って
いて、出力であれば配列に
データを入れておけば勝手に
転送しておいてくれる感じ
使用例:UART、ADC、I2C
HALでの高機能ペリフェラル例
(ARTアクセラレータ)
TCMバス経由でのフラッシュの読み出しウェイトを事実上0にす
るキャッシュ群みたいなもの
→実際flashの速度って80MHz程度が限界なので高速動作でき
ない。
→flashから大量に先読み
してバッファする
なぜAtollicなのか
• Atollic TrueStudioがSTに買収されたおかげで
公式開発環境に
→今までpro版にしかなかった
機能もタダで使えるように(右)
• もともと有償ソフトなのでバグがない
→SW4STM32はST社員の有志が
作ったのでバグが結構ある
• デフォルトで使えるデバッガの種類が多い
→ST-LinkだけではなくJ-Linkも特に追加
しなくても使える
→ST-Link V2とST-Link V2-1を意識しなくて
もそのまま使える
Advanced build analysis tools
・Build analyzer
・Static stack analyzer
Advanced debugging capabilities
・CPU fault analyzer
・Global expressions live watch
・Real-time data access tracing (SWV)
・Printf()-style software tracing (ITM)
・Statistical profiling (SWV)
・Exception and Interrupt tracing (SWV)
・Instruction tracing (ETM/ETB + MTB)
・RTOS Kernel-aware debugging
・Multi-core/board debugging
STM32開発のはじめ方
①https://www.st.com/ja/development-tools/stm32cubemx.html
からSTM32CubeMXを落としてインストール
②https://atollic.com/resources/download/
からAtollic TrueSTUDIO for STM32を落としてインストール
以上!!!!!!!!!
(まじで落としてインストールするだけで使える)
Cubeの使い方1(チップ・ボードの選択)
Cubeの使い方2(ピン設定(GPIO等))
Cubeの使い方2(ピン設定(クロック))
HSEの設定をする
・Disable→内部クロック
・BYPASS Clock Source→
マスタークロックアウトのク
ロックを受け取る(Nucleoの
STLink部分を切り離しておらず、
X3に水晶発振子が乗っていなけ
ればこの設定にする。)
・Crystal→外部水晶発振子などの
外部クロックを受け取る
Cubeの使い方3(ピン設定(デバッグ線))
SYS設定
・Selial Wireに設定する。
・JTAG設定には、ほと
んどしない。
Cubeの使い方4(ピン設定(その他ペリフェラル))
I2C
Timer(PWM等)
ADC
Cubeの使い方5(クロック詳細設定)
外部クロック使用時 内部クロック使用時
・PLL Source MuxでHIS(内部クロック)HSE(外部クロック)を設定する
・System Clock MuxでPLLCKにし、HCLKに使う周波数を入力しエンターキーを押す。
大抵の場合最大クロックを出しておくことが望ましい。
Cubeの使い方6(詳細設定)
Cubeの使い方7(プロジェクト設定)
Project Name →チップ名+プロジェクト名にしておくと管理が楽
Project Location→適当なフォルダを作りそこに入れる
Toolchain/IDE→TrueSTUDIOに設定
↑このようにするとペリフェラル
ごとに違う.cと.hが発行される。
Cubeの使い方8(ジェネレート)
ここでコードの出力を行う ここをクリックすると設定した内容を示したPDFが出力される
Atollicの使い方1(インポート)
ファイル
↓
インポート
↓
Atollicの使い方1(デバッグ、ビルド)
ビルド
リビルド(初めからすべてビルド)
デバッグ
デバッグ設定(ビルドを一回してからまずここで設定
Atollicの使い方2(デバッグ設定)
↑ちなみにJlinkだとこう
↑ST-Link使用時
Atollicの使い方3(デバッグ)
ブレイクポイントまでプログラムを流す
頭からデバッグ再開
デバッグ終了
もう一度ビルドしてデバッグ再開
Expression(変数の内容が見れる)
レジスタの内容が見れる
緑になっているところの前まで実行した
ステップオーバー(1行進める)
ちょっと便利な機能
• カーソルを関数のところに
載せると中身がみれる
• カーソルを変数のところに
合わせると定義が見れる
• F3を押すと定義や関数の
中身に飛べる
Have a good
embedded
system
いのりん画像

More Related Content

Similar to レスコンでの制御とSTM32はいいぞ話

Jasst16 tokyo 参加報告
Jasst16 tokyo 参加報告Jasst16 tokyo 参加報告
Jasst16 tokyo 参加報告Takayuki Ujita
 
2015 summercamp 07
2015 summercamp 072015 summercamp 07
2015 summercamp 07openrtm
 
ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介openrtm
 
NHKロボコンにおける機械開発
NHKロボコンにおける機械開発NHKロボコンにおける機械開発
NHKロボコンにおける機械開発MasayaMorinaga
 
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~Shin-ya Koga
 
ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月Kenichi Yoshida
 

Similar to レスコンでの制御とSTM32はいいぞ話 (6)

Jasst16 tokyo 参加報告
Jasst16 tokyo 参加報告Jasst16 tokyo 参加報告
Jasst16 tokyo 参加報告
 
2015 summercamp 07
2015 summercamp 072015 summercamp 07
2015 summercamp 07
 
ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介ロボカップにおけるRtmの事例紹介
ロボカップにおけるRtmの事例紹介
 
NHKロボコンにおける機械開発
NHKロボコンにおける機械開発NHKロボコンにおける機械開発
NHKロボコンにおける機械開発
 
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
 
ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月ロボットサミットとは?in名古屋on2012年5月
ロボットサミットとは?in名古屋on2012年5月
 

レスコンでの制御とSTM32はいいぞ話