ブログ - 最新エントリー

AX-18Aへの対応

カテゴリ : 
新商品
2011-4-11 19:20
AX-12+のハイパワー・ハイスピード版といった位置付けにあるDynamixel AX-18Aの販売準備中ですが、Dynamixel Configurator Ver1.7.3.0以前において一部未対応の部分がありましたのでVer1.7.4.0にて先行対応しました。

厚み

カテゴリ : 
雑記
2011-4-9 16:04
何年かぶりに見た某誌の薄さに、色々思うところアリ。

SAM7S向けのDXLIBへの要望

カテゴリ : 
雑記
2011-4-5 0:51
SAM7SのEVBFDIII-HCであまり仰々しい事を強いらせずに使ってもらうつもりだったSAM7S向けのDXLIBですが、昔からイマイチなツクリだった事のと、詳細なアラームステートがわかるPC用のDXLIB2と似た構成でのAPIを提供して欲しいという要望もあって、広範に見直しているところです。

なお、DXLIB_SAM7SをいじるとFREEDOM IIIライブラリにも影響があるのと、サンプルコードもかなり修正が必要なので、もう少しだけ諸々検証してからGCC Developer Liteをアップデートします。

原発

カテゴリ : 
その他
2011-3-31 9:24
何か起こる前に全原発を安全に停止させて廃炉してくれ
リサイクルに回せないゴミは受付お断り
だからと言って不法投棄何ぞするな

もう原発の恩恵なんぞいらない

ユニバーサルドライバ3出荷準備中

カテゴリ : 
その他
2011-3-25 20:10
こんな時こそ助けにならなければならないロボットはいまだ何の役もかけない。とても辛い・・・。さらに計画停電が続く中、 四苦八苦しながらUD3の在庫充填準備中。。

今回から適用されるリビジョンE093Cからは、モータ用電源の有無を回路内で判断しゲートを駆動するので、モータ用電源が印可されない状態で不用意に動かしてもゲート回路が過電流に陥る事は軽減される予定。

なお、大事なパーツの一部が東北で作られていたりするが、それにもかかわらずある程度まとまった数が準備できたので、必要な時にショップをのぞいていただければ在庫無しという事はないはず。


それと、ついでと言ってはなんだが、dxlib2dxconfuss3confもアップデート済み。

DXCONF改良ネタ2

カテゴリ : 
雑記
2011-3-7 20:59
今のままではシリアルエラーとなる時におかしげになるでしょう。
まだ腐ってるなぁ。という事で、もうちょっと見直します。
ってか端っから自分で作ればよかったか・・・。
Dynamixel Configurator等でも使用しているFTDI社製のUSBシリアル変換チップですが、デバイスドライバが古いためにアプリケーションからはマトモに通信できない様に見えてしまうケースが散見されます。
こちらには2種類の方法でデバイスドライバをインストールできると書いてありますが、現時点で最新版のデバイスドライバはZIPファイルでのみ提供されていますので、「必要に応じて都度デバイスドライバをインストールする場合」の手順に従ってください。
また、更新したつもりでも挙動がおかしい場合は、なぜかドライバファイルが古いままになっているといったことが原因だったりしますので、削除ツールで一旦ドライバを削除した後にPCを再起動してから再度新しいデバイスドライバをインストールし直す事を推奨します。

DXCONF改良ネタ

カテゴリ : 
雑記
2011-3-2 0:18
既に公開されているdxlib2にはいくつか既知のバグが残ってはいますが、このdllを使用したDynamixel Configuratorに改造中です。
ついでと言ってはなんですが、今までConfiguratorとして「どしてそうなっとらん?」「どしてできんの?」だった挙動を片っ端から漁って対処していく気分になってきたので、リリース版では行方不明になっていたDynamixelが見つかるなんて事になるやもしれません。

dxlib2の修正と合わせて公開しますので、もう数日待っててください。

SAM7S256

