SISO-LAB不定期TOPIC Apr.2004


2004/04/22

J-Classにも出たいです。G-Tune軽量化計画発動!

相変わらず…(もういいって^^;)。ROBO-ONEサイトで、第6回ROBO-ONEレギュレーションが発表されました。ROBO-ONEの方は、参加資格に起き上がりが追加され、予選デモが自立化されたぐらいで、他はだいたい前回と同じ感じです。んで、気になるROBO-ONE J-classはJr.と統合され、1200gで、予選は、ほ、歩行競技〜!?(with Family特典付き)です。う〜ん、うちには子供がいないし…う〜ん。でも、エンターテイメントで歩行競技は、微妙にどうかと…。

歩行競技は、やってみないと、その時のレベルがわからないので一生懸命やるとして、それよりまずはレギュレーションを満たすために、1200gへの道のりを制覇せねば。目標は、1200gで、J-classと本戦、両方に出られるようにしたいと思います。たぶん、いつものパターンで本戦の前夜って、時間が惜しい状態になっていると思われますので、一晩で部品変更とかはキッパリとやめようと思います。

さて、現在のG-Tuneは、正確には1332g(バッテリ、無線機込み)です。これを、今後の改良分も含めて1200gまでダイエットしないといけません。改良は、S03Tのメタルギア化です。メタルギアとプラギアの差は、1セットあたり17gの増加になります。ということは、現在、S03Tを7つ使用していますので、全部で119gの増加になります。よってトータルは…1451g!うぅ、結構、重い。

そんでは、作戦。まずはお手軽なところで…

  • バッテリを単4化(G-Tune動くのか?)…159g→76g
  • 電池ボックスを廃止…46g→0g
  • 無線機下ろす…5g→0g
  • お辞儀サーボをS03T-MG→MICRO-MG化…63g→27g

これで全部で…170gの軽量化で1281g。ということは、まだまだ81g削らないとダメですね〜。構造見直すか、サーボ減らすかしないと苦しいかな〜。ちなみに、3mm厚のABSに6mmの穴をあけると、0.089gの軽量化。つまり、910個穴をあけると…うぅぅ、考えるのをやめよう。

 

2004/04/20

AKI-H8/3664に載っている電解コンデンサを取ったら???

相変わらず…(以下、前回の不定期TOPICと同じ)で、なかなか進んでいませんが、今日は「これ無いとつるんとしてカッコイイかも」なんて思いながら、なんとなしに、AKI-H8/3664の上に載っている電解コンデンサを取ってみました。

う〜ん、かっこいい。これで上面に出しているコネクタも取ると、つるるんとしたマイコンボードになりますね〜。ためしに動かしてみたら、ちゃんと動作します。あたりまえだろ〜と思って、書き込みモードにしたら…なんと「発熱して、しかも書き込みモードにならないではないか!」なのです。以前、掲示板に書き込まれていた、クマさん、なんか非常に似た症状になりましたよ!!!

20040420P00.JPG - 9,368BYTESよく考えてみたら、小型スイッチング電源から直接5Vを取っているので、電解コンデンサー、ひとつもなくなっちゃったんですね…。やっぱ電解コンデンサは無いとダメであると…。この後ですが、電解コンデンサ(100μF)を、基板の方に追加したら大丈夫でしたので、電源から見て、どっかにあれば良さそうです。

というわけで、SIPHA-COREの場合、電源回路を持っているので、AKI-H8/3664上に電解コンデンサが載っていなくても大丈夫(電源回路側にある)ということになります。あとちょっと高さが!という時に有効ですね(笑)…メチャしろうとカモ…

 

2004/04/13

H8/3664書き込みスイッチで開発速度アップ(かも)

仕事忙しいです。毎日夜遅いです。出張多いです。休みは爆睡です。うぅぅ。というわけで久々の更新です。みなさま、お元気でしたでしょうか?

20040413P00.JPG - 10,113BYTESさてさて、う〜ん、時間がなかなか取れません。そんな時は、気を取り直して、少しでも短時間でロボットを仕上げる方法を考えよう!というわけで、今日は、「H8/3664書き込みスイッチ」を作ってみました。

材料は、手元にあった適当な2.54mmピッチの4連コネクタ。本当は、黒いやつ(サーボのコネクタみたいなヤツ)が良かったんですが、手元に4Pのものがなかったんで、これにしています。後は、適当な電線で引っ張って、6Pのトグルスイッチにハンダ付けして出来上がりです。

