ICS_Class 3.0.0
読み取り中…
検索中…
一致する文字列を見つけられません
IcsBaseClass.h
[詳解]
1
37#ifndef __ics_Base_Servo_h__
38#define __ics_Base_Servo_h__
39#include "Arduino.h"
40
41
42 //KRR KRC-5FH ボタン定義////////
48enum KRR_BUTTON : unsigned short
49{
50 KRR_BUTTON_NONE = 0x0000,
51
52 //左パッド
53 KRR_BUTTON_UP = 0x0001,
54 KRR_BUTTON_DOWN = 0x0002,
56 KRR_BUTTON_LEFT = 0x0008,
57
58 //右パッド
63
64 KRR_BUTTON_S1 = 0x0200,
65 KRR_BUTTON_S2 = 0x0400,
66 KRR_BUTTON_S3 = 0x0800,
67 KRR_BUTTON_S4 = 0x1000,
68
69 KRR_BUTTON_FALSE = 0xFFFF
70};
71
72
73
74//IcsBaseClassクラス///////////////////////////////////////////////////
81{
82 //固定値(公開分)
83 public:
84 //サーボID範囲 ////////////////////////////////////
85 static constexpr int MAX_ID = 31;
86 static constexpr int MIN_ID = 0;
87
88 //サーボ最大最小リミット値
89
90 static constexpr int MAX_POS = 11500;
91
92 static constexpr int MIN_POS = 3500;
93
94 static constexpr int ICS_FALSE = -1;
95
96 //固定値(非公開分)
97 protected :
98
99 static constexpr float ANGLE_F_FALSE = 9999.9;
100 static constexpr int ANGLE_I_FALSE = 0x7FFF;
101
102 //各パラメータ設定範囲
103 static constexpr int MAX_127 = 127;
104
105 static constexpr int MAX_63 = 63;
106
107 static constexpr int MIN_1 = 1;
108
109 // static const float MAX_DEG = 135.0;
110 static constexpr float MAX_DEG = 180.0;
111
112 // static const float MIN_DEG = -135.0;
113 static constexpr float MIN_DEG = -180.0;
114
115 //static const int MAX_100DEG = 13500;
116 static constexpr int MAX_100DEG = 18000;
117
118 //static const int MIN_100DEG = -13500;
119 static constexpr int MIN_100DEG = -18000;
120
121 //クラス内の型定義
122 public:
123
124 //コンストラクタ、デストラクタ
125 public:
126 //コンストラクタ(construncor)
127
128 //変数
129 public:
130
131
132 protected :
133
134 //関数
135
136 //データ送受信
137 public:
138 //データ送受信 /////////////////////////////////////////////////////////////////////////////////////////////
150 virtual bool synchronize(byte *txBuf, byte txLen, byte *rxBuf, byte rxLen);
151
152 //servo関連
153 public:
154
155 //サーボ位置決め設定
156 int setPos(byte id,unsigned int pos); //目標値設定
157 int setFree(byte id); //サーボ脱力+現在値読込
158
159 //各種パラメータ書込み
160 int setStrc(byte id, unsigned int strc); //ストレッチ書込 1~127 1(弱) <=> 127(強)
161 int setSpd(byte id, unsigned int spd); //スピード書込 1~127 1(遅い) <=> 127(速い)
162 int setCur(byte id, unsigned int curlim); //電流制限値書込 1~63 1(低い) <=> 63 (高い)
163 int setTmp(byte id, unsigned int tmplim); //温度上限書込 1~127 127(低温) <=> 1(高温)
164 //各種パラメータ読込み
165 int getStrc(byte id); //ストレッチ読込 1~127 1(弱) <=> 127(強)
166 int getSpd(byte id); //スピード読込 1~127 1(遅い)<=> 127(速い)
167 int getCur(byte id); //電流値読込 63←0 | 64→127
168 int getTmp(byte id); //現在温度読込 127(低温)<=> 0(高温)
169 int getPos(byte id); //現在位置読込  ※ICS3.6以降で有効
170
171 int getID();
172 int setID(byte id);
173
174 protected :
175 //サーボIDリミット
176 byte idMax(byte id);
177
179 bool maxMin(int maxPos, int minPos, int val);
180
181 //角度関連
182 public:
183 //角度変換 POSから角度へ変換
184 static int degPos(float deg);
185 //角度変換 角度からPOSへ変換
186 static float posDeg(int pos);
187
188 //角度変換 x100 POSから角度へ変換
189 static int degPos100(int deg);
190 //角度変換 x100 角度からPOSへ変換
191 static int posDeg100(int pos);
192
193 //KRR関連
194 public:
195 //KRRからボタンデータ受信
196 unsigned short getKrrButton();
197
198 //KRRからPAアナログデータ受信
199 int getKrrAnalog(int paCh);
200
201 //KRRから全データ受信
202 bool getKrrAllData(unsigned short *button,int adData[4]);
203
204};
205
206#endif
KRR_BUTTON
KRRが受信するボタンデータの定義
Definition IcsBaseClass.h:49
@ KRR_BUTTON_FALSE
エラー値(受信失敗等)
Definition IcsBaseClass.h:69
@ KRR_BUTTON_RIGHT
Definition IcsBaseClass.h:55
@ KRR_BUTTON_S1
シフト1 左手前
Definition IcsBaseClass.h:64
@ KRR_BUTTON_UP
Definition IcsBaseClass.h:53
@ KRR_BUTTON_S3
シフト3 右手前
Definition IcsBaseClass.h:66
@ KRR_BUTTON_LEFT
Definition IcsBaseClass.h:56
@ KRR_BUTTON_DOWN
Definition IcsBaseClass.h:54
@ KRR_BUTTON_S2
シフト2 左奥
Definition IcsBaseClass.h:65
@ KRR_BUTTON_CIRCLE
Definition IcsBaseClass.h:61
@ KRR_BUTTON_TRIANGLE
Definition IcsBaseClass.h:59
@ KRR_BUTTON_SQUARE
Definition IcsBaseClass.h:62
@ KRR_BUTTON_S4
シフト4 右奥
Definition IcsBaseClass.h:67
@ KRR_BUTTON_NONE
何も押されていない
Definition IcsBaseClass.h:50
@ KRR_BUTTON_CROSS
×
Definition IcsBaseClass.h:60
近藤科学のICS 3.5/3.6 サーボモータをマイコン経由で動作させるための基クラス
Definition IcsBaseClass.h:81
static constexpr int MIN_100DEG
角度(x100)の最小値
Definition IcsBaseClass.h:119
int getSpd(byte id)
サーボモータのスピード(出力)を読み込みます
Definition IcsBaseClass.cpp:443
static constexpr int MIN_1
パラメータの最小値
Definition IcsBaseClass.h:107
int getKrrAnalog(int paCh)
KRRが受信している指定したアナログポート(PA)のデータを取得します
Definition IcsBaseClass.cpp:702
int setCur(byte id, unsigned int curlim)
サーボモータの電流リミット(電流制限)値を変更します
Definition IcsBaseClass.cpp:318
static constexpr int MAX_POS
サーボのポジション最大値
Definition IcsBaseClass.h:90
static constexpr float ANGLE_F_FALSE
角度計算時、範囲内に入ってない場合は999.9にする(負側の場合はマイナスをつける)
Definition IcsBaseClass.h:99
static constexpr int MIN_POS
サーボのポジション最小値
Definition IcsBaseClass.h:92
static constexpr int MIN_ID
サーボIDの最小値
Definition IcsBaseClass.h:86
static int posDeg100(int pos)
ポジションデータを角度データ(int型)に変換
Definition IcsBaseClass.cpp:127
int getTmp(byte id)
サーボモータの現在の温度値を読み込みます
Definition IcsBaseClass.cpp:518
static constexpr float MAX_DEG
角度の最大値
Definition IcsBaseClass.h:110
int getStrc(byte id)
サーボモータのストレッチ(保持力)の値を読み込みます
Definition IcsBaseClass.cpp:404
bool getKrrAllData(unsigned short *button, int adData[4])
KRRが受信しているボタンデータおよびアナログポート(PA)のデータをすべて取得します
Definition IcsBaseClass.cpp:743
int setTmp(byte id, unsigned int tmplim)
サーボモータの温度リミット(温度制限)値を変更します
Definition IcsBaseClass.cpp:360
static int degPos(float deg)
角度データ(float型)をポジションデータに変換
Definition IcsBaseClass.cpp:60
int getCur(byte id)
サーボモータの現在の電流値を読み込みます
Definition IcsBaseClass.cpp:480
int setFree(byte id)
サーボモータをフリー(脱力)状態にします
Definition IcsBaseClass.cpp:195
static constexpr int MAX_ID
サーボIDの最大値
Definition IcsBaseClass.h:85
int getPos(byte id)
サーボモータの現在のポジションデータを読み込みます
Definition IcsBaseClass.cpp:554
static int degPos100(int deg)
角度データx100(int型)をポジションデータに変換
Definition IcsBaseClass.cpp:105
bool maxMin(int maxPos, int minPos, int val)
ポジションデータの最大、最小値の範囲に収める
Definition IcsBaseClass.cpp:40
int getID()
ICSデバイスのIDを取得する
Definition IcsBaseClass.cpp:589
static constexpr int MAX_127
パラメータの最大値
Definition IcsBaseClass.h:103
static constexpr float MIN_DEG
角度の最大値
Definition IcsBaseClass.h:113
static constexpr int ICS_FALSE
ICS通信等々で失敗したときの値
Definition IcsBaseClass.h:94
static float posDeg(int pos)
ポジションデータを角度データ(float型)に変換
Definition IcsBaseClass.cpp:82
static constexpr int ANGLE_I_FALSE
角度計算時、範囲内に入ってない場合は0x7FFFにする(負側の場合はマイナスをつける)
Definition IcsBaseClass.h:100
static constexpr int MAX_63
パラメータの最大値(電流値)
Definition IcsBaseClass.h:105
unsigned short getKrrButton()
KRRが受信しているボタンのデータを取得します
Definition IcsBaseClass.cpp:665
static constexpr int MAX_100DEG
角度(x100)の最大値
Definition IcsBaseClass.h:116
int setStrc(byte id, unsigned int strc)
サーボモータのストレッチ(保持力)の値を書き込みます
Definition IcsBaseClass.cpp:236
int setPos(byte id, unsigned int pos)
サーボモータの角度を変更します
Definition IcsBaseClass.cpp:151
int setSpd(byte id, unsigned int spd)
サーボモータのスピード(出力)を変更します
Definition IcsBaseClass.cpp:276
byte idMax(byte id)
サーボIDが範囲内か見る
Definition IcsBaseClass.cpp:19
virtual bool synchronize(byte *txBuf, byte txLen, byte *rxBuf, byte rxLen)
ICS通信の送受信
int setID(byte id)
ICSデバイスのIDを書き込む
Definition IcsBaseClass.cpp:628