SISO-LAB不定期TOPIC Jul.2004


2004/07/31

というわけで、SERIAL COMMANDER完成

J-Class用SIPHA CORE SERIAL COMMANDER
できました。う〜ん、SIPHA COREと比べると、すごい簡単。まず作った基板です。AKI-H8/3664を載せるための基板で、電源回路がついているだけです。また、ピンは、すべてプルアップ設定ができるポートに接続したので、こんな感じです。

20040731P00.JPG - 15,585BYTES20040731P01.JPG - 18,191BYTES

リモコンボックスの方ですが、レバーで接点を、基板のパターンの上で動かしてモーターの回転方向を変えるものでして、左の写真のようになっています。これを、右の写真のようにカットしました。なんとなく、そのまま繋いでも動くかな〜なんて思ったのですが、やっぱシンプルに、ということで、スイッチを倒すとグランドになる、というふうにパターンカットしました。要は、プラスから来ているパターンを、すべてスイッチごとにカットしました。

20040731P02.JPG - 22,321BYTES20040731P03.JPG - 21,078BYTES

20040731P04.JPG - 19,015BYTES

んで、パーツをすべて納めてみました。う〜ん、いい感じです。さて、さっそく使ってみたのですが…。

クオリティーいまいちな感じ〜。

でした。1000円もしたのに…。接点がイマイチ安定しないので、ちょっと接点の曲げを調整してみたのですが、今度は、曲げすぎたのか反力が強まってレバーが中央に復帰しなくなって、接点は安定したものの、ONできないところができちゃって、しょうがないので、ケースをちょっと削って、レバーの縦方向の動作範囲を広げたとか、レバーの感触はやっぱりよろしくないとか。

う〜ん、タミヤさん、もうちょっとがんばってください。だって、おいらのあのプロポ、4000円ですよ、4000円。1000円で送信機能無しならばもうちょっとがんばって欲しいところです。

んで、J-Classで使用するということで、ケーブルの取り回しを良くするために、最終的に、このようになりました。ちゃんちゃん。

20040731P05.JPG - 13,664BYTES
 

SIPHA CORE調査状況
だましだましG-Tuneを動かして、スクリプト動作のテストとかしていたんですが、、おかださんからメールでいろいろ助言を頂き(いつも、ありがとうございます〜)、まずは手持ちパーツで作戦を試してみることに。とはいえ、効果を完全に確かめるのはそれはそれで大変。

そんなわけで、サーボ信号出力ピンにつけている抵抗、どれくらいまで大きくしても問題がないかを確認してみることにしました。いろいろ手持ち部品で変えてみると…う〜む、意外なことを発見した。あれって、10KΩでもサーボ制御できます。試したのは、GWS S03Tと旧MICRO-MG、新MICRO-MGです。

たぶん、抵抗を大きくしていくと、だんだんノイズに弱くなっていくんでしょうけど、実際にG-Tuneの動作を眺めている限り、挙動不審はまったくなし。意外でした。というわけで、1.5KΩぐらいをつけてみることにしよう。これもまた根拠ないけど、なんかトラブルがあって、変な電圧や電流がかかっても、これぐらい抵抗してくれれば耐えれるでしょう…的ノリ。5Vなら3mAですから。だめならさらに5KΩぐらいまであげてみます。それでもダメなら、違う原因ということにして、また考えることにしよう。

「ぴんぽーん」
夜9時前、千石電商からオーダーしたパーツ到着。う〜ん、速い。オーダーしてから36時間で到着。ペリカン便さん、夜遅くまでお疲れ様です。

 

2004/07/30

苦悩、謎のリセットにプログラム消失

なんでだろう???
SIPHA COREプログラム製作の方快調で、現在、リセット後、スイッチで起動モードを設定できるようになりました。COMMANDモードと呼んでいる通常稼動モードに入ったときは、格納体系から自動的に直立姿勢まで移行します。

スクリプトをデバッグしていたら、「ぎゅん」と格納体系にいきなり移行。お、リセットがかかったな。うん、プログラムが進んでくると現象がわかりやすくていいな〜…

と、感心している場合ではないです。

なぜだろう?G-Tune 2004Fではこんなことなかったのに。う〜ん。そういえば、プログラムの消失もそうだ。なんでG-Tune 2004FIになってからこういうことがおきるんだろうか。といわけで、現象を整理してみる。

  • 昇圧回路ははずしている。
  • マイコン電源とサーボ電源を分けていても発生。
  • サーボの電源を入れてないときは起きない。
  • サーボの電源を入れているときにリセットするとプログラムが消失することがある。
  • 気になるP85(ブートセレクタ)のサーボを抜いておいても起きる。
  • 負荷がかかった時?リセットがかかる気がする。もちろんマイコン電源は別電源。
  • 前よりH8/3664の温度が高い気がする。気温のせい?
  • リセット後、ROM書きモードにはなれる。しかも正常に書き込める。

