2004/07/31 |
J-Class用SIPHA CORE SERIAL
COMMANDER リモコンボックスの方ですが、レバーで接点を、基板のパターンの上で動かしてモーターの回転方向を変えるものでして、左の写真のようになっています。これを、右の写真のようにカットしました。なんとなく、そのまま繋いでも動くかな〜なんて思ったのですが、やっぱシンプルに、ということで、スイッチを倒すとグランドになる、というふうにパターンカットしました。要は、プラスから来ているパターンを、すべてスイッチごとにカットしました。 んで、パーツをすべて納めてみました。う〜ん、いい感じです。さて、さっそく使ってみたのですが…。 クオリティーいまいちな感じ〜。 でした。1000円もしたのに…。接点がイマイチ安定しないので、ちょっと接点の曲げを調整してみたのですが、今度は、曲げすぎたのか反力が強まってレバーが中央に復帰しなくなって、接点は安定したものの、ONできないところができちゃって、しょうがないので、ケースをちょっと削って、レバーの縦方向の動作範囲を広げたとか、レバーの感触はやっぱりよろしくないとか。 う〜ん、タミヤさん、もうちょっとがんばってください。だって、おいらのあのプロポ、4000円ですよ、4000円。1000円で送信機能無しならばもうちょっとがんばって欲しいところです。 んで、J-Classで使用するということで、ケーブルの取り回しを良くするために、最終的に、このようになりました。ちゃんちゃん。
SIPHA
CORE調査状況 そんなわけで、サーボ信号出力ピンにつけている抵抗、どれくらいまで大きくしても問題がないかを確認してみることにしました。いろいろ手持ち部品で変えてみると…う〜む、意外なことを発見した。あれって、10KΩでもサーボ制御できます。試したのは、GWS S03Tと旧MICRO-MG、新MICRO-MGです。 たぶん、抵抗を大きくしていくと、だんだんノイズに弱くなっていくんでしょうけど、実際にG-Tuneの動作を眺めている限り、挙動不審はまったくなし。意外でした。というわけで、1.5KΩぐらいをつけてみることにしよう。これもまた根拠ないけど、なんかトラブルがあって、変な電圧や電流がかかっても、これぐらい抵抗してくれれば耐えれるでしょう…的ノリ。5Vなら3mAですから。だめならさらに5KΩぐらいまであげてみます。それでもダメなら、違う原因ということにして、また考えることにしよう。 「ぴんぽーん」 | |
2004/07/30 |
なんでだろう??? スクリプトをデバッグしていたら、「ぎゅん」と格納体系にいきなり移行。お、リセットがかかったな。うん、プログラムが進んでくると現象がわかりやすくていいな〜… と、感心している場合ではないです。 なぜだろう?G-Tune 2004Fではこんなことなかったのに。う〜ん。そういえば、プログラムの消失もそうだ。なんでG-Tune 2004FIになってからこういうことがおきるんだろうか。といわけで、現象を整理してみる。
う〜む、よくわからない。が、何かポートに電流が流れていそうな気がする。もしくは、どっかのサーボが壊れかけて電流がたくさん流れているかも(以前、壊れたサーボを接続したらマイコンが発熱した経験あり)。あと、マイコンの電源を落としてサーボ電源だけ入れておいたら、マイコンが異常発熱したこともあったな〜。あの時繋いでいたサーボはなんだっけ? 新しいH8/3664に変えてみるのも手だけど、以前、「プログラムが消える」から、「動いている最中にリセットがかかったり、その後プログラムが消えたりする」という状況から考えて、時間稼ぎ以上にはならないと思われるため、まずは対策トライから行ってみようと思います。 もし、サーボ制御ポートから電流が流れ込む、もしくは流れ出すという現象が、この怪現象を引き起こしているとすれば、G-Tune 2004Fとの違いに深い関係があるに違いない。違うといえば、サーボの構成ぐらいか。使っているポートは、今回、サーボ制御用にポート2とポート7を追加使用しています。 よし、まずはP2とP7に繋いであるサーボをはずして様子を見てみよう。 それから、よくわからないのですが、電流に絡んでいそうなので、「電源は共通でもマイコンとサーボ電源は別々にON/OFFできるようにする」、 「保護抵抗をでかくする」というのをやってみようと思います。部品発注〜(チップ抵抗じゃないと基板に載らない…)。間に合うんかいな?それでもだめなら、無理やりロジックICかますか? 気分転換 | |
2004/07/29 |
ピットクッションシート 今までは、「ほどほどにグリップ」ということで、カッティングシートのクリアを貼ったり、絶縁ビニールテープを貼ったりしていたのですが、今回は「とってもグリップ」にチャレンジです。軽量級マシーンにグリップする足裏というのもどうかな〜?という感じはするんですが、ROBO-ONE本戦で戦おうと思うと、軽量を補うためにもグリップする足裏がやっぱ必要かな〜って感じで。 んで、ま、ショック吸収性も高い方がいいかな〜ぐらいで、これを選びました。 さて、さっそく貼り付け…切るのが難しいです。というわけで、貼ってから形をあわせるのは非常に難しいことがわかりました(要はゴミを作った)。しょうがないので、ABS切り出すときみたいに型紙を作って、カットしてから張りました。さて、さっそくSISO-LAB特製リング模擬台へ(俗にコタツとも言う。うちのコタツの天板、非常にリングのグリップ感に似ていると思う)。 う、全然グリップしない。と思ったら、粘着面以外にもシートを剥がす必要があるのね…。それでは気を取り直して…。 「ぎゅぎゅっ」いや、マジにそう聞こえたんですよ。 「吸盤でくっついたみたいなグリップ」 でした。おぉぉぉ。くっつきすぎ。脚を上げる動作をさせると、「ぎゅっぎゅっ」って言ってる。あまりにもくっつきすぎるので、先輩方に習って、隅はテープ(メディングテープが薄くてすべりがいい)で処理をしてみました。ちょっと見づらいですが、写真のようにしました。
| |
2004/07/27 |
距離センサを使って何しよう? 実際に書いた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に書き込んで一連の作業は完了します。 アクションスクリプト
実はもうちょっとあるのですが、説明が難しいので…。先のコードを見ていただくとわかるのですが、ラベルがコメント中に書かないといけないとか、"*"と"@"を使い分けないといけないとかありまして、イマイチなところもありますが、プログラム的にはこれがとても楽です。また、角度指定は、整数のみとなっていますが、実際には補間プログラムが働きますので、「停止位置が整数でのみ指定できる」というだけで、動作単位が整数というわけではありません。 もともと、H8/3664のROM/RAM領域がとても少ないということもあって実装を始めたのですが、なかなか使いやすくなってきました。こういった中間言語をロードするような形にしておけば、すべての動作データをシリアルEEPROMに書き込めますのでオススメです。またそのうち、どんな言語体系かわかるようなものをアップします。 めずらしく東京出張 どうやら到着したてのホヤホヤの模様。かばんから出して、店長さんに説明しているところのようでした。せっかくなので、すこしお話を伺い、じっくり見せてもらいました。フレームはOmni Headと同じなのかな?と思っていたのですが、上半身はだいぶ違うようです。腰のピッチ軸とヨー軸が結構低い位置についていて、上半身の部分は結構スペースが開いていました。また、肩のピッチ軸サーボも胴体側に入っているようで、稼動範囲も上方向に向かって広範囲に動くように載せてありました。う〜む、なるほど。 なんか特売品ないかな〜と思ってブラブラしていて、ソフマップ(本店だと思う)に寄ったら、「知らないメーカーのプレステ用(と思われる)ワイヤレスコントローラ」が50円!50円ですよ。ホントに。受信側は無いそうなのですが、ま、マシーンコントロール用に改造するなら充分かな?と思って、買ってきてしまいました。今回は間に合いそうに無いので使いませんけど、いつかシリアル無線化するときの改造の勉強用と思いまして買いました(そう思って買って、使わないパーツが増える…こともある)。 | |
2004/07/25 |
一通り、メカの方完成しました。予定していた全てのパーツを実装し、整線も完了。後はいろいろ動かしてみて不具合だしってところです。重さのほうですが、フル実装(本体、バッテリ、受信機、センサなどを実装)していても1145gと、J-Classのレギュレーションの1200gまではまだ余裕があります。 ただ、まだ足裏は何も処理していません。今、考え中です。ソルボセインなんてものも手元にあるのですが(これ、意外と安く、10cm四方ぐらいで400円だったと思います)、イマイチ扱いが悪い感じで、今回は見送ろうかな〜と思っています。なんか結構ベトベトしていて、う〜ん、どうやって使おう???って感じです。重さ的には大丈夫なんですけどね〜。いつもならクリアのカッティングシートを貼っています。 整線 しかし…前回同様、スケジュール押しまくりでヤバヤバなんですが、なぜか、今回気分がいいです。不思議です。気分良すぎて、次回のせるつもりだったパーツまで載せてしまいました。今、テストしていますので、また後日ということで。では!
| |
2004/07/23 |
MICRO-MG 6個様記念撮影 でも、この手のものに興味の無い人から見たら、「え〜、これで2万円???」と言いたくなるような物なんだろ〜な〜。これでも安いんですよ〜。よし、これで懐に余裕はなくなったが、心に余裕ができた。今夜もぐいぐい動作データ作ります。とか言いながら、基本姿勢部分を作っているので、ちまちまと、慎重にやっています。 自分の場合、「立ち姿勢」、「構え姿勢」、「しゃがみ姿勢」とかを基本として動作スクリプトを作っています。で、これらの姿勢というのは非常に神経を使う部分でして、例えば…
SIPHA
TERMからのテキストエディタ起動 しょうがないので、困ったときのWIN32API!本当は、CreateProcess()を使うのが正しいのですが、WIN32APIとかもあまり詳しくないので、ティロリロリン♪禁じ手の"WinExec()"(^_^; この関数って、シンプルで使いやすいですよね!(本当は、昔のOSとの互換を維持するために用意されている、イニシエの関数)というわけで、アクションスクリプト管理画面でスクリプトを選択して「編集」ボタンを押すと、エディタが起動できるようになりました。 もし、ちゃんとしたやり方を知っている人がいたら教えてください。うるる。 | |
2004/07/21 |
G-Tune、SIPHAともに快調! 動作設定ですが、左のサーボ操作画面でちょいちょいと位置あわせをして、右中段の「サーボ位置レコーダ」で記憶していき再生チェックをして、Action Scriptファイル出力。そのままでも動作はするのですが、さらにタイマの値などをエディタで修正して、右下の「アクションスクリプト管理」で再生テスト、最後にシリアルEEPROMに焼き込み。こんな感じでやっています。いざとなったら「緊急停止」で全サーボ制御信号オフ!これ大事です。 オペレーション的には「もう一声!」な感じですが(例えば、アクションスクリプトを実行し始めちゃうと、緊急停止以外で途中で止める方法が無いとか)、まあ、今回はこれぐらいで行こう。 というわけで、以前は難しくてやらなかった、こんな動作にチャレンジしてみました。「身体を捻りながら手をあげての挨拶」です。 SIPHA
TERMのユーザインターフェイス 実は、「SIPHA」という名前がつく前のコアは、キャラクタベースのユーザインターフェイスを採用していました。これをなぜ、グラフィカルなものに変更したかといいますと、メモリサイズです。初代で載せたCUIは、プログラム、表示データあわせて30Kバイトほど。H8/3664だと、それだけでメモリを使い切ってしまいます。シリアルEEPROMから表示データを読み出すという手もありますが、それはそれで結構大変そう。他の手として、パソコン側でキーボードを中心としたオペレーションをするソフトを組むという手もあったのですが、WideStudioでホットキー系のプログラムの組み方が良くわからず、結局こうなったという感じです。
というわけで、GUI系のものは初めて使うわけですが、結構いいような気がします。H8/3664を使う以上、コア側にCUIのプログラムを載せるのはあきらめていますので、SIPHA TERMにさらにショートカットキー風に、サーボ操作画面にキーボードからの直接操作機能をつけれればバッチリかな?と。また、もうちょっとWideStudioの勉強が進んだら報告します。 ちなみに、JinSatoさんが採用されている「マウスホイールを使ったオペレーション」ですが、今のところ、WideStudioのスライドバーではできていません。結構、ゴリゴリとコードを書いて部品をカスタマイズしてあげないと無理っぽいです。ただ、WideStudio全てが対応していないわけではないです(リストボックスとかはホイールでスクロールできます)。 サーボ発熱… って感じでしょうか。 なぜかこれを忘れて…そういうときに限ってミスる。そんなもんです。
前回、マシーンを机から落としてサーボ4つ交換した経験があるので、それの予備も兼ねて、どどんと6個発注!してしまいました(今回は、ほとんどのパーツを流用しているので、懐に少し余裕アリ)。
| |
2004/07/19 |
ソフトデバッグ、ガンガン実行中 でも、時間が時間で、動画アップする気力は無くなってしまいました。明日は仕事だ…。 そ、そういえば、まだ重量測ってない…。
| |
2004/07/18 |
制御系実装完了! 制御系実装完了しました。ようやく自力で立てるようになりました。今回は、SIPHA CORE、縦積みです。コアの裏側のあたりに隙間が見えると思いますが、この中に単4×6が入ります。現在、機体テストのため、4.8Vテスト中なので載せていません。まだまだ、サーボ位置補正プログラムにバグがあるみたいで、プログラムから角度動作がうまくできておらず、一番最下層のドライブプログラムで動かしている状態です。そんなわけで、まだまだ「動いた〜」という実感には浸れておらず、ひたすらデバッグ中です。とほほ。 しかし…ふと載せたくなるもので、しかも7.2Vを加えたときに限ってミスるものでして、MICRO-MGが1つお釈迦になりました。あらら。 H8/3664の?な現象 この現象にはまり込むと…リセットをしてもプログラムが再起動しない。電源切って再起動してもだめ、唯一OKなのが、新たにROMにプログラムを書き込むこと。もし、同様な現象の情報をお持ちの方いらっしゃいましたら、情報交換しませんか?(交換とか言いながら、既にここで出し切っているSISO)。
| |
2004/07/16 |
さあ、後は本体に取り付け! G-Tune 2004Fでは集線基板の方に100Ωの抵抗を入れていましたが、今回はSIPHA COREの方に入れていますので、すごくシンプルです。また、電力線ですが、脚の集線基板に関しては細いものを2組使って電線そのものを細くすることで、取り回しを良くしています(実はループができちゃうのでノイズが心配)。 上腕用の方ですが、サーボ端子が1つ余らせています。そのうち、腕の自由度をもう1つ上げたいので、その時用につけています(でも、その時がきたら、この基板、どうせ作り直すんだろうな〜)です。また、コンデンサが1つ載っているのが見えますが…これもまた、いつか距離センサをつけようと思っていますして、それ用のアナログ入力と電源供給です。電源間に10μFが入っています。 電線は、今回奮発して購入した高屈曲ワイヤーとシリコンケーブルです。高屈曲ワイヤーですが、今回は、かなり狭いところを通そうと思っていまして、それで細くて切れにくいということで、大奮発です(ロボットは電線はかなり使いますから、結構な長さです。信号線だけで、7m近く使っている気がします)。ハンダ付けしていても、被覆が溶けにくくていいですね、これ。安ければ普通にも使いたいぐらいです。 よし、後は、実装!
| |
2004/07/15 |
GCCのコンパイルオプションによって得られるもの 実は、最適化オプション、よくわからずに使っていまして「きっと数値が大きいほど強力なんだろうなぁ」ぐらいなもんです。ま、これも勉強の機会というわけで、最適化オプションを調べてみました。 -O1 基本的な最適化 そうか〜。この「単純な関数のINLINE化」というのが効いていそうですね。「INLINE化」というのは、ソースコード上は関数を呼び出すように書かれているのを、実際にはコードを呼び出し元の方に入れ込み、呼び出しのオーバーヘッドを無くして高速化する機能です。速度はあがりますが、関数の実体が入れ込まれるためサイズは増えます。そんなわけで、意図的にinline化する関数は「inlne」を関数の頭につけることにして、最適化オプションは「-O2」に戻そうと思います。今回は、「-O3」でもサイズが納まりそうなのですが、今後のさらなる拡張を考えると余裕が欲しいので(いつかは自律です。マジ?)。 どういう基準で「単純な関数」を認識しているのかはわかりませんが、「-O2」と「-O3」を使用したときのサイズの差が「6Kバイト」もあることから、SIPHA COREのソースコードは、相当「単純な関数」で構成されていると言えるでしょう…(^_^; 。
| |
2004/07/13 |
なぜに今日も「新型SIPHA
CORE製作進捗状況」なのか? というわけで、今日は、引き続きSIPHA COREのテスト&改良です。今日は…部品がちょっと干渉して、R/C受信機のクリスタルの納まりが悪かったので、部品の位置を1穴ずらしました。写真で、クリスタルがH8/3664との隙間に納まっているのがわかりますでしょうか? ところで、今日、SIPHA COREの通電チェックをしていたら、レギュレータがすごい発熱して、まるで短絡しているような感じになってしまいました。実は短絡していました(^^; 。秋月電子で売っている3軸加速度センサをつけているのですが、これをH8/3664の下に、スペースの関係上ひっくり返してつけています。このケースが金属製で、下の基板に接触して、さらに下に通っているすずメッキ線が短絡していたというわけです。いや〜、びっくりしました。 さて今日こそ、これからサーボ信号集線基板、ケーブル類のボディとりまわしフェーズに入ろう。 ところで…さらに!同じくJ-Classにエントリーされているいずみかわさんからも心強い書き込みがありました。頑張ります〜!この方のマシーンは…なんかデザインのカテゴリが近い気がする…。ほら、G-Tuneを横に並べても違和感がないような気がしませんか? そういえばG-Tuneの名前
| |
2004/07/12 |
とりあえず進捗でも
これが終わったら、後はサーボ信号集線基板、ケーブル類のボディとりまわしってところかな。今夜は、なんとかSIPHA COREのテストを終わらせよう。とりあえず、メカ、ハードのゴールは近い!ものさえできれば、最低限のAction Scriptは前のが使えるので、なんとかなりそうだし、今回、SIPHA TERM(PC側ソフト)はかなり強力なので、動作作りこみの時間短縮も期待できるし。 ところで…同じくJ-ClassにエントリーされているきららRさんからの心強い書き込みがありました。うれしいですね〜。ROBO-ONEのホームページでしかマシーン拝見していませんが、なかなかりりしい感じ。ぜひリングの上で対戦できるよう、スケジュールリカバリ張り切っちゃうぞ〜!
| |
2004/07/11 |
燃える心を半田ごてに叩き込んで? とうわけで、写真は通電テスト中のものです。 うぅ。今回もミスが多い!いきなりマイコンに電気が行かなかった。シリアルEEPROMの脚の向きが、配置構想段階から逆だった、その他もろもろ。泣く泣く線を剥がして付け直して…とりあえず、プログラムは書き込みできるようになりました。んなもん、アタリマエダ〜。 ところで!Jクラス用に、シリアルケーブルを用意しようと思うのですが、何メートルぐらいがいいのかな〜。あと、普通の線でも大丈夫かな?そういえば、以前、Kenさんのところで、電話線で数メートルとか書いてあったような…。ということは、通信内容さえシンプル、再送しまくりにしておけば、結構、普通の線でもいいのかな?サーボの延長ケーブルとかがピッタリかなぁって思ってますけど…。 それと、Jクラスネタで、もう1つ気になっていることが…ひょっとして、大人の操縦者、わらひだけ???
| |
2004/07/10 |
ハンダごてでファイヤ〜(いやいや、本当に燃えたら危ない。心意気) あたりまえだけど、今日は休日出勤。時間ない〜とぼやいていてもしょうがないので、夜から新型SIPHA CORE作り。今回、バッテリの搭載位置を変えたので、前のが入らなくなってしまったのです。上記の写真は、まだ作りかけですけど、現在の状態。この基板の上に一通りのパーツ(マイコン、EEPROM、昇圧回路、R/C受信機、3軸加速度センサ)を載せる予定です。上の方についているのは、入力用スイッチ2つとリセットスイッチです。フレームにネジ止めするところもついてますので、表面積自体は結構大きいです。でも体積は前回より減っています。 加速度センサでジャイロの代わりはできるか?
| |
2004/07/09 |
仕事の方がファイヤ〜 きっと 「人生そういうもの」 なんだ。うん。これも試練。
|
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. |