はじめてのシリアルサーボ -シリアルサーボと距離を詰めたい俺1-
以前から憧れを抱きつつもなかなか手が出せなかったシリアルサーボ。
でべさんから譲っていただき、やっと触れることができました。
良いサーボを入手
まず私とこのサーボとの距離をつめないといけませんね。 https://t.co/ucGfDetipq pic.twitter.com/n7fd7ClHIN— HomeMadeGarbage (@H0meMadeGarbage) December 25, 2021
はじめてのシリアルサーボということで、まだまだ私との距離は大きいです。
少しづつ勉強して記事で紹介したいと思います。
今回は初回です。
目次
シリアルサーボとは
近藤科学のKRS-3301を14個 譲っていただきました。
シリアルサーボは既定の通信プロトコルでコントローラと送受信して、制御・センシング出来るサーボモータです。
近藤科学のサーボはICSという独自通信規格が採用されています。
サーボ間を数珠つなぎにマルチドロップ接続できるので、サーボを複数使用する際にも配線が用意にできることも嬉しい特徴です。
サーボとコントローラ間にICS変換基板を挿入することで、コントローラとしてArduinoなどのマイコンを簡単に使用することができます。
参考
- ROBO-ONEにチャレンジ! 二足歩行ロボット自作ガイド
はじめての動作
公式の記事を参考にM5Stackでサーボを動かしてみました。
おー動いた動いた
参考: https://t.co/rIOhc7eCRU pic.twitter.com/MMBZz3fzSe
— HomeMadeGarbage (@H0meMadeGarbage) December 28, 2021
M5Stackのコードを参考にESP32でも動かしてみました。
M5Stackのコードと同様にUART2を使用しました。
ESP32でも動かせた pic.twitter.com/ONG998WkJO
— HomeMadeGarbage (@H0meMadeGarbage) December 29, 2021
参考
連動動作
ArduinoサンプルコードのKrsServoMasterSlaveを参考に、一方のサーボで他方を制御してみました。
長年憧れていた動作 pic.twitter.com/6ZfIXPyke7
— HomeMadeGarbage (@H0meMadeGarbage) December 30, 2021
これができるのはサーボが送受信通信するシリアルサーボならではですよね。
この動作昔から憧れていたんです。
たまに見受けられる、一方で手動でサーボ動かして隣で同じように電動で動くアレってPWMサーボじゃないよね?
— HomeMadeGarbage (@H0meMadeGarbage) December 12, 2019
たったこれだけのコードで実現できるはしっかりとした通信規格の賜物ですね。
1 2 |
id1Pos = krs.getPos(1); //ID1のデータを角度取得コマンドで受け取ります(ICS3.6のみ) krs.setPos(3,id1Pos); //ID3にID1で受け取ったポジションデータを書き込みます |
Arduinoコード
コチラでダウンロードできるArduinoライブラリICS_Library_for_Arduino_V2_1 (IcsClass_V210) のサンプルコード KrsServoMasterSlave.ino 参考にしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <IcsHardSerialClass.h> const byte EN_PIN = 23; const long BAUDRATE = 1250000; const int TIMEOUT = 100; IcsHardSerialClass krs(&Serial2,EN_PIN,BAUDRATE,TIMEOUT); //インスタンス+ENピン(2番ピン)およびUARTの指定 void setup() { // put your setup code here, to run once: krs.begin(); //サーボモータの通信初期設定 } void loop() { int id1Pos; id1Pos = krs.getPos(1); //ID1のデータを角度取得コマンドで受け取ります(ICS3.6のみ) krs.setPos(3,id1Pos); //ID3にIDで受け取ったポジションデータを書き込みます } |
おわりに
はじめてのシリアルサーボ。
可能性が非常に広がりそうです。
しかしまだまだ私とシリアルサーボとの間には大きな隔たりがあるように感じます。
徐々に距離を詰めるべく勉強進めたいと思います。
それでは次回またお会いしましょう。