USB-TTL変換基板があれば、サーボの動作やID書き換えなどの制御をおこなうことが出来ます。
そこにさらに、同じ制御線で双方向の通信をおこなう為に、半二重通信にすると、サーボ側からの送信情報を受信できるようになります。 つまり、ロビのサーボがトルクオフの状態で、手でガチャガチャ動かし好きなポーズをさせて、その状態で各サーボの角度を読み取ることが出来るので、手で動かして作ったポーズを読み込み(キャプチャー)して、PCにUSBケーブルをつないだまま、その動作をさせたり、SDに書き出して、動かすことが出来ます。
miconoさんのServo Tester for Robiは、有償でも良いのではというような感じですね。 ロビの制御系として、書いた以前のエントリーでは、別の回路図にしておりましたが、場合によっては、ロビの中に組み込む為に小型化させようと思い、ピン配置を考慮し以下のように変更しました。 ![]() USBシリアル変換基板モジュールは、Amazonや、Aitendoでも購入できます。
![]()
![]() 今回、私はAiteondoの490円のモジュールを購入し(今は980円)、74AC125はコネクタと同時にRSで購入。半田付けが好きな私は、表面実装タイプを購入すべきだったと後悔・・・ ![]() そんな訳で、あわよくば、ロビの中に組み込みたいので、まずモジュールの足を全てもぎます(笑) ![]() そして、ICのリードに、広がってもらいます。ミニロビ君も、手伝ってくれました。 ![]() どのように配置すれば、最小構成になるかを考え、 ![]() 変換チップの真上から被せることにしました。そもそも回路図を書き換えたのは、基板の左側に3.3V出力の他、TX/RXのポートもあるので、125チップの左側の素子を使うことにしたという訳です。 ![]() 貫通スルーホールでNCの所に、まずバッファICの足を半田付け。GNDは一致しないので、基板の表面のレジストをカッターの背中で少し剥いで、そこに半田付け。 ![]() 電源/グランド/未使用ポートの処理、TX/RXの配線も終了。抵抗はチップ部品を使用したため、分かりにくいです。さて、ここでサーボのモーターを駆動する電源は、USBのバスパワーで良いのか・・・という所ですが、同時に20個のサーボを動作させるのは厳しいでしょうけど、当面は問題なさそうです。ということで、状況に応じて、別電源が必要かもしれないということです。 ここで、基板を裏返し、サーボへのコネクタの実装場所を探します。 ![]() あまりお勧めはできませんが、部品のパッドをモジュールの裏面のベタグランド上に作りこみます。両面基板のグランド層同士を接続するスルーホールなどを潰さないよう避けつつ。5系統接続できるようにしたいと思います。 ![]() 固定端子も含め5か所レジストを剝がし、右下と中央の端子は、周囲の銅箔をお堀状に浮島にする必要があります。テスターで、グランドとの導通が無いことを確認し、半田付け。 ![]() ガッチリ固定できていました。これを、あと4か所行います。 そして、電源と制御線は、5か所全て並列にジャンパー接続していきます。 ![]() そして、完成!!! バッファICの足の下で、LEDが光っています( ^ー゚) 楽しく動作することを確認できました。また、サーボを一個のみ接続している場合は、IDの読み書きもできます。 首のサーボは、いっぱいまで回転させると、ビス止めしていないので、耳パーツとサーボがぶつかり、しだいに首がもげていきます(+_+) ServoTester for Robiや、RS30xPacketUtilにて、IDを書き換えてみたり、動かしてみたり。 双葉のRS485方式のコマンド仕様を確認しつつ、波形を見ていると、仕様書通りであると確認できます。 あたりまえか(^^ゞ パケットの構成は、 『ヘッダー/ID/フラグ/アドレス/データ個数/サーボ個数/データ/XORチェックサム』 となっており、RS30xPacketUtilをつつきながらナルホドナルホドと、かなり遊べます。 ヘッダーは、FA AF(11111010 10101111)と決められており、全てのコマンドの先頭に付加されます。 1バイトごとに、スタートビット(0)から始まり、下位ビットより送出されストップビット(1)で終わるため以下のような波形になります。 ![]() ヘッダーのFA AFの観測部分です。 スタートビットの0、そして、FA(11111010)が下位から、そしてストップビットの1、 「0010111111」 そして、スタートビットの0、そして、AF(10101111)が下位から、そしてストップビットの1、 「0111101011」 が確認できていますね、いやー楽しい(^v^) えっ、楽しくないですって!?!? うーん、確かに何が楽しいのか説明できないけど、機械いじりって楽しいんですよね。 これで、ロビのサーボが全て揃っていれば、もっと遊べるのに、それが出来ないから、こんなことをしているのでしょうね。 なので、もっともっとロビで遊ぶために、既に手に入れているマイコンボードを触ってみる。 いずれは、このインターフェースを使用せず、直接マイコンボートとUSBケーブルで接続してみたい。 ということで、調べてみた。 ![]() まったくの憶測だけど、STマイクロのマイコンのようなので、テスト用の端子なのだろうけど、ボード左端の4端子は、USBポートっぽい。 実に怪しい・・・。 コネクタ類の接続先もついでに調べつつ、 USBコネクタがつながるのでは?というこの怪しいスルーホールの接続先を調べてみた。 仕様書もダウンロードできるし。 PA11、PA12・・・うーん、あってるっぽい(笑) 勇気ある方が、パソコンに接続し、ロビで遊べる可能性をさらに広げてくれることを望みます(*^^) |
----
miconoです。 いやぁ〜このポートの配線情報はいいですね。 PA11,12なんですね(^^) 大きな手がかりです。 ま、だから何ができるかっていうと、何もできないとは思いますけど.... パソと繋いでなんだかんだゴニョゴニョしてみれるといいんですけどねぇ〜
by: miconoさん * 2014/05/14 15:46 * URL [ 編集 ] | page top
----
miconoさん(^o^) ありがとうございます! うーん、本当にゴニョゴニョしてみたいですよね! つないでからが勝負なんでしょうけど、私はそこから結局なにも出来ないような・・・ miconoさまのお力で、なんとか・・・・(^^ゞ とりあえずは、miconoさんに刺激されまくって作ったこの回路をロビの体の中に入れ込めるようにしたいと思っています。 miconoさんの、Servo tester for Robiがあっての話ですので、本当に感謝しております。 ありがとうございます(^o^)
--CN10--
CN10は、間違いなくUSBですね。 アサインはCN1側から Vcc DATA- DATA+ GND です。 PCに接続すると Mass Storage Device として認識されます。Windows標準のMass Storage Class Driverで動作して micro SD の中身がそのまま見えます。 まだ調べていませんが、ファームウエアにUSB DFU bootloaderがリンクされているとDFU(Device Firmware Update)モードに入れるのですけどね。
--でんのすけ♪さん--
ありがとうございますヽ(^o^)丿 なんと!接続されていたのですね! そんなツワモノがいらっしゃって、とても嬉しいです!! 私は不要になったXPのパソコンで接続するのを楽しみにしていたのですが、未実施のままでした。 Mass Storage Deviceですか、なるほどです。 ということは、作ったモーションを直接書き出しは出来そうですね! ということは、まだ、モーションキャプチャーには、半二重回路があったほうがよいですね。 むむむ、何とかして、マイコンボードを介して、サーボにアクセスできればよいのですが。 過去のロボや、開発する人の事を考えると、そんなモードもあるはずと思いたいのですけどね。 でんのすけ♪さん、ありがたい情報ありがとうございます! (^o^)
----
組み込み系の開発は、一般的にSIOを内部モニタのコンソール出力に使うことが多いですが、STM32にはDebug用のポートとしてSerial wire JTAG debug port(PA13)が用意されています。 STM32のオンボードデバッグには、ST-Linkというツールを使うのですが、RobiのCPUボードの場合、関連の信号が基板上部のピンヘッダ端子(CN11)にまとめられているみたいですね。JTMS-SWDIO(PA13)は、たぶん一番右(CPU)側です。 ST-Link Utilityを使うと内部のFlash memoryやSRAM、CPUのレジスタの状態をリアルタイムで表示したり書き換えたりできます。 ファームウエアに仮想シリアルライブラリをリンクすれば、USBにデバッグ出力を出せるのですが、Communication Classデバイスが見えないので、残念ながらリンクされていないようです。 ST-Linkは、秋月電子で¥2,450で売ってます。
--でんのすけ♪さん--
ありがとうございます! うーん、ST-Linkまでお持ちのでんのすけ♪さんが、残念ながら・・・というお言葉を使われているご様子では、私は一端、あきらめようかな(^^ゞ よくよく考えれば、CPUやメモリを直接つつけても、サーボに指令を出すまでにはハードルが高そうですし。 きっと開発者用のシンプルなしくみが・・・と期待していたのですが。 時間があれば、秋月で購入してみようと思います。 いろいろありがとうございます! また、技術情報期待しちゃってます(^_-)-☆
--管理人のみ閲覧できます--
このコメントは管理人のみ閲覧できます
--管理人のみ閲覧できます--
このコメントは管理人のみ閲覧できます
--Re: 書き込み漏れ--
似た機能のものを二つお持ちなのでしょうか? FT232RL搭載小型USB-シリアルアダプタ 5V と、3ステートバッファICが2回路分(4回路入りIC一個)あれば作れますよ! 他の部品の部品名とは、抵抗のことでしょうか? 抵抗は、サーボとの接続部分に一個直列にいれていますが、なくても動作します。 必要なのは、3.3Vへのプルアップ抵抗で、1KΩ~4.7KΩ程度で、電流もほとんど流れないので、適当に決めて大丈夫です。私は1KΩです。 3.3Vは、FTDIのチップから出力されているので、そこに1KΩをつなげばOKです。 ですので、このページのICが1個あれば、あとは、抵抗1個と、コネクタ類と、半田付け技術があれば物は作れます。 また、ロビに組み込むには、特殊な改造が必要で、 http://robimania.blog.fc2.com/blog-entry-23.html ここに書いている通りの結線が必要です。 ロビのマイコンボードのサーボラインの面実装の抵抗を立てて、その間に半二重回路とSTM32(マイコン)からの信号との切り替えスイッチを入れています。 改造は、おそらく大変ですので、マイコンボードから、サーボは外し、半二重回路側に5系統取り付けてキャプチャーすると良いと思います。サーボへの電源は、PCのUSBの5Vでなく、電池からととった方がよいですよ!
--うっ、ハードル高っ!、ポチポチやっていきます。--
半二重回路から、ロビUSB接続は、出来ないのですか? ロボゼロの様に簡単に接続できる様になると思ってました。 miconoさんから、メディアクラフトさんの ソフトは、ハード系は要らないから試したら?と言われましたが、使い勝手がめんどいような?(やはり、Servo tester for Robiが良いですよねえ)
----
リスコムさん、半二重回路はサーボとのデータの送受信をするための回路ですから、サーボにとって、マイコンボードに制御されるのか、半二重回路とデータの送受信をするのか切り替え回路か、使用するたびに付け外しが必要になります。 私はメディアクラフトさんのソフトは使ったことがないので何とも言えませんが、USBポートを付けるだけでキャプチャーできるなら便利ですね! |
|
| ホーム |
|