[1703] メッセージ送信 投稿者:みっち 投稿日:01/09/18(Tue) 15:49
RCXにメッセージを送る方法には、RCXCCなどで手動でSendMessageを使う方法と、もう一台のRCXにSendMessageのプログラムを入れてもう一台のRCXに送る方法があるのは分かっているんですが、
PC側でプログラムを実行して、メッセージを送受信する方法はないのでしょか?
例えば、RCXがライトセンサーで黒を判断したら、タワーに1というメッセージを送って、PC側は1のメッセージを受け取るとバックすると言うメッセージ(プログラム)をまたRCXに送り返すようなこと。

自分が調べた限りでは、PC側でNQCのプログラムが実行できないみたいなんですけど、、、プログラムが実行できるのはRCXだけでなんですか?

[1705] Re: メッセージ送信 投稿者:JinSato 投稿日:01/09/18(Tue) 22:22
なにか、大きな勘違いをしているような、気がしますよ > みっちさん。

>PC側でNQCのプログラムが実行できないみたいなんですけど、、、
できません。
(PC側で、RCX BYTE CODE のエミュレータ-を作れば出来ると思うけど)

>プログラムが実行できるのはRCXだけでなんですか?

パソコン側では、パソコン用に作られたプログラミング言語を使って
IR Tower が受信したデータ-を処理するプログラムを作ります。

[1704] Re: メッセージ送信 投稿者:">mac 投稿日:01/09/18(Tue) 22:19 <URL>
RIS1.0/1.5と、RIS2.0では、事情が異なるので、まずどちらか書いていただけますか?PCとRCXの連携はできますが、PC側のプログラムは、
VBやVC++で作ります。RIS1.0/1.5では、spirit.ocxを介して、
比較的楽に連携プログラムを書けたのですが、
RIS2.0には、spirit.ocxは付属しなくなりました。
また、基本的に連携プログラムは、PCが先に送信し、
RCXがこれに答えるという形で書きます。

なぜなら、RIS1.0/1.5のIR TOWERは送信終了後、数秒で、
電源が切れてしまい待ち受け動作ができないからです。
RIS2.0のUSB TOWERは待ち受け動作ができるので、
良いのですが、spirit.ocxがないので、
byte単位の制御を全部自前で書かなければなりません。

というわけで、RISのVersionと、
実際やりたいことをもう少し具体的に書いてください。

[1706] Re^2: メッセージ送信 投稿者:みっち 投稿日:01/09/19(Wed) 01:06
RCXは2.0です。Linux上でプログラムを作ってみたかったので、
以前、Linux上ではUSBのIRタワーを使えないと言うことをここの掲示板で聞いたので、シリアルポートのIRタワーを以前購入したんですが、ということはPCとRCXの連携をしようとするならWindowsでということになるんですね。
(実はまだLinuxの方でプログラムがうまくRCXにダウンロードできない初歩的な問題もあるのだが、、)

何をしようかと考えたのは、RCXに迷路をぬけさせることを考えたんです。
例えば、RCXが迷路を走って、正面の壁にぶつかったなら、IRに1をPCに送信して、受信したPCは1の時に対応したその対処方(右に曲がるとか)の命令をRCXに送る。右にぶつかったり、左にぶつかったりした時も同様にして。だから常に考えるのはPC側で。
それか、壁にぶつかる前に画像処理で、判断してRCXに命令(情報)を送るとか。そんなことができればいいなと考えてます。

[1707] Re^3: メッセージ送信 投稿者:JinSato 投稿日:01/09/19(Wed) 02:18
>PCとRCXの連携をしようとするならWindowsでということになるんですね。

シリアルポートに接続する IR Tower を使うのならば、Linux 上で GNU C でも、Perl でも、Javaでも
プログラムは作れますよ〜。

シリアルポートをオープンして、決められたプロトコルでコードを送るだけです。

さらに、legOS や NQC 自体のソースコードも公開されていますし、 IR Tower と RCX との
間のコミニケーションのプロトコルもネットで検索すれば、すぐ見つけられると思いますから
その辺を参考にしたら〜と思います。

