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.
Control.cpp@0:ed8bf5304fbb, 2019-12-28 (annotated)
- Committer:
- takedayuya
- Date:
- Sat Dec 28 01:43:29 2019 +0000
- Revision:
- 0:ed8bf5304fbb
- Child:
- 1:9c7744271d72
edit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| takedayuya | 0:ed8bf5304fbb | 1 | #include "mbed.h" |
| takedayuya | 0:ed8bf5304fbb | 2 | #include "Control.h" |
| takedayuya | 0:ed8bf5304fbb | 3 | #include "SBDBT.h" |
| takedayuya | 0:ed8bf5304fbb | 4 | #include "pinmap.h" |
| takedayuya | 0:ed8bf5304fbb | 5 | |
| takedayuya | 0:ed8bf5304fbb | 6 | void control::setup(){ |
| takedayuya | 0:ed8bf5304fbb | 7 | for(int i = 0; i <= 4; i++){ |
| takedayuya | 0:ed8bf5304fbb | 8 | bias[i]=0.0f; |
| takedayuya | 0:ed8bf5304fbb | 9 | } |
| takedayuya | 0:ed8bf5304fbb | 10 | |
| takedayuya | 0:ed8bf5304fbb | 11 | } |
| takedayuya | 0:ed8bf5304fbb | 12 | |
| takedayuya | 0:ed8bf5304fbb | 13 | void control::run(){ |
| takedayuya | 0:ed8bf5304fbb | 14 | |
| takedayuya | 0:ed8bf5304fbb | 15 | sb.PS3_JOYSTICK(); |
| takedayuya | 0:ed8bf5304fbb | 16 | OmniControl(); |
| takedayuya | 0:ed8bf5304fbb | 17 | |
| takedayuya | 0:ed8bf5304fbb | 18 | } |
| takedayuya | 0:ed8bf5304fbb | 19 | |
| takedayuya | 0:ed8bf5304fbb | 20 | void control::OmniControl() |
| takedayuya | 0:ed8bf5304fbb | 21 | { |
| takedayuya | 0:ed8bf5304fbb | 22 | Vx = sb.JoyStick_dt[0] * -1; |
| takedayuya | 0:ed8bf5304fbb | 23 | Vy = sb.JoyStick_dt[1]; |
| takedayuya | 0:ed8bf5304fbb | 24 | wl = sb.JoyStick_dt[2]; |
| takedayuya | 0:ed8bf5304fbb | 25 | |
| takedayuya | 0:ed8bf5304fbb | 26 | pwm[0]=(Vx -Vy) * bias[0] + wl; |
| takedayuya | 0:ed8bf5304fbb | 27 | pwm[1]=(-1)*(Vx -Vy) * bias[1] + wl; |
| takedayuya | 0:ed8bf5304fbb | 28 | pwm[2]=(-1)*(Vx -Vy) * bias[2] + wl; |
| takedayuya | 0:ed8bf5304fbb | 29 | pwm[3]=(Vx -Vy) * bias[3] + wl; |
| takedayuya | 0:ed8bf5304fbb | 30 | |
| takedayuya | 0:ed8bf5304fbb | 31 | for(int i = 0; i < 4; i++){ |
| takedayuya | 0:ed8bf5304fbb | 32 | if(pwm[i] > 127){ |
| takedayuya | 0:ed8bf5304fbb | 33 | pwm[i] = 127; |
| takedayuya | 0:ed8bf5304fbb | 34 | }else if(pwm[i] < -127){ |
| takedayuya | 0:ed8bf5304fbb | 35 | pwm[i] = -127; |
| takedayuya | 0:ed8bf5304fbb | 36 | } |
| takedayuya | 0:ed8bf5304fbb | 37 | } |
| takedayuya | 0:ed8bf5304fbb | 38 | |
| takedayuya | 0:ed8bf5304fbb | 39 | mt1.move(pwm[0]/130.0f); |
| takedayuya | 0:ed8bf5304fbb | 40 | mt2.move(pwm[1]/130.0f); |
| takedayuya | 0:ed8bf5304fbb | 41 | mt3.move(pwm[2]/130.0f); |
| takedayuya | 0:ed8bf5304fbb | 42 | mt4.move(pwm[3]/130.0f); |
| takedayuya | 0:ed8bf5304fbb | 43 | } |
| takedayuya | 0:ed8bf5304fbb | 44 | |
| takedayuya | 0:ed8bf5304fbb | 45 | void control::SolenoidControl() |
| takedayuya | 0:ed8bf5304fbb | 46 | { if(sb.PS3_CIRCLE_bit() == 1){ |
| takedayuya | 0:ed8bf5304fbb | 47 | if(pre_button sircle[0]==0){ |
| takedayuya | 0:ed8bf5304fbb | 48 | sol.write(0,1); |
| takedayuya | 0:ed8bf5304fbb | 49 | }else{ |
| takedayuya | 0:ed8bf5304fbb | 50 | pre_button sircle==1; |
| takedayuya | 0:ed8bf5304fbb | 51 | sol.write(0,0); |
| takedayuya | 0:ed8bf5304fbb | 52 | |
| takedayuya | 0:ed8bf5304fbb | 53 | } |
| takedayuya | 0:ed8bf5304fbb | 54 | } |
| takedayuya | 0:ed8bf5304fbb | 55 | if(sb.PS3_Triangle_bit() == 1){ |
| takedayuya | 0:ed8bf5304fbb | 56 | if(pre_button triangle[0]==0){ |
| takedayuya | 0:ed8bf5304fbb | 57 | sol.write(1,1); |
| takedayuya | 0:ed8bf5304fbb | 58 | }else{ |
| takedayuya | 0:ed8bf5304fbb | 59 | pre_button triangle==1; |
| takedayuya | 0:ed8bf5304fbb | 60 | sol.write(1,0); |
| takedayuya | 0:ed8bf5304fbb | 61 | |
| takedayuya | 0:ed8bf5304fbb | 62 | } |
| takedayuya | 0:ed8bf5304fbb | 63 | } |
| takedayuya | 0:ed8bf5304fbb | 64 | if(sb.PS3_square_bit() == 1){ |
| takedayuya | 0:ed8bf5304fbb | 65 | if(pre_button square[0]==0){ |
| takedayuya | 0:ed8bf5304fbb | 66 | sol.write(2,1); |
| takedayuya | 0:ed8bf5304fbb | 67 | }else{ |
| takedayuya | 0:ed8bf5304fbb | 68 | pre_button square==1; |
| takedayuya | 0:ed8bf5304fbb | 69 | sol.write(2,0); |
| takedayuya | 0:ed8bf5304fbb | 70 | |
| takedayuya | 0:ed8bf5304fbb | 71 | } |
| takedayuya | 0:ed8bf5304fbb | 72 | } |
| takedayuya | 0:ed8bf5304fbb | 73 | if(sb.PS3_cross_bit() == 1){ |
| takedayuya | 0:ed8bf5304fbb | 74 | if(pre_button cross[0]==0){ |
| takedayuya | 0:ed8bf5304fbb | 75 | sol.write(3,1); |
| takedayuya | 0:ed8bf5304fbb | 76 | }else{ |
| takedayuya | 0:ed8bf5304fbb | 77 | pre_button cross==1; |
| takedayuya | 0:ed8bf5304fbb | 78 | sol.write(3,0); |
| takedayuya | 0:ed8bf5304fbb | 79 | |
| takedayuya | 0:ed8bf5304fbb | 80 | } |
| takedayuya | 0:ed8bf5304fbb | 81 | } |
| takedayuya | 0:ed8bf5304fbb | 82 | } |
| takedayuya | 0:ed8bf5304fbb | 83 | |
| takedayuya | 0:ed8bf5304fbb | 84 |