PS3コントローラをBluetoothで接続

PS3_BlueUSBを使用すると、mbedとPS3コントローラをBluetoothで接続することができる。
バグ修正はRobot No.8080のブログを参照。
環境がMacなので、シリアル端末はCoolTermMacを使用。

手順

1. PS3_BlueUSBをインポートしてコンパイルし、実行ファイルをmbedにダウンロード。

2. USB BluetoothドングルをStarBoard Orangeに挿し、mbedをリセット。

3. シリアル端末の表示からUSB BluetoothドングルのMACアドレスを確認。

シリアル端末

Local Address: XX:XX:XX:XX:XX:XX

4. AutoEvents.cppの261行目のMACアドレスを書き換える。

AutoEvents.cpp

u8 my_mac[6] = {0x00, 0x02, 0x72, 0xAD, 0xF3, 0x5B}; // mac address of my Bluetooth device

5. hci.cppのバグを修正する。

hci.cpp

int HCI::WriteScanEnable()
{
   
//    u8 buf[2];
//    buf[0] = 0x03;
//    buf[1] = 0x01;    
    u8 buf[1];
    buf[0] = 0x03;
    
    SendCmd(HCI_OP_WRITE_SCAN_ENABLE,buf,sizeof(buf));
    return 0;
}

int HCI::AcceptConnection(const BD_ADDR* addr)
{
//    u8 buf[6+4];
//    memset(buf,0,sizeof(buf));
//    memcpy(buf,addr,6);
//    buf[7] = 0;      
    u8 buf[6+1];
    memset(buf,0,sizeof(buf));
    memcpy(buf,addr,6);
    buf[6] = 0;
    
    SendCmd(HCI_OP_ACCEPT_CONN_REQ,buf,sizeof(buf));
    return 0;
}

6. 再度PS3_BlueUSBをコンパイルし、実行ファイルをmbedにダウンロード。

7. StarBoard OrangeとPS3コントローラをUSBケーブルで接続してmbedをリセット。

8. StarBoard OrangeにUSB Bluetoothドングルを挿し、mbedをリセットすると、シリアル端末にPS3コントローラのデータが表示される。


1 comment on PS3コントローラをBluetoothで接続:

11 Sep 2012

現在の開発環境ではps3bluetoothプログラムがコンパイル出来ません: 原因が分からず、困っております: コンパイル済みのファイルを貼って頂けないですか❓

Please log in to post comments.