訪問者数

Vinsentのモーションエディタ

今日はVinsentのモーションエディタを紹介します。




なんの特徴もありません。スライダーバーを操作してサーボを動かし、1ポーズが出来たら、右側のリストに登録していきます。保存ボタンを押すと、右側のリスト情報がファイルに出力されるので、そのファイルをコピーしてmini1.cのファイルに貼り付けたら完了です。
また、3軸ピッチぶんの逆運動計算をさせることも可能となっております。手順としてはスライダーバーを操作してサーボを動かし、原点ポーズを作ります。そして原点ボタンを押すとそのポーズを原点として記憶させます。その後は両足にある左右と縦横のスライダーバーを操作すると3軸ピッチぶんのスライダーバーが連動して動作します。
左上のスライダーバーは、ポーズ間の移行時間の指定に使用しています。値を大きくするとスローな動作になります。

ソースコード

ソースコードも公開しますが、前回のマイコン側のソースコードと比べるとさらにひどいコードになっております。マイコン側のソースコード作成時は最初はちゃんと作っていたのが予選演技用に細工をしていく過程でだんだん悪いコードになっていったのですが、モーションエディタのソースコードは最初からひどいです。その理由は私自身このモーションエディタがWideStudio処女作だったため、勉強がてらテストがてらに作ったためです。はい、ただの言い訳です・・・

そして、改善すべき箇所は山ほどあるのですが、不具合も結構あります。でも直さずに我慢して(直すのがめんどい)使用しております。
さすがにそろそろ直す予定にしております。
改善予定項目
1、モーション移行時の加速制御と減速制御ON/OFF機能
2、モーション作成後マイコンにデータをアップロードしないと実際の動作確認が出来なかったのを、アップロードなしでも確認できる機能
3、使い勝手の向上

Vinsentのプログラム

VinsentにはM16Cというマイコンを使用しています。
若松通商で購入したOAKS16-MINIというやつで、小さかったのと1500円程度と安かったのが決めてです。

今日はそのマイコンにアップロードしているプログラムを大胆にも公開しちゃいます。(恥かしい!!)
先にいっておきますが、非常につまらなく(高級な技術は何もない)非常に汚い(デモ演技をコーディングするとだんだん汚くなる)プログラムです。少なくとも、現在自分でコーディングできている方は、興味本位以外では全く見る必要のない程度の代物です。
しかも、Robo-Oneに出たときのままです。公開用に整理したり、コメントを追加したり、不要な部分を消したりしてません。不親切きまわりないです。

でも、ですよ。プログラミングの基礎は本で勉強したけど、実際にサーボ動かす自信は無いとか、予選演技はどうやるんだろうとか、PS2のコントローラと通信したりコントローラのバイブを動作させるにはどうするんだろうとか、今は市販のロボ専用ボードとモーションツールを使っているけど今後は自作してみたいと思っているとか、冷やかしとか、きっと必要と思ってくれる方がいると信じて恥を忍んでの公開です(笑)

mini1.txt

ファイル名がmini1.txtとなっていますが本当はmini1.cです。コンパイルする場合は拡張子を変更してください。mini1.cっていうファイル名からしてプログラム作成のやる気の無さが伝わるかと思います・・・
(サンプルで付いてくるプログラムを改造したのでファイル名がそのままなのです・・・)

すごく簡単に概要を説明すると
・最初にモードを決定します。モードには232Cによるモーション作成モードと、PS2PADによる操作と、予選演技と、写真撮影用ポーズのモードがあります。モードの変更は回路図で言うところの4つのDipスイッチでマイコンの電源ON前に行っておきます。
・PS2PADとの通信では普通のIOポートをちまちまON/OFFして行っていますが、どうやらPS2の通信と言うのは232Cの仕組みと同じらしい。このプログラムは結構無駄なことをしているかもしれません。それでも一応通信しています。本来(PS2)は2μs周期を基準で通信するらしいのですが、Vinsentのプログラムでは4μs周期(処理速度的にいっぱいいっぱい)で通信を行っていますが、一応通信できています。ちゃんと232Cの仕組みで行えば2μs周期の性能が実現できるのかも知れません。
・Vinsentは3種類のサーボを使用しています。KOやGWSと比べてJR(PRS)はパルス幅が異なります。私のプログラムでもJRの時は別の係数で算出していますが、実は計算方法が間違っています(OFFSETの値がおかしい)。簡単に直せるのですが、気が付いたのが遅く、作成済みのモーションデータを直すのが怖かったのでそのままにしてあります。

