2010-07-01から1ヶ月間の記事一覧

NXC カラー・ライトセンサー倒立振子 クララ計画2

なんとかカラーによって前進、後退をするプログラムを製作した。 光量初期値をまずRUN直後にとり、その後の値の大きさで前後に動く。 グレーが初期値であるならばより明るい色で前進、暗い色で後退となるはずである。課題1 これにどのようにカラー/垂直セ…

カラーセンサーを使って倒立振子を作る。クララ計画

たってくれーということでクララ計画。ジャイロセンサーを使った倒立振子は ジャイロで直接角度が計算できるので常に90度で立っている状態にしているのだろう。 そのためのこーどとしては多分「倒れたら失った角度を取り戻すようにするコード」 RoteteMoter(…

ゲーテ2(より強い光に向けて進み続けるプログラム) 開発 ファイナル

分かりにくい表現を整理して完成。 NXCではFOR文の中にIFを入れることはできないのかと思ったがそんなことなかった。 普通に行けた。配列とTASK以外は特にC言語との違いを感じることは難しいのではないか。#define POW 60#define TIME 100int hako[9];int ma…

ゲーテ2 開発4

ようやっと最も明るい方向を向いて走るようになった。 行動部のコードは美しくないが最も分かりやすいように書いた。 美しくないIFの連続とGOTO文で溢れている。その過程でMAX値判断部の繰り返しがおかしいことに気がついた。 ここが問題だったぽい。 #defin…

ゲーテ 開発3 配列ArrayInitを得とく

配列にArrayInitを加えた。 nxcは配列の仕様をかえるかえる言いながら現在まで変わっていないらしい 。 コードセグメントでなく、タスク内(ローカル内)でARRAYINITの宣言をしないと配列が使えないらしい。試してみると確かにArrayInitを使用することにより…

ゲーテ2 開発2

ゲーテ2は 1光量を取得 2MAX値を取り出す 3MAX値をとった方向へ向く 4真っ直ぐ進む というプログラムだが、3なんとかmax値と比較してfor分に置ける繰り返しを見せるようになった。 あと少し。 駄目だった原因はwait値が(変数*100)という数値を取る…

ゲーテ2

配列を利用した形で作り替えてみたけど走り続けてしまうぞ・・・。 なぜなのかわからない。考えられる原因 maxがうまく機能してない→MAX値が0から変わらない時がありうる。△ whileがうまく機能してない→なぜかずうっと進み続けるのでありうる hakoがうまく…

LEGO nxc カラーセンサーをライトセンサーとして使用し、より明るい方を選んで動くロボットプログラム

より明るい方向を選んで進むロボット「Goethe(もっと光を!鎧戸を開けてくれ!)」 本当は配列を10個ぐらい使って10方向の中からより明るい方へ進むロボットを作りたい。 が、現状の学習能力ではIFのみを使ったものしかつくれない。よって2方向の光量を確認…

nxc 配列が機能しているかチャレンジ ついでに多次元配列も

配列が機能しているかディスプレイ上で試してみる。 以下はタスクhako.nxctask main() { int hako[4];hako[0]=1; hako[1]=2; hako[2]=3; hako[3]=4;while(true){ NumOut(80,LCD_LINE6,hako[1]); }} 機能した。it works!! 配列にセンサー値を蓄えておいてあと…

nxt colorsensorをつかったプログラム

マインドストームNXT 2.0のカラーセンサーを光センサーとして利用するNXCコードを 日本語で解説したページがないために書いておく近代科学社の実践ロボットプログラミング(藤井隆司他著)はNXT1.0対応で2.0について記述がないのが苦しいところ。 でもこれし…