2025年6月29日日曜日

KONDOのロボット用シリアルサーボのためのUSB-ICS変換基板

KONDOのICSとは、 KONDOのロボット用サーボシリーズ(KRS-2500番台、4000、5000番台など)等に採用されている半二重調歩同調・CMOSレベルのシリアル通信規格です。技術資料が公開されています。1本の信号線で送受信を行い、同一バス上に複数のデバイス(主としてサーボ)を接続できます。IDを指定してサーボに目標位置の指令を送る他、現在位置や電流などの状態を取得したり、速度や電流のリミット等の動作パラメータを設定、更にはIDや通信速度等の設定をサーボ内の不揮発記憶に書き込む等の操作が行えます。

この通信はKONDOのロボット用マイコンボードRCB-4やKCB-5等が行う他、PCからシリアルポートとして認識させて直接通信を行うため専用のUSBインターフェースアダプタも市販されています。(KONDO Dual USBアダプター。ICS USBアダプター(No.02043)は販売終了)

今まで、「銀雲雀」「逡巡」「テーブルホッケーロボット」「インタラクティブ・ペンプロッタ」等のロボットでPCから少数のサーボを制御するため使用してきました。

KONDO純正のUSBアダプタはコネクタがUSB-Aで限定されること、RCB用のシリアルとの切り替え式となっていること、また価格もそれなりにする、などの理由でロボットに搭載するには不便なところもあるため、最近になって自作しました。


秋月のFT234X 超小型USBシリアル変換モジュール を使用しました。これにより難しいはんだ付けをすることなくUSBのmicroBコネクタを使うことができます。このモジュールには4本のピンに加えて、基板裏面のパッドにもう一つ、FT234のCBUS0端子が出ています。このCBUS0端子はI/Oであり、機能を選択して使えます。工場出荷時にはTXDENとなっています。

TXDENはRS485等のバスでの送信を許可するタイミングを出力する機能で、送信データのスタートビットの1ビット前からストップビットまでの間ONになる、となっています。ICSの半二重シリアル通信も「送信時のみ出力をONにする」という点で同じなので、スリーステートバッファの74HC126をこの信号で制御して使います。ブレッドボード上で確認して最大速(1.25Mbps)の通信速度でも動いたので、採用しました。


この基板はFT234Xモジュール基板とぴったり2枚重ねにして接続して使用します。ピンヘッダ接続用の4本のピンはそのまま上下に導線を通してはんだ付けできるのですが、CB0端子は表面にパッドがあるのみなので、ここははんだごての先が入る程の大きめのスルーホール穴を開けておいて基板同士を直接はんだ付けするようにしました。
なお本来このように基板に基板を直接ハンダ付けするような場合はM5Stampのように端面スルーホールにするとよりはんだ付け作業がしやすくはんだ付け状態も確認しやすいので確実なのですが、端面スルーホールは基板製造を注文する際に追加料金が発生するため、このような方法を採用しました。

上の回路は信号線とGNDのみを接続するものなので、実際にサーボに接続するにはサーボの電源を別途接続する必要があります。「逡巡」などのロボットではサーボハブ基板を作り、これにその機能を持たせています。(但し2025知能ロボコン時点では動作実績の確認が不十分だったため、このICS変換基板の採用は見送り、純正のUSB DUALアダプターを載せていました。)


(緑の基板左にある1個だけ離れた3ピンコネクタが信号線用で、左のUSB変換基板と接続する。残りのピンヘッダはサーボ、白いコネクタはサーボ電源)

2025年6月13日金曜日

VSCodeで[Enter]キーが単語補完機能に横取りされないようにする

Visual Studio Codeの単語補完機能は有用ですが、エディタの使い方によってはかえって文字入力の妨げになるケースもあります。

例として、新しい入力行の末に

len

と入力するとき、"len"が候補になく"length"が第一候補にある場合、最後に改行のenterを入力すると"length"に補完されてしまい、かつ改行文字の入力が1回無効化される形になります。これをさせず単に文字入力をするには、[Enter]入力の前にEscキーを押す等の追加の操作が必要となります。

これは [Accept Suggestion On Enter] という設定項目で制御されています。(control+[,]設定タブでacceptSuggestionOnEnterを検索)

この項目はデフォルトでonになっていますが補完を入力するキーには他に[Tab]があるため、こちらを使う場合は上記設定をoffにしてもよく、私はこの設定で使うことにしました。

2024年10月6日日曜日

マイコン時計 静音化の検討

現状のHWでは稼働時(回転させて時間を見る時)に騒音が大きいという問題があります。これは主に駆動部のギヤから発生しています。モーターを横置きにしているため回転方向を90度変換する必要があり、そこにクラウンギヤを使用しているためです。一方でベルト(輪ゴム)とプーリによる駆動、ベアリングの回転音はほとんどなく静かです。

何故モーターが横置きなのかといえば、扁平な形状(円筒の高さが低い)のDCブラシモーターで安価に入手できるものがなかったためです。ブラシレスDCモーターであればこれに合う形状をしたものが多くあり、これを使うことを考えます。

電気電子機器の冷却用に使われるDCファンがドライバ込みでパッケージ化されており使えるかもしれないと思いましたが、トルクが十分でなかったので不採用としました。

ドローン(航空機)用の小さい3相ブラシレスDCモーターで使えそうなものがあったので、購入して試してみました。

