Dual USBアダプターHS 修理してみる
Dual USBアダプターHSは近藤科学のサーボとPCを通信するための製品↓です。サーボの設定や動作確認が可能です。値段は1つ約6,000円。
壊してしまったので修理しました。(逆挿ししたのか、電圧を上げすぎたのか、壊れた原因が分かってない。)
直す前の状態
アダプター単体で約350mAほど流れており、かなり発熱してしまう状態です。特におもて面に半田付けされているマルチプレクサが熱くなっていました。
シリアル変換のチップは特に問題ないようです。ICSマネージャでもアダプタ自体は認識されます。
USBtreeviewというソフトでも問題なく表示されました。
用意した物
マルチプレクサADG734BRUZを購入しました。マルツで1つ581.82(税抜)円でした。(20/08/29)
他にdigkeyで購入するものが無かったので、マルツの店舗受け取りサービスを利用しました。便利。
IC SWITCH QUAD SPDT 20TSSOP ADG734BRUZ|電子部品・半導体通販のマルツ
※購入と修理は自己責任でお願いします。
直した後の状態
元々ついていたチップを外して新品に取り替えました。電流は21mAになりました。
ICSマネージャでサーボが認識されるようになりました。
※手元にあるKRS3204とKRS4034で動作確認がとれました。(両方とも通信規格はICS3.5)他のサーボで認識されるかどうか分かりません。
esp32でROBO-ONE用基板を作る
ROBO-ONE Lite用の基板がとりあえず動いたので、回路図とBOMを載せます。
esp32でコントローラーとKONDOサーボを動かす方法については別の記事に書いてみたので参考にどうぞ。
BOMは以下のスプレッドシートにまとめました。電子部品の購入は自己責任でお願いします。
電子部品の購入先は秋月とdigkeyです。基板1枚作るのに必要な部品代は約2805円でした。基板本体はJLCPCBで発注しました。
ROBO-ONE Lite 基板BOM - Google スプレッドシート
ご指摘&アドバイスあればお願いします!
搭載した機能は
・USBコネクタ→シリアル変換
・自動リセットで自動書き込み
・動作確認用LED2つ
・マシンを光らせるフルカラーLED1つ
・ジャイロセンサで姿勢制御
・TOFセンサで距離測定
・USB電源とバッテリ電源自動切換え → うまくいってないので、ダイオードを介してUSBVCCを5Vに接続しました。
・バッテリ電源→7.4Vに降圧するDCDCコンバータ
・7.4V→5Vに降圧するレギュレータ
・5V→3.3Vに降圧するレギュレータ
マイコンをesp32にしたので、OTAでデバッグ(WiFiで無線書き込み)できますね。
-------------------------------------------------------------------------
参考にしたサイトをまとめておきます。
・非常に制作意欲がかきたてられたブログ
https://blog.rogiken.org/blog/2019/03/29/szk2roboone/
・Visual studio code の platform IOでOTAを行う方法
https://nombi.info/posts/esp8266/ota/
・esp32のGPIOについての解説
https://lang-ship.com/blog/work/esp32-gpio-output/
・esp32で滑らかにLEDを光らせる方法
https://wak-tech.com/archives/742
・USB電源とバッテリ電源を自動で切り替える回路について
http://radiopench.blog96.fc2.com/blog-entry-962.html
esp32でKONDOサーボを動かす
ROBO-ONEに出場するにはKONDOサーボを動かす必要があります。
esp32はSerial通信ポートを3つ持っています。UART0,UART1,UART2です。PCとマシンを接続して通信しながらKONDOサーボを動かしたい時があるかもしれないので、UART0は使わないようにします。
私の場合、11.1V系サーボ(KRS2552)と7.4Vサーボ(KRS3204)の2種類を使うので電圧が違うサーボごとにSerialを使い分けるようにしました。KONDOの公式は1つのUARTに接続できるサーボの推奨個数は9個と言っています。3kg級のマシンを作る時はサーボの数が19個を余裕で超えるため、UART0も使う必要がありそうです。四肢でSerialを分けた方が配線的には楽なので本当は4つ欲しいところ。
https://kondo-robot.com/faq/ics_board_-tutorial1
シリアルピン保護のため、ポリスイッチ↓をそれぞれ付けました。冷却されると導電性が戻って再び使用可能になります。
http://akizukidenshi.com/catalog/g/gP-11307/
11.1V系 → UART1
7.4V系 → UART2
KONDOサーボを動かす通信規格をICS(Interactive Communication System)と言い、近藤科学独自のデータ通信規格です。PWMと違って、サーボを数珠つなぎ出来るのが特徴です。KONDO公式のライブラリはTXとRXを交互に切り替えることによってサーボに指令角度を送信するのと同時にサーボの温度や電流を受信できます。
そのTXとRXを切り替えるためのモジュール(ICS変換基板)が市販されている↓のですが、場所をとるので基板に実装しました。
https://kondo-robot.com/product/03121
ICS変換基板の自作についてはPONDAさんの記事↓を参考にしました。そちらの記事に記載されている回路図とほぼ同じですが、私が引いた回路図も載せておきます。使用している部品も購入先もPONDAさんと同じです。
http://robooptions.blog.fc2.com/blog-entry-10.html
-------------------------------------------------------------------------
esp32のUART1は初期状態では内部フラッシュに接続されているため、UARTとしての使用はできません。UART1のピンアサインを変更することで使用可能になります。HardwareSerial.cppにあるTX1とRX1を定義しなおせば良いです。
Visual studio codeでプログラミングをする場合、以下のパスにHardwareSerial.cppがあります。
C:\Users\ユーザー名\.platformio\packages\framework-arduinoespressif32\cores\esp32\HardwareSerial.cpp
-------------------------------------------------------------------------
KONDOサーボは通信速度が3種類から選べます(①)。esp32に書き込むプログラムで設定したBAUDRATEと合っていないとサーボは動きません。
私はプリメイドAIから拝借したサーボを使用したのですが、箱出しの状態では通信速度が115200と1250000が混合?しているのでICSマネージャーで設定し直してください。また、ストレッチやスピード、パンチ等も初期設定とは異なる状態のものが多いので、ICS Serial Managerの「②ファイル→開く→初期値(initial value)」から一括で書き込むと便利です。
-------------------------------------------------------------------------
プログラム
KONDOのライブラリは初期状態ではUARTが1つしか動かせないので、以下のように2つで動かせるようにします。BAUDRATEとTIMEOUTの設定は1つで良いです。ライブラリの説明書19Pにも同様の記述があります。
-------------------------------------------------------------------------
HeartToHeart4やRobovie-MakerなどのGUIなソフトウェアは使わず、サーボIDや指令角度を手打ちしてモーション作成を行います。以下↓は「ID1のサーボを0度まで動かす」プログラムです。
IDは0~31、指令角度は3500~11500が有効で、ありえないIDや角度が入力してしまい実行されると、予期しない動きをする可能性があります。
サーボを壊したくないので、範囲外の数値が入力され、実行されるとサーボが脱力するようにライブラリを変更しました。更に、この関数は指令角度を3500~11500で指定する必要があり、直観的に何度なのか分かりづらいため、degreeで指定できるように変更しました。
「IcsBaseClass.h」を以下のように変更し、
「IcsBaseClass.cpp」にある「setPos(byte id, int deg)」を以下のように変更します。
※ posからdegに変換する関数がデフォルトで入っているので、その関数をsetPos()内で呼び出すという方法でも同じことは出来ます。
また、いちいちサーボのIDを調べながらモーション作成するのは時間がかかるため、IDとマシンの部位を関連付けました。
部位の名前はご自身で分かりやすく命名してください。
ご指摘&アドバイスあればお願いします!
esp32でVS-C3を使用する
ROBO-ONEに出場するためにはマシンを遠隔で操作する必要があります。
esp32はBluetoothモジュールを搭載しているのでスマホ等をコントローラーにすることが出来ますが、格闘用途としては使いにくいため物理ボタンのコントローラーを使用することとしました。
最新のPSのコントローラーはBluetooth接続が可能らしいので、接続がスムーズなら使ってみてもいいと思います。
Vstoneのコントローラーの製品名は「VS-C3」、受信機の名前は「VS-RCV3」です。
このコントローラーは双方向通信が可能で、以下のように↓マシンのバッテリー低下をバイブレーションで知らせることが出来るようです。(そういう基板を作ってとプログラムをすれば)
https://www.vstone.co.jp/products/vs_c3/index.html
-------------------------------------------------------------------------
回路
VS-C3の基本的な使い方はこちら↓を参考にしました。VS-C3はPSのコントローラーと殆ど中身は同じらしく、ライブラリの名前がPS2となっています。
https://nakkye.at.webry.info/201411/article_1.html
http://robototakutdu.blog33.fc2.com/blog-entry-343.html
このブログ↓はノイズ除去的なことをしているみたいです。すごい。
https://www.atelier-yu.co.jp/wireless-software/
VS-RCV3を使用するにはSPI通信をする必要があります。esp32で使用する場合、公開されているarduino用のライブラリのままでは動かなかったので気を付けてください。
esp32のSPIにはHSPIとVSPIの2種類あるらしいですが、どう違うのかはわかりません。私はVSPIを使いました。配線は以下の通りです。
SEL(CS,CEと同等) → IO5
CLK (SCLK,SCKと同等)→ IO18
DAT(SDO,MISOと同等?) → IO19
CMD(SDI,MOSIと同等?) → IO23
過去の記事↓にも書きましたが、基板に直接VS-RCV3用のピンヘッダを半田付けする場合、VS-RCV3を上下反転するため配線に気を付けてください。間違えると基板からはみ出ます。
https://sasapon.hatenablog.com/entry/2020/04/30/174348
各通信ピンにプルアップ抵抗を付けました。抵抗4つだと狭い基板を占領してしまうので集合抵抗を使用しました。秋月で売っているチップ抵抗アレイ10kΩ*4↓です。手ハンダは難しいので頑張ってください。
http://akizukidenshi.com/catalog/g/gP-04664/
※VS-RCV3を基板にピンヘッダで直接取り付ける場合、しっかり固定されません。グラグラするためペアリングボタンが押しにくいうえ、衝撃に弱いためマシンが倒れたときに通信が途切れることがあるかもしれません。正解はフレームにネジ固定だと思います。
※esp32のアンテナ部分の上下にVS-RCV3が被さらないように注意が必要です↓。esp32のミアンダ型アンテナの放射パターンがどのような感じなのかはわかりませんが、なるべく離したほうがいいですよね、きっと。
https://www.espressif.com/sites/default/files/documentation/esp32_hardware_design_guidelines_en.pdf
-------------------------------------------------------------------------
プログラム
Vstoneの公式?ライブラリを使用しているのでどこまで公開していいのかわかりません。SPI通信の初期設定は共通だと思うので載せます。 上記の配線の場合です。
ご指摘&アドバイスあればお願いします!
ROBO-ONE当日の荷物
備忘録として、ROBO-ONE当日に持っていくもの/持っていくと便利なものをまとめます。
必須
- バッテリー(延長戦があるので3個以上あるとよい)
- バッテリー充電器
- バッテリーチェッカー
- 配線予備
- 基板予備
- サーボ、サーボホーン予備
- コントローラー
- コントローラー用乾電池
- PC
- 通信用USBケーブル
- 延長コード、電源タップ(なるべく長いもの)
- 基本的な工具(+ドライバ、六角ドライバ、ラジオペンチ、ニッパー、ハサミ)
- ネジ類
- ネジロック剤
- テーブルマット(控室のテーブルでマシン調整をする場合)
- ROBO-ONEのIDを印刷した紙、認定大会参加に必要なもの
- 移動手段のチケット、交通系IC
念のために必要かも / あったら便利なもの
- マシン用電源(ALINCOなど)
- マシン用の電源ケーブル
- 予備フレーム
- 予備ケーブル用圧着端子、ハウジング
- 養生テープ、両面テープ
- 瞬間接着剤
- ケーブルタイ
- 工具(ワイヤーストリッパー、圧着工具、やすり、ホットボンド)
- はんだこて、こて台、はんだ
- テスター
- icsマネージャ
- 小型ファン(延長戦時の機体冷却に便利。)
究極に心配性な場合
宿泊する場合
深夜バス、満喫で宿泊する場合
- アイマスク
- 歯ブラシ
- 防寒具
何か抜けてるもの、他にあると便利なものがあれば教えてください!
ケーブル自動カットマシンver.1
AWG32のケーブルを4000本、自動でカットする機械をつくりました。
1本を40㎜の長さにカットするので、写真の10mタイプでは250本程度しか切り出せません。マルツでボビンタイプを購入しました。
使用した物
・ギヤードモータ https://amzn.to/2Ww02UZ
メカナムのキットからとってきました。本当はステッピングモーターで回転数を正確に制御できた方がいいと思います。
この商品のギヤードモータには元々ポテンションメータがついていたのですが、届いた時は壊れていました。友人も同じ物を購入して同じく壊れていたので訳アリだったから安かったのかと思います。
・arduino nano https://amzn.to/3cA4Uhr
・ミニ四駆の車輪
・ニッパー
・3dプリンター anycubic Mega-s
完成した物



