-

Committer:
sarlilouis
Date:
Thu Oct 19 15:57:38 2017 +0000
Revision:
0:fb412ae47dc6
update;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sarlilouis 0:fb412ae47dc6 1 #include "mbed.h"
sarlilouis 0:fb412ae47dc6 2 #include "JoystickPS3.h"
sarlilouis 0:fb412ae47dc6 3 #include "gerakBase.h"
sarlilouis 0:fb412ae47dc6 4
sarlilouis 0:fb412ae47dc6 5 //////////////////////////////////////////
sarlilouis 0:fb412ae47dc6 6 // Variable Library
sarlilouis 0:fb412ae47dc6 7
sarlilouis 0:fb412ae47dc6 8 /////////////////////////////////////////
sarlilouis 0:fb412ae47dc6 9 olahGerak::olahGerak( PinName _pin_tx, PinName _pin_rx,
sarlilouis 0:fb412ae47dc6 10 PinName _pin_pwm_A, PinName _pin_fwd_A, PinName _pin_rev_A,
sarlilouis 0:fb412ae47dc6 11 PinName _pin_pwm_B, PinName _pin_fwd_B, PinName _pin_rev_B,
sarlilouis 0:fb412ae47dc6 12 PinName _pin_pwm_C, PinName _pin_fwd_C, PinName _pin_rev_C):
sarlilouis 0:fb412ae47dc6 13 joysticknucleo joystick(PIN_TX, PIN_RX);
sarlilouis 0:fb412ae47dc6 14 gerakBase Base(
sarlilouis 0:fb412ae47dc6 15 _pin_pwm_A, _pin_fwd_A, _pin_rev_A, // Motor A
sarlilouis 0:fb412ae47dc6 16 _pin_pwm_B, _pin_fwd_B, _pin_rev_B, // Motor B
sarlilouis 0:fb412ae47dc6 17 _pin_pwm_C, _pin_fwd_C, _pin_rev_C);// Motor C
sarlilouis 0:fb412ae47dc6 18 {
sarlilouis 0:fb412ae47dc6 19 }
sarlilouis 0:fb412ae47dc6 20
sarlilouis 0:fb412ae47dc6 21 void olahgerak::inisiasiJoystick(){
sarlilouis 0:fb412ae47dc6 22 joystick.setup();
sarlilouis 0:fb412ae47dc6 23 joystick.idle();
sarlilouis 0:fb412ae47dc6 24 }
sarlilouis 0:fb412ae47dc6 25 void olahGerak::bacaOlahData(){
sarlilouis 0:fb412ae47dc6 26 if(joystick.readable() ) {
sarlilouis 0:fb412ae47dc6 27 // Panggil fungsi pembacaan joystik
sarlilouis 0:fb412ae47dc6 28 joystick.baca_data();
sarlilouis 0:fb412ae47dc6 29 }
sarlilouis 0:fb412ae47dc6 30 joystick.olah_data();
sarlilouis 0:fb412ae47dc6 31 }
sarlilouis 0:fb412ae47dc6 32
sarlilouis 0:fb412ae47dc6 33 int olahGerak::caseGerak(){
sarlilouis 0:fb412ae47dc6 34 {
sarlilouis 0:fb412ae47dc6 35 int _case_gerak;
sarlilouis 0:fb412ae47dc6 36 if (!joystick.L1 && joystick.R1) {
sarlilouis 0:fb412ae47dc6 37 // Pivot Kanan
sarlilouis 0:fb412ae47dc6 38 _case_gerak = 1;
sarlilouis 0:fb412ae47dc6 39 } else if (!joystick.R1 && joystick.L1) {
sarlilouis 0:fb412ae47dc6 40 // Pivot Kiri
sarlilouis 0:fb412ae47dc6 41 _case_gerak = 2;
sarlilouis 0:fb412ae47dc6 42 } else if ((!joystick.R1)&&(!joystick.L1)&&(joystick.atas)&&(!joystick.bawah)&&(!joystick.kanan)&&(!joystick.kiri)) {
sarlilouis 0:fb412ae47dc6 43 // Maju
sarlilouis 0:fb412ae47dc6 44 _case_gerak = 3;
sarlilouis 0:fb412ae47dc6 45 } else if ((!joystick.R1)&&(!joystick.L1)&&(!joystick.atas)&&(joystick.bawah)&&(!joystick.kanan)&&(!joystick.kiri)) {
sarlilouis 0:fb412ae47dc6 46 // Mundur
sarlilouis 0:fb412ae47dc6 47 _case_gerak = 4;
sarlilouis 0:fb412ae47dc6 48 } else if ((!joystick.R1)&&(!joystick.L1)&&(joystick.atas)&&(!joystick.bawah)&&(!joystick.kiri)&&(joystick.kanan)) {
sarlilouis 0:fb412ae47dc6 49 // Serong Atas Kanan
sarlilouis 0:fb412ae47dc6 50 _case_gerak = 5;
sarlilouis 0:fb412ae47dc6 51 } else if((!joystick.R1)&&(!joystick.L1)&&(!joystick.atas)&&(joystick.bawah)&&(!joystick.kiri)&&(joystick.kanan)) {
sarlilouis 0:fb412ae47dc6 52 // Serong Bawah Kanan
sarlilouis 0:fb412ae47dc6 53 _case_gerak = 6;
sarlilouis 0:fb412ae47dc6 54 } else if ((!joystick.R1)&&(!joystick.L1)&&(joystick.atas)&&(!joystick.bawah)&&(joystick.kiri)&&(!joystick.kanan)) {
sarlilouis 0:fb412ae47dc6 55 // Serong Atas Kiri
sarlilouis 0:fb412ae47dc6 56 _case_gerak = 7;
sarlilouis 0:fb412ae47dc6 57 } else if ((!joystick.R1)&&(!joystick.L1)&&(!joystick.atas)&&(joystick.bawah)&&(joystick.kiri)&&(!joystick.kanan)) {
sarlilouis 0:fb412ae47dc6 58 // Serong Bawah Kiri
sarlilouis 0:fb412ae47dc6 59 _case_gerak = 8;
sarlilouis 0:fb412ae47dc6 60 } else if ((!joystick.R1)&&(!joystick.L1)&&(!joystick.atas)&&(!joystick.bawah)&&(joystick.kanan)&&(!joystick.kiri)) {
sarlilouis 0:fb412ae47dc6 61 // Kanan
sarlilouis 0:fb412ae47dc6 62 _case_gerak = 9;
sarlilouis 0:fb412ae47dc6 63 } else if ((!joystick.R1)&&(!joystick.L1)&&(!joystick.atas)&&(!joystick.bawah)&&(!joystick.kanan)&&(joystick.kiri)) {
sarlilouis 0:fb412ae47dc6 64 // Kiri
sarlilouis 0:fb412ae47dc6 65 _case_gerak = 10;
sarlilouis 0:fb412ae47dc6 66 } else if ((joystick.silang)&&(!joystick.kotak)&&(!joystick.segitiga)&&(!joystick.lingkaran)&&(!joystick.atas)&&(!joystick.bawah)&&(!joystick.kanan)&&(!joystick.kiri)) {
sarlilouis 0:fb412ae47dc6 67 // Brake
sarlilouis 0:fb412ae47dc6 68 _case_gerak = 11;
sarlilouis 0:fb412ae47dc6 69 } else Base.rem(1);
sarlilouis 0:fb412ae47dc6 70
sarlilouis 0:fb412ae47dc6 71 return(_case_gerak);
sarlilouis 0:fb412ae47dc6 72 }
sarlilouis 0:fb412ae47dc6 73
sarlilouis 0:fb412ae47dc6 74 void olahGerak::gerakAktuator(_case_gerak){
sarlilouis 0:fb412ae47dc6 75 if (_case_gerak == 1){
sarlilouis 0:fb412ae47dc6 76 Base.pivotKanan(0.4);
sarlilouis 0:fb412ae47dc6 77
sarlilouis 0:fb412ae47dc6 78 }
sarlilouis 0:fb412ae47dc6 79 else if (_case_gerak == 2){
sarlilouis 0:fb412ae47dc6 80 Base.pivotKiri(0.4);
sarlilouis 0:fb412ae47dc6 81 }
sarlilouis 0:fb412ae47dc6 82 else if (_case_gerak == 3){
sarlilouis 0:fb412ae47dc6 83 Base.maju(0.35);
sarlilouis 0:fb412ae47dc6 84
sarlilouis 0:fb412ae47dc6 85 }
sarlilouis 0:fb412ae47dc6 86 else if (_case_gerak == 4){
sarlilouis 0:fb412ae47dc6 87 Base.mundur(0.35);
sarlilouis 0:fb412ae47dc6 88
sarlilouis 0:fb412ae47dc6 89 }
sarlilouis 0:fb412ae47dc6 90 else if (_case_gerak == 9){
sarlilouis 0:fb412ae47dc6 91 Base.kanan(0.5);
sarlilouis 0:fb412ae47dc6 92
sarlilouis 0:fb412ae47dc6 93 }
sarlilouis 0:fb412ae47dc6 94 else if (_case_gerak == 10){
sarlilouis 0:fb412ae47dc6 95 Base.kiri(0.5);
sarlilouis 0:fb412ae47dc6 96
sarlilouis 0:fb412ae47dc6 97 }
sarlilouis 0:fb412ae47dc6 98 else if (_case_gerak == 11){
sarlilouis 0:fb412ae47dc6 99 Base.rem(1);
sarlilouis 0:fb412ae47dc6 100 }
sarlilouis 0:fb412ae47dc6 101 }