2011年10月アーカイブ

実は作ったのは2週間前なので、Twitter経由で見た人は知っているかと思いますが、VS-RC003をベステクのZigBee経由のシリアルで制御するためのボードを作りました。

IMG_2087.JPG

VS-RC003と接続するとこんな感じです。

IMG_2091.JPG

これの動作テストが今日やっと出来ました。

とりあえず、Vstoneのサイトのシリアル制御のマニュアルに載っていたコマンドでテストしてちゃんと動くことを確認できました。

com.png

まぁ、VS-IX003の代わりにベステクのZigBeeに置き換えただけなんですがね(笑)

これでDreamDrive!!のロボットすべてがZig-Beeのネットワークに乗りました。

  • KO-Link2 (CM5 + Zig100A)
  • RC-100Z (Bioloid用のコントローラー + Zig100A)
  • KUMACO (VS-RC003 + Zig100B)
  • SARUBO (VS-RC003 + Zig100B)
  • Dream PathFinder (VS-RC003 + Zig100B)
  • G-ROBOTS (RPU-11 + 変換 + Zig100B)
  • USBシリアル変換ケーブル + 変換 +Zig-100B (PC側)

どんだけベステクのZigBee好きやねんwって感じですねw

また、今回単純にVS-RC003のシリアル通信の確認も兼ねてたので、これでロボdeサバゲの方もBeagleBoard + VS-RC003で開発を進める見遠しが立ちました。

さてさて、とりあえず公開できたExcel Walkerですが、次の段階を目指しています。
まず、一番に気になっているのは制御周期。
すでにお気づきの方もいらっしゃると思いますが。Excel Walkerの制御周期は5Hzです。
200msに一回しかポーズを送信していません。
サーボ側に角速度を計算させて帳尻を合わせています。

やはり制御周期を一定にかつ、ある程度リアルタイム性を確保したい。
現在、毎ループの待ちはSleep関数を用いているが処理を含まない待ち時間の指定のため、マシンスペックによる実行時間が一定ではありません。
なので200msのウェイトに180なんて数字を推奨しているのはこのためです。

まず、処理を含んだ待ち時間を設定するために下記のようにプログラムを変更します。

HSPだと"await"というとても便利な"待ち関数"があるのですが、VBにはそんなものはないので自分で作ります。

こちら(Visual Basic - Wait関数を作る)を参考にしました。

Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long

Private Sub Main()
    
    Dim starttime As Long
    Dim waittime As Long

    waittime = 10  '毎ループ10ms待つ設定

    'ループスタート直前の時間を記録
    starttime = timeGetTime()

    Do

        '//////////////////////////////
        '   ここにメインの処理を書く
        '//////////////////////////////

        '待ち
        Do While timeGetTime() - starttime < waittime
            DoEvents
        Loop

        '待ち終わった時点の時間を記録
        starttime = timeGetTime() 

        ' ---- この位置でロボットに命令送信!----

    Loop

End Sub

これで、テストしてみました。

time.png
(〇で囲んだ部分は実行開始からの計算回数を示します)

time2.jpg

手動で計測しているので計測にも誤差がありますが、ほぼ正確に10msecで待てています。
良い感じですね。

あとは制御周期の最適化。

まず、ジョイスティックの読み取り。
現状で、1回のスキャンにかかる時間は5.1msec(実測)
これは意外と速くてびっくりしました。

ロボットとの通信に関しては、115200bit/s(14400Byte/s)で設定しています。
1回の通信が20サーボ分、ロングパケットで110Byte
単純に110Byteで割ると、1秒間に130回ポーズを送信できる計算になる。

ただ、シリアル通信に関しては深いところまで理解していないので、単純にこんな計算でいいのかな?
オーバーヘッドとか考慮しないとイケナイ'何か'はないのだろうか…。
詳しい人教えてくださいm(__)m

