Arduino - веб-джойстик
Компоненты и расходные материалы
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 2 | ||||
| × | 1 |
Об этом проекте
Если вы новичок, вы можете узнать:
- Arduino - сервомотор.
- Arduino - джойстик
С помощью этого проекта мы можем контролировать все, но в качестве примера я взял серводвигатели.
Демо
Электропроводка
- Стек PHPoC WiFi Shield или PHPoC Shield на Arduino
- Подключите контакты GND и VCC двух серводвигателей к GND и 5V Arduino соответственно. (вывод IOREF на Arduino может использоваться как вывод 5V)
- Подключите сигналы контактов двух серводвигателей к контактам 8 и 9 Arduino соответственно.
Поток данных
Веб-браузер ---> PHPoC WiFi Shield ---> Arduino
Веб-приложение в веб-браузере отправит координату (после масштабирования) события касания или щелчка на экран PHPoC через WebSocket. При получении данных PHPoC Shield автоматически передает их в Arduino. Arduino управляет двумя серводвигателями в соответствии с данными, полученными от PHPoC Shield.
Обратите внимание: В PHPoC shield есть встроенная программа для передачи данных из веб-браузера в Arduino. Поэтому нам не нужно об этом заботиться.
Что нам нужно делать
- Установить информацию о Wi-Fi для экрана PHPoC (SSID и пароль)
- Загрузить новый интерфейс на PHPoC Shield
- Напишите код Arduino
Настройка информации о Wi-Fi для PHPoC Shield
См. Эту инструкцию.
Загрузить новый веб-интерфейс в PHPoC Shield
- Загрузите исходный код PHPoC remote_joystick.php (в разделе кода).
- Загрузите его на экран PHPoC Shield с помощью отладчика PHPoC в соответствии с этой инструкцией.
Напишите код Arduino
- Установите библиотеку PHPoC для Arduino в Arduino IDE (см. инструкцию)
- См. исходный код в разделе кода.
Попробуйте
- Нажмите кнопку последовательного порта в среде Arduino IDE, чтобы увидеть IP-адрес.
- Откройте веб-браузер, введите
http://
replace_ip_address
/remote_joystick.php
- Нажмите кнопку подключения и проверьте ее.
Аналогичный проект, но другая аппаратная платформа
Этот проект делает то же самое, но использует другую аппаратную платформу
Лучший стартовый комплект Arduino для начинающих
См. «Лучший комплект Arduino для начинающих»
Ссылки на функции
- Arduino - серво-библиотека
- Servo.attach ()
- Servo.write ()
- Servo.writeMicroseconds ()
- Servo.read ()
- Servo.attached ()
- Servo.detach ()
- Serial.begin ()
- Serial.println ()
Код
- Код Arduino
- Пользовательский веб-интерфейс (remote_joystick.php)
Код Arduino Arduino
#include "SPI.h" #include "Phpoc.h" #includeСервер PhpocServer (80); Servo servo_x; Servo servo_y; void setup () {Serial.begin (9600); в то время как (! серийный); Phpoc.begin (PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin (); server.beginWebSocket ("веб-джойстик"); Serial.print ("Адрес сервера WebSocket:"); Serial.println (Phpoc.localIP ()); servo_x.attach (8); // подключает сервопривод на выводе 8 к сервообъекту servo_y.attach (9); // подключает сервопривод на выводе 9 к сервообъекту servo_x.write (90); servo_y.write (90); } void loop () {// ждем нового клиента:PhpocClient client =server.available (); если (клиент) {Строковые данные =client.readLine (); если (данные) {int pos =data.indexOf (':'); длинный x =data.substring (0, pos) .toInt (); длинный y =data.substring (pos + 1) .toInt (); Serial.print ("x:"); Serial.print (x); Serial.print (", y:"); Serial.println (y); // масштаб от [-100; 100] в [0; 180] длинный угол_x =(x + 100) * 180/200; длинный угол_y =(y + 100) * 180/200; servo_x.write (угол_x); servo_y.write (угол_y); }}}
Пользовательский веб-интерфейс (remote_joystick.php) PHP
Arduino - PHPoC Shield
Arduino - веб-джойстик
WebSocket: null
Схема

Производственный процесс