Archives
シリアルサーボ制御方法(3) ソフト編
はじめに ソフト編では、ICSコマンドをマイコンからサーボモーターに送るためのC言語のプログラムについて説明します。 ここでは説明を簡単にするため、シリアル通信に関しては1バイトのデータを受信する関数(char getchar())と1バイトを送信する関数(void putchar ())ができあがっていることにします。この2つの関数を元にして、シリアルサーボモーターのコマンドの仕組みと通信プログラムの作り方について説明します。 またポジション設定コマンドだけ扱いますので、他のコマンドについてはこれを参考にして作成してみてください。 プログラムは弊社製マイコンボード、KCB-1に付属しているSDK準拠で作成します。KCB-1ではICSコマンドはほとんど関数化されていますので、簡単にシリアルサーボモーターの制御ができます。KCB-1の詳しい情報についてはこちらをご覧ください。 ポジションコマンドの作成 ここではポジション設定コマンドを実行する関数としてset_posというC言語関数を作ってみます。 必要なデータをまとめる まずICSの規格に沿って、ポジションコマンドを作成しましょう。ポジションコマンドの基本命令は次のようになっています。ポジションコマンドやその他の...
もっと見るシリアルサーボ制御方法(2) ICS編
ICSコマンドについて 今回は弊社製シリアルサーボモーターを動かすためのICSコマンドについて説明します。 ICSとは「Interactive Communication System」の略で、近藤科学独自のデータ通信規格です。従来はPWM※でサーボモーターに角度の指令を送っていましたが、特性の変更や拡張などをより細かく制御するため、規格をシリアル通信に変更しました。 ICSバージョン2.0では主にサーボモーターの位置制御や特性の変更をするために使用されてきましたが、現在はその他のデバイスも接続できるように拡張されています。バージョン3.5ではサーボモーターのモーター温度などが読み込めるようになりました。 各種ICS規格については、詳細なリファレンスマニュアルが公開されています。下記リンクからお持ちのサーボモーターに該当するマニュアルをダウンロードいただき、今回の記事と併せてご利用ください。 ICS3.6コマンドリファレンス (KRS-6003R2HV/3301)ICS3.5コマンドリファレンス (KRS-4032HV/4033HV/4034HV/2552RHV/6003RHV/3304/3204) ICS3.0コマンドリファレンス (KRS-2552HV/600...
もっと見るシリアルサーボ制御方法(1) 回路編
はじめに 近藤科学社製のロボット用サーボモーターは、ロボットコントローラーやPCから簡単に操作できるようなシステムになっています。今回より5回にわたって、近藤科学社製シリアルサーボモーターを制御する方法を紹介します。 回路編 自作マイコンでサーボモーターを制御するために必要な電気回路について説明します。 ICS編 ロボット用シリアルサーボモーターのICSコマンドについて詳しく説明します。 ソフト編 ICSコマンドを自作マイコンで使うためのテクニックについて説明します。 PCから直接制御編(その1) Microsoft Visual Basicを使って、PCからICSコマンドを送信するための準備をします。 PCから直接制御編(その2) Microsoft Visual Basicでスライドバーでシリアルサーボモーターを動かすプログラムを行います。 今回の「回路編」では弊社製サーボモーターを動かすための電気回路について説明します。 回路説明 下記回路図は近藤科学社製KCB-1マイコンボードのシリアルサーボモーターを駆動する部分のみを書き出したものです。回路図のSIOコネクタの番号は、1番が信号線、2番が電源線、3番がグランド線となっています。弊社製ロボット用シリ...
もっと見るシリアルUSBアダプターをLinuxで使うには
準備 弊社製シリアルUSBアダプターシリーズはWindows OS以外での動作保証をしておりませんが、適切なドライバーを使うことで、Linuxでも使用できます。 Linuxで使用するときはusbserial.ko、ftdi_sio.koという2つのドライバー(正式にはカーネルモジュールと言います)が必要となります。このドライバーはUbuntu Linuxなどでは標準でインストールされています。例えばUbuntu Linux 10.04では「/lib/modules/2.6.32-21-generic/kernel/drivers/usb/serial」にインストールされています。 次にシリアルUSBアダプターHSを取り付け、下記コマンドでドライバーをセットしてください。modprobeコマンドでftdi_sioドライバーを取り付けると、自動的にusbserial.koドライバーも取り付けられます。 <rootユーザーの場合> # modprobe ftdi_sio vendor=0x165C product=0007 1 #...
もっと見るKCB-3WLウェブカメラ リアルタイム制御デモ
この記事は、KCB-4WLの参考データとして公開しています。 実際にロボット本体としてKHR-3HVを使用して、KCB-3WLを搭載した動作例です。 KCB-3WLにはロジクール社製Webカメラを接続。画像をリアルタイムにパソコン側に送っています。 ロボット本体の動作は、KCB-3WLに接続したRCB-4により行っています。 動画では、最初にパソコン側に接続したコントローラでロボットを操作。カメラの映像がパソコンに表示されているのがわかります。 次に、コントローラ側から、カメラを取り付けたサーボだけを動かして、カメラからの映像と交互に紹介しています。 動画の最後に紹介するのは、応用編です。 カメラからの映像をパソコンのLCD画面で見るのではなく、ヘッドマウントディスプレイに出力しています。また、同時に、ヘッドマウントディスプレイに内蔵した加速度センサーとジャイロセンサーにより、デイスプレイの移動を検出してその動きをKCB-3WL側に同時に送り、カメラ位置を動かしています。ヘッドマウントディスプレイの映像を見ながら、操作しなおかつ、見た方向にロボット本体の視点(カメラ)も移動するデモです。 ...
もっと見る