というわけで、そこはよくわからないので余裕を見て制御周期を100Hzにしようと思う。
たまたまテストした10msの設定で行けるので採用!

しかし、Windowsはタイマが駄目とか、リアルタイムの制御には向いていないとか言われていますが、現状サーボの通信速度的にまだその境地に達していません。
どこまで行くとその壁にぶち当たるんだろう・・・。

こんなところで、今日はこの辺にしておこう。

Excel Walker "Office2003版"

2003.png

Excel Walker 002β

今回は、Office Excel 2003にも対応しました。
先ほどファイルを差し替えて、97-2003形式のファイルを同梱しています。

ただOffice2007形式からコンバートしただけなので配色が原色カラーになっています。
また、グラフをリアルタイムで描画すると、2010とは挙動が違います。
時々残像みたいなものが現れるのですが、おそらく描画のアルゴリズムがかなり変わっているものと思われます。

開発者視点でも、暗号化の脆弱性とか、いろいろマズイなーと思う点が多々見えています。
今後も開発は2010で続けるんで、2010の専用機能が増えてくると今後の対応は厳しいかもしれません。

しかし、G-ROBOTSにしか対応してなくて2007形式にしか対応してないアプリとなると、まず環境的に試せる人がどれだけいるんだろう!?という話ですね。
すごくニッチなソフトを公開してしまったなぁ・・・と(笑)

Excel Walker公開します。

excelwalker.jpg


さて、動画を公開してから「エクセルでこんな事が出来るのか!」と反響をいただいた反面、「あくまでも”エクセルでやった”だけ」、という意見も頂きました。

まさにその通りです。

ただ、エクセル(およびエクセルVBA)でやる事には良い所があって、

  • インタプリタなのですぐに実行できる
  • マイコンにプログラムをロードする必要もない
  • デバッグ時、変数の可視化・グラフ化が容易(しかも、ボタン一つで実装可能)
  • 環境の入手・構築が簡単(いつでも・どこででも)
  • 非力なマイコンに比べ、膨大なリソース使い放題

この辺りは、開発プラットフォームとしてはとても魅力的でした。

ロボットプログラミングにおいてリアルタイム性を追求される方には厳しいですが、マシンスペックでゴリ押しすればそれなりには使えます。
まぁ、特に自分みたいなライトプログラマにはとても面白いプラットフォームなので是非お勧めします。


さらに動画の方も多くの方に見ていただいて、ありがとうございます。
おかげさまで一瞬ですが、ニコニコ技術部のランキング、一桁の7位まで上がりました。

【ニコニコ動画】Excelを使ってロボットを歩かせてみた。【Excel Walker】

rank7.png

また、相乗効果でロッカーボギーの方も過去最高の83位をマークしました。

【ニコニコ動画】NASAの火星探査機型ロボを作ってみた

rank83.png

あわせてお礼申し上げます。

エクセルを使ってG-ROBOTSを歩かせるプロジェクトですが、だいぶ形になったところで気合を入れて動画を作ってみました。



そして、このエクセルブックの名前を「Excel Walker」と命名しました。

ニコニコ動画はこちら↓
※もし良ければ励ましのコメント等いただければ、作者喜びます(笑)

動画編集は一部だけ試験的にAdobe After Effects CS5.5を使ってみました。(オープニングロゴの部分)
基本的な編集はiMovie'11です。
Premiere使いこなせるようになりたいなと思いつつ、最近Final Cut Pro Xも気になってます。

ブログの記事を書く際、卓上の部品を撮影したり、ロボットを撮影をしたり…いろいろマクロで撮ることが多いのですが、そんなときいつも光源をなんとかしたいなーと思っています。

ネットで探してみると、レフ版を自作したり、光源を自作しり等々、いろんな知恵で安価に撮影されている人がいて感心させられます。
この手の話で、自分も前からリングライトに興味を持っていて、いつか自作したいなと思っていました。
なぜならシグマのリングライトとか3万円以上するので、高輝度LEDで自作で作ればかなり安く作れると思ったから・・・。

