FC2ブログ

スポンサーサイト

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

ICSライブラリを使った多サーボマスタースレーブその1 synchronize()を使う

<はじめに>

9月8日に東京・立川で開催された第27回Kondo battleに全身マスタースレーブの8軸ロボットで参加してきました。

今回はタイトル通り、ICSライブラリを使った多サーボマスタースレーブの記事を書いてきます。
では第1回、synchronize()を使えるようにします。
(IcsHardSerialClassを使っている人向けです。IcsSoftSerialClassの人はやる作業ないです^^;)

<synchronize()って?>

ICSライブラリのマニュアル(IcsLibrary_forArduino_2_0.pdf)の24ページによると以下の通りです。

ICS変換基板forArduino p24

あれこれ書いてあって難しそうですが、ICS通信はコレ一つで事足ります。
ICSライブラリにはgetPos()やsetSpd()がありますがこのsynchronize()がベースです。
前者はIDさえ指定すれば、簡単に値が読み書きできるようにしただけです(^^)
ライブラリ内のIcsBaseClass.cppをのぞいてみると分かりやすいかと思います。
例えばsetPos()の中身です。配列の一つ目でIDの指定、2つ目と3つ目でポジションを指定しています。(3500~11500のポジションデータを表すには2バイト必要です。)


synchronize()を使ったsetPos 

<synchronize()を使うために>

前置きが長くなりましたが作業に移ります。簡単です。すぐ済みます。
※arduino ideにICSライブラリがインクルードされた前提で進めていきます。
まだの方はこちらから→https://kondo-robot.com/faq/ics-library-a2
※プログラミング用のファイルを編集します。ワードパッドでもできそうですが、visual studio codeなどをインストールしておくことをお勧めします。

1.arduinoのlibrariesファルダ内のIcsClass_V200フォルダ、さらにそのなかのsrcフォルダを開いてください。開くとIcsHardSerialClass.hというファイルが見つかると思います。
2.そのファイルを開いて78行目、protectedをpublicに書き換えます。

IcsHardSerialClass.hの78行目

3.保存して終了

以上です。これだけで以下のスケッチのようにそのまんまsynchronize()が使えるようになます。
IcsBaseClass.cppにあったsetPos()を転用しています。
synchronize()でsetPos()

今回はここまで
その2では実際にマスタースレーブのスケッチを公開・解説していくつもりです。

つづく
スポンサーサイト

tag : ICS通信 Arduino ICSライブラリ

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通信

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

ぽんだ

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

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

ICS通信 Arduino KRC-5FH RCB-4HV Teensy ICSライブラリ 

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

この人とブロともになる

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