ロボットとか
ロボットとかのブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
CMTでの割り込みがうまくいかなかったのだけど、こちらのサイトを参考に修正したところ解決。
20msで割り込みを行っているのだけど、周期が明らかに20msじゃないんだよね。
まあ、デバッグ用に時間のかかるシリアル通信を割り込み中で行っているのだから当然なのだけど。
そういえば割り込み優先度の高い処理ほど短い時間で処理するべきって以前教わったのを思い出した。
エンコーダの値が取れない問題もあったけど、初期化をちゃんと行ったところ解決。
おそらくだけど、起動直後のころは値が不定で、変な値が入っていたのだろうね。
エンコーダといえば先日のモータの異常振動は、1周期中にエンコーダの値を2回読み込んでいたのが原因かもしれない。
エンコーダの値を読む関数は呼び出すたびに前回呼び出したときの差分を返すから、1周期に1回呼び出さないと想定値とは異なる値が返ってきてしまう。
そうそう、SH7125は最大115200bpsで書き込みを行える。
今まで19200bpsでやっていたから、速くなって作業がはかどる。
[活動103]
20msで割り込みを行っているのだけど、周期が明らかに20msじゃないんだよね。
まあ、デバッグ用に時間のかかるシリアル通信を割り込み中で行っているのだから当然なのだけど。
そういえば割り込み優先度の高い処理ほど短い時間で処理するべきって以前教わったのを思い出した。
エンコーダの値が取れない問題もあったけど、初期化をちゃんと行ったところ解決。
おそらくだけど、起動直後のころは値が不定で、変な値が入っていたのだろうね。
エンコーダといえば先日のモータの異常振動は、1周期中にエンコーダの値を2回読み込んでいたのが原因かもしれない。
エンコーダの値を読む関数は呼び出すたびに前回呼び出したときの差分を返すから、1周期に1回呼び出さないと想定値とは異なる値が返ってきてしまう。
そうそう、SH7125は最大115200bpsで書き込みを行える。
今まで19200bpsでやっていたから、速くなって作業がはかどる。
[活動103]
PR
昨日の通信中にフリーズですが、SCI1.SCSCRの許可を一時的に無効化することで解決しました。
しかし、VC++で作成したプログラムからの指示ではまだ動かず。
これは結論から言えば通信速度の不一致でした。
VC++で作成したプログラムは57600bpsで送信、しかしマイコンは9600bpsだったので、通信速度の不一致から通信ができていませんでした。
タームでテスト行っていたのですが、こちらは9600bps。
通信速度の違いを見落とすとは何とも…。
こういうことはチェックシート化とかするといいのでしょうか?
ちなみに今週から情報共有強化のためチーム内ミーティングを週一で行うこととしました。
理由としては私のチームは情報共有のまずさからスケジュール管理や開発がうまくいっていなかったためです。
これで少しでも円滑に進むようになれば。
あとプレゼンの練習も兼ねてます。
プレゼンで伝えきれず損することが多かったので。
[活動103][]
しかし、VC++で作成したプログラムからの指示ではまだ動かず。
これは結論から言えば通信速度の不一致でした。
VC++で作成したプログラムは57600bpsで送信、しかしマイコンは9600bpsだったので、通信速度の不一致から通信ができていませんでした。
タームでテスト行っていたのですが、こちらは9600bps。
通信速度の違いを見落とすとは何とも…。
こういうことはチェックシート化とかするといいのでしょうか?
ちなみに今週から情報共有強化のためチーム内ミーティングを週一で行うこととしました。
理由としては私のチームは情報共有のまずさからスケジュール管理や開発がうまくいっていなかったためです。
これで少しでも円滑に進むようになれば。
あとプレゼンの練習も兼ねてます。
プレゼンで伝えきれず損することが多かったので。
[活動103][]
今いじっている対向二輪型のロボットなのだが,前からロータリエンコーダの返り値がおかしかった.
具体的には,まず左右とも同じロータリエンコーダのはずなのに同じ量回転させても返ってくる値が違う.
再起動するたびとまではいかないが,時々p/rが変わる.
プログラムを疑ってみても回路を疑ってみてもぱっと見おかしい点はない.
オシロでロータリエンコーダの波形を見る限り,ロータリエンコーダにも異常はないようだ.
おかしいおかしいと思いつつも検証機材が手元にないため放置状態になっていた.
やっと検証機材が手に入ったので検証を始めてみる.
検証機材は,今いじっているロボットとほぼ同じもの.
共にマイコンはSH7045,マイコンボードは秋月で売られているもの,モータはMaxon A-max22,ロータリエンコーダは付属のEnc22.
違いは,IOボードのみ.
検証機材でロータリエンコーダのカウントを見てみると返り値は計算通り.
どちらのロータリエンコーダでも返り値は計算通りだったので,ロータリエンコーダの異常はないと判断.
残るはプログラムとIOボードだが,プログラムはどちらもほぼ同じものを走らせている.
IOボードの関係で,一部のPIOが違うが,ロータリエンコーダ部分に関しては同一.
となれば,最もあやしいのはIOボードとなる.
実際このIOボードは寝ぼけながら作ったという話なので,可能性としては十分.
今日は時間がないので,要検証ということでまた明日.
[活動102]
具体的には,まず左右とも同じロータリエンコーダのはずなのに同じ量回転させても返ってくる値が違う.
再起動するたびとまではいかないが,時々p/rが変わる.
プログラムを疑ってみても回路を疑ってみてもぱっと見おかしい点はない.
オシロでロータリエンコーダの波形を見る限り,ロータリエンコーダにも異常はないようだ.
おかしいおかしいと思いつつも検証機材が手元にないため放置状態になっていた.
やっと検証機材が手に入ったので検証を始めてみる.
検証機材は,今いじっているロボットとほぼ同じもの.
共にマイコンはSH7045,マイコンボードは秋月で売られているもの,モータはMaxon A-max22,ロータリエンコーダは付属のEnc22.
違いは,IOボードのみ.
検証機材でロータリエンコーダのカウントを見てみると返り値は計算通り.
どちらのロータリエンコーダでも返り値は計算通りだったので,ロータリエンコーダの異常はないと判断.
残るはプログラムとIOボードだが,プログラムはどちらもほぼ同じものを走らせている.
IOボードの関係で,一部のPIOが違うが,ロータリエンコーダ部分に関しては同一.
となれば,最もあやしいのはIOボードとなる.
実際このIOボードは寝ぼけながら作ったという話なので,可能性としては十分.
今日は時間がないので,要検証ということでまた明日.
[活動102]
SH7045でモータの制御をしたことはあるが、PWMモード2での制御は初めて。
TekuRobo工作室を参考になんとか動作させることに成功。
だけれど、たまたまうまく噛み合っただけで偶然だった模様。
「C言語によるSH-2マイコンプログラミング入門(技術評論社:横山直隆)」を参考に動作させることに成功。
モード2がそのものズバリで載っていた。
モード1の時はTGRAをPWMにTGRBをサイクルに割り当てているのだけど、モード2の時はどちらもPWMになる。
だから、他のMTUと同期させてサイクルを作り出す。
今回はこのサイクルが問題だったらしい。
やはり文献は読むものだ。
[活動102][SH2]
TekuRobo工作室を参考になんとか動作させることに成功。
だけれど、たまたまうまく噛み合っただけで偶然だった模様。
「C言語によるSH-2マイコンプログラミング入門(技術評論社:横山直隆)」を参考に動作させることに成功。
モード2がそのものズバリで載っていた。
モード1の時はTGRAをPWMにTGRBをサイクルに割り当てているのだけど、モード2の時はどちらもPWMになる。
だから、他のMTUと同期させてサイクルを作り出す。
今回はこのサイクルが問題だったらしい。
やはり文献は読むものだ。
[活動102][SH2]
プロフィール
名前:H238/ながつき |
このブログについて: |
ロボットについての勉強などを中心に勝手に書いていきます.あくまで本人のメモなので期待しないように. ちなみにブログデザインは趣味. |
ブログ内検索
[活動101] [活動102] [活動103]
[SH2] [マイコン]
[電子回路]
[プログラム] [VS] [OpenCV]
[知能ロボ]
[プレゼン] [CAD]
カレンダー
カテゴリー
最新記事
最新CM
[11/13 SLT-A65]
[12/01 siawase]
[05/01 H238]
[05/01 H238]
[05/01 ねこう]
アーカイブ