う〜む、よくわからない。が、何かポートに電流が流れていそうな気がする。もしくは、どっかのサーボが壊れかけて電流がたくさん流れているかも(以前、壊れたサーボを接続したらマイコンが発熱した経験あり)。あと、マイコンの電源を落としてサーボ電源だけ入れておいたら、マイコンが異常発熱したこともあったな〜。あの時繋いでいたサーボはなんだっけ?

新しいH8/3664に変えてみるのも手だけど、以前、「プログラムが消える」から、「動いている最中にリセットがかかったり、その後プログラムが消えたりする」という状況から考えて、時間稼ぎ以上にはならないと思われるため、まずは対策トライから行ってみようと思います。

もし、サーボ制御ポートから電流が流れ込む、もしくは流れ出すという現象が、この怪現象を引き起こしているとすれば、G-Tune 2004Fとの違いに深い関係があるに違いない。違うといえば、サーボの構成ぐらいか。使っているポートは、今回、サーボ制御用にポート2とポート7を追加使用しています。

よし、まずはP2とP7に繋いであるサーボをはずして様子を見てみよう。

それから、よくわからないのですが、電流に絡んでいそうなので、「電源は共通でもマイコンとサーボ電源は別々にON/OFFできるようにする」、 「保護抵抗をでかくする」というのをやってみようと思います。部品発注〜(チップ抵抗じゃないと基板に載らない…)。間に合うんかいな?それでもだめなら、無理やりロジックICかますか?

気分転換
というわけで、部品がくるまで、気を取り直して、「J-Class用SIPHA CORE SERIAL COMMANDER」を作ることにしよう。今回は、これを使う予定です。TAMIYAの4chリモコンボックス。昔から顔なじみの近所の模型屋さんで購入。やっぱ、プロポと同じ操作感がいいかな〜と思いまして。電池が入るところに、ちょうどAKI-H8/3664と9V電池が入りそうでいい感じです。

20040730P00.JPG - 16,244BYTES20040730P01.JPG - 20,765BYTES

 

2004/07/29

足裏は…オトコの浪漫、グリップタイプ!

ピットクッションシート
先日、ロボット王国にお邪魔した時に、「ピットクッションシート」なるものを購入してきました。目的はもちろん足裏に使うためです。

今までは、「ほどほどにグリップ」ということで、カッティングシートのクリアを貼ったり、絶縁ビニールテープを貼ったりしていたのですが、今回は「とってもグリップ」にチャレンジです。軽量級マシーンにグリップする足裏というのもどうかな〜?という感じはするんですが、ROBO-ONE本戦で戦おうと思うと、軽量を補うためにもグリップする足裏がやっぱ必要かな〜って感じで。

 んで、ま、ショック吸収性も高い方がいいかな〜ぐらいで、これを選びました。

 さて、さっそく貼り付け…切るのが難しいです。というわけで、貼ってから形をあわせるのは非常に難しいことがわかりました(要はゴミを作った)。しょうがないので、ABS切り出すときみたいに型紙を作って、カットしてから張りました。さて、さっそくSISO-LAB特製リング模擬台へ(俗にコタツとも言う。うちのコタツの天板、非常にリングのグリップ感に似ていると思う)。

う、全然グリップしない。と思ったら、粘着面以外にもシートを剥がす必要があるのね…。それでは気を取り直して…。

「ぎゅぎゅっ」いや、マジにそう聞こえたんですよ。

 「吸盤でくっついたみたいなグリップ」

20040729P00.JPG - 22,106BYTESでした。おぉぉぉ。くっつきすぎ。脚を上げる動作をさせると、「ぎゅっぎゅっ」って言ってる。あまりにもくっつきすぎるので、先輩方に習って、隅はテープ(メディングテープが薄くてすべりがいい)で処理をしてみました。ちょっと見づらいですが、写真のようにしました。

 

2004/07/27

センサの実験

距離センサを使って何しよう?
先日アップした写真で、既にお気づきの方もいらっしゃるかと思いますが、G-Tuneには距離センサが実装されています。今日、アクションスクリプトで扱えるように修正が完了しましたので、動作させているところの動画をアップします。クマを見つけて振り向いていますので、いちおう「自律動作」しています。この機能は、アクションスクリプトのみで定義して動作しています。

20040727P00.JPG - 14,645BYTES
クリックで動画再生

実際に書いたAction Scriptはこれです。いきなりこんなもん載せるのもなんですが、同じようなものの実装検討をされている方には参考になるかな?と思って載せます。

