〇必要なもの
・Arduino Uno
・USBホストシールド
・Bluetoothアダプタ
・PS3コントローラ + USBケーブル
〇ライブラリのインストール
Arduino IDE上で Ctrl+Shift+I を押してライブラリマネージャを開き、
「USB Host Shield Library 2.0」をインストールする。
(スケッチ > ライブラリをインクルード > ライブラリを管理 からでも可)
〇プログラムを書く
サンプルプログラム
(ファイル > スケッチ例 > USB Host Shield Library 2.0 > Bluetooth > PS3BT)
を参考にする。
〇手順
1. ArduinoにUSBホストシールド、Bluetoothアダプタを差し込む。
2. Arduinoにプログラムを書き込む。
3. Bluetoothアダプタを抜いて、PS3コントローラとUSBケーブルで接続する。
4. USBケーブルを抜いて、もう一度Bluetoothアダプタを差し込む。
5. PS3コントローラのPSボタンを押す。
赤色のランプの1番が点灯すれば接続完了です。
main.ino
#include <PS3BT.h>
#include <usbhub.h>
#include "Led.h"
USB Usb;
BTD Btd(&Usb);
PS3BT PS3(&Btd);
Led led = Led(8);
int count = 0;
void setup() {
Serial.begin(115200);
while (!Serial);
if (Usb.Init() == -1) {
Serial.print(F("\r\nOSC did not start"));
while (1);
}
Serial.print(F("\r\nPS3 Bluetooth Library Started"));
}
void loop() {
Usb.Task();
if (PS3.PS3Connected) {
if (PS3.getButtonClick(PS)) {
Serial.print(F("\r\nPS"));
PS3.disconnect();
} else {
if (PS3.getButtonClick(TRIANGLE)) {
Serial.print(F("\r\nTraingle"));
}
if (PS3.getButtonClick(CIRCLE)) {
Serial.print(F("\r\nCircle"));
led.on();
}
if (PS3.getButtonClick(CROSS)) {
Serial.print(F("\r\nCross"));
led.off();
}
if (PS3.getButtonClick(SQUARE)) {
Serial.print(F("\r\nSquare"));
while (count != 3) {
led.on();
delay(1000);
led.off();
delay(1000);
count++;
}
count = 0;
}
}
}
}
Led.h
#pragma once
class Led {
public:
Led(int pin);
void on();
void off();
private:
int m_led_pin;
};
Led.cpp
#include "Arduino.h"
#include "Led.h"
Led::Led(int pin) {
m_led_pin = pin;
pinMode(m_led_pin, OUTPUT);
}
void Led::on() {
digitalWrite(m_led_pin, HIGH);
}
void Led::off() {
digitalWrite(m_led_pin, LOW);
}
今回の場合、
○ボタンを押すとLEDを点灯、
×ボタンを押すとLEDを消灯、
□ボタンを押すとLEDが3回点滅する。
また、接続された状態でPSボタンを押すと接続を切ることができる。