・・・なのですが、最近Amazonで検索してみると意外と安価なリングライトがあって、一番安いのが3,980円だとか。
この金額を見ると自作熱が一気に覚めてしまいましたね。
むしろ、思い切って人柱覚悟で購入してみようかな・・・ってことで、つい買ってしまったリングライト(笑)
今回はそのレビューのお話です。

まず、リングライトの説明の前に自分の愛用しているカメラですが、一眼レフではありません。
そこそこのスペックを持つコンデジのCANONのPowerShot G11です。
比較に使用する写真はすべてこちらカメラで撮影しています。

装着するとこんな感じ。

DSC02361.JPG

一眼レフ用のアダプタはあるのですが、コンデジには”固定”することは出来ません。
G11用のアダプタは近日中に自作してみようかなと思います。

そして、電源を入れると結構眩しいです。
高輝度LEDが50基超入っています。

DSC02362.JPG

さっそく撮影比較してみました。

IMG_2029.JPG
「1枚目は、蛍光灯下、通常撮影」

IMG_2028.JPG
「2枚目は、蛍光灯下、リングライトあり」

IMG_2038.JPG
「1枚目上は、蛍光灯下、通常撮影」

IMG_2037.JPG
「2枚目下は、蛍光灯下、リングライトあり」

ICに関しては、表示がしっかり読めるのが大きな特徴でしょうか。
あと、机の木目がはっきり写っています。

フィギュアに関しては、目の彩色等の細かい部分がしっかり映っているのがリングライトの特徴ですね。
また、台座に光源が映りこんでいるのですが、リングライトのリングがはっきり写っているのは面白いですね。
色味の好き嫌いで言えば通常撮影も捨てがたく、高輝度LEDの色温度が高すぎて青味がかかっているのが気になります。

色温度に関しては安物ゆえの問題かもしれません。
いずれにせよ3,980円で買える点は良いかなと思いました。

ちなみにこの距離で内臓フラッシュを使った場合は、自分のレンズの影が映りこんだ上に、明るい色はすべて反射して白飛びして使い物になりませんでした。

おそらくこれからブログで紹介する写真に時々このライトを使っていこうと思います。

【送料無料】 RING 48 マクロ LED リングライト [ACアダプタ付属][Macro LED Ring Light][マクロリングライト]【送料無料】 RING 48 マクロ LED リングライト [ACアダプタ付属][Macro LED Ring Light][マクロリングライト]

ハンファ・ジャパン株式会社
売り上げランキング : 3525

Amazonで詳しく見る
by G-Tools

Profile

me.jpg
Name : みっちー
小学校で電子工作にハマり、高校時代はゲームプログラミング、大学時代にロボット製作へどっぷり浸かりました。
社会人になっても、なにかとものを作るのが大好きで、日々ネタと仲間を求めて活動中です。

Dream Drive!!

bana.png
http://dream-drive.net

趣味のロボットとプログラムを中心としたコンテンツのサイトです。

My Robots

kolink2.jpg
KO-LINK2
第2世代 並行リンク足ロボット

kolink.jpg
KO-LINK
並行リンク足ロボット

BusterGX.jpg
BusterGX (Ex Walker)
G-ROBOT + ROBO-XERO

kumaco.jpg
KUMACO
ぬいぐるみロボット

SARUBO.jpg
SARUBO
JX-SYSTEM搭載ぬいぐるみロボット

kokuten3.jpg
KOKUTEN 3
リアルタイム逆運動学制御ロボット

meros.jpg
MEROS
膝なしロボット
(胸部マトリックスLED搭載)
by Mechaniker

kokuten12.jpg
KOKUTEN 1&2
はじめてのロボット
by Mechaniker

協賛広告

最近のコメント

月別 アーカイブ

このアーカイブについて

このページには、2011年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2011年9月です。

次のアーカイブは2011年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。