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

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

Dynamixel通信環境チェックツール

カテゴリ : 
その他
2013-12-10 18:01
通信環境が生命線であるDynamixel。無線ではないので断線なんぞはもってのほかですし、瞬断も許容できません。おまけに軸数が増えると電線の距離も長くなり、電気屋でも考えたくない現象まで意識せざるを得なくなってきます。

一応プログラマー向けのツールはDXCONFDXLIBといった感じでそこそこ用意はしていますが、オールOKの前提でプログラミングされてしまうといざというときにシステム全体が瓦解しかねません。

また、各APIからはアラームステータスを返す事になっていますが、全ての事象がそのステータスで把握できないため、それだけでシステムとしての故障状態が軽度なのか重度なのかは簡単には判断がつきません。
正常に取得できたアラームステータスを使ってできる事は、人間で例えると微熱だけどもうちょっとがんばるか・はりきりすぎて筋肉痛ぅといったそこそこ動ける「軽度」な状況の時だけで、足がしびれて立ち上がったとたんに足の甲が地面・走ってたらアキレス腱がプチッ・ヘルニアで突然脱力!(例えが痛々しくてごめんなさい)といった「重度」な状況での動作を考えるのは至難の業です。
ましてやアテにしている通信の応答すら断線等で得られないとなると、神経が切れてしまったの如くどうのしようもありません。

それらを全て解消するという訳ではありませんが、少なくともネットワークの健全性ぐらいは簡単に確認できても良いだろうということで、今回簡単なツールを用意しました。
全然仰々しい物ではなく、IDを書き連ねてスタートかけると各IDのデバイス名を取得して延々と通信し続けてその状況をレポートするだけです。


元はと言えばDXLIBを使う際のタイムアウトオフセット値をいくつにするべきかを判断するために作った代物ですが、DXLIBを使用したユーザアプリとはさほど乖離していないだろうと考えて公開します。
Dynamixel I/F Checker
ちなみに、本ツールは通信環境の健全性を見定めるためにRead Instructionのみを使用し、アクチュエータへの位置指令等は一切行いません。

Dynamixel Configuratorβ版公開

カテゴリ : 
その他
2013-10-9 18:53
リリース版をご利用ください。
2013/10/11


Dynamixel Configuratorのβ版を公開します。

今回より本ソフトウェア1つでDynamixelだけではなくAX-S1・IRARRAY・USS3・UD3等にも対応させました。これにより複数のデバイスが混在している環境での操作性が向上していると思います。



主な変更点
  • 最新DXLIB適用(現時点で未リリース版)
  • Dynamixe MXシリーズの最新コントロールテーブル対応
  • USS3対応
  • AX-S1対応
  • UD3/UD3.5のDXCLIENT時対応
  • 複数デバイス対応の都合、メインウィンドウ上からポジション指令用のダイアルを廃止
  • スキャン機能の安定化
  • トレンドグラフウィンドウを追加し、それに各デバイス特有の操作パネルを装備
  • BTE068BのターミネータON/OFF対応
  • 64ビットWindowsにネイティブ対応
  • COMポートのレイテンシ(待ち時間)の設定変更を容易にするダイアログボックス追加(管理者権限必須)
  • マイナーバグフィクス

もちろん旧バージョンでと感じていた方は、基本的な操作は旧バージョンを踏襲していますので、詳細はひとまず以下に公開したβ版を使ってみてください。
DXCONFINST2.1.0.0Beta.exe
なお、32/64bit環境によってインストールされる実行プログラムが変わりますが、動作は全く同じものとなります。
今後大きな問題がないようでしたら、近日中に正式版としてリリースする予定です。

※弊社では署名付のファイルを提供しておりませんので、ダウンロードや実行時にブラウザやアンチウィルス等によるウォーニングメッセージが表示される可能性があります。無視しても特に支障はありませんが、そういったメッセージが気になる方は安全のため使用しないで下さい。

AVR用ブートローダ更新

カテゴリ : 
その他
2013-8-30 20:29
遅ればせながらブートローダの操作仕様共通化に従った、AVRマイコンボード向けのブートローダバージョン1.3を公開しました。
AVR Bootloader
主な変更点は以下の通りです。
  • コマンドモードへの遷移方法をハードリセットに変更
  • 最新GCCに対応