出力、寸法共に良さそうなので、これで次のバージョンを設計します。 

上の実験では市販のドライバ基板(R/C用ESC)を用いました。性能自体は良いのですが、安全のため電源ON後は一旦スロットルをアイドルに入れてからしか回らず、またそれを知らせるためにしばらく回らずモーターから(回転子またはコイルの振動により)音を出す機能が入っています。時計に使うには不便ですので、DCブラシレスモーター駆動回路も適当なドライバICと共に自作回路基板に載せることにします。

2024年9月29日日曜日

KitMill BT200用の新PCセットアップ (Windows11でダウンロードしてコピーされたファイルが読まれない問題)

 今までThinkpad X60sで運用していましたがWindows10にアップデート後徐々に動作が怪しくなり、また起動時ファンエラーが出るなどハードウェアの故障も疑われるようになってきた上、ついに正常にログイン・ログアウトができなくなったため入れ替えることにしました。

中古PCショップで偶然見つけたARROWS Tabを購入しました。Windows11で新たに入ったと思われるセキュリティに対する設定が必要でした。

KitMillはCNCv4というソフトウェアを使用し、更に機械のパラメータ(送りネジとモーターのステップ等)やUI言語対応の設定ファイルをダウンロードしてコピーするように指示があります。

Windows11ではインターネットからダウンロードされたファイルはたとえデータファイルであっても(信頼性を担保できないので)一旦コンピューターのプログラムからのアクセスが制限されるようで、ファイルの[プロパティ]を見るとその旨が表示されていました。

ファイルの[プロパティ]から、上記の説明が書かれている部分で許可するチェックを入れて[OK]で適用することで読めるようになり、設定が適用されて使えるようになりました。

2024年9月17日火曜日

新版モータードライバ

 モータードライバ基板の新版を組み立てました。ロボット「逡巡」の2号機に搭載し、問題なく動作しました。


些細な問題として、新旧基板でモーターコネクタの極性が逆になりました。これは旧版を組み立てた際にコネクタのロック解除レバーが押しにくいことに気づき、組み立て段階で部品取り付け方向を逆にしていたためです。新版では回路図(部品の結線)は同じで基板設計だけ直したため、逆になりました。

またもう一つ、ハーフブリッジゲートドライバICのIRS2003とIR2302Sをどちらでも使えるような設計にしたのですが、そのためジャンパ設定の説明をシルク印刷したものが逆でした。
この2つのICは機能とピン配置はほぼ同じで入力信号の形式が異なっています。
IRS2003: HINと~LIN:  ハイサイド・ローサイドを別々に指定する
IRS2302S: INと~SD: 上下どちらのFETをONするかと、シャットダウン信号
本回路の使い方ではフルブリッジで正転・逆転・ブレーキのいずれかとします。そのためIRS2003の場合はHINとLINに同じ信号を入力すれば良いのでこの2つをショート、IRS2302Sの場合はシャットダウン信号をまとめて別の信号で制御する、という風にして両対応できるようにした、という経緯でした。


2024年5月8日水曜日

Afinia H480の冷却ファン周辺部品

Afinia H480の冷却ファンの下についている部品が変色してきていたのでメンテナンスしました。ついでに気づいたことを記しておきます。

この部品はファンの空気の流れを導く役割をしていると思われます。今まで気づかずに使っていたのですが、手動でつまみを回すことでフラップを開閉して空気の流れを変えられるようになっています。時計回りに回す(出荷時)とフィラメントを溶かすホットエンドのヒートシンクのみに風が当たり、反時計回りに回すと新たな風の通り道が生じてノズルの先の造形物も同時に冷やされるようになります。



マニュアルに記述を見つけられませんでしたが、ABSの場合は閉じておくのが良いようです。これは以前見たことのあるFlashforgeのCreator PROがABSとPLAの場合で屋根を付け外しするように指示があったことからの類推でしたが、実際に出力してみた結果でも違いが見られました。(但し試したのは1回だけですので、ちゃとした実験ではありません)

いずれもABS(Premium)素材を使用、写真右がフラップを開いて(=ノズル先がよく冷える設定で)出力した場合です。造形物が明らかに曲がっている部分があり、正常に出力できていません。これはおそらく推奨外の使い方なのでしょう。一方、融点の低いPLAの場合は造形物をよく冷やすのが良いと予想され、そのためにこのフラップが付いているのではないかと思われます。これは今後PLAを使う際に試してみたいと思います。

なお、このフラップは部品本体と一体で成形されています。スペアパーツ用データで自分で出力した場合は、適宜サポート材を除去すると動くようになります。出荷時の部品も微妙に癒着が取れていないような状態でしたので、そもそもこの機能があることに気づくのが遅くなったのでした。

※Afinia H480/800の部品のうち、3Dプリンタで作られているもののデータは制御用ソフトウェアと一緒にProgram Files下のディレクトリにインストールされます。

第4回新ROBO-剣参加

11/16に行われた 第4回新ROBO-剣 に参加しました。ロボットは去年と同じ「 逡巡 」です。 結果は 本戦トーナメント 2勝1敗、 敗者トーナメント (本戦で早めに負けたチームによる別リーグ)第2位でした。新ルールでは、今回初めて有効な攻撃で勝利を挙げることができました。勝...