PS4コントローラーを使って操縦するラジコンを製作してます。
ソフトウェアはArduino IDEを使ってます。
構成品
・ラジコン車体 ー タミヤ バギー工作基本セット
・コントローラー ー PS4 Dualshock4
・マイコン ー ESP32
・ステアリング ー サーボモーターSG90
・電源 ー 1.5V電池×4本
・モーター用電源 ー 9V電池
・モーター制御 ー モータードライバーBD6222HFP
タミヤ バギー工作基本セットの上に全て載せて両面テープで固定してます。







ESP32とPS4コントローラーDualshock4をbluetooth接続する方法は下記を確認ください。
回路図
回路はモータードライバー(BD6222HFP)を使用します。
●サーボモーター
・赤線ー5Vもしくは3.3V
・黒線ーGND
・黄線ー13PIN
●DCモータードライバー用電源(6~15V)
・VCCー9V電池
・GNDーグランド
●DCモーターへの出力
・OUT1ーモーター端子
・OUT2ーモーター端子
●DCモーターへの信号入力
・FINー14PIN
・RINー15PIN
●DCモーター電圧制御(3~15V)
・VREFー12PIN

sketch
以下をsketchに記述して実行します。
サーボモーターの読み込みは#include <ESP32Servo.h>です。
ps4.begin(“”)にはPS4コントローラーDualshock4のMACアドレスを入力します。
#include <PS4Controller.h>
#include <ESP32Servo.h>
Servo myServo;
int angle;
uint8_t rx;
int rx2;
int ly;
void setup() {
Serial.begin(115200);
PS4.begin("A4:CF:12:56:2E:2A");
Serial.println("Ready.");
myServo.attach(13);
pinMode(14,OUTPUT);
pinMode(15,OUTPUT);
pinMode(12,OUTPUT);
}
void loop() {
rx=PS4.RStickX();
rx2=abs(rx);
if (rx2>128) {
Serial.print(rx);
Serial.println(rx2);
angle=map(rx2,128,252,150,90);
myServo.write(angle);
}else if(rx2<128){
Serial.println(rx);
Serial.println(rx2);
angle=map(rx2,0,128,90,30);
myServo.write(angle);
}
ly=PS4.LStickY();
Serial.print("ly;");
Serial.println(ly);
if (10<ly) {
digitalWrite(14,HIGH);
digitalWrite(15,LOW);
Serial.println("forward");
}else if(ly<-10){
digitalWrite(14,LOW);
digitalWrite(15,HIGH);
Serial.println("reverse");
}else{
digitalWrite(14,LOW);
digitalWrite(15,LOW);
Serial.println("free");
}
}
左スティックの前後の動きに合わせてDCモーターが回転、
右スティックの左右の動きに合わせてサーボモーターが回転します。
https://amzn.to/3Zg793A
Amazon.co.jp: ESP32-DevKitC-32E 開発ボード : 産業・研究開発用品
Amazon.co.jp: ESP32-DevKitC-32E 開発ボード : 産業・研究開発用品

【楽天市場】技適認証品】ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード:Joman
ESP-32S ESP32S ESP32 Raspberry pi Arduino WiFI 開発ボード 技適。技適認証品】ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード
https://amzn.to/43av0D9
https://amzn.to/4iVStha




コメント