ケーブルを送り出す部分の動作。
https://www.youtube.com/watch?v=vqTYrHOV-F0&feature=youtu.be
ケーブルをカットする部分はニッパーを直付けしてサーボモータで閉じたり開いたりしています。長時間可動させているとサーボモータがニッパーのバネに負けて発熱が原因で壊れました。バネを外して稼働させると電流は0.3A程に収まり長時間の動かせそうです。
https://www.youtube.com/watch?v=Rt-avlemA7M&feature=youtu.be
5本連続でカットしてみました。
0.5mm~1mmほどのズレが出ています。実はこの程度の誤差ならいい方で、使用する安定化電源を変えたり、電圧を変えたりすると誤差が最大2㎜程に跳ね上がります。
基本一定方向にしか回さないので問題なし?と思っていましたが、ニッパーでケーブルをカットする時に少し影響を受けているみたいです。
3dプリンターだけでつくれて誤差が出ない機構を探してます。
------------------------------------------------------------------------------------
ケーブルをカットした後は、両端1㎜の被膜を剥き、予備ハンダします。この作業はパット見ると3工程しかありませんが、実際に手作業してみると
①ケーブルを定規にあててカットする位置を定める。
②ケーブルをカット。
③両端1mm程の被膜を剥く。
④ワイヤーをひねる。(ハンダを浸透させるため。)
⑤予備ハンダをする。
のように、複数の作業が隠れていることが分かりました。
あまり関係ない話ですが、今回のように大量生産する場合はなるべく同じ作業をまとめて行うことが大事だと思っています。というのも、いちいち作業を切り替えいると、切り替え時の初期の立ち上がり時間が無駄になりその時間が積み重なると非常にもったいないからです。(工具を持ち替えたり、物を移動させたり。)
ただし、大量生産に入る前に一連の流れを通しで試しておかなければなりません。全て完成した後にまとめて修正は地獄なので。
まずは①~②の工程を自動化してみました。ワイヤーをカットする産業用の機械は結構あるみたいです。それらを参考にしつつ設計してみました。
最終的には①~⑤全ての工程を自動化したいと思っております。
VS-RCV3のSTEPデータを公開してみました
VS-RCV3のSTEPデータをgrabcadで公開しました。
https://grabcad.com/library/vstone-vs-rcv3-1
多少の寸法のズレはあると思います。
amazon商品ページ
受信機単体 : https://amzn.to/3d0tXK9
コントローラーセット : https://amzn.to/2KIzqcF
kicad用、表面実装用の3dデータ(拡張子はwrl)で良ければグーグルドライブからダウンロードしてください。
※メイン基板に対してVS-RCV3が反転して取り付けられるので、配線も反転してください。