DSRJ=LFT, 20, *LOOKLEFT, 0           # @TOP        左の距離センサが20以上ならばLOOKLEFTへ
DSRJ=RGT, 20, *LOOKRIGHT, 0          #             右の距離センサが20以上ならばLOOKRIGHTへ
CLCK=30                              #             30Clock(0.6sec)待ち
NIRJ=*TOP                            #             先頭へジャンプ
SCDG=WSY, LNR, LNR, 30, 9            # @LOOKLEFT   腰ヨー軸のサーボを9度
SCXZ=LFT, LNR, LNR, 30, 99, -12      #             左脚を(99,-12)の位置へ移動
SCDG=LAY, LNR, LNR, 30, 21           #             左足首ヨー軸を21度
SCDG=RAY, LNR, LNR, 30, -21          #             右足首のヨー軸を-21度
CLCK=30                              #             30Clock(0.6sec)待ち
DSRJ=LFT, 20, *LEFTWAIT, 0           # @LEFTWAIT   左距離センサが20以上ならばLEFTWAITへ
SCDG=WSY, LNR, LNR, 30, 0            #             体を基準位置へ戻す
SCXZ=LFT, LNR, LNR, 30, 99, 12       #
SCDG=LAY, LNR, LNR, 30, 0            #
SCDG=RAY, LNR, LNR, 30, 0            #
CLCK=30                              #             30Clock(0.6sec)待ち
NIRJ=*TOP                            #             先頭へジャンプ
SCDG=WSY, LNR, LNR, 30, -9           # @LOOKRIGHT  腰ヨー軸のサーボを9度
SCXZ=RGT, LNR, LNR, 30, 99, -12      #             右脚を(99,-12)の位置へ移動
SCDG=RAY, LNR, LNR, 30, 21           #             右足首ヨー軸を21度
SCDG=LAY, LNR, LNR, 30, -21          #             左足首のヨー軸を-21度
CLCK=30                              #             30Clock(0.6sec)待ち
DSRJ=RGT, 20, *RIGHTWAIT, 0          # @RIGHTWAIT  右距離センサが20以上ならばRIGHTWAITへ
SCDG=WSY, LNR, LNR, 30, 0            #             体を基準位置へ戻す
SCXZ=RGT, LNR, LNR, 30, 99, 12       #
SCDG=LAY, LNR, LNR, 30, 0            #
SCDG=RAY, LNR, LNR, 30, 0            #
CLCK=30                              #             30Clock(0.6sec)待ち
NIRJ=*TOP                            #             先頭へジャンプ

これは、まずSIPHA TERMで動作を作り、タイマ値、ジャンプ命令などをエディタで書き足して作りました。それをSIPHA TERMのダウンロード機能でSIPHA COREのRAMへ転送してテストしています。テスト完了後、SIPHA TERMからSIPHA COREのシリアルEEPROMに書き込んで一連の作業は完了します。

アクションスクリプト
思えば、アクションスクリプト、2回のバージョンアップを経て、なんだかいい感じになってきたような気がします。

  • サーボパルスON/OFF
  • サーボ角度指示、脚のXZ座標系指示、動作時間指示、動作開始終了速度設定
  • プッシュボタン検知、LED操作
  • スクリプト内ジャンプ、スクリプト外ジャンプ
  • R/C受信機からの値によるジャンプ
  • 加速度センサからの姿勢状態情報によるジャンプ
  • 変数操作、変数によるジャンプ、ループ
  • 距離センサからの値によるジャンプ
  • プリプロセス機能としてジャンプ先のラベル表記

実はもうちょっとあるのですが、説明が難しいので…。先のコードを見ていただくとわかるのですが、ラベルがコメント中に書かないといけないとか、"*"と"@"を使い分けないといけないとかありまして、イマイチなところもありますが、プログラム的にはこれがとても楽です。また、角度指定は、整数のみとなっていますが、実際には補間プログラムが働きますので、「停止位置が整数でのみ指定できる」というだけで、動作単位が整数というわけではありません。

もともと、H8/3664のROM/RAM領域がとても少ないということもあって実装を始めたのですが、なかなか使いやすくなってきました。こういった中間言語をロードするような形にしておけば、すべての動作データをシリアルEEPROMに書き込めますのでオススメです。またそのうち、どんな言語体系かわかるようなものをアップします。

めずらしく東京出張
今日は、めずらしく東京(しかも都内!めずらし〜)へ出張だったので、秋葉原へ行きました。というわけで、憧れのツクモロボット王国へ!そしたら、なんとVISIONに遭遇!超ラッキー!

