純正PS4コントローラー(Bluetooth通信)によるESP32搭載GPSロボットカーのモータだけを操作しました。
●ボードマネージャ esp32
by Espressif Systems バージョン1.0.6
※バージョン3.2.0→コンパイルエラー
動画
PS4コントローラー(Bluetooth)
| PSボタンを押してペアリング |
PS4-esp32-master libraries入手
【Code】【Download ZIP】
【PS4-esp32-master】圧縮ファイルを展開
【PS4-esp32-master】フォルダを任意のArduino librariesに貼付け
MACアドレスの確認
【LO4D.com UK】ダウンロード
【SixaxisPairToolSetup-0.3.1】任意ファイルにインストール
PS4コントローラーとパソコンをUSB接続
【SixaxisPairTool】実行する。
Current Master
【XX:XX:XX:XX:XX:XX】MACアドレス
↓
ESP32 プログラム
PS4.begin("XX:XX:XX:XX:XX:XX")
MACアドレスを入力
ESP-32S 開発ボード
ESP32を2台登録すると1台目が接続できなくなる→解除方法
ESP32
【スケッチ例】【BluetoothSerial】
【bt_remove_paired_devices】
bt_remove_paired_devices
【0】→【1】に変更接続できないESP32に同プログラム書込→
プログラムを戻すと接続出来ました。
(ESP32の登録デバイスを解除)
プログラム Arduino IDE【ボード:NodeMCU-32s】
#include <PS4Controller.h>
#define ENA 14
#define ENB 27
#define IN1 25
#define IN2 26
#define IN3 32
#define IN4 33
void setup()
{
pinMode(ENA,OUTPUT);
pinMode(ENB,OUTPUT);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
digitalWrite(ENA,HIGH);
digitalWrite(ENB,HIGH);
PS4.begin("XX:XX:XX:XX:XX:XX");
}
void loop()
{
if (PS4.isConnected()) {
if (PS4.Square()) LEFT();
if (PS4.Cross()) BACK();
if (PS4.Circle()) RIGHT();
if (PS4.Triangle()) GO();
//if (PS4.R1()) STOP();
}
delay(100);
STOP();
}
void GO() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void BACK(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void RIGHT(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
void LEFT(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void STOP(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}

.png)
.png)
.png)
.png)
.png)
0 件のコメント:
コメントを投稿