コンパイルするには未リリースのGCC Developer Lite 2.5.1.0が必要ですが、もしJTAGやISPによる書き換え手段をお持ちの方は、同梱されるターゲット名にあったbinもしくはhexファイルを書き込んでいただければそのままご利用いただけます。

開発

SAM7S/X用ブートローダ更新

カテゴリ : 
その他
2013-8-21 17:31
先にもお知らせしました仕様共通化に従った、AT91SAM7S/Xマイコンボード向けのブートローダバージョン2.5を先行公開しました。
AT91SAM7S/X Bootloader
主な変更点は以下の通りです。
  • USB CDC EmulationにおけるPort Open/Closeの判定を中止
  • コマンドモードへの遷移方法をハードリセットに変更
  • DUMPコマンド追加
コンパイルするには未リリースのGCC Developer Lite 2.5.1.0が必要ですが、もしJTAGやSAM-BAによる書き換え手段をお持ちの方は、同梱されるターゲット名にあったbinファイルを書き込んでいただければそのままご利用いただけます。
Atmel社の最近のSAM-BA In-system Programmerはかなり安定して動作する様ですので、フラッシュROMを書き換えるといった場合は利用してみてください。

なお、今後出荷されるマイコンボード製品につきましても、本ブートローダが適用されます。

開発

N7とN8の違い

カテゴリ : 
その他
2012-12-28 18:00
RX62Nターゲットの検証を行うためInterface誌の2011年5月号の付属RX62Nマイコン基板を使用したが、コンパイルから実行まで問題なく終了したのは以前紹介した通りで、選択したターゲットは「RX62N(512k Flash)」であった。すなわちR5F562N8を対象としている
ところが、Interface誌に付属していたRX62NはR5F562N7となっており、両者の違いは以下に挙げた内蔵メモリのサイズという事になっている。
型名 ROM容量 RAM容量
R5F562N8
512K (0xFFF80000 - 0xFFFFFFFF) 96K
R5F562N7 384K (0xFFFA0000 - 0xFFFFFFFF) 64K
アドレスも異なるため、この範囲を超えた場合は書き込むこともできないはずだが、どのツールも実機も何の文句も言わずに動いてる。RAMも同様に96kを想定していて、ダンプしてみても確かにそこにRAMはある。

この表の通りであれば、動かないという結果が得られるのがフツーだと思うのだが・・・。謎だ。

新ターゲットであるRX62Nを検証する

カテゴリ : 
その他
2012-12-27 17:00
GCC Developer Liteに新規追加されたターゲットRX62Nの検証を行ってみた。
環境は以下の通り。
対象: Interface誌2011年5月号付録RX62Nマイコンボード
ホストOS: Windows8
コンパイラ: 設定リストから「RX62N(512k Flash)」を選択
書込みツール: Flash Writer (FT230XのUSBシリアル変換を介してSCI1にTTLで直結)
#include <RX62N.h>
#include <us.h>
#define EI __builtin_rx_setpsw ('I')
void main (void) {
static char txb[100],rxb[100];
EI; // 割り込み許可
PORT3.ICR.BIT.B0 = 1; // P30の入力バッファを有効
PORT3.DDR.BIT.B0 = 0; // P30を入力ポートに指定
PORT1.DDR.BIT.B5 = 1; // P15(LED)を出力ポートに指定
// SCI1をライブラリで初期化
sci1_int_init (3000000, txb, sizeof(txb), rxb, sizeof(rxb));
sci1_int_printf("hello!!\n");
while (1) {
sci1_int_putc (sci1_int_getc ()); // エコーバック
PORT1.DR.BIT.B5 ^= 1; // LED反転
}
}
上記は今回検証用に作成したプログラムで、割り込みを使ったシリアル通信を行うAPIを呼び出し、単純にエコーバックしている。