それに、RCXが受信できる赤外線を飛ばすことが出来るデバイスならば、RCXをコントロール
することは可能です。 たとえば、もう2年程前になりますが
http://www.mi-ra-i.com/JinSato/MindStorms/Ruputer/
で公開しているみたいに、Ruputerでもコントロールできますよ〜。

なお、搬送波やシリアルのプロトコルに関しては スタンフォード大の Kekoa さんのサイト
http://graphics.stanford.edu/~kekoa/rcx/ に書かれています。
彼は、RISが発売をはじめたときから凄いパワーで解析してたんですよ〜。
やはり若さのパワーが炸裂してる感じで。 凄いですよね。

さらに、 http://www.crynwr.com/lego-robotics/ も見るとよいと思います。

[1724] Re^4: メッセージ送信 投稿者:Mao KUROI 投稿日:01/10/03(Wed) 23:17
こんばんは。黒井ともうします。

> >PCとRCXの連携をしようとするならWindowsでということになるんですね。
手前味噌なんですが、
PC+Windows+RIS2.0(USB TOWER)の組み合わせならBRECONはいかがっすか。
言語はJavaですが。
PC側でRCXからのメッセージを待ち受けできます。また、RCXの
センサ値をPCから読み出すことも可能です。
ただ、センサ値を読み出すことは可能ですが読み出した値が
バイト配列のままなので、センサのタイプによって適切なバイト数分を
数値にパースする必要があります。サンプルが入っていますので
おおよその使い方がわかります。
Javaをおすすめする理由が1つあって、JavaはVBとかに比べて、
マルチスレッドのプログラムを簡単に作成できます。
ロボットを操作する場合には、たとえばRCXからのイベントを待ちつつ、
モータを動かしたり、PCのキーボード入力によって、割り込んだり
タイマを使ったりとマルチスレッドなプログラムを組まないと
どうしても実現できないことが起こります。
以下にあります。
http://www6.shizuokanet.ne.jp/blackmao/mindstorms/

> シリアルポートに接続する IR Tower を使うのならば、Linux 上で GNU

そういえば、確かLinux+シリアルTowerの組み合わせでライブラリを
書いている人がいたような?もちろん、C/C++です。
GOOGLEとかで「LINUX MINDSTORMS」で
検索すると情報が大量に出てきます。お試しあれ。

[1708] Re^4: メッセージ送信 投稿者:みっち 投稿日:01/09/19(Wed) 10:27
いろいろありがとうございます。
がんばって見てみます。

[1709] Re^5: メッセージ送信 投稿者:JinSato 投稿日:01/09/19(Wed) 10:36

> がんばって見てみます。

進展があったら、教えてくれると嬉しいです。

[1711] VBプログラムでIR-TowerからRUN 投稿者:よー 投稿日:01/09/19(Wed) 15:17
はじめまして。
まだ初心者でよくわからないのですが、
PCからRCXにダウンロードされているプログラムをRUN
させることはできますか?
プログラムをダウンロードさせたり、直接モーターの制御などは
できたのですが、RCXに入っているプログラムをPCでRUNさせる
ことができません。
そのようなコマンドがあれば教えてください。

[1712] Re: VBプログラムでIR-TowerからRUN 投稿者:JinSato 投稿日:01/09/19(Wed) 15:54
> はじめまして。
> まだ初心者でよくわからないのですが、
> PCからRCXにダウンロードされているプログラムをRUN
> させることはできますか?

どの環境でプログラムしてますか〜。それにより答えが違うと思います。

標準ファームウエアーを使っているのならば、
タスク 0 をスタートさせれば 実行できたと思います。

Spirit.ocx を使っていれば、 StartTaks で タスク 0 をスタートすれば、OKなはずです。
詳しくは 鉄人テクニックの P74ページあたりに説明してます〜。 (ちょっぴり宣伝)

ところで、"よー" さんと "みっち" さんは、お仲間?ですか。
同じ IP アドレスから書き込まれているみたいなんです〜。
それも、この数日で同じ IP からのアクセスから、このQ&Aの
掲示板にアクセスが急に増えているんで、ちょっと心配しているんですよ。