カテゴリ : 
新商品
2011-2-22 18:53
次の製造ロットよりBTC091 AT91SAM7S256マイコンボード(EVBも含む)・BTA022 ユニバーサルドライバBTA023 ユニバーサルドライバ3 Advanceに適用されるCPUが rev C に変更されます。このリビジョンでは従来からのエラッタが大幅に修正されている都合から、エラッタを回避する目的のコードが返って悪影響を及ぼす可能性が出てきます。

特にBTC091はCPUの評価等を目的として内蔵ペリフェラルを直接制御するプログラムをユーザ自ら作成するケースが大半となることから、メーカから提供されるデータシートの巻末に記載されたエラッタ情報をよく確認した上でソースコードへの影響が無いかを精査する必要があるでしょう。

ExcelでDXLIB2を動かす

カテゴリ : 
その他
2011-2-1 17:08
2011/2/2 dxlib2 Ver2.2公開にあたり

各開発環境毎でdllの扱いが違いすぎてごっつ使い辛いのがイラついたので、再度更新。
V2.0およびV2.1の使用を即刻中止し、V2.2に移行する事を強く推奨。

たびたびの修正ご容赦を。


これまで、Java,Ruby,Pythonよりdxlib2を使用したDynamixelの動作確認を行ってきた。

諸々試し始めている方は気付かれているかも知れないが、dxlib2はVBからの利用ができなくなっている。dxlib2の関数呼出規約がcdeclになっているが故に、VBから見えないという訳である。

そこで、VBないしVBAからの呼出しを可能にするため、dxlib2 Version2.1から呼出規約のデフォルトをstdcallに変更することとした。

それに伴う影響が以前紹介した言語にどこまで波及するか確認してみた。Javaはラッピング関数作成時のリンカオプションに-mrtdを付加することで解決。Pythonはcdllクラスからwindllクラスことで解決。Rubyに至っては影響なしという結果だった。
Ruby恐るべし。

肝心のVB(ここではExcelのVBA)での使用だが、通常のAPI呼出しと同様にdxlib2内の関数を適宜Declareするだけで使用することができる。
検証環境は以下の通り。
  1. OS: Windows 7(32bit)
  2. Microsoft Excel
  3. dxlib2 V2.1
準備はdxlib2.dllと同一フォルダに適当なExcelファイルを作成するだけ。
  1. VBAサンプル
    サンプルとして0~10のIDにPingを発行して結果をメッセージダイアログに表示する。
    宣言
    Declare Function DX_OpenPort Lib "dxlib2.dll" (ByVal pcom As String, ByVal br As Long) As Long
    Declare Function DX_ClosePort Lib "dxlib2.dll" (ByVal id As Long) As Boolean
    Declare Function DX_Ping Lib "dxlib2.dll" (ByVal devid As Long, ByVal uid As Byte, ByVal tout As Integer, ByRef terr As Integer) As Boolean
    本文抜粋
    Dim sMsg As String
    Dim devid As Long
    Dim i As Integer, terr As Integer
    Dim vRet As Variant
    ChDrive ActiveWorkbook.Path
    ChDir ActiveWorkbook.Path
    devid = DX_OpenPort("\\.\COM3", 1000000)
    If devid = 0 Then
    MsgBox "Port open failed!", vbCritical, "COMポートオープン失敗"
    Else
    For i = 0 To 10
    vRet = DX_Ping(devid, i, 50, terr)
    If vRet Then
    sMsg = sMsg & i & " Alive" & Chr(13) & Chr(10)
    Else
    sMsg = sMsg & i & " Dead : " & Hex(terr) & Chr(13) & Chr(10)
    End If
    Next
    DX_ClosePort devid
    End If
    MsgBox sMsg, , "DXLIB2 TEST"
  2. 実行結果

EXCELであればセルにデータを保持すればグラフなり何なりにする事も可能だが、既にdxlib2 V2.1のサンプルとして同梱されてるのでそちらをを参考に。

それと、dxlib2 V2.1をGCC Developer Liteで使う際は、コンパイルオプションに -mrtd を付けてビルドしないと自殺アプリになってしまうのでご注意を。