[2069] Makefileについて質問です 投稿者:yuuki 投稿日:02/11/14(Thu) 16:52
はじめまして。
私はlegOS0.2.4を使ってプログラミングしているのですが、
その際にmain.cというファイルとsub.cという2つのファイルで作成しました。
質問なのですが、legOS環境下でこの2つのファイルをリンクさせて1つの.lxファイルを作ることは可能でしょうか?
また、可能でしたらMakefileをどのように修正すればよいのでしょうか?
[2070] Re: Makefileについて質問です 投稿者:JinSato 投稿日:02/11/14(Thu) 22:03
yuuki さんへ
二つのファイルから1つの.lx ファイルを作ることは出来ますよ〜
これって、Makefile の基礎の基礎みたいな部分です。
legOS を使おうと思ったのだったら、ここはホビーユーザー(たぶん)の醍醐味です、がんばって書籍などをあさってみましょう。
ま、いまだと、Makefile や make の使い方などGoogleで検索す
ると一発で見つかると思いますし、それくらいは調べてみましょう〜。
ということで、yuuki さんが作っているものなど、デジカメで
撮影して http://207.236.16.161/cgi-local/joyful.cgi の方の
掲示板に貼り付けてくれるとうれしいです。
[2071] Re^2: Makefileについて質問です 投稿者:yuuki 投稿日:02/11/15(Fri) 11:15
JinSatoさん
レスありがとうございます。
なんとかファイルのリンクには成功したのですが、へんなエラーがでて困っています。
もしよろしければlegos上でファイルをリンクさせたmakefileのサンプル等をご紹介していただければ、と思います。
私がつくったものはキャンディソーターです。
MINDSTORMのCDに例として挙がっていたものをそのまま作りました。
画像は…媒体がないのですみません。
[2076] Re^3: Makefileについて質問です 投稿者:JinSato 投稿日:02/11/15(Fri) 12:27
> もしよろしければlegos上でファイルをリンクさせたmakefileの
> サンプル等をご紹介していただければ、と思います。
legos と makefile をキーワードでGoogleで検索すると
いっぱい出てきますよ〜。
make や makefile は legOS レベルのソフトを使おうとする人
だったら、前にも書いたとおりに基礎の基礎なので、ちょうど良い
機会だから自分で書籍やマニヤルを調べて(掲示板に聞くという
レベルの調べるではなくて)実力をつける良いチャンスです、がんばっ
てください。
[2073] Re^3: Makefileについて質問です 投稿者:">mac 投稿日:02/11/15(Fri) 11:48 <URL>
> なんとかファイルのリンクには成功したのですが、へんなエラーがでて困っています。
「へんなエラー」と表示されたんですか〜 (^O^)
「お願い事」する前に、それをそのまま
http://www.google.co.jp
に入れましょう。
それでわからなければ、そのままここに、C&Pして貼ってみましょう。
makeが良くわからないなら、
make -n
で、何をやっているか見ましょう。
-nがわからなければ、
その前にmakeのManualを読むべきかもしれません。
ファイル2個なら、makeを使わなくたっていいんですよ。
手で1つづつコマンドを入力してみましょう。
それができなきゃ、自分でMakefileを造れるわけないんだたら。
まず、「自分に頼る」足掛かりを付けましょう。
[2072] 追加 投稿者:yuuki 投稿日:02/11/15(Fri) 11:46
makefileの私の編集内容についてですが
demoのmakefileの
PROGRAMS=helloworld.lx rover.lx linetrack.lx robots.lx c++.lx
# extra dynamic sources
DOBJECTS=
all: $(PROGRAMS)
の部分を
# ↓実行ファイル名
PACKAGE = main.lx
# ↓ソースファイル
SRCS = main.c sub.c
# ↓ヘッダファイル
HEADS = main.h sub.h
OBJS = $(SRCS:.c=.o)
$(PACKAGE): $(OBJS)
$(CC) $(CFLAGS) -lm $(OBJS) -o $@
$(OBJS): $(HEADS) Makefile
としました。
この際に表示されるエラーが
../../../../h8300-hms/bin/ld: cannot open crt0.o: No such file or directory
collect2: ld returned 1 exit status
です。
前記があいまいな内容で失礼しました。
[2074] Re: 追加 投稿者:">mac 投稿日:02/11/15(Fri) 11:54 <URL>
> ../../../../h8300-hms/bin/ld: cannot open crt0.o: No such file or directory
> collect2: ld returned 1 exit status
> です。
> 前記があいまいな内容で失礼しました。
投稿がクロスしてしまいました。
やはり「変なエラー」じゃなかったようですね。
そのまんまです。
「crt0.oがない。」
さあ、今度は、crt0.oってなに?ですね。
[2075] 追加の追加 投稿者:">mac 投稿日:02/11/15(Fri) 12:23 <URL>
> > ../../../../h8300-hms/bin/ld: cannot open crt0.o: No such file or directory
Errorをはいているのは、ldというコマンドで、
makeじゃないって言うのは、わかってますか?
Makefileの問題じゃないです。
[2066] 送信可能範囲を超えたときについて。 投稿者:taka 投稿日:02/11/13(Wed) 17:32
はじましてtakaと申します。
私は今、マインドストームを使い、WEB上で遠隔操作をしようと思ってるのですが、実際に(Winsock,Net Meetingを使った)コントローラーを作ってみて動かしてみました。その際にIRタワーからRCXに命令をして、マインドストームを動かすことはできたのですが、問題になったのが、IRタワーの送信可能範囲を超えた場合に、元の場所に戻るプログラムを作りたいと思っているのですが、何かいい方法はあるでしょうか?いい案がありましたら、上げてもらえると嬉しいです。 プログラムはVB6.0プロフェッショナル版を使用しています。
さらにIRタワーをUSBのIRタワーに変えて実験したいです。その際にどのようにUSBIRタワーをVBに組み込めばよいのか教えてください。過去ログを読み、SDK2.0をダウンロードしました。manabuさんの記事を読み、ロボットマガジンの23巻を買いSDKを使ってみたのですが、どうしてもVBのコンポーネントにLEGO VPBrick2.0 Type Libraryを追加できません。何かよい方法があったら教えてください。よろしくお願いします。
OSはWINDOWS98です
[2067] Re^3: 赤外線通信プロトコルについて 投稿者:">mac 投稿日:02/11/13(Wed) 20:06 <URL>
> IRタワーの送信可能範囲を超えた場合に、
> 元の場所に戻るプログラムを作りたいと思っているのですが、
> 何かいい方法はあるでしょうか?
VBについてはパスします (^^;
PCからは命令を各Messageに割り当て、
一定時間ごとに繰り返し送ります。
RCXの方では、Messageを連続して受け取れる場合は、
そのMessageを解釈して所定の動作を行いますが、
Messageが途切れてしまった場合、
それ以降のMessageに従わず、
ホームポジションに戻るようにしたら良いと思います。
実際には、大きな円の中で動くようにして、
円をライントレースして戻ってくるのが良いかな...
ホームポジションには杭が立ってて、止まるとか...
ホームポジションに戻ってからMessageの受信を再開します。
イメージとして、
#define類適当
int必要に応じて;
task timeout()
{
while(true) {
Sleep(MESSAGE_WAIT);
t_limit++;
}
}
task mes_receive()
{
t_limit = 0;
while(true){
until(Message() != 0) {
if (t_limit > BREAKED) {
break;
}
t_limit = 0;
combuf = Message();
}
}
task main()
{
t_limit = 0;
start time_out;
start mes_recieve;
while(true) {
switch(combuf) {
case 0: // Back to home
case 1: // 以下、コマンドインタプリタ
....
# 書きっぱなし、No Debugなのであくまでイメージです。
Message1個の命令で動く時間を短めに設定しないと駄目でしょうね。
例外処理使えばもっとスマートかも...
[2068] Re^4: 赤外線通信プロトコルについて 投稿者:">mac 投稿日:02/11/13(Wed) 22:29 <URL>
ClearMessage()するのを忘れてますね。
...で、どこに挿入するのでしょう(配点5点):p
[2057] (削除) 投稿者:(削除) 投稿日:02/11/06(Wed) 14:18
(削除されました)
[2058] 乱数発生 投稿者:">mac 投稿日:02/11/06(Wed) 15:26 <URL>
> 皆さんはどの様にしてlegOSでのプログラムの書き方を学んでいるのでしょうか??
ちょっと古くなってしまいましたが
http://www.ylw.mmtr.or.jp/~arcadia/
あとは、実際に書かれたプログラムを読むのがよろしいかと。
http://www02.so-net.ne.jp/~abuku/irrc/index.html
http://www.asahi-net.or.jp/~qx5k-iskw/lego/yamete.html
> また今、legOSで乱数を使いたいと考えているのですが、検索してもHITせず、もしかしてlegOSには乱数が無いのかなぁって思っています。
一部そういったものを用意しているOSが無いわけじゃないけど、
OSの問題じゃなくって、ライブラリの話ですからね。
legOSで引かず、「乱数発生」、「乱数発生 合同法」などで、
検索すれば、たくさん当たると思いますよ。
http://www.kinyuu.co.jp/report/rep000303.htm
まあ、プログラムで発生できるのは、「擬似乱数」ですが...
どんな乱数がほしいのでしょうか?
その前にどんな乱数をご存知でしょうか?
使い方によっても工夫が要ります。
0-7の整数がほしいのと、0-1の浮動点少数がほしいのでは、
同じ一様乱数でも、だいぶニュアンスが違いますね。
[2059] Re: 乱数発生 投稿者:loversoul 投稿日:02/11/09(Sat) 11:34
macさん お返事ありがとうございます。
0〜1の浮動点少数での一様乱数を作ってみて
モンテカルロ法を使ってRCXにトレースさせてみようと考えています。
C言語ですと
a=(float)rand()/32767;
のようにして乱数を発生させれるのですが、RCXでは上手くできなく行き詰まっています。
乱数を発生させるソースプログラムというのはmacさんはご存知でしょうか?
[2060] Re^2: 乱数発生 投稿者:">mac 投稿日:02/11/09(Sat) 16:25 <URL>
> 0〜1の浮動点少数での一様乱数を作ってみて
> モンテカルロ法を使ってRCXにトレースさせてみようと考えています。
random walk simulationをしようとしているのでしょうか?
まず、RCXでdouble, floatを使うのは、
それしか方法のない場合以外止めたほうがよいです。
> 乱数を発生させるソースプログラムというのはmacさんはご存知でしょうか?
先にあげた検索、Link先にたくさん載っていたはずですが (x_x)
[2051] 皆様はじめまして&はじめての質問です。 投稿者:あっちん 投稿日:02/10/30(Wed) 16:49
Mindstorms情報局の皆様、管理人のJinSato様、はじめまして。
私は関西のへっぽこな大学に通うあっちんというモノです。
Mindstorm暦は...3ヶ月くらいでしょうかね...短いですね...
Legoいいですね。昔遊んだLegoで大きくなっても遊べるとは非常にありがたいものです。
さて、話題は変わりますが...
私は今、JAVA PRESS vol.24の記事『Jiniロボット開発 for MINDSTORMS』の内容を再現しようといろいろとやっています。
(記事の内容は、Linux上でMindstormsをSerial-IR-TowerでJava、Jiniを用いて遠隔操作するというものです。)
現在私は、Win2000上で作業を行っており、
・Serial-IR-Tower
・RCX2.0
・Java Communications AIP
・RCX Java API(lejOSではないです。)
・Jini1.1
・j2sdk1.4.1._01
を用いました。
記事と大きく違う点は、記事はLinuxで実行しているので、シリアルポートを利用できるようにするためにRXTXというパッケージを使用している点です。(winでは必要ないみたいです。)
それで、プログラムをコンパイルはできたのですが、実行してみると
>Caught java.lang.NullPointerException: name can't be null while loading driver com.sun.comm.Win32Driver
>warning: no ports found - make sure javax.comm.properties file is foundno available serial ports found - check if other apps are in conflict
という例外が出ました。
Win32Driverについての例外が発生しているのがわかります。
それから、IRタワーのPortが認識されていない、または無いとか警告が発せられています。
エラーの前者のほうは、CommunicationsAPIのファイルに対するエラーだということがわかります。
訳してみると『com.sun.comm.Win32Driver ドライバーをロードしている間、nameはnullにはなりえません』ですね(あってますか?
CommAPI のファイルは
j2sdk1.4.1_01というフォルダにJavaをインストールしているので
・comm.jar ---> j2sdk1.4.0_01\jre\lib\ext
・javax.comm.properties ---> j2sdk1.4.0_01\jre\lib
・win32com.dll ---> j2sdk1.4.0_01\jre\bin
にインストールしました。(これは各本やwebサイトに書いてあるとおりにしました。)
また、エラーの後者のほうは、意味がわからないです。
こちらも訳してみると『警告:ポートが見つかりませんでした。- javax.comm.properties ファイルが利用可能なシリアルポートを発見できませんでした。- 他のappsが矛盾していないかチェックしてください』
(何か変な訳になってしまった...
IR-Tower以外はSerialPortに接続していないのに、Portが他のappsと矛盾してないか〜とか、ポートが無い〜とか言われてます...
記事を書かれた方(杉山さんと言う方です。)にメールをして問い合わせてみましたところ、アドバイスをもらいましたが、動作しませんでした。
過去ログも見ましたがそれらしい記事は発見できませんでした。
そこで、皆様のお知恵を貸してください。お願いします。
また、記事を読んでやってみて動いた〜という方おられましたら教えてください。お願いします。
長い駄文でわかりにくくてすいませんでした。
[2056] Re: 皆様はじめまして&はじめての質問です。 投稿者:KUROI Mao 投稿日:02/11/05(Tue) 00:22
こんばんは。黒井と申します。
> さて、話題は変わりますが...
> 私は今、JAVA PRESS vol.24の記事『Jiniロボット開発 for MINDSTORMS』の内容を再現しようといろいろとやっています。
> (記事の内容は、Linux上でMindstormsをSerial-IR-TowerでJava、Jiniを用いて遠隔操作するというものです。)
おお!そんな記事があったのですか。JavaPRESSは全然読んで
無かったので見落としました。その記事面白いですか?
(そういや、XMLPressとかでもJava+Mindstormsとか
UML+Mindstorms(これはJINさん関係者でしたよね)とか
ありましたっけ)
> それで、プログラムをコンパイルはできたのですが、実行してみると
省略…
> CommAPI のファイルは
> j2sdk1.4.1_01というフォルダにJavaをインストールしているので
> ・comm.jar ---> j2sdk1.4.0_01\jre\lib\ext
> ・javax.comm.properties ---> j2sdk1.4.0_01\jre\lib
> ・win32com.dll ---> j2sdk1.4.0_01\jre\bin
> にインストールしました。(これは各本やwebサイトに書いてあるとおりにしました。)
j2sdk1.4.0_01\jre\binにPATHは通ってますか?
> また、エラーの後者のほうは、意味がわからないです。
> こちらも訳してみると『警告:ポートが見つかりませんでした。- javax.comm.properties ファイルが利用可能なシリアルポートを発見できませんでした。- 他のappsが矛盾していないかチェックしてください』
> (何か変な訳になってしまった...
> IR-Tower以外はSerialPortに接続していないのに、Portが他のappsと矛盾してないか〜とか、ポートが無い〜とか言われてます...
上記のDLLにPATHが通っているとして(つまりCommAPIの
インストが間違ってないとして)、プログラムのPORT番号
(ってプログラムに記載するのでしょうか?その本を見て
いないので内容が分からない)が合ってますか?実はCOM-1には
内蔵モデムが入っているにもかかわらず、COMM-1を指定している
ってことはないですか?
> 過去ログも見ましたがそれらしい記事は発見できませんでした。
> そこで、皆様のお知恵を貸してください。お願いします。
> また、記事を読んでやってみて動いた〜という方おられましたら教えてください。お願いします。
私はJavaでPCからRCXをリモートコントロールするソフトを
提供しています。昔一度JavaWhatsNEWに投稿したり、JINさんの
ホームページで紹介してもらったりしたところ、200ヒットくらい
ありました。つまり日本ではMindstorms+Javaでなにかできないかと
考える人は数百人程度しかいないと思われます。その少ないパイの中で
さらにJINIをする人を考えると、該当者はほとんどいないのではないかと
思います。つまりWindows+JINI+Mindstorms(しかも1.5)で
かつこのMindstorms情報局を見る人は皆無なのではないかと
思います。つまりあなたがパイオニアってことです。頑張ってください。
[2053] Re: 皆様はじめまして&はじめての質問です。 投稿者:JinSato 投稿日:02/10/31(Thu) 02:54
回答ではありませんが、こういうエラーの場合は
どこか設定が間違っているか、コードがおかしいか、はたまた
環境設定が悪いなどが考えられますので
きわめてオーソドックスなトラブルシューティングを
行うのが王道で
1:エラーを出すルーチンだけを摘出してテストの絞込みを行う。
たとえば、mac さんが書いてくれたURLにあったルーチンのような
シンプルなコードでテストしてみると良いと思います。
2:エラーメッセージが出ているわけなので
そのメッセージから原因を想像し、それをリストアップし紙などに
書いてみて、1つ1つ、それの裏をとっていくという作業をする
という。
3:参考にしている書籍とまったく同じ環境を作る。
ということを、自分の諦めがつくまでやってみるという感じでしょうか。
あきらめがつく前に原因を発見できれば、それはそれで貴重な体験
20時間くらい寝ないで、あ〜でもない、こ〜でもないと試してみる
て、徹夜を繰り返して体調が悪くなるくらいがんばってみてもだめ
なときもあるかもしれませんが、そこまで行かないうちに
原因を見つけられるような気がします。
がんばってください。
[2054] Linuxを入れましょう 投稿者:">mac 投稿日:02/10/31(Thu) 16:53 <URL>
> 3:参考にしている書籍とまったく同じ環境を作る。
これは遠回りのようで、もっとも近道なことはよくありますね。
筆者は、自分の中では常識になってしまっているので、
些細だけど重要な注意点を強調しないことがあります。
とりあえず、一言一句ぴったり環境、状況を合わせて、
再現してみると、それまでの苦労が、うそのように動いたりします。
で、いっこづつ、自分のオリジナルに戻してみると、
突然動かなくなって、とんでもない「勘所」を、
外していたことを「発見」するんですね。
今回はOS自体が違うので、
スムーズにマイグレーションできないとは思いますが、
それでも、別のシステムを経験することも、
「付録」として価値がありますし、
何しろ、ハードデスクさえあまっていれば、
Linuxは無償で導入できるんだから、
やってみる価値はあるんじゃないでしょうか?
[2052] エラーメッセージで検索 投稿者:">mac 投稿日:02/10/30(Wed) 18:38 <URL>
あっちんさんはじめまして。
> Legoいいですね。昔遊んだLegoで大きくなっても遊べるとは非常にありがたいものです。
ですね。
もっとも私がLEGOをはじめたのは、子供ができてからなんですが (^^)
> >Caught java.lang.NullPointerException: name can't be null while loading driver com.sun.comm.Win32Driver
> >warning: no ports found - make sure javax.comm.properties file is foundno available serial ports found - check if other apps are in conflict
別の記事でtinyVMに触れましたが、実はJAVAしてません (^^;
で、的確な答えにならないのですが、
googleにエラーメッセージをそのまま突っ込むという、
「暴挙」は試してみたでしょうか?
結構あたるんですよね。他の事例で何度か救われました。
http://lists.dalsemi.com/maillists/java-powered-ibutton/2002-June/002460.html
http://java-house.jp/ml/archive/j-h-b/048783.html