【Arduino】BluetoothでPS3コントローラと接続する

〇必要なもの
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ボタンを押すと接続を切ることができる。

商品リンク

Amazon.co.jp: Arduino Uno Rev3 ATmega328 マイコンボード A000066 : パソコン・周辺機器
Amazon.co.jp: Arduino Uno Rev3 ATmega328 マイコンボード A000066 : パソコン・周辺機器
Amazon.co.jp: USBホストシールド 2.0 for Arduino (compatible with Google Android ADK) : パソコン・周辺機器
Amazon.co.jp: USBホストシールド 2.0 for Arduino (compatible with Google Android ADK) : パソコン・周辺機器
Amazon | エレコム Bluetooth USBアダプタ 超小型 Ver4.0 EDR/LE対応(省電力) Class2 Windows10対応 LBT-UAN05C2 | エレコム | パソコン・周辺機器 通販
エレコム Bluetooth USBアダプタ 超小型 Ver4.0 EDR/LE対応(省電力) Class2 Windows10対応 LBT-UAN05C2がパソコン・周辺機器ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
Amazon.co.jp: Aoityle PS3対応 ワイヤレスコントローラー 互換 USB ケーブル 日本語説明書 1年保証付き (黒い) : ゲーム
Amazon.co.jp: Aoityle PS3対応 ワイヤレスコントローラー 互換 USB ケーブル 日本語説明書 1年保証付き (黒い) : ゲーム

コメント

タイトルとURLをコピーしました