Filed under:
未分類
RCX Messageに関する情報をまとめます。
(参考文献:http://graphics.stanford.edu/~kekoa/rcx/)
RCXとの赤外線での通信は
http://graphics.stanford.edu/~kekoa/rcx/protocol.htmlより
The IR protocol associated with sending a “message” to the RCX is pretty
simple. Bit encoding is 2400 baud, NRZ, 1 start, 8 data, odd parity, 1
stop bit. A ‘0’ is coded as a 417us pulse of 38kHz IR, a ‘1’ bit is 417us
of nothing.
At the packet level, all packets look like this:
0x55 0xff 0x00 D1 ~D1 D2 ~D2 … Dn ~Dn C ~C
where D1…Dn are the message body, and C = D1 + D2 + … Dn.
The data for sending an IR message is F7 followed by the 8 bit “message”.
For example:
55 ff 00 f7 08 12 ed 09 f6
is a packet sending the message “0x12” to the RCX.
2400bps 8bit 奇数パリティ ストップビット1
です。
今回はこのデータとマイコンのタイマーで生成した38KHzのPWMをAND回路で合成し赤外線LEDを点滅させることにします。
実際に送信するデータは上の情報より
ヘッダ「0x55 0xff 0x00」
命令(RCXMessageの場合)「0xf7」
命令のビット反転したデータ「0x08」(0xff-0xf7)
送りたいRCXMessage(例:5)「0x05」
反転データ「0xfa」(0xff-0x05)
チェックサム
チェックサムの反転データ
これを関数にしたものがこれです。(H8/3694で動作確認済み)
SCI3_OUT_DATAは各マイコンで書き換えてください。
またシリアルの初期化は別に行ってください、
/*———————————————–*/
/* RCXメッセージ送信 */
/*———————————————–*/
void Send_RCX_Message(char Message)
{
int Check_Sam;
if(Message>0x08)
{
Check_Sam=Message-0x09;
}else{
Check_Sam=Message+0xf7;
}
SCI3_OUT_DATA(0x55);
SCI3_OUT_DATA(0xff);
SCI3_OUT_DATA(0x00);
SCI3_OUT_DATA(0xf7);
SCI3_OUT_DATA(0x08);
SCI3_OUT_DATA(Message);
SCI3_OUT_DATA(0xFF-Message);
SCI3_OUT_DATA(Check_Sam);
SCI3_OUT_DATA(0xFF-Check_Sam);
}
一応mainも含めて作成したプログラムが以下です。
#include <3694.h> // H8 Tinyの内部I/O定義
char txb[10], rxb[10];
/*———————————————–*/
/* RCXメッセージ送信 */
/*———————————————–*/
void Send_RCX_Message(char Message)
{
int Check_Sam;
if(Message>0x08)
{
Check_Sam=Message-0x09;
}else{
Check_Sam=Message+0xf7;
}
SCI3_OUT_DATA(0x55);
SCI3_OUT_DATA(0xff);
SCI3_OUT_DATA(0x00);
SCI3_OUT_DATA(0xf7);
SCI3_OUT_DATA(0x08);
SCI3_OUT_DATA(Message);
SCI3_OUT_DATA(0xFF-Message);
SCI3_OUT_DATA(Check_Sam);
SCI3_OUT_DATA(0xFF-Check_Sam);
}
void main(void)
{
// 通信ポートを初期化 ボーレートは2400[bits]
rs_init (64, txb, sizeof(txb), rxb, sizeof(rxb));
SCI3.SMR.BYTE=0x31;
IO.PCR8 = 0x00;
//———————–
// タイマW設定
//———————–
TW.TMRW.BIT.CTS = 0; // TCNTカウント停止
TW.TCRW.BIT.CCLR = 1; // コンペアマッチAによりTCNTをクリア
TW.TCRW.BIT.CKS = 2; // 内部クロック
// 1ch = FTIOB設定
TW.TMRW.BIT.PWMB = 1; // FTIOB端子の出力モード = PWM
TW.TCRW.BIT.TOB = 1; // 最初のコンペアマッチAが発生するまでの端子出力値 = High
TW.TCNT=0x0000; /* TCNの初期化 */
TW.GRA = 65;
TW.GRB = 32;//38KHz
TW.TMRW.BIT.CTS = 1; // Wタイマ TCNTカウント開始
// 通信は割り込みで処理されます
// 初期化後は必ず割り込みを許可状態にしてください
EI;
while(1)
{
//ここに実際にしたい処理を記述
//RCXMessageを送るときはSend_RCX_Message(送りたいメッセージ(1〜255));
}
}
すいません。まだ途中の投稿です。回路図や細かい説明はまたすぐに書き込みます。
それとH8マイコンやC言語の基本的な知識が必要となります。
またコンパイル環境はGCC Developer Liteです。
Filed under:
未分類
文化祭の準備もそろそろ始めなくてはならない時期になってきました。
しかし!まだロボットが完成していない!
文化祭本番、どうなるんでしょうか。まだわかりません。
でも、一応土台となるシャーシ部分は今日組みあがったので、写真をアップしておきます。
なんとか設計図どおりにできたかな・・・?
文化祭までにドリブル機構だけはつけたい!
by高校部長
Filed under:
未分類
本日、大阪梅田阪急百貨店において、ロボカップ日本委員会公認「ロボカップジュニア阪急百貨店杯」が開催されました。
そこで、われわれサッカー班は日本大会出場モデルと、この一週間で作ったレゴNXTのサッカーロボットを持って参加してきました。
チーム名は「NXTお披露目会」。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
まあネーミングセンスはともかく!
方位センサーなしのNXTと、日本大会のときからまったく調整していないロボットを持って、阪急百貨店杯に参加したわけです。
はじめは、まったく勝てる気がしなかったのですが、何かわれわれに憑いていたんでしょうか。驚きの幸運の連続、なんと決勝トーナメントに残ってしまったのです。
しかもそこでも勝つ。なぜか勝つ。方位センサーなしのロボットが勝つ。
そして、・・・優勝しました!
誰もこのチームが勝つなんて思ってませんでした!
でも、勝ちました!
ありがとう、プログラム担当E氏!
君が最後まであきらめなかったからこそ、勝てたのだと思う。
・・・
文化祭では、自作のロボットを披露したいと思います。
by高校部長
Filed under:
未分類
ロボカップ2006で使用していたH8によるRCXメッセージの送信(方位センサーの情報をRCXに赤外線ポート経由で送る)についての情報をそろそろ公開したいと思いますが公開の要望がある方はコメントください。できるだけ早く掲載するようにします。
Filed under:
未分類
コメントをいただいたので以前の記事に追記させていただきます。
詳しい情報はもらっていませんが試合の時間についてです。
8月12日(土)
阪急百貨店7階催し物会場?
15:00から18:00です。
会場はここだと聞いたきがするのですがメールを見直してみても書いていなかったので本当かはわかりません。とりあえず阪急百貨店(追記:梅田本店)です。
詳しいことがわかればまた書き足します。
よろしくお願いします。
Filed under:
未分類
どーん!
一日かけて改造しました。
なんだかとってもごついロボットになっています
問題は多々残っているのですが、ここで最も大きい問題がひとつ。
方位センサーがつかないのです。
以前は自作センサーは簡単に作ることができたのですが、NXTになってセンサーとマイコンをつなぐケーブルが特殊なものになってしまったのです。
方位センサーがつかない
=自分の向きがわからない
=自分のゴールの方向がわからない
=オウンゴールしてしまう
=勝てない!
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
どうしよう。
Filed under:
未分類
既に前の記事に説明があるので阪急百貨店ロボットフェスタの試合についての説明は割愛させていただいて突然ロボットの話。
今度の試合の際していくつか心配な点を・・・
まずは方位センサーについて
7階が試合会場である事がちょっと気分的に心配(地磁気がその程度の高さで変わるとは思えませんが。)
それと催し物会場は電線があまり通っていないのかあるいは通っているのかという点。電気系統が走っていると弱い地磁気ではもう検知できないと思われるので。
もう一つは今日現在方位センサーの回路はあるのですが肝心のCPUに方位センサーのプログラムが入っていないということ。ロボカップ2006が終わってCPUを使い回して実験していたので。
さらに急な事だったので方位センサーが1セットしか用意できませんでした。
とりあえず時期が悪く今日から2週間は学校も登校禁止期間なので必要最低限の物しか手元にありません。プログラムもちゃんと転送できるか心配なほどに。
あしたは部長の家で方位センサーの復旧とNXTのサッカーロボットの制作です。
ロボカップ2006ほどのロボットはできるか心配です。
では。
Filed under:
未分類
二足歩行以外にも何かやってみよう。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
サッカーをしよう。
よし、サッカーロボ製作だ。ロボカップジュニアNXT化第一号(おそらく)になろう!
ということでつくったオリジナルロボ。
まだセンサーとかはまったくついていません
とにかく作っただけ。
今週一週間かけて実践的なものに仕上げようと思っています。
さて、一言感想。
「難しい」
実は私、レゴマインドストームを使ったロボットに関してはかなりの自信を持っていたのですが、
こんなに難しいものとは・・・
パーツが前のものに比べ大きくなったことにより制作の自由度が減り、かなり作れるものの幅が狭くなってしまったのです。
特に大きくなって不便になったのは、モーター。
以前のものよりも高性能になっていますが、大きさが3倍ほどになっており、非常に使いにくいです。
まあ慣れるまでの辛抱ですね。
あしたはセンサーの取り付けだっ!
がんばるぞ!
by高校部長
P.S.
阪急百貨店のロボカップイベントに招待していただきました。
ロボカップジュニアデモ試合に参加する予定です。
応援よろしくお願いします!
http://www.hankyu-dept.co.jp/honten/robot/event.html
Filed under:
未分類
今度は第二回です。とりあえずだいぶ進みました。
写真だけですが掲載します。
動画はもうちょっと待ってください。