etrobocon2018 feat.KatLab  770af34cce41ae9c30c41303275e1add2daae0c3 (with uncommitted changes)
 全て クラス 名前空間 ファイル 関数 変数 列挙型 列挙値 フレンド マクロ定義 ページ
公開メンバ関数 | 公開変数類 | 全メンバ一覧
BasicWalker クラス

#include <BasicWalker.h>

BasicWalker 連携図
Collaboration graph

公開メンバ関数

 BasicWalker (Controller &controller_)
 
void reset (void)
 
void parkingLeft (void)
 
void setPidWithoutTarget (double, double, double)
 
void spin (bool, int32_t, int32_t turn=18)
 
void goStraight (int32_t, int32_t)
 
void goStraight_b (int32_t, int32_t, int16_t)
 
void spinToCheckBlackLine (bool, int32_t)
 
void goStraightToCheckBlackLine (int32_t, int32_t, int16_t)
 
void backStraight (int32_t, int32_t)
 

公開変数類

const bool SPIN_LEFT = false
 
const bool SPIN_RIGHT = true
 

詳解

BasicWalker.h8 行目に定義があります。

構築子と解体子

BasicWalker::BasicWalker ( Controller controller_)
inlineexplicit

BasicWalker.h10 行目に定義があります。

10  : controller(controller_)
11  {
12  controller.speakerSetVolume(100);
13  }
void speakerSetVolume(uint8_t volume)
Definition: Controller.cpp:4

呼び出し関係図:

関数詳解

void BasicWalker::backStraight ( int32_t  target_forward,
int32_t  distance 
)

BasicWalker.cpp85 行目に定義があります。

86 {
87  speedControl.setPid(p_value, i_value, d_value, -target_forward);
88  while(((walker.get_count_L() + walker.get_count_R()) / 2) * -1 < distance) {
89  forward = speedControl.calculateSpeedForPid(walker.get_count_L(), walker.get_count_R());
90  walker.run(forward, 0);
91  controller.tslpTsk(4);
92  }
93  walker.run(0, 0);
94 }
void tslpTsk(int16_t time)
Definition: Controller.cpp:74
std::int32_t calculateSpeedForPid(std::int32_t curAngleL, std::int32_t curAngleR)
void setPid(double p_gain_, double i_gain_, double d_gain_, double target_)
Definition: Pid.cpp:40
void run(std::int8_t pwm, std::int8_t turn)
Definition: Walker.cpp:30
std::int32_t get_count_R()
Definition: Walker.cpp:54
std::int32_t get_count_L()
Definition: Walker.cpp:49

呼び出し関係図:

void BasicWalker::goStraight ( int32_t  target_forward,
int32_t  distance 
)

BasicWalker.cpp68 行目に定義があります。

69 {
70  speedControl.setPid(p_value, i_value, d_value, target_forward);
71  while(((walker.get_count_L() + walker.get_count_R()) / 2) < distance) {
72  forward = speedControl.calculateSpeedForPid(walker.get_count_L(), walker.get_count_R());
73  walker.run(forward, 0);
74  controller.tslpTsk(4);
75  //リアルタイムで色を値を取得
76  // int16_t now_brightness = controller.getBrightness();
77  // if(now_brightness<20){
78  // walker.run(0,0);
79  // ev3_speaker_play_tone( NOTE_FS4, 100 ); //音で確認.
80  // break;
81  // }
82  }
83  walker.run(0, 0);
84 }
void tslpTsk(int16_t time)
Definition: Controller.cpp:74
std::int32_t calculateSpeedForPid(std::int32_t curAngleL, std::int32_t curAngleR)
void setPid(double p_gain_, double i_gain_, double d_gain_, double target_)
Definition: Pid.cpp:40
void run(std::int8_t pwm, std::int8_t turn)
Definition: Walker.cpp:30
std::int32_t get_count_R()
Definition: Walker.cpp:54
std::int32_t get_count_L()
Definition: Walker.cpp:49

呼び出し関係図:

void BasicWalker::goStraight_b ( int32_t  ,
int32_t  ,
int16_t   
)
void BasicWalker::goStraightToCheckBlackLine ( int32_t  target_forward,
int32_t  distance,
int16_t  target_brightness 
)

BasicWalker.cpp48 行目に定義があります。