どうやら到着したてのホヤホヤの模様。かばんから出して、店長さんに説明しているところのようでした。せっかくなので、すこしお話を伺い、じっくり見せてもらいました。フレームはOmni Headと同じなのかな?と思っていたのですが、上半身はだいぶ違うようです。腰のピッチ軸とヨー軸が結構低い位置についていて、上半身の部分は結構スペースが開いていました。また、肩のピッチ軸サーボも胴体側に入っているようで、稼動範囲も上方向に向かって広範囲に動くように載せてありました。う〜む、なるほど。

20040727P02.JPG - 17,611BYTESなんか特売品ないかな〜と思ってブラブラしていて、ソフマップ(本店だと思う)に寄ったら、「知らないメーカーのプレステ用(と思われる)ワイヤレスコントローラ」が50円!50円ですよ。ホントに。受信側は無いそうなのですが、ま、マシーンコントロール用に改造するなら充分かな?と思って、買ってきてしまいました。今回は間に合いそうに無いので使いませんけど、いつかシリアル無線化するときの改造の勉強用と思いまして買いました(そう思って買って、使わないパーツが増える…こともある)。

 

2004/07/25

G-Tune 2004F改1145g

一通り完成しました(後は足裏のみ)
20040725P00.JPG - 14,787BYTES20040725P04.JPG - 14,306BYTES

一通り、メカの方完成しました。予定していた全てのパーツを実装し、整線も完了。後はいろいろ動かしてみて不具合だしってところです。重さのほうですが、フル実装(本体、バッテリ、受信機、センサなどを実装)していても1145gと、J-Classのレギュレーションの1200gまではまだ余裕があります。

ただ、まだ足裏は何も処理していません。今、考え中です。ソルボセインなんてものも手元にあるのですが(これ、意外と安く、10cm四方ぐらいで400円だったと思います)、イマイチ扱いが悪い感じで、今回は見送ろうかな〜と思っています。なんか結構ベトベトしていて、う〜ん、どうやって使おう???って感じです。重さ的には大丈夫なんですけどね〜。いつもならクリアのカッティングシートを貼っています。

整線
整線のほうですが、上半身はすごくがんばった!見てください。ちゃんと胴体の中通してますよ。これで上半身が左右90度まわせるんですから、よくできた方だと思います。反面、下半身はめげました。難しいなぁ。

20040725P02.JPG - 17,455BYTES20040725P03.JPG - 15,173BYTES

しかし…前回同様、スケジュール押しまくりでヤバヤバなんですが、なぜか、今回気分がいいです。不思議です。気分良すぎて、次回のせるつもりだったパーツまで載せてしまいました。今、テストしていますので、また後日ということで。では!

 

2004/07/23

予備サーボ到着。これで一安心

MICRO-MG 6個様記念撮影
20040723P00.JPG - 20,388BYTESいつもながら、浅草ギ研さん、発送が早い!一昨日発注して、昨日到着。ありがたいです。こうやって新品を眺めるのは、いつもうれしいもんです(懐は寂しくなっていきますが)。

でも、この手のものに興味の無い人から見たら、「え〜、これで2万円???」と言いたくなるような物なんだろ〜な〜。これでも安いんですよ〜。よし、これで懐に余裕はなくなったが、心に余裕ができた。今夜もぐいぐい動作データ作ります。とか言いながら、基本姿勢部分を作っているので、ちまちまと、慎重にやっています。

自分の場合、「立ち姿勢」、「構え姿勢」、「しゃがみ姿勢」とかを基本として動作スクリプトを作っています。で、これらの姿勢というのは非常に神経を使う部分でして、例えば…

  • 電気を食わない
  • 無理がかからない
  • 別の姿勢から移行するときに正確にその姿勢になれる
  • 次の動作へ移行しやすい姿勢(歩幅とか)である
  • 安定度がある
  • バッテリが弱っていても移行できる
なんてのが上げられます。やっぱ、比較的長時間とる姿勢ですので、こういったところが肝心です。そのため、非常に神経を使います。「しゃがみ姿勢」なんか簡単そうですが、なかなか100%計算通りには動作しませんので、実はどっか干渉して変に負荷がかかったりするもんなんです。対して「パンチ」なんていうのは、言ってみれば一瞬の動作ですので、こういった考慮はあまりしなくてよくなります。そんなわけで、このフェイズは、実は歩行より時間をかけていたりします。

