バッテリ電圧を取得するには、get_battery_mv() が用意されている。これは、現在のバッテリー電圧をmVで取得できる。
int get_battery_mv()
{
long b = ds_scale(BATTERY) * 0xABD4L;
return (int)(b / 0x618L);
}
OSでこのような計算がされている、8bitマイコンで32bit演算しているので処理負荷は高くなると思う。ds_scale(BATTERY) だけでバッテリ電圧値を取得すれば良く、LSB=28.1974(mV)として値を扱えばよい。
しかし、この値はモータの駆動開始時、駆動中、停止中でバッテリー電圧が変動する。
走行前と走行中で変化する、走行中も走行モータの指令に255をセットしてなければ、モータの駆動と非駆動ができる、ステアモータの指令も同じことがいえる。
走行調整用のバッテリー電圧は変動していない電圧が必要になる、フィルタかけて用いると使いやすい
2009年2月7日土曜日
2009年2月6日金曜日
2009年2月5日木曜日
ETロボコン
RCXのマイコン(H8/3292)のマニュアルがあった
H8/3297グループ
残念ながら英語版しかない
Programming Manualを参照すると、
割り算は14ステート ビットシフトは2ステート(シフトの回数は指定できない、1回のみ)
H8/3297グループ
残念ながら英語版しかない
Programming Manualを参照すると、
割り算は14ステート ビットシフトは2ステート(シフトの回数は指定できない、1回のみ)
ETロボコン
ETロボコンで使っているRCXは、Hitachi(今はRenesas)の8bitマイコンが使われている。
処理能力の低いマイコンでは、演算の仕方を少し考えなければならない
4分の1にしたいときに、割り算をした場合は、処理時間を多く必要とする
ans = x / 4;
しかし、2bitシフトを使うと処理時間は早くなる
ans = x >> 2;
マイコンのマニュアルで、アセンブラの1命令の必要クロック数を参考にすると、処理時間の差を見ることが出来る。1クロックあたりの時間は水晶とマイコンの分周設定で決まる(最近のマイコンでは逓倍もできる)
処理能力の低いマイコンでは、演算の仕方を少し考えなければならない
4分の1にしたいときに、割り算をした場合は、処理時間を多く必要とする
ans = x / 4;
しかし、2bitシフトを使うと処理時間は早くなる
ans = x >> 2;
マイコンのマニュアルで、アセンブラの1命令の必要クロック数を参考にすると、処理時間の差を見ることが出来る。1クロックあたりの時間は水晶とマイコンの分周設定で決まる(最近のマイコンでは逓倍もできる)
2009年2月4日水曜日
ETロボコン
BRICKOSの通常の光センサーの入力は、下記のようになると思う
hikari = LIGHT(SENSOR_1);
これは、このようになり
hikari = (147 - ds_scale(SENSOR_1)/7);
さらに、こうなる
hikari = (147 - ((unsigned int)(AD_C)>>6)/7);
このマイコンのA/D変換は、10bitで行われるため、光センサー値は 0~1023の値に変換される
わざわざ割り算までして LSB を落とすのはもったいないので、
ds_scale(SENSOR_1)
を使うと良い
6ビットシフトは、16ビットの上位10ビットにA/D変換の結果が取り込まれるので6ビットシフトをしている
しかし、これでは光センサー値の大小の関係が反対になってしまうので、
hikari = (1024 - ds_scale(SENSOR_1));
とすると使いやすくなると思う
これにより、白、グレー、黒の差が大きくなる
hikari = LIGHT(SENSOR_1);
これは、このようになり
hikari = (147 - ds_scale(SENSOR_1)/7);
さらに、こうなる
hikari = (147 - ((unsigned int)(AD_C)>>6)/7);
このマイコンのA/D変換は、10bitで行われるため、光センサー値は 0~1023の値に変換される
わざわざ割り算までして LSB を落とすのはもったいないので、
ds_scale(SENSOR_1)
を使うと良い
6ビットシフトは、16ビットの上位10ビットにA/D変換の結果が取り込まれるので6ビットシフトをしている
しかし、これでは光センサー値の大小の関係が反対になってしまうので、
hikari = (1024 - ds_scale(SENSOR_1));
とすると使いやすくなると思う
これにより、白、グレー、黒の差が大きくなる
2009年2月3日火曜日
ETロボコン
ETロボコン2008が終了した、大会最後にNXTとジャイロセンサーで倒立した筐体で、ラインとレースのデモがあり来年からこのような筐体もレギュレーションに追加するような案内があった
http://lejos-osek.sourceforge.net/jp/index.htm こちらのページにその時の写真なのか掲載されていた
株式会社ラーニングシステムからジャイロセンサーの販売がされていたが、在庫切れになったところをみると各チームがETロボコン2009に向けて活動を開始しているのか
楽天市場でも販売しているショップがあった。今日手に入るはここだけか?
【NXTをもっと楽しく!】LEGO MS1044 GYROSCOPIC SENSOR FOR MINDSTORMS NXT (ジャイロセンサー)
RCXというマイコンが搭載されたコントローラを使っているが、これには私が知っているだけで3つのバージョンがある。
教育用セットのVer1.0の充電できるタイプ、ショップで売られていた充電の出来ないタイプのVer1.0とVer2.0がある。教育用セットとVer2.0を使っていたが、Ver1.0とVer2.0には、モータの駆動に使っている素子が違っているのか、同じソフトでもパスファインダーの速度に違いが出た。Ver2.0の方が明らかに早い、これに気がついたチームがいたのか、Ver2.0を使っているチームが数チームいた。(残念ながらVer2.0を手に入れたくてももう売っていない)
登録:
投稿 (Atom)