2017  部内対抗4班 ROBOSTEP / Mbed 2 deprecated PS3_BlueUSB_user_ver2_2

Dependencies:   mbed

Fork of PS3_BlueUSB_user_ver2_kage by 2017  部内対抗4班 ROBOSTEP

Committer:
yuto17320508
Date:
Sat May 27 05:00:15 2017 +0000
Revision:
17:41ea4c1bc6af
Parent:
16:b37dc2bb1352
koreageru

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hirokimineshita 0:736c76a75def 1 #include "Utils.h"
hirokimineshita 0:736c76a75def 2 #include "USBHost.h"
hirokimineshita 0:736c76a75def 3 #include "hci.h"
hirokimineshita 0:736c76a75def 4 #include "ps3.h"
hirokimineshita 0:736c76a75def 5 #include "User.h"
hirokimineshita 0:736c76a75def 6
hirokimineshita 0:736c76a75def 7 #include "mbed.h"
hirokimineshita 0:736c76a75def 8
hirokimineshita 0:736c76a75def 9 int RSX,RSY,LSX,LSY,BSU,BSL;
hirokimineshita 9:e5437ba3e920 10 //これより下に関数外に書く要素を記入する
yuto17320508 16:b37dc2bb1352 11
yuto17320508 16:b37dc2bb1352 12
yuto17320508 16:b37dc2bb1352 13 //moter Pwm*2
yuto17320508 16:b37dc2bb1352 14 //右足
yuto17320508 16:b37dc2bb1352 15 PwmOut pin_ueasi_1(p25);
yuto17320508 16:b37dc2bb1352 16 PwmOut pin_ueasi_2(p26);
yuto17320508 16:b37dc2bb1352 17 //左足
yuto17320508 16:b37dc2bb1352 18 PwmOut pin_sitaasi_1(p23);
yuto17320508 16:b37dc2bb1352 19 PwmOut pin_sitaasi_2(p24);
baba2357 11:86d717718dbf 20
yuto17320508 16:b37dc2bb1352 21 //moter Pwm*1 DigitalOut*2//
yuto17320508 16:b37dc2bb1352 22 //採取腕//
yuto17320508 16:b37dc2bb1352 23 PwmOut pin_pick_1(p22);
yuto17320508 16:b37dc2bb1352 24 DigitalOut pin_pick_2(p20);
yuto17320508 16:b37dc2bb1352 25 DigitalOut pin_pick_3(p19);
yuto17320508 16:b37dc2bb1352 26 //振幅腕//
yuto17320508 16:b37dc2bb1352 27 PwmOut pin_lift_1(p21);
yuto17320508 16:b37dc2bb1352 28 DigitalOut pin_lift_2(p18);
yuto17320508 16:b37dc2bb1352 29 DigitalOut pin_lift_3(p17);
yuto17320508 16:b37dc2bb1352 30
yuto17320508 16:b37dc2bb1352 31 double ue_speed=0.9;
yuto17320508 16:b37dc2bb1352 32 double sita_speed=1;
yuto17320508 16:b37dc2bb1352 33 double pick_speed=1;
yuto17320508 16:b37dc2bb1352 34 double lift_speed=1;
yuto17320508 16:b37dc2bb1352 35
yuto17320508 16:b37dc2bb1352 36
yuto17320508 16:b37dc2bb1352 37 void UserLoopSetting()
yuto17320508 16:b37dc2bb1352 38 {
hirokimineshita 0:736c76a75def 39 //一度だけ行いたい初期設定をここに書く
hirokimineshita 0:736c76a75def 40 }
hirokimineshita 0:736c76a75def 41
yuto17320508 16:b37dc2bb1352 42 void UserLoop(char n,const u8* data)
yuto17320508 16:b37dc2bb1352 43 {
hirokimineshita 0:736c76a75def 44 u16 ButtonState;
yuto17320508 16:b37dc2bb1352 45 if(n==0) { //有線Ps3USB.cpp
hirokimineshita 0:736c76a75def 46 RSX = ((ps3report*)data)->RightStickX;
hirokimineshita 0:736c76a75def 47 RSY = ((ps3report*)data)->RightStickY;
hirokimineshita 0:736c76a75def 48 LSX = ((ps3report*)data)->LeftStickX;
hirokimineshita 0:736c76a75def 49 LSY = ((ps3report*)data)->LeftStickY;
hirokimineshita 0:736c76a75def 50 BSU = (u8)(((ps3report*)data)->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 51 BSL = (u8)(((ps3report*)data)->ButtonState >> 8);
hirokimineshita 0:736c76a75def 52 //ボタンの処理
hirokimineshita 0:736c76a75def 53 ButtonState = ((ps3report*)data)->ButtonState;
yuto17320508 16:b37dc2bb1352 54 } else {//無線TestShell.cpp
hirokimineshita 0:736c76a75def 55 RSX = ((ps3report*)(data + 1))->RightStickX;
hirokimineshita 0:736c76a75def 56 RSY = ((ps3report*)(data + 1))->RightStickY;
hirokimineshita 0:736c76a75def 57 LSX = ((ps3report*)(data + 1))->LeftStickX;
hirokimineshita 0:736c76a75def 58 LSY = ((ps3report*)(data + 1))->LeftStickY;
hirokimineshita 0:736c76a75def 59 BSU = (u8)(((ps3report*)(data + 1))->ButtonState & 0x00ff);
hirokimineshita 0:736c76a75def 60 BSL = (u8)(((ps3report*)(data + 1))->ButtonState >> 8);
hirokimineshita 0:736c76a75def 61 //ボタンの処理
hirokimineshita 0:736c76a75def 62 ButtonState = ((ps3report*)(data + 1))->ButtonState;
hirokimineshita 0:736c76a75def 63 }
hirokimineshita 0:736c76a75def 64 //ここより下にプログラムを書く
yuto17320508 16:b37dc2bb1352 65
yuto17320508 16:b37dc2bb1352 66 //ーー足回りーー
yuto17320508 16:b37dc2bb1352 67 //右足
yuto17320508 16:b37dc2bb1352 68 if((ButtonState >> BUTTONRANALOG)&1 == 1)
yuto17320508 16:b37dc2bb1352 69 ue_speed=0.9;
yuto17320508 16:b37dc2bb1352 70 else
yuto17320508 16:b37dc2bb1352 71 ue_speed=0.45;
yuto17320508 16:b37dc2bb1352 72 if(RSY>=0 && RSY<=80) { //正回転
yuto17320508 16:b37dc2bb1352 73 pin_ueasi_1=ue_speed;
yuto17320508 16:b37dc2bb1352 74 pin_ueasi_2=0;
yuto17320508 16:b37dc2bb1352 75
yuto17320508 16:b37dc2bb1352 76 } else if(RSY>=150&&RSY<=255) { //負回転
yuto17320508 16:b37dc2bb1352 77 pin_ueasi_1=0;
yuto17320508 16:b37dc2bb1352 78 pin_ueasi_2=ue_speed;
yuto17320508 16:b37dc2bb1352 79 } else { //停止
yuto17320508 16:b37dc2bb1352 80 pin_ueasi_1=0;
yuto17320508 16:b37dc2bb1352 81 pin_ueasi_2=0;
yuto17320508 16:b37dc2bb1352 82 }
yuto17320508 16:b37dc2bb1352 83
yuto17320508 16:b37dc2bb1352 84
yuto17320508 16:b37dc2bb1352 85
yuto17320508 16:b37dc2bb1352 86 //左足
yuto17320508 16:b37dc2bb1352 87 if((ButtonState >> BUTTONLANALOG)&1 == 1)
yuto17320508 16:b37dc2bb1352 88 sita_speed=1;
yuto17320508 16:b37dc2bb1352 89 else
yuto17320508 16:b37dc2bb1352 90 sita_speed=0.5;
yuto17320508 16:b37dc2bb1352 91 if(LSY>=0 && LSY<=80) {//正回転
yuto17320508 16:b37dc2bb1352 92 pin_sitaasi_1=0;
yuto17320508 16:b37dc2bb1352 93 pin_sitaasi_2=sita_speed;
yuto17320508 16:b37dc2bb1352 94 } else if(LSY>=150 && LSY<=255) { //負回転
yuto17320508 16:b37dc2bb1352 95 pin_sitaasi_1=sita_speed;
yuto17320508 16:b37dc2bb1352 96 pin_sitaasi_2=0;
yuto17320508 16:b37dc2bb1352 97 } else { //停止
yuto17320508 16:b37dc2bb1352 98 pin_sitaasi_1=0;
yuto17320508 16:b37dc2bb1352 99 pin_sitaasi_2=0;
yuto17320508 16:b37dc2bb1352 100 }
yuto17320508 16:b37dc2bb1352 101
yuto17320508 16:b37dc2bb1352 102
yuto17320508 16:b37dc2bb1352 103
yuto17320508 16:b37dc2bb1352 104
yuto17320508 16:b37dc2bb1352 105 //採取腕
yuto17320508 16:b37dc2bb1352 106 if((ButtonState >> BUTTONR1)&1 == 1) {//掴み
yuto17320508 16:b37dc2bb1352 107 pin_pick_1=pick_speed;
yuto17320508 16:b37dc2bb1352 108 pin_pick_2=0;
yuto17320508 16:b37dc2bb1352 109 pin_pick_3=1;
yuto17320508 16:b37dc2bb1352 110 } else if((ButtonState >> BUTTONR2)&1 == 1) { //離し
yuto17320508 16:b37dc2bb1352 111 pin_pick_1=pick_speed;
yuto17320508 16:b37dc2bb1352 112 pin_pick_2=1;
yuto17320508 16:b37dc2bb1352 113 pin_pick_3=0;
yuto17320508 16:b37dc2bb1352 114 } else { //停止
yuto17320508 16:b37dc2bb1352 115 pin_pick_1=0;
yuto17320508 16:b37dc2bb1352 116 pin_pick_2=0;
yuto17320508 16:b37dc2bb1352 117 pin_pick_3=1;
yuto17320508 16:b37dc2bb1352 118 }
yuto17320508 16:b37dc2bb1352 119
yuto17320508 16:b37dc2bb1352 120 //振幅腕
yuto17320508 16:b37dc2bb1352 121 if((ButtonState >> BUTTONL1)&1 == 1) {//上昇
yuto17320508 16:b37dc2bb1352 122 pin_lift_1=lift_speed;
yuto17320508 16:b37dc2bb1352 123 pin_lift_2=1;
yuto17320508 16:b37dc2bb1352 124 pin_lift_3=0;
yuto17320508 16:b37dc2bb1352 125
yuto17320508 16:b37dc2bb1352 126
yuto17320508 16:b37dc2bb1352 127
yuto17320508 16:b37dc2bb1352 128 } else if((ButtonState >> BUTTONL2)&1 == 1) { //下降
yuto17320508 16:b37dc2bb1352 129 pin_lift_1=lift_speed;
yuto17320508 16:b37dc2bb1352 130 pin_lift_2=0;
yuto17320508 16:b37dc2bb1352 131 pin_lift_3=1;
yuto17320508 16:b37dc2bb1352 132 pin_pick_1=pick_speed;
yuto17320508 16:b37dc2bb1352 133 pin_pick_2=0;
yuto17320508 16:b37dc2bb1352 134 pin_pick_3=1;
yuto17320508 16:b37dc2bb1352 135
yuto17320508 16:b37dc2bb1352 136 } else { //停止
yuto17320508 16:b37dc2bb1352 137 pin_lift_1=0;
yuto17320508 16:b37dc2bb1352 138 pin_lift_2=1;
yuto17320508 16:b37dc2bb1352 139 pin_lift_3=0;
yuto17320508 16:b37dc2bb1352 140 }
yuto17320508 16:b37dc2bb1352 141
yuto17320508 16:b37dc2bb1352 142
yuto17320508 16:b37dc2bb1352 143 //〇ボタンで一個掃き出し
yuto17320508 16:b37dc2bb1352 144 if((ButtonState >> BUTTONCIRCLE)&1 == 1) {
yuto17320508 17:41ea4c1bc6af 145 //離し
yuto17320508 16:b37dc2bb1352 146 pin_pick_1=pick_speed;
yuto17320508 16:b37dc2bb1352 147 pin_pick_2=1;
yuto17320508 16:b37dc2bb1352 148 pin_pick_3=0;
yuto17320508 17:41ea4c1bc6af 149 wait(0.45);
yuto17320508 17:41ea4c1bc6af 150 //誤差修正
yuto17320508 16:b37dc2bb1352 151 pin_pick_1=pick_speed;
yuto17320508 16:b37dc2bb1352 152 pin_pick_2=0;
yuto17320508 16:b37dc2bb1352 153 pin_pick_3=1;
yuto17320508 16:b37dc2bb1352 154 wait(0.4);
yuto17320508 16:b37dc2bb1352 155
yuto17320508 16:b37dc2bb1352 156
yuto17320508 16:b37dc2bb1352 157 }
yuto17320508 17:41ea4c1bc6af 158
yuto17320508 16:b37dc2bb1352 159
yuto17320508 16:b37dc2bb1352 160 //十字キー
yuto17320508 16:b37dc2bb1352 161 if((ButtonState >> BUTTONUP)&1 == 1) {//上ボタン 前進
yuto17320508 17:41ea4c1bc6af 162 pin_ueasi_1=0.85;
yuto17320508 16:b37dc2bb1352 163 pin_ueasi_2=0;
yuto17320508 16:b37dc2bb1352 164 pin_sitaasi_1=0;
yuto17320508 17:41ea4c1bc6af 165 pin_sitaasi_2=1;
yuto17320508 17:41ea4c1bc6af 166 }
yuto17320508 17:41ea4c1bc6af 167 if((ButtonState >> BUTTONDOWN)&1 == 1) {//下ボタン 後進
yuto17320508 16:b37dc2bb1352 168 pin_ueasi_1=0;
yuto17320508 17:41ea4c1bc6af 169 pin_ueasi_2=0.85;
yuto17320508 17:41ea4c1bc6af 170 pin_sitaasi_1=1;
yuto17320508 16:b37dc2bb1352 171 pin_sitaasi_2=0;
yuto17320508 16:b37dc2bb1352 172 }
yuto17320508 17:41ea4c1bc6af 173 if((ButtonState >> BUTTONRIGHT)&1 == 1) {//右ボタン 右旋回
yuto17320508 17:41ea4c1bc6af 174 pin_ueasi_1=0;
yuto17320508 17:41ea4c1bc6af 175 pin_ueasi_2=0.85;
yuto17320508 17:41ea4c1bc6af 176 pin_sitaasi_1=0;
yuto17320508 17:41ea4c1bc6af 177 pin_sitaasi_2=1;
yuto17320508 17:41ea4c1bc6af 178 }
yuto17320508 17:41ea4c1bc6af 179 if((ButtonState >> BUTTONLEFT)&1 == 1) {//左ボタン 左旋回
yuto17320508 17:41ea4c1bc6af 180 pin_ueasi_1=0.85;
yuto17320508 17:41ea4c1bc6af 181 pin_ueasi_2=0;
yuto17320508 17:41ea4c1bc6af 182 pin_sitaasi_1=1;
yuto17320508 17:41ea4c1bc6af 183 pin_sitaasi_2=0;
yuto17320508 17:41ea4c1bc6af 184 }
yuto17320508 17:41ea4c1bc6af 185
yuto17320508 17:41ea4c1bc6af 186
yuto17320508 17:41ea4c1bc6af 187 //△ボタンで自動振幅腕
yuto17320508 17:41ea4c1bc6af 188 if((ButtonState >> BUTTONTRIANGEL)&1 == 1) {
yuto17320508 17:41ea4c1bc6af 189 //上昇
yuto17320508 17:41ea4c1bc6af 190 pin_lift_1=lift_speed;
yuto17320508 17:41ea4c1bc6af 191 pin_lift_2=1;
yuto17320508 17:41ea4c1bc6af 192 pin_lift_3=0;
yuto17320508 17:41ea4c1bc6af 193 wait(3.8);
yuto17320508 17:41ea4c1bc6af 194
yuto17320508 17:41ea4c1bc6af 195 }
yuto17320508 16:b37dc2bb1352 196
yuto17320508 16:b37dc2bb1352 197
yuto17320508 16:b37dc2bb1352 198
yuto17320508 16:b37dc2bb1352 199
yuto17320508 16:b37dc2bb1352 200
yuto17320508 16:b37dc2bb1352 201
yuto17320508 17:41ea4c1bc6af 202 //データ取得例
yuto17320508 17:41ea4c1bc6af 203
yuto17320508 17:41ea4c1bc6af 204 //値の取得はps3.hを参照
yuto17320508 17:41ea4c1bc6af 205 //ここまでプログラム例 実機に乗せるときは消して大丈夫です
yuto17320508 17:41ea4c1bc6af 206
yuto17320508 17:41ea4c1bc6af 207
yuto17320508 17:41ea4c1bc6af 208 }