SIPHA TERMからのテキストエディタ起動
う〜む。動作データのファイルが増えてきて、だんだんSIPHA TERMとエクスプローラを行ったり来たりするのが面倒くさくなってきたので、SIPHA TERMから直接テキストエディタを起動できるようにしようと思ったんですが…なかなかうまくいきません。なんか、"_system()"という関数がこっそり用意されているらしいのですが、起動できるもののマルチプロセスにならないです。

 しょうがないので、困ったときのWIN32API!本当は、CreateProcess()を使うのが正しいのですが、WIN32APIとかもあまり詳しくないので、ティロリロリン♪禁じ手の"WinExec()"(^_^; この関数って、シンプルで使いやすいですよね!(本当は、昔のOSとの互換を維持するために用意されている、イニシエの関数)というわけで、アクションスクリプト管理画面でスクリプトを選択して「編集」ボタンを押すと、エディタが起動できるようになりました。

 もし、ちゃんとしたやり方を知っている人がいたら教えてください。うるる。

2004/07/21

うへ。またサーボ壊した…。

G-Tune、SIPHAともに快調!
20040721P00.JPG - 19,835BYTESども、今回はなぜか気分よく快調(気分だけ?)なSISOです。今回のマシンは、軽いせいか、4.8Vでもさくさく動作しています。信じられない!200gって、大きいですね〜。もちろん、4.8Vは外部からのバッテリ供給ですが、おもりとして本チャン用のバッテリも背中に載せています。それでもサクサク。う〜ん、1200g、気持ちいいぞ!動かしているうちに、いろいろ手直ししたいところとかでてきたので、それは週末にまとめてやる予定です。今のところ、今週は出張無さそうです。

動作設定ですが、左のサーボ操作画面でちょいちょいと位置あわせをして、右中段の「サーボ位置レコーダ」で記憶していき再生チェックをして、Action Scriptファイル出力。そのままでも動作はするのですが、さらにタイマの値などをエディタで修正して、右下の「アクションスクリプト管理」で再生テスト、最後にシリアルEEPROMに焼き込み。こんな感じでやっています。いざとなったら「緊急停止」で全サーボ制御信号オフ!これ大事です。

オペレーション的には「もう一声!」な感じですが(例えば、アクションスクリプトを実行し始めちゃうと、緊急停止以外で途中で止める方法が無いとか)、まあ、今回はこれぐらいで行こう。

というわけで、以前は難しくてやらなかった、こんな動作にチャレンジしてみました。「身体を捻りながら手をあげての挨拶」です。

20040721P02.JPG - 14,051BYTES

SIPHA TERMのユーザインターフェイス
ご覧のとおり、SIPHA TERMではスライドバーによる操作を中心としたグラフィカルなユーザインターフェイスを採用しています。

実は、「SIPHA」という名前がつく前のコアは、キャラクタベースのユーザインターフェイスを採用していました。これをなぜ、グラフィカルなものに変更したかといいますと、メモリサイズです。初代で載せたCUIは、プログラム、表示データあわせて30Kバイトほど。H8/3664だと、それだけでメモリを使い切ってしまいます。シリアルEEPROMから表示データを読み出すという手もありますが、それはそれで結構大変そう。他の手として、パソコン側でキーボードを中心としたオペレーションをするソフトを組むという手もあったのですが、WideStudioでホットキー系のプログラムの組み方が良くわからず、結局こうなったという感じです。

実は、ワタクシ、いわゆる「ボーダー」(キーボードをよく使う人という意味。ちなみにスノボもスキーもたしなむ程度にはできます)で、操作はキーボード大好きだったりします。

というわけで、GUI系のものは初めて使うわけですが、結構いいような気がします。H8/3664を使う以上、コア側にCUIのプログラムを載せるのはあきらめていますので、SIPHA TERMにさらにショートカットキー風に、サーボ操作画面にキーボードからの直接操作機能をつけれればバッチリかな?と。また、もうちょっとWideStudioの勉強が進んだら報告します。

ちなみに、JinSatoさんが採用されている「マウスホイールを使ったオペレーション」ですが、今のところ、WideStudioのスライドバーではできていません。結構、ゴリゴリとコードを書いて部品をカスタマイズしてあげないと無理っぽいです。ただ、WideStudio全てが対応していないわけではないです(リストボックスとかはホイールでスクロールできます)。

サーボ発熱…
ところで、またサーボを壊してしまいました。いきなり原因分析〜。

  • サーボ角度補正値が適正でなく、負荷がかかっているサーボがあった。
  • 4.8V電源でやっていたので大丈夫だろうと思っていた。
  • 電源電圧監視用のテスターのケーブルが断線していて、繋いでいなかった。
う。要は「気を抜いていた」ということだ。いかんいかん。気を引き締めなければスケジュールだけでなく、懐まで無くなってしまう。ところで気になるのが、普通、みなさんは完成までにどれくらいサーボを壊すんでしょう?え?1つも壊さない? う〜ん。まあ、サーボそのものの修理は、大会が終わった後にゆっくりやるとして、ま、今日は交換ということで。そのうち、壊れたサーボばっかり大量にできたりして。 今のところ、うちで決めているルールは…
  • 電源電圧がぐぐっとさがったらサーボに予定外な負荷がかかっていないかチェック。
  • 「ジ〜」という音が聞こえてきたら、サーボに触れて温度チェック。
  • 電源を入れたまま、サーボコネクタを抜き差ししない(うちのだと、逆に挿してもすぐに壊れたことは無いんですが、ずれて挿すと、一発で制御基板がいかれます。
  • 時々サーボに手を触れて温度チェック
  • マメに全制御信号を停止して、負荷がかかっていないかチェック。

って感じでしょうか。 なぜかこれを忘れて…そういうときに限ってミスる。そんなもんです。 前回、マシーンを机から落としてサーボ4つ交換した経験があるので、それの予備も兼ねて、どどんと6個発注!してしまいました(今回は、ほとんどのパーツを流用しているので、懐に少し余裕アリ)。

 

2004/07/19

G-Tune自力で立つ!…ちょっと実感

ソフトデバッグ、ガンガン実行中
いいね〜、いいね〜。なんだか、やっと「自力で立つG-Tune」を実感できてきましたよ。今、サーボ補正ルーチンと、アクションスクリプト関係のプログラムのデバッグが完了したところです。いや〜、数学的なことは、「非常」に弱いもんでして…。今回、脚の軌道計算の、XZ座標指示系と、角度指示系を自由に行ったり来たりできるように、角度から座標、座標から角度みたいなロジックを載せていまして、これがなかなかうまく動かず大変でしたが、ばっちりです。相変わらず、H8/3664は時々機嫌が悪い。

でも、時間が時間で、動画アップする気力は無くなってしまいました。明日は仕事だ…。

そ、そういえば、まだ重量測ってない…。

 

2004/07/18

G-Tune自力で立つ!…うぅ、まだまだですな。

制御系実装完了!
20040718P00.JPG - 22,164BYTES20040718P01.JPG - 23,114BYTES

制御系実装完了しました。ようやく自力で立てるようになりました。今回は、SIPHA CORE、縦積みです。コアの裏側のあたりに隙間が見えると思いますが、この中に単4×6が入ります。現在、機体テストのため、4.8Vテスト中なので載せていません。まだまだ、サーボ位置補正プログラムにバグがあるみたいで、プログラムから角度動作がうまくできておらず、一番最下層のドライブプログラムで動かしている状態です。そんなわけで、まだまだ「動いた〜」という実感には浸れておらず、ひたすらデバッグ中です。とほほ。

しかし…ふと載せたくなるもので、しかも7.2Vを加えたときに限ってミスるものでして、MICRO-MGが1つお釈迦になりました。あらら。

H8/3664の?な現象
電源電圧が変な風に下がったり上がったり?(実体は掴みきれていない)すると、書き込んであったプログラムがうまく走らなくなるってことありませんか?今回、この現象にあたって、今、昇圧回路をはずして(新ものでグレーということで)様子見なのですが…。

この現象にはまり込むと…リセットをしてもプログラムが再起動しない。電源切って再起動してもだめ、唯一OKなのが、新たにROMにプログラムを書き込むこと。もし、同様な現象の情報をお持ちの方いらっしゃいましたら、情報交換しませんか?(交換とか言いながら、既にここで出し切っているSISO)。

 

2004/07/16

サーボ集線基板

さあ、後は本体に取り付け!
20040716P00.JPG - 17,928BYTES
今回も例によって集線基板を使ってサーボ線を取り回さなくていいようにしています。今回はこんな感じで作ってみました。左が上腕用、右が脚用です。腰周りのサーボはSIPHA COREから直接供給します。

G-Tune 2004Fでは集線基板の方に100Ωの抵抗を入れていましたが、今回はSIPHA COREの方に入れていますので、すごくシンプルです。また、電力線ですが、脚の集線基板に関しては細いものを2組使って電線そのものを細くすることで、取り回しを良くしています(実はループができちゃうのでノイズが心配)。

上腕用の方ですが、サーボ端子が1つ余らせています。そのうち、腕の自由度をもう1つ上げたいので、その時用につけています(でも、その時がきたら、この基板、どうせ作り直すんだろうな〜)です。また、コンデンサが1つ載っているのが見えますが…これもまた、いつか距離センサをつけようと思っていますして、それ用のアナログ入力と電源供給です。電源間に10μFが入っています。

電線は、今回奮発して購入した高屈曲ワイヤーとシリコンケーブルです。高屈曲ワイヤーですが、今回は、かなり狭いところを通そうと思っていまして、それで細くて切れにくいということで、大奮発です(ロボットは電線はかなり使いますから、結構な長さです。信号線だけで、7m近く使っている気がします)。ハンダ付けしていても、被覆が溶けにくくていいですね、これ。安ければ普通にも使いたいぐらいです。

よし、後は、実装!

 

2004/07/15

たまにはGCCの最適化オプションの話

GCCのコンパイルオプションによって得られるもの
R/C受信機からの信号取り込みがうまくいかなくて、SIPHA COREのプログラムをいじっているうちにハタと気づいたのですが、いつのまにか、実行イメージのサイズが30Kバイト!お〜、こりゃ大変、もうすぐ限界!(H8/3664は、32KByteしかROMが無いのです)。コードのボリュームそのものは前と大きくは変わってないので変だな〜と思い調べてみたところ、今回は最適化オプション「-O3」を使用していることがこの差を生んでいることがわかりました。ちなみに、以前は「-O2」を使っていました。

実は、最適化オプション、よくわからずに使っていまして「きっと数値が大きいほど強力なんだろうなぁ」ぐらいなもんです。ま、これも勉強の機会というわけで、最適化オプションを調べてみました。

-O1 基本的な最適化
-O2 ほとんどの最適化
-O3 ほとんどの最適化と単純な関数のINLINE化

そうか〜。この「単純な関数のINLINE化」というのが効いていそうですね。「INLINE化」というのは、ソースコード上は関数を呼び出すように書かれているのを、実際にはコードを呼び出し元の方に入れ込み、呼び出しのオーバーヘッドを無くして高速化する機能です。速度はあがりますが、関数の実体が入れ込まれるためサイズは増えます。そんなわけで、意図的にinline化する関数は「inlne」を関数の頭につけることにして、最適化オプションは「-O2」に戻そうと思います。今回は、「-O3」でもサイズが納まりそうなのですが、今後のさらなる拡張を考えると余裕が欲しいので(いつかは自律です。マジ?)。

どういう基準で「単純な関数」を認識しているのかはわかりませんが、「-O2」と「-O3」を使用したときのサイズの差が「6Kバイト」もあることから、SIPHA COREのソースコードは、相当「単純な関数」で構成されていると言えるでしょう…(^_^; 。

 

2004/07/13

新型SIPHA CORE製作進捗状況

なぜに今日も「新型SIPHA CORE製作進捗状況」なのか?
20040713P00.JPG - 21,266BYTES実は、昨日、あれから寝てしまいました。Zzz。 起きたら朝になっていました。

というわけで、今日は、引き続きSIPHA COREのテスト&改良です。今日は…部品がちょっと干渉して、R/C受信機のクリスタルの納まりが悪かったので、部品の位置を1穴ずらしました。写真で、クリスタルがH8/3664との隙間に納まっているのがわかりますでしょうか?

ところで、今日、SIPHA COREの通電チェックをしていたら、レギュレータがすごい発熱して、まるで短絡しているような感じになってしまいました。実は短絡していました(^^; 。秋月電子で売っている3軸加速度センサをつけているのですが、これをH8/3664の下に、スペースの関係上ひっくり返してつけています。このケースが金属製で、下の基板に接触して、さらに下に通っているすずメッキ線が短絡していたというわけです。いや〜、びっくりしました。

さて今日こそ、これからサーボ信号集線基板、ケーブル類のボディとりまわしフェーズに入ろう。

ところで…さらに!同じくJ-Classにエントリーされているいずみかわさんからも心強い書き込みがありました。頑張ります〜!この方のマシーンは…なんかデザインのカテゴリが近い気がする…。ほら、G-Tuneを横に並べても違和感がないような気がしませんか?

そういえばG-Tuneの名前
名前、まだ決めていませんでした。いや、もちろんG-Tuneなんですが、「2004F」とかの後ろにつける名前です。今回、だいぶ作り直してはいますが、基本コンセプト、基本設計はほとんど変わっていないので、「改」をつけて、「G-Tune2004F改」としようと思います。本当は「G」にしようかどうしようかすごく悩んだのですけど、これで行くことにしよう。英語なら「Improved」って感じでしょうか。

 

2004/07/12

新型SIPHA CORE製作進捗状況

とりあえず進捗でも

  • 短絡無し確認…OK
  • レギュレータ出力…OK
  • 昇圧回路動作…OK(3.6Vぐらいでも5Vキープしています。快調!)
  • 各IC供給電圧…OK
  • H8/3664書き込み動作…OK(前にコンデンサを取っちゃったヤツでやると発熱して動作しないので、やっぱコンデンサは取ってはいけないらしい。さらに、SIPHA COREの配線ミスでちょっと改造必要)
  • 入力ボタン動作確認…OK
  • LED点灯制御…OK
  • サーボ制御信号出力…OK(何が大変って、これが大変。数がありますから。)
  • シリアルEEPROM書き込み…OK
  • 電源電圧監視回路チェック…OK
  • R/C受信機信号取り込みチェック…ちょっと試したけど、新プログラムも変?
  • 3軸加速度センサ取り込みチェック…ちょっと試したけど、オフセットって、こんなに各軸違うもん???なんか変です。そういえば、センサの信号線にコンデンサは繋いだけど、電源間につなぐのを忘れたので、後でつけなおしてみよう。

これが終わったら、後はサーボ信号集線基板、ケーブル類のボディとりまわしってところかな。今夜は、なんとかSIPHA COREのテストを終わらせよう。とりあえず、メカ、ハードのゴールは近い!ものさえできれば、最低限のAction Scriptは前のが使えるので、なんとかなりそうだし、今回、SIPHA TERM(PC側ソフト)はかなり強力なので、動作作りこみの時間短縮も期待できるし。

ところで…同じくJ-ClassにエントリーされているきららRさんからの心強い書き込みがありました。うれしいですね〜。ROBO-ONEのホームページでしかマシーン拝見していませんが、なかなかりりしい感じ。ぜひリングの上で対戦できるよう、スケジュールリカバリ張り切っちゃうぞ〜!

 

2004/07/11

新型SIPHA CORE、とりあえずハンダ付け完了

燃える心を半田ごてに叩き込んで?
20040711P00.JPG - 18,222BYTESSIPHA COREのハンダ付けが完了しまいた。外観はこんな感じです。また、いずれ解説しますけど、H8/3664の裏側には、昇圧回路と、EEPROMと3軸加速度センサが入っています。

とうわけで、写真は通電テスト中のものです。

うぅ。今回もミスが多い!いきなりマイコンに電気が行かなかった。シリアルEEPROMの脚の向きが、配置構想段階から逆だった、その他もろもろ。泣く泣く線を剥がして付け直して…とりあえず、プログラムは書き込みできるようになりました。んなもん、アタリマエダ〜。

ところで!Jクラス用に、シリアルケーブルを用意しようと思うのですが、何メートルぐらいがいいのかな〜。あと、普通の線でも大丈夫かな?そういえば、以前、Kenさんのところで、電話線で数メートルとか書いてあったような…。ということは、通信内容さえシンプル、再送しまくりにしておけば、結構、普通の線でもいいのかな?サーボの延長ケーブルとかがピッタリかなぁって思ってますけど…。

それと、Jクラスネタで、もう1つ気になっていることが…ひょっとして、大人の操縦者、わらひだけ???

 

2004/07/10

新型SIPHA CORE、鋭意製作中!

ハンダごてでファイヤ〜(いやいや、本当に燃えたら危ない。心意気)
20040710P00.JPG - 26,992BYTES20040710P01.JPG - 29,999BYTES

あたりまえだけど、今日は休日出勤。時間ない〜とぼやいていてもしょうがないので、夜から新型SIPHA CORE作り。今回、バッテリの搭載位置を変えたので、前のが入らなくなってしまったのです。上記の写真は、まだ作りかけですけど、現在の状態。この基板の上に一通りのパーツ(マイコン、EEPROM、昇圧回路、R/C受信機、3軸加速度センサ)を載せる予定です。上の方についているのは、入力用スイッチ2つとリセットスイッチです。フレームにネジ止めするところもついてますので、表面積自体は結構大きいです。でも体積は前回より減っています。

加速度センサでジャイロの代わりはできるか?
という問題をずっと考えているのだけど、なんとなくできそうな気がしてきています。ほら、3軸加速度センサとかでできたら、安くていいじゃないですか。いま、何気にできそうだな〜って思っている方法は、2軸なら1軸ジャイロと同等、3軸なら2軸分って感じなんですけど。どうでしょう?(お?もうわかった?)3軸あれば、プログラムに凝れば3軸分いけるかな?後は実験、実装する時間があるかが問題です。うるるるぅ。今回も、倒れている状態判定ぐらいまでかなぁ。

 

2004/07/09

ふう。

仕事の方がファイヤ〜
本日、ようやく帰国。仕事の方、なぜかファイヤ〜しています。な、なぜでしょう。前回もそうでした。前々回も仕事ではなかったのですが、こんな感じでした。どうやら人生、そういうものらしい。目の前には、配線の終わっていないG-Tuneと基板を切り出しただけのSIPHA CORE。日付は7月9日を回って7月10日。ROBO-ONEまではもう1ヶ月を切っている。仕事はまだ燃え盛り中。

きっと

「人生そういうもの」

なんだ。うん。これも試練。

 


Back Number of SISO-LAB FUTEIKI TOPIC
2004 Jan. Feb. Mar. Apr. May. Jun. Jul. Aug. Sep. Oct. Nov. Dec.
2003 Jan. Feb. Mar. Apr. May. Jun. Jul. Aug. Sep. Oct. Nov. Dec.

Top Page