なにか、ご存知のことがありましたら、教えてください。

[1713] Re^2: VBプログラムでIR-TowerからRUN 投稿者:よー 投稿日:01/09/19(Wed) 16:10
> Spirit.ocx を使っていれば、 StartTaks で タスク 0 をスタートすれば、OKなはずです。

SelectPrgm(Number)でプログラムを選んで
StartTask(Number)で実行という形でよいですか?

> ところで、"よー" さんと "みっち" さんは、お仲間?ですか。
> 同じ IP アドレスから書き込まれているみたいなんです〜。
> それも、この数日で同じ IP からのアクセスから、このQ&Aの
> 掲示板にアクセスが急に増えているんで、ちょっと心配しているんですよ。
>
> なにか、ご存知のことがありましたら、教えてください。

私は学校から繋いでいるので、多分同じ学校の人だと思います。
でも誰かはわかりません。
ご迷惑かけて申し訳ありません。

[1714] Re^3: VBプログラムでIR-TowerからRUN 投稿者:JinSato 投稿日:01/09/19(Wed) 16:16

> SelectPrgm(Number)でプログラムを選んで
> StartTask(Number)で実行という形でよいですか?

ここまできたら、実行あるのみです!!。 試してみると、すぐわかると思います。

スタートしたら、今度は止めたいと思うのが人情ですね。
もう、分かりますねきっと。

..
> > それも、この数日で同じ IP からのアクセスから、このQ&Aの
> > 掲示板にアクセスが急に増えているんで、ちょっと心配しているんですよ。
> >
> > なにか、ご存知のことがありましたら、教えてください。
>
> 私は学校から繋いでいるので、多分同じ学校の人だと思います。
> でも誰かはわかりません。
> ご迷惑かけて申し訳ありません。

いえいえ、迷惑ではないんですが、同じ IP アドレスから急に沢山
来ていたんでチョット心配していただけです。

それでは、頑張ってみてください〜。

[1715] Re^4: VBプログラムでIR-TowerからRUN 投稿者:よー 投稿日:01/09/19(Wed) 16:22
親切に返答していただきありがとうございました。

鉄人テクニックも購入してみたいと思います。

[1716] Re^5: VBプログラムでIR-TowerからRUN 投稿者:みっち 投稿日:01/09/19(Wed) 16:41
みっちです。ほう、同じ学校の人がいるんだ。

[1701] spirit.ocxをつかってVB6でのRCX1.0の操作 投稿者:MIC 投稿日:01/09/13(Thu) 14:20
はじめまして
タイトルどうりVBでRCXの操作をしたいのですが、
情報局内のSpirit.ocxの入門の手順に沿ってやっていくと
step4のモーターを動かしてみるところでどうしてもうまくいきません。
ポートやLINETYPEなど、いろいろ試しましたが、解決しません。
私は一応VBは使える程度の知識はあります。
なにか考えられるエラーがあれば教えていただきたいのですが。
よろしくお願いします。

[1702] Re: spirit.ocxをつかってVB6でのRCX1.0の操作 投稿者:JinSato 投稿日:01/09/13(Thu) 14:27
> step4のモーターを動かしてみるところでどうしてもうまくいきません。

なにが、どううまく行かないのか説明してくれないと、こっちも何も書けないです〜

あてずっぽでRCXにファームウエアーは入っているの? とか、IR-Towerは
どのポートに繋がっているの?とか。 電池は新しいの? とかは書くことは
出来るけど、やはり 出来るだけ細かく&詳しく説明してください。


[1710] Re^2: spirit.ocxをつかってVB6でのRCX1.0の操作 投稿者:MIC 投稿日:01/09/19(Wed) 13:48
レスありがとうございます。
原因はわからないのですが、2,3日して同じプログラムで
やってみたら動きだしました。(w
お騒がせしてすみませんでした。
またわからないことがあったらご迷惑かけると思いますが
よろしくお願いいたします。
今度は詳しく記入したいと思います。