かみやんの技術者ブログ

主にプログラムの話です

ファームウェアを更新

今日は、新電源回路用にファームウェアを改良。
予定では、先週のsprintf()問題解決、AD変換で電源読み取り、DC/DCコンバータ(HRD12003)のリモートコントロール機能(マイコンからON/OFF)、組み立てて試運転。だったが。。
前回、シリアル通信のsprintf()問題は、もう面倒なので、スタックに500byte確保して、snprintf()をコールで解決とした。
AD変換もすぐ実装できた。
DC/DCのリモートコントロールにはまった。マイコンを2個破損してしまった(1800円x2)。どうも回路が間違っているようだが、2個破損してげんなりで、リモートコントロール機能は、やめてRC端子はGNDへ接続。
あと、USB-HUBにマイコンとLRFとジョイパッドをつなぐと電流いっぱいいっぱいで、それ以上接続できなかったが、新電源回路は、5V-3Aも追加したので、試験。うまいこと、GPSWebカメラを接続してもOSからエラーはでなかった。
あと電圧監視の結果をマイコンからPCへシリアルで5秒に一回送るようにして、PC側制御ソフトのAibiUIで、受信してパースして、画面表示を行った。

なんとか、組み立ててフロア内をぐるっと一周したら、2週目でTop-URG(UTM-30LX)が止まってしまった。18Vのバッテリーを電圧計で計ると13V。ん?こんなに下がるものなのかな。仕方がないので充電器につないで、時間切れ。
組み立て前は、18V側の電源監視も動いていたが、組み立ててから変な値になっている、この辺も未調査。
18Vのバッテリの減りが早いかもしれないので、次回消費電流を計測したい。

改善したいこと

  • 組み立てた状態でFlashROMを焼く。去年のロボは、2MbyteのRAMを持つH8/3069で、RAM上にプログラムを置いていたので、マイコン側プログラムを修正してビルドすれば、次のマイコン起動時には自動的に新版が転送される形だったので、マイコン側プログラムの修正が楽だった。今は、RAM 8kbyteのSH-7125でROM上にプログラムを置くので、FlashROMに書き込むのだが、CPUボードのSingle-Bootスイッチを切り替えないといけない。が、ロボットを組み立てたあとだと、このスイッチが切り替えられない。Single-Bootスイッチを延長して、ロボットの上面まで持ってきたい。
  • モータのスイッチ。これも上と同じだが、FlashROMを焼いているときにモータードライバがONだと、暴走するので、モータのスイッチがあるのだが、これもロボット上面まで持ってきていないので、延長する。
  • 18Vのスイッチ。これも延長してあるのだが、ロボット上面に固定していないので、固定する。
  • モータードライバのSaberToothのメイン電源に中継コネクタ。モータードライバのSaberToothのメイン電源の入力がねじで固定するタイプなのだが、回路基板をロボットから取り出すときに、このねじをゆるめて取り出すのだが、取った後、導線むき出しなので、ショートする危険がある。中継コネクタをはさむ。
  • 線を短く。LRFとGPSのUSBケーブルやLRFの電源ケーブルが長すぎ。切って短くする。
  • USB-HUBを固定。今は、適当なところにぶら下がっているので固定。

来週だけでこれだけできるかな。。どれも単純作業だが、やらないとなー。