LancerStratos’s blog

第23回ロボットグランプリに向けたロボットランサー”ランサーストラトス”開発記録

シリアルサーボの使い方2(接続編)

近藤科学のWebにKRS-2542の使い方が詳細に説明されており、これを参考にした。最初の壁はマイコンとの接続方法だった。

Webには、マイコンのUART端子との接続方法が細かく記載されており、ICS通信のプログラムの書き方もあったので、その通りにしてみるのだが、なぜか動かない。Arduinoを開発事例としているため、自分のマイコンSTM32F405用に修正する方法が間違っているのか、近藤科学が勧めるICS変換基板を使わないといけないのかなど色々悩んだ。

ある日、通勤電車の中でSTM32のマニュアルを読んでいると、UARTに単線半二重通信なる設定があり、近藤科学のICS方式と類似していることを発見した。むしろ、近藤科学のICS方式はシリアル通信の一般的な作法の一つである単線半二重通信方式に沿うように設計されたのだろう。

単線半二重方式に設定すると、STM32側のUART端子は送受を兼ねた1端子のみが設定されるので、3.3vにプルアップしてKRS-2542の信号端子と接続するという非常にシンプルな回路となる。さっそく試してみたところ、位置コマンド送出とサーボの追従を確認できた。ウィンウィンと音を立てて動く様を見て小躍りする位うれしかった。

が、KRS-2542から返ってくるはずの現在値が取り出せない。この現在値を記録することで走行後の分析などに使用することを想定していたので、また暫く悩むことになった。

UARTの単線半二重通信設定