FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ARMベースのArduino互換マイコン「Teensy」でICS高速通信

最近の近藤科学はICS変換基板、RCB-4変換基板やライブラリといった、Arduinoの周辺機器に力を入れているようです。
今月20日にはライブラリが更新され、SoftwareSerialでの通信が可能となりました。ハラショー!
しかしながら純正のArduinoでは通信速度は115200bpsが限界です。でもICS通信の最高速度は1250000bps。
どうせなら最高速度で使いたいって人も多いのでは?
そんな人にはTeensyというARMベースのマイコンをお勧めします。
詳しいデータシート等はスイッチサイエンスの商品ページから確認してみてください。

いくつか種類がありますが、一番オーソドックスなTeensy 3.2はICS変換基板の2個分ぐらいの大きさです。
しかしながら1250000bpsに対応したUARTが3つもあります!
なおかつ追加パッチをあてればArduino IDEでもプログラミングできるので使い勝手もよく、チュートリアルも充実しているので初めての人も無問題。
注意点としてはデジタルピンは5vトレラントがありますが、アナログピンは3.3vまでです。
またデジタルピンの出力電圧は3.3vになります。

最新上位種のTeensy 3.6はUARTが6つにmicroSDスロットがつき、USBホストを標準サポートしています。大きすぎるのがちょっと問題ですが、これ単体でUSBゲームパッドをつないでサーボを制御といった使い方もできます。ただ3.6は5vトレラントが無いことに注意です。

↓サイズ比較
Teensy_比較


では具体的に、TeensyとICSライブラリの使い方について。
Teensyは3.2、ライブラリは最新のv200を使っていきます。

まず配線です。基本はそのままでOKです。
注意点としては変換基板のIOREFには3.3vを印加してください。
このIOREFがマイコンと通信する信号の電圧になります。
またTeensyのVINは約6vまでなので、3セルリポ等を電源につなぐ場合は変換基板のVOUTはつながないでください。

ICS変換基板_配線図 

では次にArduino IDEでのプログラミングについて。
先述した追加パッチについては下記を参照ください。

サンプルのKrsServo1をもとに見ていきます。
単純にスケッチのBAUDRATEを1250000に変更しただけでコンパイルすると、下のようなエラーを吐きます。
&Serialを&Serial1に修正すれば大丈夫です。感覚的にはArduino MEGAを使っている感じ?

KrsServo1_サンプルスケッチ_teensy用 

はい、これだけで125000bpsでICS通信が出来ちゃいます。
多機能な割には価格が純正Arduinoとさほど変わらないので、試しにおひとつ買われてみてはいかがでしょうか?

おわり
スポンサーサイト

tag : Teensy Arduino ICS通信

RCB-4HVとKRCコントローラのICS通信

2015年に近藤科学のサイトにて、KRC-5FHのコマンドリファレンスが公開されていました。
http://kondo-robot.com/faq/krr-5fhcommandreference1
メインはRCB-4HVでの使い方ですが、RCB-3HV(低速シリアル通信)での使い方、他社製マイコンボードでのAUX通信についても言及してあります。
んで、今回はこのリファレンスを使って遊んでいきます。

まず、RCB-4HVとKRC-5FHはどういう通信をしているのでしょうか?

リファレンスp.5で典型的なICS通信で、近藤科学製コントローラ特有のID:31ってのは分かりました。
p.6でコマンド構造の解説、p.7~11はIDとボーレートの設定についてとあります。上記の通りIDは31で固定なので、単純にボーレート読み取り・変更用のコマンドですね。ココらへんはレシーバー設定ソフトのKRRManegerで使われています。

さあ、ボタンデータの読み取りです。(p.12~)
RCB-4HVからボタンデータを要求するコマンドを出して、それに反応してボタンデータを返信しているようです。
要求コマンドは<CMD><SC><ADDR><BYTE>の4バイト構成で、CMDは0xBF、SCは0x7Fで固定です。
仮想メモリマップから、どこ(ADDR)からどれだけ(BYTE)って要求しています。
表をもとに見ていきます。BIT一行で1バイトです。
KRR-5FHCommandReference1-013.jpg
ボタンデータだけほしいなら、ADDRが0から2バイト →<BF><7F><00><02>
アナログデータだけほしいなら、ADDRが2から4バイト →<BF><7F><02><04>
全部欲しいなら、ADDRが0から7バイト →<BF><7F><00><07>
そしてその応答として、要求コマンド+要求されたデータが帰ってきます。
簡単だなぁ(^_^;)

これを見る限りだと、RCB-4HVのSIOポートからひっきりなしに<BF><7F><00><07>を送信しているようです。
以下の回路で確認しました。
ICS通信実験回路

下の図を参考にして、5VはPIOポートから、2.2kΩの抵抗は10kΩの4本並列で代用してます。
ツェナーダイオードは未使用です。
KCB-1_SIO_Circuit.jpg

シリアルモニタの結果です。
RCB-4HV_SIO_ボタンデータ要求

<BF><7F><00><07>が延々と続いていいます。
これにさらにKRR-5FHを繋いでみました。
RCB-4HV_SIO_ボタンデータKRC-5fh接続

しっかりデータが帰ってきています。
これに応用を効かせて、自作のICSコントローラを使ったRCB-4HV制御なんかもできちゃうかもしれません。

おわり

tag : RCB-4HV KRC-5FH ICS通信

検索フォーム
プロフィール

ぽんだ

Author:ぽんだ
座右の銘:やってやれないことはない

カテゴリ
最新記事
月別アーカイブ
タグ

ICS通信 RCB-4HV KRC-5FH Arduino Teensy 

最新コメント
累計アクセスカウンター
オンラインカウンター
現在の閲覧者数:
ツイッター
リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。