Download
latest Releases : 2.0.0-RELESE
| 2.1.0-RELESE | Download page |
| 2.0.1-RELESE | Download page |
Number of Projects
| RT-Component | 154.5 |
| RT-Middleware | 35 |
| Tools | 25 |
| Documentation | 2 |
Choreonoid
Motion editor/Dynamics simulator
OpenHRP3
Dynamics simulator
OpenRTP
Integrated Development Platform
AIST RTC collection
RT-Components collection by AIST
TORK
Tokyo Opensource Robotics Association
DAQ-Middleware
Middleware for DAQ (Data Aquisition) by KEK
はじめに
このページでは,PICやdsPICで開発されたロボット要素部品をRTミドルウェアのネットワークに参加し, 他のRTコンポーネントと協調することを目的に,低機能なMPU向けのRTコンポーネントフレームワークについて 紹介します.
現在は,OpenRTM-aist-1.0に対応しておりますので,多くの方に利用していただけるかと思います. 電子工作に興味があり,なおかつPICやdsPICを使った開発を得意としていて, なおかつRTミドルウェアに興味がある方,ぜひご利用ください.
ダウンロードファイル
RTC-Liteの特徴
RTC-Liteは,通常のRTコンポーネントを作成するのと同じ感覚で,組み込みMPU向けのRTコンポーネントを作成,動作させる環境を提供する.
作成するハードウェアにより,通信網,コンパイラが異なってくるが,実装形態を工夫することで,コンパイラ依存部と,非依存の共通要素を可能な限り分離し,
さらには,通信網に依存する部分も可能な限り分離を行っているため,ユーザサイドで新規デバイスにRTC-Liteを拡張していく場合のことも考慮されている.
RTC-Liteは,通常のRTコンポーネントと同じように利用できるようにするために,以下のような2つの要素から構成される.
Proxyコンポーネントは通常のPC上で利用することを想定しており,
RTC-Liteコンポーネントは,組み込みMPU(ここではPIC, dsPIC上)で動作する.
このように,他のコンポーネントとの橋渡しとして,Proxyコンポーネントが機能し,コンポーネントの実体はMPU上に存在するという構造をRTC-Liteでは採用している.
制限事項
本バージョンのRTC-Liteでは,PICの入出力,AD変換に関わるポートは事前に取り決めており,
そのポート以外の利用はできないので注意していただきたい.
(ユーザは,ソース中で,機能を利用するかしないかを選択するのみ.)
動作環境
RTC-Liteを使用するためには,以下のものが必要となる.
RT-Unitの製作
RTC-Liteが動作するRTデバイス制御ボードとして,PIC16F877A,dsPIC30F3014を制御MPUに採用したRT-Unitを利用する. 以降,このRT-Unitについて説明を行う.
PICを用いたRT-Unit
外観
回路図
部品表
dsPICを用いたRT-Unit
外観
回路図
部品表
RT-Unitのプログラム開発
使用するPICにかかわらず,本開発では統合開発環境として,Microchip社から提供されているMPLABを利用することとする.
MPLAB Download Cite
16F877Aの場合
PICをC言語で開発するためには,Cコンパイラが不可欠である.RTC-Liteでは,16系のPICの開発環境として,CCS社によって販売されているCCS Cコンパイラを利用している.そのため,16系のデバイスを利用するためには,CCS Cコンパイラを購入する必要がある.
CCS-C Compiler
手順
- Sample.c ・・・(メインファイル)
- Sample.h ・・・(メインファイルのヘッダ)
- rtc_base.h ・・・(rtcliteの各要素を管理するファイルのヘッダ)
- rtc_msg.h ・・・(rtcliteの通信関係のヘッダ)
(注意) 同フォルダに入っているrtc_base.c,rtc_inport.c,rtc_outport.cはMPLABのプロジェクト内に入れるとコンパイルエラーを起こします. しかし,各ファイルで書き込んだ内容はコンパイル時に反映されます.ファイル説明
sample.cはコンポーネントのメインの部分であり,ユーザが書き換える必要のあるファイルの一つである.
RTコンポーネントのアクティビティはここに書かれている. sample.hはコンポーネントのプロファイルとCCSヘッダを読む部分であり,ユーザが書き換える必要のあるファイルである.
書き換える必要がある部分として,プロファイルとプロファイルの文字数の変更とシリアルの設定はここで変更する.
dsPIC30F3014の場合
開発環境のインストール
dsPICのC言語開発環境として,Microchip社からC-30コンパイラが販売されており,こちらを利用している.
C-30コンパイラはStudent Editionとして,期間限定版が公開されており,本開発においてもこちらを利用している.
Student Editionの特徴として,60日間の使用期限があるものの,60日以後もコンパイラの最適化が上がった状態で使用を続けることができる.
C-30 Compiler
MPLABがインストールされた状態であれば,C-30コンパイラインストール後,すぐに利用できる状態となっている.
PICへの書き込みを行うためのライタとして,Microchip社から販売されている,PicKit2を利用する.
ただし,MPLABでは,PicKit2を利用しての書き込みが正常に行えないことから,PicKit2用の書き込みソフトウェアであるPicKit2 Programmerを利用する.
Pic Kit2 Programmer
各ソフトウェアの使用方法については本マニュアルでは割愛する.
開発用プロジェクトの作成
RTC-Liteのプログラム開発を行うために,はじめに開発用のプロジェクトを作成する. 以下に手順を示す.必要なファイルのプロジェクトへの追加
C-30では,開発の手間を削減するために,様々なライブラリが組み込まれている.
RTC-Liteを利用する上でもこれらのファイルは必要であるため,以下のファイルを読み込んでおく必要がある.
RTC-Liteのソースの追加
RTC-Lite用のソースをプロジェクトに読み込む.
現在はコンポーネント作成用のスクリプトが存在しないため,既存のソースの中身を書き換えることで,実装を行う.
なお,現在のバージョンでは,入出力用のポート,A/D変換用のポートなどは固定であり,ユーザは利用したいポートにRTデバイスの信号線を接続する必要がある.
プロジェクトに追加するソースファイルは,以下のとおりである.
以上のソースファイルをプロジェクトに組み込み,コンパイルすることで,dsPIC側の動作準備が整う.
XPortの設定
RT-Unitで利用しているXPortの設定を行う必要がある.
後述するProxyコンポーネントは,サーバとして動作することからXPortをクライアントとして設定する必要がある.
設定方法の詳細は,XPortの資料を参照していただきたい.
ここでの設定では,PCのIPアドレスを接続先アドレスとして設定し,ポートを10001に設定する.
dsPIC版では,シリアル通信の速度が115200になっているので,Xportのシリアル通信の速度を変更するようにする.
Proxyコンポーネントの設定
Proxyコンポーネントのポート設定はProxy.pyである.
このファイルの先頭にサーバとして待ち受けるポートの番号が書かれているので,ポート番号が10001となっているか確認する.
PC側での準備
コンポーネントの動作確認
動作の一例として,ポートから出力し,ライトを点灯させるRTC-Liteコンポーネント(Output0)を載せる.
ライトを点灯させるハード要素の概要図は下記になる.
Output0コンポーネントは,onExecute時に他のコンポーネント(この場合,Input0)からの入力データが敷居値を超えると,PICのピンがhighになり,ライトが点灯する.
今後の課題
更新履歴