GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
近藤科学のICSシリアルサーボの制御ができました。
・使用サーボ: 近藤科学 KRS-3301 ICS・ボーレート: 115200・接続ポート: Serial1 (1線UART設定)・ID: あらかじめICS USB Adapterで設定
去年のルネサスナイト11で発表した自作ライブラリに、1線UART設定のための1行を追加したのみです。
#ifdef GRROSE serial->direction(HALFDUPLEX);#endif
https://github.com/lipoyang/ICSlib
近藤科学からもArduino用ライブラリが公開されていますが、おそらく同様の変更で対応できるかと思います。
情報ありがとうございます。なんか動かないなと思ってましたが、
Serial1.begin(115200, SERIAL_8E1);
ですよね。スケッチサンプルに書いてなかったので、Serial1やSerial2ではライブラリ側で勝手にやってくれるのかなと思ってしまいました。
ちなみに、625000bpsや1.25Mbpsでは動かないですよね。
PicoScopeの安いオシロで、ボーレートvs波形を見てみました。1.25Mbpsまでは行けそうですが、3Mbpsは誤差がでかいためチューニングが必要そうです。3万円のB3Mが・・・。
波形は、PMOD側Serial5と、バッファをかんでいるSerial1です。プログラムは以下です。ボーレートのみ変更していってます。
#include <Arduino.h>void setup(){ Serial1.begin(3000000); Serial5.begin(3000000);}void loop(){ Serial1.write(0x55); Serial5.write(0x55); delay(3);}
●Serial5 115200bps
●Serial1 115200bps
●Serial5 625kbps
●Serial1 625kbps
●Serial5 1250000
●Serial1 1250000
それほど誤差はなさそうだが、立ち上がりの遅さが目立ってきている。
●Serial5 3000000
3.8MHzぐらいになってしまっている。Serial1も同様
1.25Mbpsで受信もできるかどうか、FTDIのUSBシリアル変換でループさせて確認しましたが、受信も問題内容でした。
Serial(USB) → Serial1 (配線)→ FTDI
FTDI (配線)→ Serial1 → Serial(USB)
#include <Arduino.h>void setup(){ Serial.begin(9600); Serial1.begin(1250000);}void loop(){ if(Serial1.available()){ Serial.write(Serial1.read()); } if(Serial.available()){ Serial1.write(Serial.read()); }}