![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
桃井くん機体 高田くん仕様キー
Dependencies: mbed
Fork of PS3_BlueUSB_user by
momoi_taka.cpp
- Committer:
- abcdefgh
- Date:
- 2016-06-10
- Revision:
- 13:9e04b53e875a
- Parent:
- 12:d811e29e469a
File content as of revision 13:9e04b53e875a:
#include "Utils.h" #include "USBHost.h" #include "hci.h" #include "ps3.h" #include "User.h" #include "mbed.h" int RSX,RSY,LSX,LSY,BSU,BSL; //これより下に関数外に書く要素を記入する double flag; //MD1 PwmOut motorRightOne (p23); PwmOut motorRightTwo (p24); //MD2 PwmOut motorLeftOne (p21); PwmOut motorLeftTwo (p22); //MD3 Arm1 PwmOut armRight(p26); DigitalOut armThree (p30); DigitalOut armFour (p29); //MD4 Arm2 PwmOut armLeft(p25); DigitalOut armOne (p6); DigitalOut armTwo (p5); /* PWM->0.xxx Digitals->0 and 0.xxx for arms(I guess...) For lergs, turn right or left, and just going go and back.->Probably using sticks. How to cha ge speed? Two different tyes of speed. Wow, Taka-chan will do one of the machine. He wants to do with the angles. Plus I don't understand what they are talking about!! Left stick, speed and right/left Push button and max incline -> the max speed Just max incline -> usual speed Little incline -> slow speed L1/R2 -> turning? Lifting -> */ void UserLoopSetting() { //一度だけ行いたい初期設定をここに書く /* I need to ask what to do with this! Actually, do we have any LEDs? */ } void UserLoop(char n,const u8* data) { u16 ButtonState; if(n==0) { //有線Ps3USB.cpp RSX = ((ps3report*)data)->RightStickX; RSY = ((ps3report*)data)->RightStickY; LSX = ((ps3report*)data)->LeftStickX; LSY = ((ps3report*)data)->LeftStickY; BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff); BSL = (u8)(((ps3report*)data)->ButtonState >> 8); //ボタンの処理 ButtonState = ((ps3report*)data)->ButtonState; } else {//無線TestShell.cpp RSX = ((ps3report*)(data + 1))->RightStickX; RSY = ((ps3report*)(data + 1))->RightStickY; LSX = ((ps3report*)(data + 1))->LeftStickX; LSY = ((ps3report*)(data + 1))->LeftStickY; BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff); BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8); //ボタンの処理 ButtonState = ((ps3report*)(data + 1))->ButtonState; } //ここより下にプログラムを書く /* double thesOne = 64; double thesTwo = 127; double thesThree = 191; double fastSpeed = 1; double slowSpeed = 0.5; */ //motor if((ButtonState >> BUTTONSTART)&1 == 1) { flag = 0; } else if((ButtonState >> BUTTONR2)&1 == 1) { flag += 0.05; wait(0.1); } else if((ButtonState >> BUTTONL2)&1 == 1) { flag -= 0.05; wait(0.1); } if(flag >= 1.0) { flag = 1.0; } if(flag <= -0.3) { flag = -0.2; } if(LSY>140 && ((ButtonState >> BUTTONLANALOG)&1) == 1) { motorRightOne = 0.8; motorRightTwo = 0; motorLeftOne = 0.8; motorLeftTwo = 0; } else if(LSY<110 && ((ButtonState >> BUTTONLANALOG)&1) == 1) { motorRightOne = 0; motorRightTwo = 0.8; motorLeftOne = 0; motorLeftTwo = 0.8; } else if( LSY > 140 ) { //forward motorRightOne = 0.6 + flag; motorRightTwo = 0; motorLeftOne = 0.6 + flag; motorLeftTwo = 0; } else if( LSY < 110 ) { //back motorRightOne = 0; motorRightTwo = 0.6 + flag; motorLeftOne = 0; motorLeftTwo = 0.6 + flag; } else { //stop motorRightOne = 0; motorRightTwo = 0; motorLeftOne = 0; motorLeftTwo = 0; } if(( ButtonState >> BUTTONR1)&1 == 1) { motorRightOne = 0; motorRightTwo = 0.7 + flag; motorLeftOne = 0.7 + flag; motorLeftTwo = 0; } if(( ButtonState >> BUTTONL1)&1 == 1) { motorRightOne = 0.6 + flag; motorRightTwo = 0; motorLeftOne = 0; motorLeftTwo = 0.6 + flag; } //arm if( (ButtonState >> BUTTONTRIANGEL)&1 == 1 ) { armThree = 0; armFour = 1; armLeft = 0.4; } else if( (ButtonState >> BUTTONCROSS)&1 == 1 ) { armThree = 1; armFour = 0; armLeft = 0.4; } else { armThree = 0; armFour = 0; armLeft = 0; } if((ButtonState >> BUTTONSQUARE)&1 == 1) { armOne = 1; armTwo = 0; armRight = 0.4; } else if((ButtonState >> BUTTONCIRCLE)&1 == 1) { armOne = 0; armTwo = 1; armRight = 0.4; } else { armOne = 0; armTwo = 0; armRight = 0; /* With oen if, put both arms and legs. Use start and select?? */ /* led3=ButtonState & 0x0400; //L1の状態 led4=ButtonState & 0x0800; //R1の状態 */ //値の取得はps3.hを参照 } }