11/110/09[sat] - 最近やってたこと
 え? もう10月?


 去年4年生の卒研で使われていたらしい三菱の小型全方位ロボットが研究室の片隅(もとい机の下)で放置されていたので遊んでみた。
 ただ遊んでみたんならこんな事書く程でもないんやけど、ただでは遊べなかったので記事にしてみた
 オムニ良いよオムニ

   _  ∩
 ( ゚∀゚)彡 おっむに!おっむに!
  ⊂彡


 、何があかんねんって、デフォの公式操作が無線LANなんよ
 りゃ、1フロア辺り7,8部屋あっての五階建ての建物の各研究室に無線LANのアクセスポイントとかありゃぁロボット制御なんて無理やろwww
 一応公式のサンプルソフトでは、PCからジョイパッド使ってUDPでモーター制御信号送ってんの
 で、このロボット何故か制御基板が2つあってそれぞれ別IPで、モーター1,2はこのIPで、モーター3,4はこのIPに信号送って制御すんのよって・・・
 なんか面倒い仕様

 商品説明にはネットワークまたはシリアルで制御できるってあるんやけど、そのシリアルでの制御方法の説明が全く無い!
 取扱説明書にも一言もない!
 なんでやねんw

 最初はモータードライバを直接制御してやろうかと思ったけど制御基板と一体化してて介入する余地はなかった・・・
 自分でモタドラ用意するのもなんやし、
 シリアルでの制御方法を模索してみた

 で、回路図見てたらこの回路がなかなか面白かった
 このロボット、LANモジュールにXPort使ってるんよ
 そのXPortから一旦232cドライバでTTLレベルから±10Vに変換してる
 そっから外部コネクタに出てて、そのコネクタはすぐ隣のピンに戻ってて、
 また232CドライバでTTLレベルに戻って制御マイコンに入ってた

 結局は、このショートピンならぬショートコネクタを外して外部から結線することで
 シリアルで回路に介入できるわけやね

 で、シリアル制御の資料が全く無いわけで
 ボーレートは? パリティは? ストップビットは?(まぁ普通は1やろ) 通信内容は?

   ( ゚д゚ ) ・・・・・・・・・。
 _(__つ/ ̄ ̄ ̄/
   \/    /
      ̄ ̄ ̄

 幸いながら通信経路が一旦外に出るという仕様からサンプルソフトから送ったデータを引っ張り出すことはできる
 XPortに有線LANで繋げて
 そっからオシロで見てやればビット単位で丸見えだぜ!

 で、早速ソフト起動しようとしたらなんかエラーでたwww
 どうもWin7 x64では駄目なようで(C#なのに・・・?)
 XPマシンで試して、オシロでデータ見たら、
 ビット幅からボーレート逆算。通信仕様もネットワークから送ってるテキストデータ(制御信号)がそのまま流れてるだけっぽい

 テキストのモーター制御信号って言っても「RXT000GM,10,20;\n」って感じで、この例だとモーター1をPWM値10、モーター2をPWN値20で動かすって感じでお手軽
 但し、もう片方の基板のモーターは別基板なのでもう一口用意して直接制御信号を送る必要がある
 つまり、4つのモーターを制御するのにシリアルが2つ必要というなんとも鬱陶しい仕様
 (ネットワーク経由だとIPで基板を選別)

 以前Twitterとかで
 「PICで綿密に時間合わせしたいんやけどどうすればいいのん?タイマー1で計算式とかあるんかな UARTをI/O受信したいんやけど」
 とか言ってたのはこのこと

 XBeeでマイコンかPCから制御しようものなら、その制御データを内容に応じて2つに分岐してやらんと駄目なわけ
 PCでI/Oでシリアル受信は乙性能に泣いて、研究室に転がってた16f876を3つ使うとか考えたけど、
 結局TAで借りてるmbedがちょうどシリアル3つついてるから、こいつを一時的に借りることにした。

 XBee間通信は独自で決めて、それに応じて対象基板にデータを送って解決
 こんな感じか
 ──┐                   ┌──┐
 PC │━━[XBee] - - - [XBee]━━│mbed│━[基板A]----(モータ1,2)
 ──┘                   └──┘━[基板B]----(モータ3,4)

 その他トラブルの結論を一言でまとめると
 ・XBeeの透過モードは親→子の転送速度はすごく遅い。(子→親は速い)
 ・ADM232Aのチャージポンプのコンデンサをチップコンデンサから普通の積セラに換えたら動いた
 っな感じかな
              /)
            ///)
           /,.=゙''"/
    /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
   /      /   _,.-‐'~/⌒  ⌒\
     /   ,i   ,二ニ⊃( ●). (●)\
    /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
       ,イ「ト、  ,!,!|     |r┬-|     |
      / iトヾヽ_/ィ"\      `ー'´     /

 そんな最近の出来事

 チップアンテナのノーマルXBeeではとなりの研究室までは届かないから凸とか出来なさそう・・・
 (流石に直線上にエレベータ挟んでるからな・・・)

 どっかに無線カメラとか転がってないかな~