Cロボ
現在は他のロボットもいろいろあります。Squeak/Scratch+ロボットに関する情報
にまとめていますので、そちらもご覧ください。
スクイーク
を使ってCロボ・かたつむり
というロボットを自由に動かすことができます。
世界聴診器
が外の世界の情報をスクイークの中に取り込む手段だったのに対して、Cロボはスクイークの中から外の世界に働きかける手段になります。
Cロボは2つのモータと1つの光センサを持っています。たまたまカタツムリの形をしていますが、分解して別のことに使ってもかまいません。モータの代わりに電球やリレーをつけても良いですし、光センサの代わりに温度センサや電圧センサをつけてもよいのです。
ジョイスティックで動くCロボの動画 (なにぼうくん提供)
ムシキング リモコンバトル制御例
準備
Cロボはいくつかのお店から購入できますが、スクイークに必要なもの一式をセットにしたCロボ・スクイークキット
をお勧めします。Cロボ・スクイークキットは、アカデミア で販売しています。他から購入した場合はフラッシュROMの書き換え
を参照してください。
スクイークはスクイークランド 2005J 以降を使います。まだインストールしていない場合は、スクイークランド からダウンロード してインストールしてください。
動作確認
Cロボとパソコンをシリアルケーブルでつなぎ、電源を入れます(USBポートに接続する場合は変換ケーブルを用いてください)。
スクイークを起動し、以下のデモプロジェクトを開いてください。
左上の「シリアルポート リセット」ボタンを押します。もしポート番号がCOM1でない場合は、その上にある[シリアルポートの 番号=][1]の数字を変えてからリセットしてください。
[ジョイスティック][ロボットを操縦]のスクリプト
をチクタクします。ジョイスティックを操作して、上の動画のようにCロボが前後左右に動けば成功です。
動作を確認したらスクリプトをポーズしてください。もし「Error: a primitive has failed」のノーティファイアが開く場合は、シリアルポートの番号を確認してリセットしてください。
同様に他のスクリプトも試してみてください。一度にチクタクできるスクリプトはひとつだけです。 使い終わったら必ずポーズしてください。
自分で作品を作るときは以下のプロジェクトを開いてください。
作り方は通常のスクリプトとほとんど同じですが、実際のCロボと連動するのは左上にあるロボットのモーフ
だけです。このビューワ
を開いて、[スクリプト]カテゴリにある[進める:]や[回す:]などを[基本]カテゴリの[を進める]や[を回す]の代わりに使います。このとき、これらのタイル
を直接ドラッグするのではなく、まず[空スクリプト]をドラッグしてから、そのスクリプトの上にタイルをドラッグします。そうしないと[進める:]や[回す:]自体のスクリプトが開いてしまいます(もしスクリプトの内容を見たい場合は直接ドラッグしてください)。
使い終わったら、Cロボの電源を切り、スクイークを終了してください。
ご質問等は掲示板
へどうぞ。
FAQ
スイッチを入れたのですが、パイロットランプは点くのに動きません。なぜですか。 組立説明書はタミヤのものを流用していますが、Cロボ・スクイークキットは、もともとの自律ライントレースロボットをPC上のスクイークからリモート制御するロボットに改造したものです。それなので単体では動きません。上の動作確認をお読みください。
基板上のLEDは制御できるのですか。 LEDは3つあり、中央の1つはパイロットランプなので電源に連動します。左右の2つはスクイークの[ロボット][ライト点灯]、[ロボット][ライト消灯]タイルを使って同時に明滅できます。
パソコンから切り離して自律動作できないのですか。 別途、C言語開発キットを入手して、ファームウェアを書き換えれば可能です。現在はこのファームウェアをスクイークで書くことはできませんが、それを考えるのは面白いチャレンジだと思います。
有線でなく無線で操縦できないのですか。 シリアルの線を無線化する装置を使えば原理的には可能です。これには、たとえばI・OデータのWNA-RS などがあります。「ロボット 無線操縦」などのキーワードで検索してみてください。
なぜ複数のスクリプトを同時にチクタクできないのですか。 複数のスクリプトから同時に同じロボット(シリアルポート)へ命令を送られた場合、ロボットがそれを処理できずに暴走してしまうことがあります。このようなときも問題が起こらないように排他制御を行うべきですが、今はそうなっていません。すみません。ロボットに対する命令でなければ、並列して動かしてもかまいません。
スクリプトに書いたタイルの処理が飛ばされることがあります。なぜですか。 スクリプトの実行頻度は時計ボタンの長押しで設定できますが(デフォルトは8回/秒)、スクリプト内のタイルは瞬時に実行されます。しかし、命令を受けたロボットが実際に動作するには時間がかかるため、これを処理しきれずに飛ばしてしまうことがあります。これを回避するには、スクリプトを工夫して、ロボットの動作が終わるまで次の命令を待つ必要があります。
シリアルのプロトコルと送信コマンドを教えてください。 プロトコルは、転送レート 9600bps、データビット 8、ストップビット 1、ノンパリティ、フロー制御無しです。コマンドは以下の通りです。これらのコマンドを送ると、戻り値として、光センサの値が0-4095の範囲で返ります。これらのコマンドは通常はスクイークからロボットのスクリプトを介して、間接的に送られますが、シリアルポートに直接送ってもかまいません。デモプロジェクトの記述を参考にしてください。
左前進 7 前進 8 右前進 9
左回転 4 停止 5 右回転 6
左後退 1 後退 2 右後退 3
LED点灯 a LED消灯 b
アクセスログ解析
Links to this Page
世界聴診器をめぐる冒険 last edited on 21 January 2010 at 11:27:23 pm by 61.245.57.81.er.eaccess.ne.jp
スクイーク last edited on 18 December 2006 at 12:31:38 am by 192.168.1.8
Cロボ・かたつむり last edited on 6 May 2006 at 7:34:15 pm by 192.168.1.8