忍者ブログ

ロボットとか

ロボットとかのブログ

entry_top_w.png
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

entry_bottom_w.png
entry_top_w.png
CMTでの割り込みがうまくいかなかったのだけど、こちらのサイトを参考に修正したところ解決。

20msで割り込みを行っているのだけど、周期が明らかに20msじゃないんだよね。
まあ、デバッグ用に時間のかかるシリアル通信を割り込み中で行っているのだから当然なのだけど。
そういえば割り込み優先度の高い処理ほど短い時間で処理するべきって以前教わったのを思い出した。

エンコーダの値が取れない問題もあったけど、初期化をちゃんと行ったところ解決。
おそらくだけど、起動直後のころは値が不定で、変な値が入っていたのだろうね。

エンコーダといえば先日のモータの異常振動は、1周期中にエンコーダの値を2回読み込んでいたのが原因かもしれない。
エンコーダの値を読む関数は呼び出すたびに前回呼び出したときの差分を返すから、1周期に1回呼び出さないと想定値とは異なる値が返ってきてしまう。

そうそう、SH7125は最大115200bpsで書き込みを行える。
今まで19200bpsでやっていたから、速くなって作業がはかどる。


[活動103]

拍手[0回]

PR
entry_bottom_w.png
entry_top_w.png
昨日の通信中にフリーズですが、SCI1.SCSCRの許可を一時的に無効化することで解決しました。
しかし、VC++で作成したプログラムからの指示ではまだ動かず。
これは結論から言えば通信速度の不一致でした。
VC++で作成したプログラムは57600bpsで送信、しかしマイコンは9600bpsだったので、通信速度の不一致から通信ができていませんでした。
タームでテスト行っていたのですが、こちらは9600bps。
通信速度の違いを見落とすとは何とも…。
こういうことはチェックシート化とかするといいのでしょうか?

ちなみに今週から情報共有強化のためチーム内ミーティングを週一で行うこととしました。
理由としては私のチームは情報共有のまずさからスケジュール管理や開発がうまくいっていなかったためです。
これで少しでも円滑に進むようになれば。
あとプレゼンの練習も兼ねてます。
プレゼンで伝えきれず損することが多かったので。


[活動103][]

拍手[0回]

entry_bottom_w.png
entry_top_w.png
エンコーダの問題は解決。
エンコーダの返ってきたパルス数をmに変換して表示していたのだが、変換する際に桁がずれていた模様。
mに変換する値をdefineで定義していたのだが、double型の変数で定義したところ解決。
やはりdefineのように型を持たない値は扱いにくいのかもしれない。

速度制御のようなこともできるようになったが、その場旋回を始めるようになってしまった。
オドメトリはちゃんとできているから、制御できるか?


[活動103][プログラム]

拍手[0回]

entry_bottom_w.png
entry_top_w.png
今いじっている対向二輪型のロボットなのだが,前からロータリエンコーダの返り値がおかしかった.
具体的には,まず左右とも同じロータリエンコーダのはずなのに同じ量回転させても返ってくる値が違う.
再起動するたびとまではいかないが,時々p/rが変わる.
プログラムを疑ってみても回路を疑ってみてもぱっと見おかしい点はない.
オシロでロータリエンコーダの波形を見る限り,ロータリエンコーダにも異常はないようだ.
おかしいおかしいと思いつつも検証機材が手元にないため放置状態になっていた.

やっと検証機材が手に入ったので検証を始めてみる.
検証機材は,今いじっているロボットとほぼ同じもの.
共にマイコンはSH7045,マイコンボードは秋月で売られているもの,モータはMaxon A-max22,ロータリエンコーダは付属のEnc22
違いは,IOボードのみ.

検証機材でロータリエンコーダのカウントを見てみると返り値は計算通り.
どちらのロータリエンコーダでも返り値は計算通りだったので,ロータリエンコーダの異常はないと判断.
残るはプログラムとIOボードだが,プログラムはどちらもほぼ同じものを走らせている.
IOボードの関係で,一部のPIOが違うが,ロータリエンコーダ部分に関しては同一.
となれば,最もあやしいのはIOボードとなる.
実際このIOボードは寝ぼけながら作ったという話なので,可能性としては十分.

今日は時間がないので,要検証ということでまた明日.


[活動102]

拍手[0回]

entry_bottom_w.png
entry_top_w.png
SH7045でモータの制御をしたことはあるが、PWMモード2での制御は初めて。

TekuRobo工作室を参考になんとか動作させることに成功。
だけれど、たまたまうまく噛み合っただけで偶然だった模様。

「C言語によるSH-2マイコンプログラミング入門(技術評論社:横山直隆)」を参考に動作させることに成功。
モード2がそのものズバリで載っていた。

モード1の時はTGRAをPWMにTGRBをサイクルに割り当てているのだけど、モード2の時はどちらもPWMになる。
だから、他のMTUと同期させてサイクルを作り出す。
今回はこのサイクルが問題だったらしい。

やはり文献は読むものだ。


[活動102][SH2]

拍手[0回]

entry_bottom_w.png
plugin_top_w.png
プロフィール
名前:H238/ながつき
このブログについて:
ロボットについての勉強などを中心に勝手に書いていきます.あくまで本人のメモなので期待しないように.
ちなみにブログデザインは趣味.
plugin_bottom_w.png
plugin_top_w.png
ブログ内検索
タグ一覧(追加中)
[活動101] [活動102] [活動103]
[SH2] [マイコン]
[電子回路]
[プログラム] [VS] [OpenCV]
[知能ロボ]
[プレゼン] [CAD]
plugin_bottom_w.png
plugin_top_w.png
カレンダー
04 2024/05 06
S M T W T F S
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
plugin_bottom_w.png
plugin_top_w.png
最新CM
[11/13 SLT-A65]
[12/01 siawase]
[05/01 H238]
[05/01 H238]
[05/01 ねこう]
plugin_bottom_w.png
plugin_top_w.png
バーコード
plugin_bottom_w.png
Copyright ロボットとか by ひなたまる All Rights Reserved.
Template by テンプレート@忍者ブログ
忍者ブログ [PR]