Ain x & y

Dependents:   aControlUnit

Committer:
pkolar1
Date:
Wed Dec 19 09:07:34 2018 +0000
Revision:
4:2e370ac02328
Parent:
3:a3ec28483a72
fin

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pkolar1 0:a7aea58d1d93 1 #include "mbed.h"
pkolar1 0:a7aea58d1d93 2 #include "Joystick.h"
pkolar1 0:a7aea58d1d93 3
pkolar1 2:7fe99a8410fd 4 Joystick::Joystick(PinName xPin, PinName yPin) : xi(xPin), yi(yPin)
pkolar1 0:a7aea58d1d93 5 {
pkolar1 0:a7aea58d1d93 6 init();
pkolar1 4:2e370ac02328 7 t.attach(this,&Joystick::floattoint,0.04);
pkolar1 0:a7aea58d1d93 8 }
pkolar1 0:a7aea58d1d93 9
pkolar1 0:a7aea58d1d93 10 void Joystick::init()
pkolar1 0:a7aea58d1d93 11 {
pkolar1 4:2e370ac02328 12 dirr = 0; // initialized to stay still
pkolar1 4:2e370ac02328 13 aimm = 0; // servo in mid aim
pkolar1 4:2e370ac02328 14 }
pkolar1 2:7fe99a8410fd 15
pkolar1 4:2e370ac02328 16 void Joystick::floattoint()
pkolar1 4:2e370ac02328 17 {
pkolar1 4:2e370ac02328 18 x = (int)(100*xi.read());
pkolar1 4:2e370ac02328 19 y = (int)(100*yi.read()); // float to int
pkolar1 0:a7aea58d1d93 20 }
pkolar1 0:a7aea58d1d93 21
pkolar1 4:2e370ac02328 22 int Joystick::DirectionDC()
pkolar1 0:a7aea58d1d93 23 {
pkolar1 4:2e370ac02328 24 if(x<=80 && x>=50 && y<=83 && y>=53) { //still
pkolar1 4:2e370ac02328 25 dirr = 0;
pkolar1 4:2e370ac02328 26 } else if(x<50 &&x>=0 && y<53 && y>=0) { //forward
pkolar1 4:2e370ac02328 27 dirr = 4;
pkolar1 4:2e370ac02328 28 } else if(x<=100 && x>80 && y<=100 && y>83) { //backward
pkolar1 4:2e370ac02328 29 dirr = 2;
pkolar1 0:a7aea58d1d93 30 }
pkolar1 4:2e370ac02328 31 return dirr;
pkolar1 0:a7aea58d1d93 32 }
pkolar1 0:a7aea58d1d93 33
pkolar1 0:a7aea58d1d93 34 int Joystick::Servo()
pkolar1 0:a7aea58d1d93 35 {
pkolar1 4:2e370ac02328 36 if(dirr == 0) { //still
pkolar1 4:2e370ac02328 37 aimm = 0;
pkolar1 4:2e370ac02328 38 } else if(dirr == 4) {
pkolar1 4:2e370ac02328 39 if(abs(x - y) < 20) aimm = 0;
pkolar1 4:2e370ac02328 40 else if(x < y) { //left
pkolar1 4:2e370ac02328 41 aimm = 8;
pkolar1 4:2e370ac02328 42 } else if(x > y) { //right
pkolar1 4:2e370ac02328 43 aimm = 1;
pkolar1 0:a7aea58d1d93 44 }
pkolar1 4:2e370ac02328 45 } else if(dirr == 2) { //backward
pkolar1 4:2e370ac02328 46 if(x == 100 && y == 100) aimm = 0;
pkolar1 4:2e370ac02328 47 else if(x < y) { //left
pkolar1 4:2e370ac02328 48 aimm = 8;
pkolar1 4:2e370ac02328 49 } else if(x > y) { //right
pkolar1 4:2e370ac02328 50 aimm = 1;
pkolar1 0:a7aea58d1d93 51 }
pkolar1 0:a7aea58d1d93 52 }
pkolar1 4:2e370ac02328 53 return aimm;
pkolar1 4:2e370ac02328 54 }