以前に公開した回路図をみて不思議に思った方もいらっしゃると思いますが、サーボへの信号出力ポートが飛び飛びになっています。なんでかというと、なぜか出力できなかったのです。他のIOポートと同様にコーディングしたのですが、PortNo.12,13,14,15は信号が出力できませんでした。原因は今でもわからないのですが、きっと232C通信のモードか何かに初期値でなっていてそれを切り替えなきゃいけないんだと疑っています。(でも方法はマニュアル見てもわからない・・・)
さらにPortNo19は、なぜかLowの値が0.5V(他のポートは0V)なのです。特に問題にはならないと思いますが、きっと特殊なポートなんだろうと思って未使用にしています。お願いです。誰か教えてください。m(__)m

Vinsentの電子回路

Vinsentの電子回路ですが、汎用基板にて自作してあります。
IMG_3393.jpg
表と

IMG_3392.jpg
裏です。

そして回路図
2005Autumn.jpg


写真が光ってしまって見にくいです。すいません。

初めて回路図を書いてみたのですが、書き方がよくわかりません・・・。実際は7.4Vのバッテリーからサーボの電源をとり、三端子レギュレータにて5Vと3Vを作り出してその他(マイコンやPAD)の電源に使用しているのですが、回路図ではレギュレータ部分が省略(?)してあります。

たいした回路じゃないです。直接部品をつないでるだけです。おかしな所や改善箇所があれば、ぜひぜひご教授願いたいです。う〜ん、はずかしい・・・

今回はじめて回路図を書くと言うことで、BSch3Vと言うツールをインストールしました。もしかしたら他にもっと良いツールが有るのかもしれないのですが、これは感動するぐらい優れものでした。

Vinsentのバッテリー

今日はバッテリーについて

バッテリーは自分でパッケージして作成してます。
IMG_3382.jpg

ニッケル水素の単四電池(記憶が確かなら900mA)を6本直列につないで7.2Vにしています。ただし、満充電だと8.2V程度になり、ロボットが歩けないぐらいまで使うと7V程度になります。
写真のバッテリーには「い」と書いてありますが、他に「あ」と「う」の全3個を作成しました。

作成手順は以下の通り。ただし、一般的に個人が電池のパッキング化を行うのは危険であると言われています。自己責任で行う必要があります。

1、電池を購入(私はバッテリー3個を作ったので18本購入しました)
2、全電池を放電(ハンダ付けが怖かったので出来るだけ放電)
3、全電池の電圧を測り、似たもの同士で3グループに分ける(6本直列にしたものを充電する場合、出来るだけ同じ状態の電池を使用した方が充電や放電を効率よく行えるため。ってどっかのHPで見ました)
4、直列にハンダ付け。電池間はハンダ吸い取り網?で結線しています。
5、コネクタを作成しハンダ付け。
6、物干しだけカバーを適当なサイズに気って、ドライヤーの温風で圧縮してパッキング。少し、物干しだけカバーが大きくて縦方向だけでは頼りないので、縦方向と横方向のクロスでパッキングしています。
7、完成。扱いやすいように番号を書いておきます。(私は「あ」「い」「う」と書きました)

これが、パッキングに使用した物干しだけカバー
IMG_3385.jpg

ホームセンターで購入しました。なんとなく特大を買ってしまったが通常サイズで十分でしょう。バッテリーをあと、数十個作っても余るだけの量(物干しは長いので当然ですが・・・)があります。
ちなみに、最初はペットボトルジュースのフィルムでパッキングしたかったのですが、圧縮率が低い(またはドライヤーの力不足)ため断念しました。