コンパイルされたmotファイルのサイズは小さいのだが、Flash Writerによる書き込みにやけに時間がかかる。USBシリアル変換でSCI1へTTL直結という事もあり、書き込みの際のボーレートを750kbpsまで上げたら我慢できるスピードになった。
作者曰くmotファイルで更新されるエリアだけではなく、フラッシュ全域に転送しているとの事。無駄な事を・・・。

とりあえず書き込んだプログラムは意図したとおり動作している。


実は問題点というより動いている事に疑問が出てきたのだが、それは又の機会に。
USBを使用したサードパーティのinfファイルは、Windowsに用意されたUsbser.sysドライバを参照する事が多いと思います。GCC Developer Liteにおいても、AT91SAM7Sマイコンボード用(FDIII-HC, UD3含む)とSAM3Sマイコン用(MIO含む)にinfファイルが用意されています。

ところが、Windows 8(x64)ではデフォルトでinfファイルにデジタル署名がなされている事が前提となっており、デベロッパにとってWindows 8を採用する際の妨げとなっている様です。Windows 7より以前であればドライバのインストール時にデジタル署名を無視する事で適用できましたが、Windows 8ではがんとして拒否します。

それでは使い物にならないという事で、備忘録がてらWindows 8においてデジタル署名が無いinfファイルを適用する際の最も簡単な手順を以下に示します。

  1. コマンドプロンプトを管理者権限で起動。
     
  2. bcdeditコマンドで次回起動時の設定変更を行った後にWindowsを再起動。

    bcdedit /set {current} onetimeadvancedoptions on


     
  3. 再起動後スタートアップ設定画面になるので、7)の「ドライバー署名の強制を無効にする」を選択。

     
  4. 普通にログインし、認識させたいUSBデバイスをPCに接続して通常通りドライバをインストール。途中Windowsのセキュリティメッセージダイアログボックスが表示されたら、「このドライバーソフトウェアをインストールします(I)」を選択。この間Windowsを再起動してはいけません。


これ以後は特殊な操作無く、今迄通りデバイスが使用できるようになるはずです。再起動の度にこれらの作業をする必要はありませんが、接続するUSBポートを変更した場合は再度同じ方法でドライバをインストールしなくてはなりません。

なお、既にBCDにadvancedoptionsが登録されていると、本手順でスタートアップ設定画面にならない様です。その場合は、該当のエントリオプションを手動で削除しておきましょう。

SAM3Sのループ時間

カテゴリ : 
その他
2012-10-19 17:28
#include <SAM3S4.h>
#include <piocfg.h>
static const TPin pins[] = {
  { PIO_PA0, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT },
};
int main () {
  volatile int i;
  PIO_Configure (pins, PIO_LISTSIZE (pins));
  for (;;) {
    PIOA->PIO_SODR = 1;
    for (i = 0; i < 10000; i++);
    PIOA->PIO_CODR = 1;
    for (i = 0; i < 10000; i++);
  }
}
試しにトグル出力させるプログラムを確認していたら勝手にDutyが変更されていた。
いくつか試してみるとfor文を空で回していることが原因らしく、for文内に何らかの処理を指定することでトグル出力されるようになった。
nopもそのうち使えなくなるしどうしたものか。

Dynamixel Configurator更新

カテゴリ : 
その他
2012-9-18 14:45
かなりしばらくぶりの更新になります。
Dynamixel用のコンフィギュレータですが、色々フィードバックいただいたうちから微々たる修正と機能追加をおこなってみました。
  • DXLIB2  V2.7を適用(未公開)
  • Scan方法の見直しと、その際に検出されたデバイスを列挙する機能を追加
  • MXシリーズに対応



こちらからどうぞ

#USS3 Configuratorもあわせて更新しました。

大掃除

カテゴリ : 
その他
2011-11-17 17:44
突然PC(Windows7)にログインできなくなった。
セーフモードであればログインできることからウィルスかシステムファイルの一部が破損しているのでは?とあたりを付け調査するも状況は変わらず。
PCの本体カバーを開けるとグラフィックボードのファンが目詰まりしており、掃除機にて埃を取り除く。
掃除後、PCは何の問題もなく起動した。忘れがちだがPCは精密機器。
目の届かないところも、これからは気を付けることにしよう。