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.
Dependencies: mbed
Revision 19:4058485b5bb3, committed 2019-10-31
- Comitter:
- o2132613
- Date:
- Thu Oct 31 06:16:05 2019 +0000
- Parent:
- 18:2579c275ef57
- Commit message:
- f3rc(master(; ;
Changed in this revision
User.cpp | Show annotated file Show diff for this revision Revisions of this file |
ps3.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/User.cpp Wed Aug 23 03:31:34 2017 +0000 +++ b/User.cpp Thu Oct 31 06:16:05 2019 +0000 @@ -4,87 +4,22 @@ #include "ps3.h" #include "User.h" #include "mbed.h" -#define _USE_MATH_DEFINES - #include "math.h" -#define Pi 3.14159 int RSX,RSY,LSX,LSY,BSU,BSL; -//これより下に関数外に書く要素を記入する -//spi通信用 +PwmOut servo(p21); //check survo pin SPI spi(p5,p6,p7); DigitalOut cs(p8); -//オムニホイール - -/* 正転の向き - ← - - ↘ ↗ */ -PwmOut motor_f_1(p21); -PwmOut motor_f_2(p22); -PwmOut motor_l_1(p23); -PwmOut motor_l_2(p24); -PwmOut motor_r_1(p25); -PwmOut motor_r_2(p26); - -double fai=1/3*Pi;//φ - - -double power_f=1; -double power_l=1; -double power_r=1; - -double M1; -double M2; -double M3; - -void motor_act() -{ - if(M1 >=0) { - motor_f_1=M1; - motor_f_2=0; - } else { - motor_f_1=0; - motor_f_2=-M1; - } - - if(M2 >=0) { - motor_l_1=M2; - motor_l_2=0; - } else { - motor_l_1=0; - motor_l_2=-M2; - } - - if(M3 >=0) { - motor_r_1=M3; - motor_r_2=0; - } else { - motor_r_1=0; - motor_r_2=-M3; - } - - - -} -double sita; -double sita_2; - +int Speed_Mode = 2 ; +int send; void UserLoopSetting() { spi.format(8,3); spi.frequency(1000000); - motor_f_1.period_us(50); - motor_f_2.period_us(50); - motor_l_1.period_us(50); - motor_l_2.period_us(50); - motor_r_1.period_us(50); - motor_r_2.period_us(50); - + servo.pulsewidth_us(1450); } - void UserLoop(char n,const u8* data) { u16 ButtonState; @@ -109,143 +44,46 @@ } //ここより下にプログラムを書く //spi通信用プログラム - - int a,b,c,d,e,f,g,h; - int send = 0; - - - - if((ButtonState >> BUTTONUP)&1 == 1) {//対応するボタンを書く(今回上ボタン - a = 1; - } else { - a = 0; - } - - if((ButtonState >> BUTTONDOWN)&1 == 1) {//対応するボタンを書く(今回下ボタン - b = 2; - } else { - b = 0; - } - - if((ButtonState >> BUTTONL1)&1 == 1) {//対応するボタンを書く(今回L1ボタン - c = 4; - } else { - c = 0; - } - - if((ButtonState >> BUTTONL2)&1 == 1) {//対応するボタンを書く(今回L2ボタン - d = 8; - } else { - d = 0; + send = 0; + if((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//UPL1 + { + send = 84; + }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//DownR1 + { + send = 168; + }else if ((ButtonState >> BUTTONUP)&1 == 1&&(ButtonState >> BUTTONR1)&1 == 1)//UPR1 + { + send = 148; + }else if ((ButtonState >> BUTTONDOWN)&1 == 1&&(ButtonState >> BUTTONL1)&1 == 1)//DownL1 + { + send = 104; + }else if((ButtonState >> BUTTONUP)&1 == 1) + {//対応するボタンを書く(今回上ボタン + send = 20; + }else if((ButtonState >> BUTTONDOWN)&1 == 1) + {//対応するボタンを書く(今回下ボタン + send = 40; + }else if((ButtonState >> BUTTONL1)&1 == 1) + {//対応するボタンを書く(今回L1ボタン + send = 100; + }else if((ButtonState >> BUTTONR1)&1 == 1) + {//対応するボタンを書く(今回R1ボタン + send = 152; + }else{ + send = 0; } - + if((ButtonState >> BUTTONL2)&1 == 1&&Speed_Mode>1) {//対応するボタンを書く(今回L2ボタン + Speed_Mode-=1; + wait(0.1); + }else if((ButtonState >> BUTTONR2)&1 == 1&&Speed_Mode<3) {//対応するボタンを書く(今回R2ボタン + Speed_Mode+=1; + wait(0.1); + } if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {//対応するボタンを書く(今回△ボタン - e = 16; - } else { - e = 0; - } - - if((ButtonState >> BUTTONCROSS)&1 == 1) {//対応するボタンを書く(今回×ボタン - f = 32; - } else { - f = 0; + servo.pulsewidth_us(1450); + } else if((ButtonState >> BUTTONCROSS)&1 == 1) {//対応するボタンを書く(今回×ボタン + servo.pulsewidth_us(2400); } - - if((ButtonState >> BUTTONR1)&1 == 1) {//対応するボタンを書く(今回R1ボタン - g = 64; - } else { - g = 0; - } - - if((ButtonState >> BUTTONR2)&1 == 1) {//対応するボタンを書く(今回R2ボタン - h = 128; - } else { - h = 0; - } - - - - send = a+b+c+d+e+f+g+h; - - cs = 0; + send += Speed_Mode; spi. write(send); - cs = 1; - printf("%d\r\n",send); - - - if(LSX>=150 && LSX<=255 && LSY>=150 && LSY<=255) { //第一象限 - sita = -1.0*(atan2((double)LSY-128,(double)LSX-128))*180/Pi; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - } else if(LSX>=0 && LSX<=80 && LSY>=150 && LSY<=255) { //第二象限 - sita = -1.0*(atan2((double)LSY-128,(double)LSX-128))*180/Pi; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - } else if(LSX>=0 && LSX<=80 && LSY>=0 && LSY<=80) { //第三象限 - sita = -1.0*(atan2((double)LSY-128,(double)LSX-128))*180/Pi; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - } else if(LSX>=150 && LSX<=255 && LSY>=0 && LSY<=80) { //第四象限 - sita = -1.0*(atan2((double)LSY-128,(double)LSX-128))*180/Pi; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - - } else if(LSX==255) { - sita = 0; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - - } else if(LSY==255) { - sita = 90; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - - } else if(LSX==0) { - sita = 180; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - - } else if(LSY==0) { - sita = 270; - sita_2=90-sita; - M1=sin((sita_2-fai)*Pi/180)*power_f; - M2=sin((sita_2-fai+240)*Pi/180)*power_l; - M3=sin((sita_2-fai+120)*Pi/180)*power_r; - motor_act(); - } else { - motor_f_1=0; - motor_f_2=0; - motor_l_1=0; - motor_l_2=0; - motor_r_1=0; - motor_r_2=0; - - } - - - printf("motor_f_1:%f\motor_l_1:%f\motor_r_1:%f\sita:%f\r\n",M1,M2,M3,sita); - - - } \ No newline at end of file
--- a/ps3.h Wed Aug 23 03:31:34 2017 +0000 +++ b/ps3.h Thu Oct 31 06:16:05 2019 +0000 @@ -125,7 +125,7 @@ int _configuration; int _interfaceNumber; - u8 ledrumble[48] ; + };