ETrobocon2017 - 片山研究所モデルベース開発推進事業部
Emoter.cpp
[詳解]
1 #include "Emoter.h"
2 
4  tailHand(PORT_D, true, MEDIUM_MOTOR) {
5 }
6 
7 void Emoter::init() {
8  init_f("Emoter");
9 }
10 
12  msg_f("Stopped.", 1);
13  tailHand.stop();
14 }
15 
16 void Emoter::reset() {
17  tailHand.reset();
18  tailHand.setBrake(true);
19  tailHand.setBrake(false);
20 }
21 
22 void Emoter::turn(int8_t pwm) {
23  tailHand.setPWM(pwm);
24 }
25 
26 void Emoter::wipe(int8_t pwm, int maxChange, int angle) {
27  int i;
28 
29  if(angle < 10) {
30  angle = 10;
31  }
32  angle /= 2;
33 
35 
36  tailHand.setPWM(pwm);
37  for(i = 0; i < maxChange; i++) {
38  while(1) {
39  if(tailHand.getCount() > angle || tailHand.getCount() < -angle) {
40  pwm = -pwm;
41  tailHand.setPWM(pwm);
42  clock.sleep(100);
43  break;
44  }
45  clock.sleep(1);
46  }
47  }
48  tailHand.setPWM(0);
50 }
51 
52 void Emoter::changeDefault(int angle) {
53  Emoter::defaultSet(angle);
54  Emoter::reset();
55 }
56 
57 void Emoter::defaultSet(int angle) {
58  int i = 0;
59  for(i = 0; i < 300; i++) {
60  tailHand.setPWM(-((tailHand.getCount() - angle) % 360));
61  clock.sleep(1);
62  }
63  tailHand.setPWM(0);
64  tailHand.setBrake(true);
65 }
void turn(int8_t pwm)
Definition: Emoter.cpp:22
void setPWM(int pwm)
Definition: Motor.cpp:31
void terminate()
Definition: Emoter.cpp:11
void setBrake(bool brake)
Definition: Motor.cpp:47
void reset(void)
Definition: Motor.h:55
void defaultSet(int angle)
Definition: Emoter.cpp:57
void init_f(const char *str)
Definition: util.cpp:6
void changeDefault(int angle)
Definition: Emoter.cpp:52
void sleep(uint32_t duration)
Definition: Clock.h:58
void wipe(int8_t pwm, int maxChange, int angle)
Definition: Emoter.cpp:26
void msg_f(const char *str, int32_t line)
Definition: util.cpp:17
int32_t getCount(void) const
Definition: Motor.h:67
void stop()
Definition: Motor.h:97
Definition: Port.h:34
void reset()
Definition: Emoter.cpp:16
Emoter()
Definition: Emoter.cpp:3
void init()
Definition: Emoter.cpp:7