ゼミのお話/ロボット工学者養成所/要素別/浅草ギ研AGB65シリーズ

2018-04-16 (月) 15:53:00 (840d)

AGB65-RSCシリーズ

簡易使用方法

  • 以下のように配列を定義して値を代入する.
    • unsigned char output[7] = {255,3,4,2,0,127,20};
      シンクロバイト(255)RSCにデータの通信開始を知らせるデータで,常に「255」で始まる.
      ID(3)RSCに設定された固有のID(AGB65シリーズを複数接続したときの判別用.RSCの場合,出荷時のIDは「3」.)
      送信バイト数(4)送信される命令の(バイト)数.シンクロバイト,ID,送信バイト数は数えない.
      命令1(2)個別サーボ駆動設定
      命令2(0)サーボ番号.0はRSC基板上のP0に対応
      命令3(127)角度(min:0,max:255で,絶対位置を指定)
      命令4(2)指定した角度まで移動する速度(x15ms)
  • この配列をシリアル送信する.

AGB65-ADCシリーズ

簡易使用方法

  • AGB65-ADCへシリアル信号で個別の命令を送ることで,その命令に合った形式で結果が返ってくる.つまり,まずarmadillo300上のプログラムがどのようなデータが欲しいかコマンド送信すると(データリクエスト),AGB65-ADCは要求されたデータを返信する(データリプライ).
    • AGB65-RSCと基本的な使い方は同じであるが,返ってくる値を読み取る必要がある.
  • 以下のように配列を定義して用いる.
    • データリクエスト用データ.以下の配列をシリアル送信する.
      • unsigned char command[4] = {255, 120, 1, 1};
シンクロバイト(255)ADCにデータの通信開始を知らせるデータで,常に「255」である.
ID(120)ADCに設定された固有のID(AGB65シリーズを複数接続したときの判別用.ADCの場合,出荷時のIDは「120」.)
送信バイト数(1)送信される命令の(バイト)数.シンクロバイト,ID,送信バイト数は数えない.
命令1(1)全ポート(16ポート)読み取り(精度8bit)
  • データリプライ用データ.データリクエストした後,以下の配列をシリアル受信する.
    • unsigned char data[20];
data[0]:シンクロバイト(255)ADCからデータの通信開始を知らせるデータで,常に「255」である.
data[1]:ID(120)リクエストされたADCのID(ID=120にリクエストした場合,120の値が入っている.)
data[2]:データバイト数(17)ADCからarmadillo300に向けて送信される命令のバイト数.シンクロバイト,IDは数えない.
data[3]:命令1(1)armadillo300からADCにリクエストされた命令を返信.command[4]の値.
data[4]〜data[19]:[ポート1の結果]〜[ポート16の結果]各ポートにささっているセンサの取得結果
  • 上記のデータを以下のように送受信すると配列dataの中にセンサの情報が格納されている.厳密には,data[0]〜[3]の値を使って正常にデータを受信できているか確認する必要がある(プログラムを参照)
    • int main(){ ...
    • ...
    • write(fd, command, sizeof(command));
    • read(fd, data, sizeof(data));
    • ...
    • }