で、こちらが、実際にVinsentにバッテリーを搭載したところの写真です。とっても隙間があります。
IMG_3384.jpg

左側が頭部で、右側が足方向の写真です。
基板を傾斜スイッチやデジタルコンパスの関係で地面と平行に配置したかったため、このような隙間が出来てしまいました。次回作ではこの隙間を減らして、身長を1cmほど低くしたいと思っています。
バッテリーの固定にはマジックテープを使用してします。

最後に充電器
IMG_3383.jpg

Robo-One会場の待合室では良く見る充電器です。
私がこれを選んだ理由は、充放電が可能でかつ、充電容量を数値で確認でき、家庭用電源が使用できるからです。当然値段は安くないとなりません(確か1万円ぐらいで購入しました)。使って見た感想ですが、ファンがうるさい。私はラジコンもしないですし充電器の知識はゼロに近いですが、かなりうるさいです。充電しながらテレビを見ると声が聞こえません。扉を閉め切った隣の部屋にいてもファンの音が聞こえます。なんとかならんもんでしょうか・・・。良いアイデアをご存知の方がいらっしゃいましたらどうかアドバイス願います。

Vinsentのハードウェア

今日はVinsentのハードウェアの紹介です。

IMG_3381.jpg

IMG_3380.jpg

アルミについて
Vinsentのフレームはアルミで出来ています。
足裏のみを1.5mmで、残りすべてを1mmのアルミ板から作っています。
強度的には当然すべてを1.5mmで作成したいところですが、私の所有しているチープな工具では太刀打ちできません。

アルミの切断方法
切断は金きりバサミを使用しています。
1mmの厚さならば、すいすい切ることが出来ます。
1.5mmの厚さだと次の日、手が痛いです。

アルミの折り曲げ
折り曲げは万力を使用しています。
万力で挟んで「おりゃ」って感じです。
精度は出ませんが、とりあえず間に合っています。

アルミの穴あけ
電動ドリルです。
オプティカルセンターポンチは必需品です。

ねじについて
ねじは基本的に2mmのねじを使用しています。
2mmのねじだとサーボホーンにちょうどよく使用できます。
一袋100本ぐらい入っているので、だいたい2mmで間に合わせます。
サーボの反対軸のみ2.6mmを使用しています。
なぜ2.6mmなのかは・・・覚えていません。
たしかサーボのどこかのねじが2.6mmだったのでそれに合わせた(せっかく買った2.6mmのドリルを無駄にしないため・・・)記憶があります。

足裏について
足裏には家具の滑り止めが貼ってあります。
2mm厚のフェルトに軍手の滑り止めのようなものが付いているタイプです。(ブツブツがいっぱい付いているやつ)
以前は一般的な滑り止めを貼っていましたが、時間がたつとほとんど効果がなくなってしまうので、今回はこれにしました。

棒の取り付けについて
棒は右手に固定してあり、左手は棒の方向を調整するのみでフリーになっています。
左手はMICRO−MGのホーンを加工して使用しています。
そして両手とも好きな方向に動くようになっており、精度が必要なく棒を操れるようになっています。

次回作成時の改善項目
股関節のヨー軸を両面持ちに
ヨー軸ってやつはあまり強度が要らないのじゃないかと思って片面持ちにしましたが、やっぱり非常に不安な感じです。
片面持ちは極力避けます・・・
ちなみに、胴体のヨー軸も片面持ちですが、こちらのホーンはアルミホーンを使用しています。効果のほどはわかりません・・・

アルミとホーンの固定
アルミとホーンの固定は2mmのねじで行っていますが、肩の部分のMICRO-MGとアルミの固定部分がぐらぐらしています。
アルミの穴が広がってきているようです。
この部分は2つの2mmねじで固定していますが、今後は3つ、4つ使用して固定していくつもりです。


ここまで書いてみて思ったのだが、結構何も考えずに手元にある物を使ってるって感じです。貧乏性ですね。
次回作では奮発(?)して低頭ねじを購入する予定です。

Template Designed by DW99