写真だと、スイッチがどっち向いていると書き込みなのか、非常にわかりづらいのですが、自分もよくわからない(ビニールテープの偏りでなんとなくって感じです)ので、後で、なにかマークをつけておくことにします(^^;

AKI-H8/3664なんですが、基本的な使い方としては、書き込み時は、J2とJ3それぞれを、ショートピンで短絡してやるわけですが、これがなかなかめんどくさいです。さらにロボットに組み込んだ状態では、精神衛生上、かなりよくないです。そんなときも、これがあれば、デバッグ効率ぐぐっとアップです。簡単なので、非常にオススメです。

20040413P01.JPG - 20,038BYTES写真はG-Tuneの背中ですが、こうやってスイッチを引っ張り出しておくと、とっても楽チンですね〜。ショートピンと違って、そうそう無くしませんし。

 

2004/04/04

WideStudio+H8/3664で、サーボ16個、スライドバーでぐりぐりサンプル

20040404P00.JPG - 17,484BYTES昨日はほとんど爆睡で終わってしまったので、今日は気合をいれて行きます〜。

WideStudio、だいぶ理解できてきましたので、ちょっとそのあたりのご披露と、日頃お世話になっている御礼も兼ねて、今日は、スライダーでサーボを動かす超シンプルなサンプルプログラムをどど〜んとアップします。このサンプルプログラムで、H8/3664とWideStudio理解のお力になれればと思います。結構適当に作っている部分もありますので、取り扱い注意でお願いいたします。左の写真は、SIPHA-COREからTSC16に無理やり入れ替えさせられて、嫌々動作するG-Tune2004Fです。

このサンプルプログラム、H8/3664でサーボを制御し、それをパソコン側からスライダーで動作させるだけのプログラムです。あれこれつけ加えず、極力シンプルに仕上げてあります。サーボの制御値は、タイマの値が直接ですし、サーボ角度補正機能もありません。また、サーボ制御信号ON/OFFの機能もありません。いろいろ考えたのですが、そういった機能も全部落として、超シンプルにしておいた方が、基本が理解しやすいのでは?と、自分の経験から思いまして、あえてそうしています。

その辺りの機能は、このプログラムをベースにしたり、アイデア元ネタにして、それぞれでやっていただけたらな〜と思います。ちなみに製作時間は、H8/3664側の改造も合わせて、だいだい12時間ぐらいです。WideStudio、なかなかいいです。

そんなわけで、
  ☆パソコンでどうやってシリアル通信をするか?
  ☆動作中のマイコンと、どんな感じで通信したらいいか?
  ☆スライダーの動きとどう同期させるか?
というあたりに関して、理解が簡単になるように、極力「短くてシンプルなプログラム」で書いています。参考になるのでは?と思います。でも…あくまでも、1つのやり方であって、他にももっといろいろなやり方があります。参考程度に考えておいてくださいね。

また、H8/3664側のプログラムですが、なかぷさん(二足歩行ロボット E-Vis)の「制御の事始め」にて紹介してくださっているプログラムをベースに、シリアル通信などを付け加えたものです。H8/3664側のプログラム詳細については、なかぷさんのホームページの方を参考にしてくださいね。

動作環境及び使い方
TSC16.lzh」ファイルをダウンロードして展開すると、「TSC16TERM」と「TSC16CORE」というディレクトリができます。パソコン側には「TSC16TERM」を、H8/3664の方には「TSC16CORE」を使用します。

■TSC16TERM
20040404P01.JPG - 14,232BYTESWideStudio V3.70-3で開発しています。動作はWindows2000にて確認しています。

TRC16Term.prjをWideStudioで開き、「ビルドオール」してください。これで実行ファイルが作成されます。

実行すると、画面が1枚だけ表示されます。左上の「通信ポート」で、お手元の環境に合わせたポート名を入力し、「通信切断」と書かれたオプションをクリックして「通信接続」を選んでください(今、書いていて思ったんですが、通信接続するために「通信切断」を選ぶなんて、終了するために「スタートメニュー」を選ぶ、不思議なあのオペレーティングシステムみたい…)。うまくいけば、オプションが緑色に変わります。

後は、画面上のサーボスライダを触って動作させてみてください。

接続できない場合は…いろいろ理由は考えられますが、まず、通信ポートを開き、「CR」のみ送信して、CORE側からの「CR」を待ちます。「CR」受信が完了した時点で、通信接続完了としています。そんなわけで、COMポート名が間違っているとか、他のアプリケーションが同じCOMポートを使用している可能性が高いです。

■TSC16CORE
使用しているソフトウェアは、H8/3664側はGDL VERSION 1.5.0.18です。H8/3664はGDLで「H8/3664F(H8Tiny)内臓フラッシュROM」を選択し、「最適化レベル」は「最適化なし」にしておいてください。後は普通に書き込んでください。起動すると、いきなり、1500μSecのサーボパルスを出力しますのでご注意ください。

仕様
■TINY SERVO CONTROLLER 16 CORE/TERM
それっぽい名前を付けていますが、16個のサーボをH8/3664から制御し、それをパソコンから「スライダー」で制御するサンプルプログラムです。

■サーボ接続先
H8/3664からのサーボ接続ピンですが、P14〜P17、P50〜P53、P80〜P83、P84〜P87を使用しています。詳しくは、なかぷさんのホームページ、E-Visの「制御事始め」を見てくださいね。あちらで解説されているプログラムを基本として、シリアル通信プログラム及び制御プログラムを追加してあります。

■通信プロトコル
シリアル通信にて、以下のようなフォーマットでデータの授受を行っています。すべてテキストデータを使っています。実は無駄です。でも、デバッグとかで動作確認する時、TeraTerm等の一般端末ソフトを使ってもできるという利点があり、バイナリデータではなくテキストデータを使用しています。

  • 必ずTERM側からの問いかけに対してCOREが応答します。
  • TERM側より1バイト送信、データが有効だった場合、同じデータを返信します。
  • 通信データに問題があった場合、COREは返事をしません。TERM側では、50msec以内にデータを受信しなかった場合、異常とみなします。
  • やりとりするデータは、6バイトで構成されています。
      1バイト目 a〜p サーボ0〜サーボ16
      2バイト目 0〜9 サーボ位置(千の位)
      3バイト目 0〜9 サーボ位置(百の位)
      4バイト目 0〜9 サーボ位置(十の位)
      5バイト目 0〜9 サーボ位置(一の位)
      6バイト目 0x0D
  • 通信確認等のための特例として、0x0Dのみを受信した場合でも、0x0Dを返信します。

技術的ポイント
■スライダーなどの部品生成について
このサンプルでは、プログラムによる動的生成を採用しました。理由は、2つありまして、1つづつ作っていく方法は、アプリケーションビルダからやるだけなので、あえてサンプルにする必要はないだろうという判断です。もう1つは、この先、このプログラムを改造していって、ロボット側から情報を受けてスライドバーを更新するような動作をさせたい場合に、ペタペタと作っていく方法では、うまい手が見つからなかったからです。たぶん、WideStudioのオブジェクト管理体系ならば、いい方法がありそうなのですが、今のところ見つけていません。

■タイマにてデータ送信
実は、「スライダーを動かしたらデータ送信」ではなく、タイマで定期的にスライダーの変化をチェックして、変化があったときに送信するようにしています。各スライダーは、スライドさせることによって1000〜4800の変化をします。ちょっと変化する毎にデータを送っていると、データ量が多くなって反応が鈍くなってしまいます。そのため、これの制限も含めて、タイマで定期的にチェックして送信という形をとっています。

■サンプルについているロボットの画像
同じファイル名にすることで、異なる画像に入れ替えることが可能です。サイズは640x640です。スミの2ドットは表示されませんのでご注意ください。デザインについては特に意味はありません。今回はパワーポイントで書いたものを、BMPにしています。差し替え可能です。WideStudioは、JPGも表示できますから、写真と入れ替えていただいても構いません。このロボット、股間を開くサーボを1つにしてリンクで開くような構成にすると、16サーボで腰の回転もつけれそうですね。意外にまともなデザインかもしれません。でも、次期G-Tuneとか、そういう意図はまったくありません。極めて、平凡な構成です。

■シリアル通信について
SIserialComm.h/cppというソースファイルにクラスで記述してあります。もし、他のアプリに使われるのでしたら、このソースファイルをコピって、WideStudioの「プロジェクト」−「プロジェクト設定」にて、「コンパイル」タブを開き、「追加オブジェクト」に「SIserialComm.o」と追記するだけで使えるようになります。

 

後は…皆さんご自身で料理してみてくださいね!ではでは〜。

 

2004/04/03

春眠暁を覚えず???

20040403P00.JPG - 20,694BYTESう、や、やばいです。久々にお休みの土曜日…爆睡です。

朝起きる。朝ご飯食べる。寝る。お昼ご飯食べる。バイクで妻を後ろにのっけてお花見に行く。帰ってきて寝る。晩御飯食べる。再び寝る。気が付いたらこの時間。お風呂に入って、また寝る…。春眠暁を覚えず…^^;

ちょいまえのハードワークが効いてる…ということで、しばらくは身体の欲求に任せることにしよう(笑)。


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