- ESP32-WROOM модуль
- PS2 контроллер с портом
- 10x резистор 1kΩ (для voltage divider - по 5 штук на каждый сигнал)
- Источник питания 5V для PS2 контроллера
- Breadboard и провода
PS2 5V сигнал ----[1kΩ]----[1kΩ]----+----[1kΩ]----[1kΩ]----[1kΩ]---- GND
|
ESP32 pin (~3.0V)
Расчет: R1 = 2kΩ (два 1kΩ последовательно), R2 = 3kΩ (три 1kΩ последовательно) Теоретический результат: 5.05V × 3kΩ/(2kΩ+3kΩ) = 5.05V × 0.6 = 3.03V Практический результат: ~3.5-3.6V (из-за толерантности резисторов) ✓
Примечание: Расхождение в +0.5V обычно связано с толерантностью резисторов ±10% и может быть даже лучше для стабильности ESP32.
R1 = 1kΩ, R2 = 1kΩ → 2.5V (приемлемо, но на грани)
R1 = 220Ω + 220Ω = 440Ω (два резистора последовательно)
R2 = 220Ω × 5 = 1100Ω (пять резисторов последовательно)
Результат: 5.05V × 1100Ω/(440Ω+1100Ω) = 5.05V × 0.714 = 3.61V ✓
Схема: PS2_pin--[220Ω]--[220Ω]--+--[220Ω]--[220Ω]--[220Ω]--[220Ω]--[220Ω]--GND
|
ESP32_pin
R1 = 220Ω + 220Ω = 440Ω
R2 = 220Ω + 220Ω + 220Ω = 660Ω
Результат: 5.05V × 0.6 = 3.03V ✓
| PS2 Pin | Назначение | ESP32 Pin | Схема подключения |
|---|---|---|---|
| 1 (GND) | Земля | GND | Прямое |
| 2 (5V) | Питание | 5V/VIN | Прямое |
| 3 (SS) | Attention | GPIO 5 | Прямое (3.3V безопасно) |
| 4 (CLK) | Clock | GPIO 18 | Через voltage divider |
| 5 (MISO) | Data | GPIO 19 | Через voltage divider |
| 6 (MOSI) | Command | GPIO 23 | Прямое (3.3V безопасно) |
- Цифровой протокол: PS2 использует SPI-подобный цифровой протокол
- Низкая частота: ~250 kHz - достаточно медленно для RC-задержки voltage divider
- Только входные сигналы: Нужен только для CLK и MISO (от контроллера к ESP32)
- Выходные сигналы: MOSI и SS от ESP32 (3.3V) обычно распознаются 5V устройствами
- ESP32 читает сигналы с PS2 контроллера через voltage divider
- Обрабатывает данные кнопок и аналоговых стиков
- Передает через Bluetooth как HID геймпад
- ПК видит стандартный Bluetooth контроллер
-
Logic Level Converter (bi-directional 3.3V-5V)
- Более надежно для высоких частот
- Дороже чем резисторы
-
Резистивный делитель с буферизацией
- Добавить буферный усилитель
- Для критичных приложений
Загрузите src/ps2_bluetooth_controller.cpp на ESP32. Контроллер автоматически:
- Инициализирует PS2 в аналоговом режиме
- Запустит Bluetooth HID
- Будет передавать все кнопки и стики
- Подключите схему
- Загрузите код на ESP32
- Включите Bluetooth на ПК
- Найдите "PS2-ESP32-Controller" в устройствах
- Подключитесь и тестируйте в играх
| PS2 Кнопка | Bluetooth Button |
|---|---|
| Square | Button 1 |
| X | Button 2 |
| Circle | Button 3 |
| Triangle | Button 4 |
| L1 | Button 5 |
| R1 | Button 6 |
| L2 | Button 7 |
| R2 | Button 8 |
| Select | Button 9 |
| Start | Button 10 |
| L3 | Button 11 |
| R3 | Button 12 |
| D-Pad | HAT Switch |
| Left Stick | Left Thumb |
| Right Stick | Right Thumb |