« 2011年11月 | トップページ | 2012年2月 »

2011年12月

Mac を Windows コンピュータに直接接続する

macosからiodataのlandiskに接続できないことがある。

その場合の解決方法がアップルのサポートページに書かれている。

備忘録として、ここにも書いておく。

//////////////////////////
/////Mac OS X 10.6 Help

Mac と Windows コンピュータを接続するには:
「Finder」で、「移動」>「サーバへ接続」と選択します。

「サーバアドレス」フィールドに、コンピュータのネットワークアドレスを次のいずれかの形式で入力します:

smb://DNSname/sharename

smb://IPaddress/sharename

画面の指示に従って、ワークグループ名およびユーザ名とパスワードを入力し、アクセスする共有フォルダを選択します。

| | コメント (0) | トラックバック (0)

Mindstorms NXT2.0をUbuntuでプログラムする一つの方法

あなたが、手軽にロボットをデザインして動かしてみたいのなら、Mindstorms NXT2.0はベストな選択だと思う。

Mindstorms NXT2.0にはロボットの形をつくる構造部品、ロボットが世界とインタラクションするための各種のセンサーとモーター、そして、センサーとモーターをコントロールするNXTブリックと呼ばれる小型のコンピュータが含まれる。

さらに、開発環境としてNXTーGがついてくる。

NXTーGはWindows用のグラフィカルプログラミングツールで、直感的にロボットの振る舞いをプログラムできる。

bluetoothにも標準で対応しており、難しいことを考えずに、ものすごく簡単にプログラムできる優れものだ。

しかし、一般的に、NXTーGのようなグラフィカルなプログラミング言語は、C言語やPythonのようなテキストでプログラムする言語に比べて、同じ内容をプログラムするために占有する画面が大きくなるというデメリットがある。

そのデメリットを解消して、快適にロボットをプログラムする方法を調べてみた。

実現したいのは、次の3つだ。

・テキストでプログラムできること
・Ubuntu上に開発環境を構築できること
・bluetoothでPCとNXTブリックが通信できること

調べた結果、

・開発言語はNXCが人気が高い
・NXCの開発環境であるBricxccはWindowsだけでなくUbuntuにも対応している
・bluetoothには、nexttoolというツールが対応している

ことがわかった。
なかなか良い。

NXCはC言語に似た文法をもつ言語だ。

例えば、

・少しの時間(500ms程度)、左前方に進み、
・その後、少しの時間(500ms程度)、右前方に進み、
・その後、少しの時間(500ms程度)、バックして止まる

というロボットの振る舞いをプログラムする場合は、次のようなコードを書く。

task main()
{
        OnFwd(OUT_A, 75);
        Wait(500);
        Off(OUT_A);
        OnFwd(OUT_B, 75);
        Wait(500);
        Off(OUT_B);
        OnRev(OUT_AB, 75);
        Wait(500);
        Off(OUT_AB);
}

このコードをロボットが実行するまでの手順は次のようなものだ。

まず、このコード(test.nxc)をコンパイルする。

nbc -O=test.rxe test.nxc

これで実行形式であるtest.rxeができる。

そのtest.rxeをNXTブリックにダウンロードして実行すると、上のコードのとおりにロボットが動く。

ダウンロードにはUSBケーブルを使ってもよいが、今回はbluetoothを使う。

今、NXTのデバイスIDが、00:00:00:00:00:00であるとすると、

test.rxeをNXTブリックにダウンロードするには、次のコマンドを実行する。

nexttool /COM=BTH::NXT::00:00:00:00:00:00::5 /BT -download=test.rxe

ダウンロードの完了後、次のコマンドにより、NXTブリックにダウンロードしたプログラムを実行すると、ロボットが上のコードの振る舞いどおりに動く。

nexttool /COM=BTH::NXT::00:00:00:00:00:00::5 /BT -run=test.rxe

今回は一通りの振る舞いを実行すると、ロボットが停止するが、ループをプログラムした場合などに、今動いているプログラムを止めるには、次のコマンドを実行する。

nexttool /COM=BTH::NXT::00:00:00:00:00:00::5 /BT -stop

//////////

Ubuntuを使ってNXTをプログラムする方法に関する情報は少ない。

まして、

 ・Ubuntu
 ・NXC
 ・bluetooth

をまとめて直接説明しているドキュメントは、今のところ見つからないのだが、

とても役に立ったのは次の2つのページだ。

開発ツールについては、このページを参考にすると良い。

Ubuntu上に開発環境を構築する方法については、このページを参考にすると良い。

| | コメント (0) | トラックバック (0)

« 2011年11月 | トップページ | 2012年2月 »