FC2ブログ

サーボの発振を解決

サーボパルス信号をモータ用PWMで生成することで通信割り込みのジッタを回避できた.
16bitのPWMを使えば,約0.05degの位置決め分解能を確保できるため,RCサーボとしては十分だ.

PIC32MZにもPWM出力が付いているので直接RCサーボを駆動することもできるが,
現状は圧電ブザーの出力にのみ使っている.

スポンサーサイト

いろいろな問題と格闘中


今週末はスレーブ基板RX220の駆動を続ける.机の上がかなりごっちゃりしてきた.
RCサーボ(首ふり)+センサ2,3種類の組み合わせだが,安定して動かない.

最初は電源レギュレータが落ちる問題に悩まされる.
12Vから5Vと3.3Vを生成するのだが,リニアでは発熱が多すぎて厳しい.ということでBP5293-33BP5293-50を使用してしばらく問題なく動いていた.
ところが子基板の消費電流が大きくなると,5V側のBP5293-50が頻繁に落ちる.
定常電流は500mA以下なので余裕はあるはずだが,どうも突入電流に対して保護回路が働いているようだ.
そこで5VレギュレータをV7805-1000に変えたら安定して動くようになった.
V7805-1000にもサーマルシャットダウンと短絡防止回路は入っているみたいだが,こちらは負荷の変動に強いみたいだ.
価格が高いのがネックだが,まぁ仕方がない.



次なる難題はRCサーボパルスへの通信割り込みの影響だ.
RCサーボパルスはタイマ割り込みでエッジ切り替えしているが,RS485の通信割り込みのほうが優先度が高くパルスが引き伸ばされてしまう.
前回まではSPIだったので通信時間そのものが短かったためあまり影響はなかったが,RS485にしてからサーボが目に見えて振動するようになってしまった.
これはプログラムで何とかしないといけない.アイデアとしてはサーボパルスをモータPWMで生成するか,通信割り込みをDMAでバックグラウンド処理に変更するかだが,いずれも大工事になりそう.


RS485スレーブ制御

今週末はPIC32MZをマスタ,RX220をスレーブにしたRS485の接続を試す.
通信タイミングは2Mbps,送信4byte,受信16bytex3chで合計約300usec.
マスタはポーリングでタイムアウト付き受信,スレーブは割り込みで動作させる.
いったんデータの受け渡しはできるところまでできた.

前回まではSH4AマスタのSPIのタコ足配線だったので,ノイズに弱かった.
これで改善するはずだ.

uOLEDの駆動など

今週末は4D-systemsのuOLED-128-G2で遊ぶ.このメーカのディスプレイはUARTからコマンドで簡単に制御できる.
文字や図形の表示のほか,BMPやAVIの再生も可能.(ただし,別途uSDカードが必要.)



このモジュールは納入状態でSPEモード(スレーブモード)で起動する.
4D-SYSTEMS社のサイトからダウンロードするWorkShop4IDEを使えば,ファームを書き換えてホストマイコンなしで直接ディスプレイを制御することもできる.

128x128ピクセルはやや小さいが,文字ならば18文字x16行とロボットをスタンドアロン動作させるには十分な情報量を提示できる.
せっかくホストが高速・大容量の32bitマイコンなのに,表示系がいつものモノクロ2行液晶ではつりあわない.
このOLEDモジュールは値段が高いが,発色が美しく制御が簡単なのがよい.
プロフィール

もやね

Author:もやね
長野県在住の会社員(メカニカル・エンジニア).
ロボットは完全な趣味としてやってます.
E-mail:
mo_ya_ne[a]yahoo.co.jp
[a]⇒@

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブログ内検索
RSSフィード
リンク