KRAI 2017 / Mbed 2 deprecated Test_LimitSwitch_Nasional

Dependencies:   Motor mbed

Committer:
MarchioKevin
Date:
Sun Jun 11 09:26:47 2017 +0000
Revision:
1:e8fcbd118f4d
Parent:
0:f510a9c32a2c
Balbla

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MarchioKevin 0:f510a9c32a2c 1 #include "mbed.h"
MarchioKevin 0:f510a9c32a2c 2 #include "JoystickPS3.h"
MarchioKevin 0:f510a9c32a2c 3 #include "Motor.h"
MarchioKevin 0:f510a9c32a2c 4
MarchioKevin 1:e8fcbd118f4d 5 const float pwmPowerUp = 1.0;
MarchioKevin 1:e8fcbd118f4d 6 const float pwmPowerDown = -1.0;
MarchioKevin 1:e8fcbd118f4d 7 const float pwmPulley = 0.1;
MarchioKevin 0:f510a9c32a2c 8
MarchioKevin 0:f510a9c32a2c 9 int case_joy;
MarchioKevin 0:f510a9c32a2c 10 bool isLauncher = false;
MarchioKevin 0:f510a9c32a2c 11 bool isReload = false;
MarchioKevin 0:f510a9c32a2c 12 bool ReloadOn = false;
MarchioKevin 0:f510a9c32a2c 13 bool flag_Pneu = false;
MarchioKevin 0:f510a9c32a2c 14 bool flag_paku = false;
MarchioKevin 0:f510a9c32a2c 15
MarchioKevin 0:f510a9c32a2c 16 bool ready = false;
MarchioKevin 0:f510a9c32a2c 17
MarchioKevin 0:f510a9c32a2c 18 int case_joystick();
MarchioKevin 1:e8fcbd118f4d 19 void motorPulley();
MarchioKevin 1:e8fcbd118f4d 20 void reloader();
MarchioKevin 0:f510a9c32a2c 21
MarchioKevin 0:f510a9c32a2c 22 joysticknucleo joystick(PA_0,PA_1);
MarchioKevin 0:f510a9c32a2c 23 Serial pc(USBTX,USBRX);
MarchioKevin 0:f510a9c32a2c 24
MarchioKevin 0:f510a9c32a2c 25 //DigitalIn infraAtas(PC_9, PullUp);
MarchioKevin 1:e8fcbd118f4d 26 DigitalIn limitAtasLifter(PB_3, PullUp); // Vertikal Atas: Lifter
MarchioKevin 1:e8fcbd118f4d 27 DigitalIn limitAtasSaucer(PB_10, PullUp); // Vertikal Atas: Saucer
MarchioKevin 1:e8fcbd118f4d 28 DigitalIn limitBawah(PB_2, PullUp); // Vertikal Bawah
MarchioKevin 1:e8fcbd118f4d 29 DigitalIn limitKiri(PA_5, PullUp); // Horizontal Kiri
MarchioKevin 1:e8fcbd118f4d 30 DigitalIn limitTengah(PC_9, PullUp);// Horizontal Tengah
MarchioKevin 1:e8fcbd118f4d 31 DigitalIn limitKanan(PC_8, PullUp); // Horizontal Kanan (Frisbee keluar)
MarchioKevin 0:f510a9c32a2c 32
MarchioKevin 1:e8fcbd118f4d 33 Motor powerScrew(PB_6, PA_13, PB_0); // pwm, fwd, rev
MarchioKevin 1:e8fcbd118f4d 34 Motor pulley(PB_7, PA_14, PA_15);
MarchioKevin 0:f510a9c32a2c 35
MarchioKevin 0:f510a9c32a2c 36 int case_joystick()
MarchioKevin 0:f510a9c32a2c 37 {
MarchioKevin 0:f510a9c32a2c 38 int caseJoystick;
MarchioKevin 0:f510a9c32a2c 39 if ((joystick.lingkaran_click)&&(!joystick.kotak_click)) {
MarchioKevin 0:f510a9c32a2c 40 // Power Screw Up
MarchioKevin 0:f510a9c32a2c 41 caseJoystick = 11;
MarchioKevin 0:f510a9c32a2c 42 }
MarchioKevin 0:f510a9c32a2c 43 else if ((joystick.kotak_click)&&(!joystick.lingkaran_click)) {
MarchioKevin 0:f510a9c32a2c 44 // Power Screw Down
MarchioKevin 0:f510a9c32a2c 45 caseJoystick = 12;
MarchioKevin 0:f510a9c32a2c 46 }
MarchioKevin 0:f510a9c32a2c 47 return(caseJoystick);
MarchioKevin 0:f510a9c32a2c 48 }
MarchioKevin 0:f510a9c32a2c 49
MarchioKevin 0:f510a9c32a2c 50 void aktuator()
MarchioKevin 0:f510a9c32a2c 51 {
MarchioKevin 0:f510a9c32a2c 52 switch (case_joy)
MarchioKevin 0:f510a9c32a2c 53 {
MarchioKevin 0:f510a9c32a2c 54 case (11) :
MarchioKevin 0:f510a9c32a2c 55 {
MarchioKevin 0:f510a9c32a2c 56 // Power Screw Up
MarchioKevin 0:f510a9c32a2c 57 ReloadOn = !ReloadOn;
MarchioKevin 1:e8fcbd118f4d 58 // isReload = false;
MarchioKevin 0:f510a9c32a2c 59 break;
MarchioKevin 0:f510a9c32a2c 60 }
MarchioKevin 0:f510a9c32a2c 61 case (12) :
MarchioKevin 0:f510a9c32a2c 62 {
MarchioKevin 0:f510a9c32a2c 63 // Power Screw Down
MarchioKevin 0:f510a9c32a2c 64 ReloadOn = !ReloadOn;
MarchioKevin 1:e8fcbd118f4d 65 // isReload = true;
MarchioKevin 0:f510a9c32a2c 66 break;
MarchioKevin 0:f510a9c32a2c 67 }
MarchioKevin 1:e8fcbd118f4d 68 // tambahin yang manual ya ton :)
MarchioKevin 0:f510a9c32a2c 69 }
MarchioKevin 0:f510a9c32a2c 70 }
MarchioKevin 0:f510a9c32a2c 71
MarchioKevin 0:f510a9c32a2c 72 void reloader()
MarchioKevin 0:f510a9c32a2c 73 {
MarchioKevin 1:e8fcbd118f4d 74 if(ReloadOn)
MarchioKevin 1:e8fcbd118f4d 75 {
MarchioKevin 1:e8fcbd118f4d 76 if(limitAtasSaucer && !limitKiri)
MarchioKevin 1:e8fcbd118f4d 77 powerScrew.speed(pwmPowerUp);
MarchioKevin 1:e8fcbd118f4d 78 else
MarchioKevin 1:e8fcbd118f4d 79 {
MarchioKevin 1:e8fcbd118f4d 80 powerScrew.brake(1);
MarchioKevin 1:e8fcbd118f4d 81 }
MarchioKevin 1:e8fcbd118f4d 82
MarchioKevin 1:e8fcbd118f4d 83 if(!limitAtasLifter)
MarchioKevin 1:e8fcbd118f4d 84 {
MarchioKevin 1:e8fcbd118f4d 85 if (!limitBawah)
MarchioKevin 1:e8fcbd118f4d 86 {
MarchioKevin 1:e8fcbd118f4d 87 powerScrew.brake(1);
MarchioKevin 1:e8fcbd118f4d 88 }
MarchioKevin 1:e8fcbd118f4d 89 else
MarchioKevin 1:e8fcbd118f4d 90 {
MarchioKevin 1:e8fcbd118f4d 91 powerScrew.speed(pwmPowerDown);
MarchioKevin 0:f510a9c32a2c 92 }
MarchioKevin 0:f510a9c32a2c 93 }
MarchioKevin 1:e8fcbd118f4d 94 }
MarchioKevin 1:e8fcbd118f4d 95 }
MarchioKevin 1:e8fcbd118f4d 96
MarchioKevin 1:e8fcbd118f4d 97 void motorPulley()
MarchioKevin 1:e8fcbd118f4d 98 {
MarchioKevin 1:e8fcbd118f4d 99 if (!limitKiri)
MarchioKevin 1:e8fcbd118f4d 100 {
MarchioKevin 1:e8fcbd118f4d 101 pulley.brake(1);
MarchioKevin 1:e8fcbd118f4d 102 do
MarchioKevin 1:e8fcbd118f4d 103 {
MarchioKevin 1:e8fcbd118f4d 104 pulley.speed(pwmPulley);
MarchioKevin 1:e8fcbd118f4d 105 }while(limitTengah);
MarchioKevin 1:e8fcbd118f4d 106
MarchioKevin 1:e8fcbd118f4d 107 }
MarchioKevin 1:e8fcbd118f4d 108 else
MarchioKevin 1:e8fcbd118f4d 109 {
MarchioKevin 1:e8fcbd118f4d 110 if(!limitTengah)
MarchioKevin 1:e8fcbd118f4d 111 {
MarchioKevin 1:e8fcbd118f4d 112 pulley.brake(1);
MarchioKevin 1:e8fcbd118f4d 113 }
MarchioKevin 1:e8fcbd118f4d 114 else
MarchioKevin 1:e8fcbd118f4d 115 {
MarchioKevin 1:e8fcbd118f4d 116 if(!limitKanan)
MarchioKevin 1:e8fcbd118f4d 117 {
MarchioKevin 1:e8fcbd118f4d 118 pulley.brake(1);
MarchioKevin 1:e8fcbd118f4d 119 do
MarchioKevin 1:e8fcbd118f4d 120 {
MarchioKevin 1:e8fcbd118f4d 121 pulley.speed(-pwmPulley);
MarchioKevin 1:e8fcbd118f4d 122 }while(limitKiri);
MarchioKevin 1:e8fcbd118f4d 123 }
MarchioKevin 1:e8fcbd118f4d 124 else
MarchioKevin 1:e8fcbd118f4d 125 {
MarchioKevin 1:e8fcbd118f4d 126 do
MarchioKevin 1:e8fcbd118f4d 127 {
MarchioKevin 1:e8fcbd118f4d 128 pulley.speed(pwmPulley);
MarchioKevin 1:e8fcbd118f4d 129 }while(!limitKiri);
MarchioKevin 1:e8fcbd118f4d 130 }
MarchioKevin 0:f510a9c32a2c 131 }
MarchioKevin 0:f510a9c32a2c 132 }
MarchioKevin 1:e8fcbd118f4d 133 }
MarchioKevin 1:e8fcbd118f4d 134
MarchioKevin 1:e8fcbd118f4d 135 int main()
MarchioKevin 1:e8fcbd118f4d 136 {
MarchioKevin 1:e8fcbd118f4d 137 // Set baud rate - 115200
MarchioKevin 1:e8fcbd118f4d 138 joystick.setup();
MarchioKevin 1:e8fcbd118f4d 139 pc.baud(115200);
MarchioKevin 1:e8fcbd118f4d 140 wait_ms(1000);
MarchioKevin 1:e8fcbd118f4d 141 while(1)
MarchioKevin 1:e8fcbd118f4d 142 {
MarchioKevin 1:e8fcbd118f4d 143 // Interrupt Serial
MarchioKevin 1:e8fcbd118f4d 144 joystick.idle();
MarchioKevin 1:e8fcbd118f4d 145 if(joystick.readable())
MarchioKevin 1:e8fcbd118f4d 146 {
MarchioKevin 1:e8fcbd118f4d 147 // Panggil fungsi pembacaan joystik
MarchioKevin 1:e8fcbd118f4d 148 joystick.baca_data();
MarchioKevin 1:e8fcbd118f4d 149 // Panggil fungsi pengolahan data joystik
MarchioKevin 1:e8fcbd118f4d 150 joystick.olah_data();
MarchioKevin 1:e8fcbd118f4d 151 // Masuk ke case joystick
MarchioKevin 1:e8fcbd118f4d 152 case_joy = case_joystick();
MarchioKevin 1:e8fcbd118f4d 153 //pc.printf("%d\n",case_joy);
MarchioKevin 1:e8fcbd118f4d 154 reloader();
MarchioKevin 1:e8fcbd118f4d 155 motorPulley();
MarchioKevin 1:e8fcbd118f4d 156
MarchioKevin 1:e8fcbd118f4d 157 }
MarchioKevin 1:e8fcbd118f4d 158 else
MarchioKevin 1:e8fcbd118f4d 159 {
MarchioKevin 1:e8fcbd118f4d 160 joystick.idle();
MarchioKevin 1:e8fcbd118f4d 161 }
MarchioKevin 0:f510a9c32a2c 162 }
MarchioKevin 0:f510a9c32a2c 163 }
MarchioKevin 1:e8fcbd118f4d 164
MarchioKevin 1:e8fcbd118f4d 165
MarchioKevin 0:f510a9c32a2c 166