ワイヤレスモデム(Rednet)をテーマにするつもり
黒曜石の話も終わり、次は何をテーマにチュートリアルを作るか迷っていたのですが、
コメントでワイヤレスモデムという希望があったので、これを次のテーマにしようと思います。
内容案
- 前準備、クラフト編
- ワイヤレスモデムのクラフト
- ワイヤレスタートルのクラフト、コンピュータにワイヤレスモデム取り付け
- RednetAPIの概要
- CCのワイヤレスシステムの概要
- チャンネルの使い分け、Computer IDと予約済みチャンネル
- RednetAPIのよく使う関数
- モデムの認識 rednet.open(方向)
- メッセージ送信 rednet.send(チャンネル, メッセージ)
- メッセージ受信 rednet.receive([待ち時間])
- ブロードキャスト(全コンピュータへ送信) rednet.broadcast(メッセージ)
- 上記関数を使った具体例1
- コンピュータ側で入力した文字をタートル側で表示する
- 上記関数を使った具体例2
- コンピュータ側で入力した文字列(
turtle.forward()
)を受信したタートルが関数として実行する。- loadstring()を最初に使って、エラーでいちいちプログラムが止まるの困るよねという流れで、xpcall()の話をしましょう。
- コンピュータ側で入力した文字列(
- 具体例3?
- 僕の作ったh2touchpanel APIをさらっとさりげなく出して、ほーらタッチパネルを使ってラジコンみたくタートルが動かせるよとか。
- 具体例4?
- メッセージを受信したら受信したことを報告する(つまりオウム返しする)関数を作っておくと便利かな。
- 具体例5?
- メッセージ受信のときに受け取る通信距離の値を使って面白いことができないかな。
- GPSを使わないのに、タートルが勝手に判断してコンピュータの元に戻ってくるよとか。
- タートルがその場でちょっとだけ前後左右に動いて、通信距離が短くなる方向を判断、その方向へ動き出すイメージ。
- そういえばGPSもやらなきゃね。
- 3点からの距離を元に現在の自分の位置を計算するアルゴリズムの話は蛇足かな?
- たしか公式ForumにGPSタートル自動設置(自動的に移動する)するプログラムがあったはず。
- GPSって便利すぎて、あまり使いたくなかったり。実際今の環境ではGPS導入してませんw
第1回目は、前準備と概要でちょうどいいかな。
第2回目は具体的なコードを示しつつ良く使う関数を紹介する形で。
3回目以降はまだ未定、行き当たりばったりで進めていくつもりです。
GPSについてはさらっと流してしまうのもありかなぁ。ネタ的には、距離計算など話を膨らませやすいのですが……。
ご意見お待ちしております。