.. _device_control_with_serial_comm_on_armadillo300_text: シリアル通信によるデバイス制御 ############################## はじめに ======== ここでは,Armadillo300を対象にシリアル通信を行うプログラムに関する知識を修得する. また,シリアル通信によってコマンド式のサーボ・センサをコントロールし,実機の扱いになれる. 概要 ---- 本ゼミは,以下の特徴をもったプログラミング演習である. * シリアル通信に関するプログラミングを行う * シリアル通信によるデバイス制御を行う シリアル通信は広範囲に使われている技術である.本演習では,最も基礎となるRS-232C経由でのシリアル通信を対象とし,シリアル通信プログラミングの基礎を修得することを目的とする. また,本演習ではシリアル通信を用いてハードウェアデバイスの制御を行う.ハードウェアを用いた場合,シミュレーション実験では現れないノイズや個体差が問題となってくる.本演習では実機を使用することで,この特有の問題を体験してもらう. ここで :ref:`ハードウェアを制御する方法 ` は直接方式とコマンド方式がある.本演習ではシリアル通信を用いて制御を行うため,コマンド方式となる. 使用する実験機器 ---------------- 今回使用するデバイスを図1~5に示す.armadillo300単体を図1に示す.また図2にarmadillo300によって制御されるセンサ・アクチュエータとその制御デバイスを示す.センサコントローラ,サーボコントローラはarmadillo300からシリアル通信で送られてくるコマンドを解釈し,センサから情報取得およびサーボの動作を行う.その結果はシリアル通信でarmadillo300へ送られる.ここでarmadillo300のシリアルデバイスとコントローラのシリアルデバイス間で信号電圧に互換性がないためPC接続ボードによって信号電圧の変換を行っている.これらを使用した実験デバイスを図3~5に示す.実験デバイス前方には距離センサを1つ搭載し,アクチュエータを1つ搭載している.上部にはメータをプリントしており,アクチュエータはメータ上の針を駆動させる. .. figure:: fig/DSC_0206.jpg :align: center :width: 300px :alt: armadillo300 図1. Armadillo300 .. figure:: fig/servo_and_controller.jpg :align: center :width: 300px :alt: servo and controller 図2. サーボ・センサコントローラ .. figure:: fig/front.jpg :align: center :width: 300px :alt: front 図3. 使用機器前方図 .. figure:: fig/top.jpg :align: center :width: 300px :alt: armadillo300 図4. 使用機器上方図 .. figure:: fig/back.jpg :align: center :width: 300px :alt: armadillo300 図5. 使用機器後方図 構成 ---- シリアル通信によるデバイス制御ゼミの構成は以下のようになる. 1. 準備 * ゼミを行うためのデバイスの準備 2. サーボプログラミング * サーボ動作を行うプログラミング 3. センサプログラミング * センサからの情報取得を行うプログラミング 4. センサ・サーボプログラミング * センサを使って情報取得をし,それをもとにサーボを動作させるプログラミング 演習前に一読願う情報 ------------------------ * :ref:`viの使用方法 ` viの操作に慣れていない場合には :ref:`この章 ` を読んでviを扱えるようにしておく. また,演習中にプログラムを打ち込みながらこの章を読み,viによる入力に慣れる. * :ref:`シリアル通信プログラム概説 ` シリアル通信プログラムの概要と雛形.内容は,丸覚えでかまわない.本章では,丸覚えをすべきところを中心に記述している.特に実際にプログラムをしなくてもかまわない.掲載しているプログラムはhelloを表示するものであるが,センサ・サーボコントローラには文字表示能力はない.そのため,掲載しているプログラムを実行しても何も起こらない. プログラム演習 ============== 基本的には,基本的には,まずサンプルプログラムを打ち込み,コンパイル・実行してみる.その後,概要や参考情報を見ながら理解を深める. :ref:`実験準備 ` -------------------------------------------------------------------------------------------------------- :ref:`実験の準備 ` を行う. サーボ駆動プログラムの作成 --------------------------- :ref:`サーボ駆動プログラムの作成 ` を行い,サーボの制御に関して実体験する. センサ情報取得プログラムの作成 ------------------------------- :ref:`センサ情報取得プログラムの作成 ` を行い,センサからのデータ取得方法に関して実体験する. センサ・サーボ制御プログラムの作成 ------------------------------------------------ :ref:`センサ・サーボ制御プログラムの作成 ` を行い,センサとサーボを両方使用するプログラムを作成する.サンプルプログラム等はなく,自分で考え作成してみる. .. toctree:: :hidden: subtext/files.rst