Ain x & y
Joystick.cpp@4:2e370ac02328, 2018-12-19 (annotated)
- Committer:
- pkolar1
- Date:
- Wed Dec 19 09:07:34 2018 +0000
- Revision:
- 4:2e370ac02328
- Parent:
- 3:a3ec28483a72
fin
Who changed what in which revision?
User | Revision | Line number | New 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 | } |