2026年1月1日木曜日

PS4コントローラーによるロボットカー操作

純正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 NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード(技適製品)







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);
 }
 

0 件のコメント:

コメントを投稿

ドローン ESP32 PS4コントローラー操作

PS4コントローラー と ESP32制御 ドローン をBluetooth 接続。 9軸 センサ BMX055 を読込 Madgwickフィルタ・PID 姿勢 制御による浮上テストを行いましたが、ホバリングに 程遠い操作です。 PS4コントローラーは電源オンと同時に接続され 操作し...