2011年11月3日木曜日

NXTの音がしなくなった

ETロボコン2011のソフトのテスト中に、ロボットがよく倒れた様でスピーカーが壊れてしまった。音を鳴らしてソフトの状態を確認するが簡単なのでよく使っていたが、これが出来なくなった。
困ったことに数台のNXTがこの状態になってしまい、ソフト開発の効率が落ちてしまった

保証期間も切れているので、改造して修理することにした
ETロボコンのルールでNXTの改造はルール違反なので、大会での使用は出来なくなる。間違って持って行かない為のルールをメンバと決めて改造(修理)することにした。

以下の改造行為は、保証が受けられなくなります。また、ETロボコンの大会で使用することができなくなります。ハンダ付けにテクニックが必要です。この行為に責任は持ちません
これが壊れて音が鳴らなくなったNXT
電池を取り外し、4箇所のネジを取り外します
ネジを取り外すと、白色のカバーが取り外せます。中央右にスピーカーが付いています。
スイッチを取り外します。ディスプレイ横にネジがありますが、先にスピーカーを外します。結構しっかり両面テープで付いています。その後でディスプレイ横のネジを外します
スピーカーを外したところです
ディスプレイを持ち上げて、スピーカーの線が付いている所のハンダを外します

スピーカーを取り外しました
今回は、このスピーカーを取りけます
ターミナルを切り離し芯線を少し出して、ハンダを付けておきます
スピーカーの配線をハンダ付けします。ディスプレイを無理して持ち上げるとFPCが切れる場合があります。配線の赤と黒はこの配置にしました
ディスプレイとスイッチを取り付けた所
スイッチの下に両面テープを貼ります(スポンジ付き)
スイッチに邪魔にならない様に配線を取り回して、水晶の上に両面テープで貼り付けました
この位置だと蓋が閉まりました
ネジを4箇所取りけて完了です
電池を入れて、テストすると音がするようになりました

ディスプレイを取り付けている白い台の形状が違うNXTがあります。こちらは、FPCでなくコネクタで付いているので改造しやすいです

2010年12月11日土曜日

nxtOSEK

新規にnxtOSEKをインストールした。
インストールマニュアル通りにインストールしたつもりだったが、コンパイルできない???
cygintl-3.dll がないらしい
cygwin のセットアップ時に libs の libintl3 : GNU internationalization runtime library をインストールしなければならなかったらしい
sg.exe もコピーするのを忘れていた。これはインストールマニュアルにはないが、途中に書いてあった
これで、なんとかコンパイルができるようになった \(^ ^)/

2010年12月3日金曜日

ETロボコン2010チャンピオンシップ大会

ETロボコン2010のチャンピオンシップ大会に行ってきた。
南関東地区からのチームが上位を独占した。

2009年10月31日土曜日

ETロボコン

東海地区大会を見に行ってきた。RCXでの参加チームは少なかったが、東海地区からチャンピオンシップに進めれるのは、1チームと狭き門だった。
NXTは上位3チームがチャンピオンシップに進めれるが、去年の1位、2位のチームが順調に進出した。
走行部門では守りの走りだったが、モデル部門では完璧に決めてきた。
他の大会を見てないが結果からだけ判断すると、東海地区のレベルは高すぎると思う。

RCXの操舵について
操舵をPID制御で実現するためには、演算周期と操舵周期からあまり現実的ではないと思う。
モータのトルクを0~255まで入力できるが、1msec周期でモータトルクを積算して、255を越えた時は、モータを駆動する。255を越えなければモータを駆動しない。これを繰り返しているため、モータトルクを高速で微妙に変更しても、指令は追従しない。
操舵を切り替えた時は、積算値が255を越える様にすると操舵の切り替えが少しだが早くなる

2009年7月26日日曜日

RCXのモータ

RCXのモータは、あくまでおもちゃのモータなので個体ばらつきは非常に大きい。
しかも、使っているうちにモータは回らなくなる、大会中に回らなくなることは避けたい。
どのモータを使っても同じ走行が出来る様なソフトにすればよいのだが、マイコンは非力だから走行だけに専念させたいので、使うモータに合わせてソフトを調整するか、ソフトに合うモータを探す。
ということは、モータを選べば早く走れる可能性がある

2009年7月24日金曜日

RCXのバージョン

RCX(マイコンの入った黄色い大きなブロック)にVer 1.0と書かれていると思うが、知っている限りでは3種類存在している。
1.Ver 1.0 で充電コネクタがついている
 教育用セットを購入するとこれがついてくると思う
2.Ver 1.0 で充電コネクタがついていない
 MindStormをお店で、一般のキットを買うとこれになると思う
3.Ver 2.0 で充電コネクタがついていない
 MindStormをお店で、一般のキットを買うとこれになると思う

2.と3.は、お店で買うとどちらかになるが、販売された当初に購入したMindStormには Ver 1.0 がついてきたが、販売終了間際に購入したMindStormには、Ver 2.0 がついてきた。
MindStormは、RCX版のことです。(お店にはもう無いと思います)

同じソフトで2つを比べるとVer 2.0 では走行モータの指令値を下げなければ走ることが出来ない。Ver 1.0 を使っていて、走行モータへの指令値を最大にしても走れるソフトが出来ているのであれば、Ver 2.0 を使えば更なるスピードアップが出来る。想像だが、モータの駆動回路の内部抵抗が下がった思う。

チャンピオンシップ大会では、この Ver 2.0 を使っているチームが数チームいた。このことに気づいていたかは不明だが、モデルには書かれていなかったと思う。極秘なのか?

2009年2月9日月曜日

ETロボコン

バッテリ電圧を取得するには、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をセットしてなければ、モータの駆動と非駆動ができる、ステアモータの指令も同じことがいえる。
走行調整用のバッテリー電圧は変動していない電圧が必要になる、フィルタかけて用いると使いやすい