2011-02-01から1ヶ月間の記事一覧

倒立振子2

全然ダメ。ぴーぴー行って止まる。 #define GYRO_Offset 590 int status = 0; int x = 0; float P = 1; float kp = 0; float D = 0; float kd = 0 ; int syuturyokukakudo = 0; int genzaikakudo = 90; task main() { SetSensorHTGyro(S4); int pow =0;while…

倒立振子へ戻って

#define GYRO_Offset 590 int status = 0; int x = 0; float P = 1; float kp = 0; float D = 0; float kd = 0;int kakudo = 0; int furuikakudo = 0; int genzaikakudo =90; int furuikakudo =0; task main() {SetSensorHTGyro(S4); int pow =0; while(tru…

gyro

最も簡単なプログラムを書いてみても数値爆発は起こる。 しかし下記のような+60では起こらなかった。 −440とすると何故か爆発してしまう。 #define TIME 500int status = 0;int kekka = 0;int x = 0;task main(){SetSensorHTGyro(S4);while(true){stat…

ジャイロセンサー1044 起動。

ジャイロセンサーを装着してみたが、なんの値を返しているか不明。 #define TIME 500#define S1 0int status = 0;int kekka = 0;int x = 0; int y = 0; int z = 0;task kount(){while(true){status=Sensor(IN_4);NumOut(60,LCD_LINE3,status);NumOut(60,LCD_…

Mini Displayport Male and USB Male Audio to HDMI Female Converting Adapterで2009Mac BookProをレグザへつなぐ

秋葉館で購入したMONOPRICE社のMini Displayport Male and USB Male Audio to HDMI Female Converting AdapterでマックブックをシャープLC46GXへつなぐ。成功。音声の再生も確認。 アップル純正mini display port to HDMI のコネクターである場合、少し古い…

NXT加速度センサーMS1040 起動。

NXT加速度センサーが安かったので購入。 1時間格闘で数値の取得に成功しますた。 なぜかセットセンサーLOWSPEEDを事前に書いて置かなければ起動しない?? これに気がつくのに時間がかかった。実はHT社のサイトに行けばよかったという・・。 NXCガイドにbVal…

finally I found LEGO hitechnic irlink sencer nil1046 code  NXCでの赤外線送信確認

finally, I found nil1046 code any way. THX to CH,Chen, now I can use NXT in huge system robot,which has more than 4 motors like intlligent-block excavador or something :) But,I haven't understand why It can work. なんとかIRLINKをNXC上で使…

LEGO 8043インプレッション

部品の種類分けを含めて6時間ほどかけて完成。対策後のヴァージョンであるため可動に問題はなかった。機構はモーター出力4つを3系統に振り分けておこない残る1系統のモーターで出力先を切り替えている。これにより合計6chの操作を行うことが出来るようにし…

if の中身

除算%のあまりによって反応を繰り返すようにしたけど cはIF内部で変数を%出来なかったっけ? これにより変数kekkaを追加#define TIME 500int status = 0; int kekka = 0;task kount(){ while(true){ NumOut(60,LCD_LINE3,status);if(Sensor(IN_1)==1){status…

NXC TASKをwhile true 内部で繰り返すことは出来ない。

NXCに存在するTASK関数?であるがやはりwhile true 内部で繰り返すことは出来ないようだ 組んだTASK先でwhile true すればよいだけのことだが、voidによる関数化の扱いとは違うようだ。 #define TIME 500int status = 0; task kount(){ while(true){ NumOut(…

マルチタスク化

並列タスク化してみたが、並列タスクと関数化の違いがいまいちわからない while true 文の中にPRECEDES TASKを入れることができないのも不明。 シングルタスクをWHILEの中に入れることができるか明日試す。 TASK先でWHILE TRUEするしか無いのか?#define TIM…

NXCにおける関数化

いまさらながら各定義をタスクメイン内でやっていたなど 読みにくいコードで今までやっていたことに気がつく。 さらに高度なコードを書けるようになるべく関数化に挑戦。 inline void と頭につければよいらしい、 変数を内部で使用する際には宣言が必要とNXT…

ライントレースとレゴpidについてまとめ。

今日までpid制御まとめて見たがこれでひと段落としたい。床にニチバン黒テープをはってライントレースして見たが、制度としては今ひとつなままで終わった。 ライントレーサーを単眼の光センサーで追う場合はこのへんが限界なのではないか。 pid制御で黒線を…

今日のPIDレシピ

今日のレシピ スタンダード値28 P 1,8 I 0.5 D 0.01 が一番まとも スタンダード値10から19程度で(つまり黒線とおなじ)で試してみたが この程度を目標値とするとまっすぐの線にしか対応できない。右か左にしか片一方しか行かない、 臨機応変に対応できない…

PID値をめぐるはてしない物語 NXT 本体ボタン編 if(ButtonPressed(BTNRIGHT, false)){

PID値をいちいち入力してコンパイルしているのめんどくさいからNXT本体のボタンを押すと数値を追加するようにした。 buttonpressed文について説明しているページはグーグルが日本語でキャッシュしているページにはない。 nxc チュートリアルページをみて格闘…

PID構文

エンデのはてしない物語みたいになってきた。 値が見つかりません。 task main(){SetSensorColorRed(IN_2);SetSensorTouch(IN_1);SetSensorTouch(IN_4);#define TIME 100int standerd=27;//変数standerdに白黒の中点を入力するこれは以後の出力の基準点とな…

PD制御文

PD制御分のD値を前回の光センサー値と今回の光センサー値の差としてたところを 前回のP値と今回のP値の差とした。 公式上はこちらが正しいのである。 しかしD値は結局変化量であるから意味がそんなに変わっていると思えないが・・・挙動がどの程度変わるか不…

キャタピラ型再挑戦

task main(){SetSensorColorRed(IN_2);SetSensorTouch(IN_1);SetSensorTouch(IN_4);#define TIME 50int standerd=30;//変数standerdに白黒の中点を入力するこれは以後の出力の基準点となるfloat POW;int currentsensor;int previoussensor;float kp=1;int ki…

カクカクの原因判明

と思ったらrotatemotorのデフォルトだとブレーキがかかるからだった。 ブレーキの反動でかくかくしていたのだ。ブレーキを掛けないためにrotetemotorでfalseと入れるとブレーキがかからないfloat型になりかくかくしなくなりました。コレについて記載したサイ…

ステアリング型 舵角戻らないタイプ

かじを切ったあとに舵角を戻らないようにセットしてみたが謎の行動爆発を起こす。 舵を切りたい角度マイナス舵を切った角度=舵をこれから切るべき角度のはずなんだけど くるくるくるくる舵が回る ううーむ、ドツボ。task main(){SetSensorColorRed(IN_2);Se…

ライントレースロボット ステアリング型 オンオフ制御

こちらが完成形ただし幅が2chのニチバン黒テープをあっさりまたぐ。 ETロボコンは幅が3chのラインで最小R半径は30chとかなりシビアな戦いをしている。1単位あたりのタイムを50ミリSECに変えてもそれほど挙動は変わらないし、 このへんがNXTの限界なの…