• カテゴリ その他 の最新配信
  • RSS
  • RDF
  • ATOM

ブログ - その他カテゴリのエントリ

RubyでDXLIB2を動かす

カテゴリ : 
その他
2011-1-24 16:52
JavaからDXLIB2を動かすことができたので、引き続きお試しとしてRubyでDXLIB2を動かすサンプルを作成してみた。
検証した環境は以下の通り。
Rubyのパスを通し、HWを接続したら準備完了。
  1. Rubyソース
    サンプルとして0~253のIDにPingを発行して結果をプロンプトに表示する。
    <SMPL1.rb>
    require "dl/import"
    module DXLIB2
      extend DL::Importer
      dlload "./dxlib2.dll"
      extern "int DX_OpenPort( char *, long )"
      extern "int DX_Active( int )"
      extern "int DX_Ping( int, unsigned char, int, unsigned short * )"
      extern "int DX_ClosePort( int )"
    end
    comport = "\\\\.\\COM3"
    br = 1000000
    timeout = 50
    terr = ' ' * 2
    mark = "\n"
    devid = DXLIB2.DX_OpenPort( comport, br )
    if ( devid != 0  ) then
      ret = DXLIB2.DX_Active( devid )
      if ( ret == 1 ) then
        sleep 1
        i = 0
        while ( i <= 253 )
          ret = DXLIB2.DX_Ping( devid, i, timeout, terr )
          if ( ret == 1 ) then
            printf( "\n%d alive", i )
            mark = "\n"
          else
            printf( "%s%d dead(%x)", mark, i, terr.unpack('S')[0] )
            mark = "\r"
          end
          i += 1
        end
      end
      ret = DXLIB2.DX_ClosePort( devid )
      if ( ret == 0 ) then
        print "CLOSE ERROR\n"
      end
    end
    print("\nnormal end")
  2. 実行
    a). 以下のDLLとソースファイルが同じフォルダに存在していることを確認。
    SMPL1.rb  dxlib2.dll
    b). コマンドプロンプトで実行。
    > ruby SMPL1.rb
    結果はこんな感じ。
雑感、Javaよりは簡単だった。Ruby恐るべし。

インターンシップ

カテゴリ : 
その他
2011-1-17 13:59
今年も3ヵ月間電子回路・プログラミングなどを学びに、海外から研修に来ている女子学生がいます。
来日した当初は挨拶以外の日本語ができず、コミュニケーションは全て片言の英語。既に1ヵ月が経った事もあり、日常会話であれば多少なりとも何が通じる様になりましたが。
おかげで私のボディーランゲージの勉強になりましたw。

自学自習にも熱心に取り組んでくれるおかげで、毎日夜遅くまで帰ってくれません。しかし、プログラム言語と電子回路はほぼ世界共通ですので、ここで得た知識が将来役に立つ日が来る事でしょう。

日本にもこういった学生がもっと増えると嬉しいですねぇ。

Dynamixel Library2の64bit対応

カテゴリ : 
その他
2010-12-6 19:13
今週中には詳細と正式版を公開する予定ですが、多少ご要望がありましたWindowsの64bitネイティブに対応中です。とはいっても単にコンパイラが64bitに対応していれば良いまでで、インストーラのサイズが肥大化するのですが同梱する方向で検討しています。

その他に先に問題を言ってしまうと、実際には正常に処理されている通信がWindowsからの応答遅延によりタイムアウトになるといったケースは回避不能ですので悪しからず。
また、ftdi社の仮想シリアルドライバが頻繁にバージョンアップしている様なので、PCに合わせてドライバのバージョンを選ばないとパフォーマンスに影響を及ぼす様です。

Androidで台車コントロール

カテゴリ : 
その他
2010-11-12 19:03


Android携帯で台車を動かしました。
Androidアプリ上のボタン操作で前進・後進・旋回。
自動モードにすると、台車に搭載したセンサの状態によってAndroidが「警告!」や「きゃー」と音を発します。
Androidと台車はBluetoothで通信。
台車はFDIII-HC、Dynamixel RX-28、Multifunction I/Oモジュール、反射型フォトインタラプタ、PSD距離センサで製作しました。
FDIII-HCスターターキットの学習ガイドChapter9を公開しました。
Chapter9では、車輪ロボットでライントレースをする方法を紹介しています。

(追記2010.10.13) より上手くライントレースするプログラムを追記しました。

平面スキャン

カテゴリ : 
その他
2010-8-6 17:38


USS3をAX-12+に取り付け、FDIII-HCで左右にパンさせながらUSS3の距離情報を取得し、FDIII-DISPLAYにリアルタイムに表示してみました。 さながら超音波によるレーダーといった所でしょうか。
壁に近づくとその部分の距離を意味する半円が欠けて行くので、なんとなく障害物として認識できそうです。左から右へパンする時とその反対で欠けた部分の位置が違って見えて面白いです。スキャンタイムにもよるでしょうが、検出遅れを補償しないとこのままではイマイチですね。

Dynamixel EX-106+への対応状況

カテゴリ : 
その他
2010-7-23 11:19
Dynamixel AX,RXシリーズのゴールポジションの範囲は10ビット(0~1023)でしたが、新登場のDynamixel EX-106+は12ビット(0~4095)に分解能がアップしました。それに伴い、ソフトウェアにおいていくつか問題があります。

Dynamixel Configuratorでは、Goal Position, CCW Angle Limitに設定できる値の上限が1023になっているため、現状では1024以上には設定できません。

GCC Developer LiteのDynamixelライブラリ、FREEDOMライブラリにおいても、ゴールポジションの値の上限が1023に設定されているため、1024以上のポジションを扱えません。

今後対応しますが、それまでDynamixel EX-106+を使う場合はご注意下さい。

液晶ディスプレイもうすぐ発売

カテゴリ : 
その他
2010-7-5 19:19



マイコンやFREEDOM jr.IIIに接続するカラー液晶ディスプレイです。
簡単なグラフィックならさくっと描けちゃう。

OLLO

カテゴリ : 
その他
2010-6-16 11:49

組み立ててみた。


組み合わせ次第でいろんな形がつくれるし、構成によっては単三電池1本で動くモータユニットがついてる。
子供の頃を思い出して黄昏てみてはどうだろうか。

液晶ディスプレイ

カテゴリ : 
その他
2010-5-28 11:09



FREEDOM jr.IIIの胸部に装着することで、モーション作成や歩行パラメータ調整、ホームポジションの調整などがPCレスでリモコン操作のみでできちゃいます。単にSimple Termで表示されているものが液晶画面に表示されるだけですが。
まだまだ現地調整が手放せないロボット君にはコンソールは必要不可欠。思っただけで伝わる様になるのはいつの日になることやら。ま、人間同士の意思疎通ですら難しいんだから無理ですかね。
なお、こちらも近々商品化される予定です。