50 {
51  speedControl.setPid(p_value, i_value, d_value, target_forward);
52  while(((walker.get_count_L() + walker.get_count_R()) / 2) < distance) {
53  forward = speedControl.calculateSpeedForPid(walker.get_count_L(), walker.get_count_R());
54  walker.run(forward, 0);
55  controller.tslpTsk(4);
56  //リアルタイムで色を値を取得
57  int16_t now_brightness = controller.getBrightness();
58 
59  if(now_brightness < 13) {
60  walker.run(0, 0);
61  controller.speakerPlayTone(controller.noteFs4, 100); //音で確認.
62  break;
63  }
64  }
65  walker.run(0, 0);
66 }
void speakerPlayTone(uint16_t frequency, int32_t duration)
Definition: Controller.cpp:9
void tslpTsk(int16_t time)
Definition: Controller.cpp:74
std::int32_t calculateSpeedForPid(std::int32_t curAngleL, std::int32_t curAngleR)
void setPid(double p_gain_, double i_gain_, double d_gain_, double target_)
Definition: Pid.cpp:40
void run(std::int8_t pwm, std::int8_t turn)
Definition: Walker.cpp:30
int16_t getBrightness()
Definition: Controller.cpp:59
uint16_t noteFs4
Definition: Controller.h:41
std::int32_t get_count_R()
Definition: Walker.cpp:54
std::int32_t get_count_L()
Definition: Walker.cpp:49

呼び出し関係図:

void BasicWalker::parkingLeft ( void  )
void BasicWalker::reset ( void  )

BasicWalker.cpp10 行目に定義があります。

11 {
12  walker.reset();
13 }
void reset()
Definition: Walker.cpp:15

呼び出し関係図:

被呼び出し関係図:

void BasicWalker::setPidWithoutTarget ( double  valueP,
double  valueI,
double  valueD 
)

BasicWalker.cpp3 行目に定義があります。

4 {
5  p_value = valueP;
6  i_value = valueI;
7  d_value = valueD;
8 }
void BasicWalker::spin ( bool  rotationalDirection,
int32_t  angle,
int32_t  turn = 18 
)

BasicWalker.cpp15 行目に定義があります。

16 {
17  int8_t reverseValue = rotationalDirection == SPIN_RIGHT ? -1 : 1;
18 
19  reset();
20  while((walker.get_count_R() * reverseValue)
21  < (angle / 0.645)) { // 数値は角度から回転数への変換に必要な値
22  walker.run(0, (turn * reverseValue));
23  controller.tslpTsk(4);
24  }
25  walker.run(0, 0);
26 }
void tslpTsk(int16_t time)
Definition: Controller.cpp:74
void reset(void)
Definition: BasicWalker.cpp:10
void run(std::int8_t pwm, std::int8_t turn)
Definition: Walker.cpp:30
const bool SPIN_RIGHT
Definition: BasicWalker.h:24
std::int32_t get_count_R()
Definition: Walker.cpp:54

呼び出し関係図:

void BasicWalker::spinToCheckBlackLine ( bool  rotationalDirection,
int32_t  angle 
)

BasicWalker.cpp28 行目に定義があります。

29 {
30  int8_t reverseValue = rotationalDirection == SPIN_RIGHT ? -1 : 1;
31 
32  reset();
33  while((walker.get_count_R() * reverseValue)
34  < (angle / 0.645)) { // 数値は角度から回転数への変換に必要な値
35  walker.run(0, (18 * reverseValue));
36 
37  int16_t now_brightness = controller.getBrightness();
38  if(now_brightness < 120) { //白が黒に近ずいたら
39  walker.run(0, 0);
40  controller.speakerPlayTone(controller.noteFs4, 100); //音で確認.
41  break;
42  }
43  controller.tslpTsk(4);
44  }
45  walker.run(0, 0);
46 }
void speakerPlayTone(uint16_t frequency, int32_t duration)
Definition: Controller.cpp:9
void tslpTsk(int16_t time)
Definition: Controller.cpp:74
void reset(void)
Definition: BasicWalker.cpp:10
void run(std::int8_t pwm, std::int8_t turn)
Definition: Walker.cpp:30
const bool SPIN_RIGHT
Definition: BasicWalker.h:24
int16_t getBrightness()
Definition: Controller.cpp:59
uint16_t noteFs4
Definition: Controller.h:41
std::int32_t get_count_R()
Definition: Walker.cpp:54

呼び出し関係図:

メンバ詳解

const bool BasicWalker::SPIN_LEFT = false

BasicWalker.h23 行目に定義があります。

const bool BasicWalker::SPIN_RIGHT = true

BasicWalker.h24 行目に定義があります。


このクラス詳解は次のファイルから抽出されました: