Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:e8fcbd118f4d, 2017-06-11 (annotated)
- Committer:
- MarchioKevin
- Date:
- Sun Jun 11 09:26:47 2017 +0000
- Revision:
- 1:e8fcbd118f4d
- Parent:
- 0:f510a9c32a2c
Balbla
Who changed what in which revision?
| User | Revision | Line number | New 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 |