inはじめに近藤科学社製のロボット用サーボモーターは、ロボットコントローラーやPCから簡単に操作できるようなシステムになっています。今回より5回にわたって、近藤科学社製シリアルサーボモーターを制御する方法を紹介します。自作マイコンでサーボモーターを制御するために必要な電気回路について説明します。ICS編ロボット用シリアルサーボモーターのICSコマンドについて詳しく説明します。ソフト編ICSコマンドを自作マイコンで使うためのテクニックについて説明します。Basicを使って、PCからICSコマンドを送信するための準備をします。Basicでスライドバーでシリアルサーボモーターを動かすプログラムを行います。近藤科学社製KCB-1マイコンボードのシリアルサーボモーターを駆動する部分のみを書き出したものです。回路図のSIOコネクタの番号は、1番が信号線、2番が電源線、3番がグランド線となっています。弊社製ロボット用シリアルサーボモーターは、電源電圧は10.8Vで、半二重シリアル通信により動作します。シリアル通信(信号)線はCMOSレベル(約3.3V以上でHIGHと認識される)の負論理となっています。半二重通信を実現するために、マイコン側はシリアル通信用端子TXD(送信用端子)、RXD(受信用端子)を1本にまとめてSIOコネクタの信号線(1番)につないでいます。負論理回路にするため、信号線の信号電圧が5Vになるように、2.2kΩでプルアップ(R1)しています。RXDは入力用の端子ですので、ノイズや静電気が入るとCPUが壊れてしまう可能性があるため、直列に抵抗(R2)が入っています。KCB-1では降伏電圧5.6Vのツェナーダイオードがつながっています。回路図のようにダイオードの向きは信号線側にありますので、通常は信号線からグランド側に電気は流れませんが、5.6V以上の電圧がきたらグランド側へ流して、CPUに高い電圧がかからないようになっています。2番端子には電源電圧(10.8V)、3番端子にはグランドをつなぎます。これで弊社製サーボモーターを動かす電気回路の準備は完了です。ICSデバイスをマイコンのUARTに接続しやすくするために変換基板をご用意しました。こちらを使用することで回路を設計する手間を省くことができます。データを送る線と受け取る線が1本にまとまめて、送信または受信を交互に行う通信方式です。トランシーバーやタクシー無線などがこれにあたります。電話などのように送信と受信を同時に行うことができる方式を全二重通信といいます。半二重通信は全二重通信に対して送信線、受信線が1本ですむこと、サーボモーターに固有のIDを付けておくと、信号線を共用できるメリットがあります。信号がHIGHになると「1」と認識するのが正論理回路です。逆が負論理回路となります。近藤科学のシリアルサーボモーターと通信する場合は負論理回路を作ります。プルアップ・プルダウンマイコンの端子は何も設定していないと電圧は不定(浮いているという)となります。一般的にマイコンの端子はインピーダンスが高いため、微弱な電流でも高い電圧となることがあります(V=IR)。そこで電源線に抵抗を介して接続することで、マイコンの端子電圧を信号電圧(通常5V)に合わせることをプルアップ(電圧を引っ張り上げるという意味)といいます。逆に0Vにするためには抵抗を介してグランドと接続します。これをプルダウンといいます。