Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Веб-управляемый джойстик на Arduino UNO и WiFi Shield

Компоненты и материалы

Arduino UNO 1
PHPoC WiFi Shield для Arduino 1
Сервопривод Seeed SG90 (микро) 2
Перемычки (набор) 1

О проекте

Проект для начинающих. Научитесь:

В качестве примера управляется пара сервоприводов, но принцип применим к любым устройствам.

Демонстрация

Управление сервоприводами через веб-интерфейс в браузере.

Схема подключения

Поток данных

Веб-браузер → PHPoC WiFi Shield → Arduino

Веб-приложение отправляет координаты касания/клика (после масштабирования) на PHPoC Shield через WebSocket. Shield автоматически передаёт данные в Arduino. Arduino управляет сервоприводами согласно полученным данным.

Важно: В PHPoC Shield встроена программа передачи данных от браузера к Arduino. Вам не нужно о ней заботиться.

Что нужно сделать

Настройка WiFi на PHPoC Shield

См. инструкцию.

Загрузка веб-интерфейса

Код для Arduino

Запуск

Похожие проекты на других платформах

Этот же функционал реализован на другом железе.

Лучший стартовый набор Arduino для новичка

См. обзор лучших наборов Arduino для начинающих.

Справочник функций

Код

Код для Arduino

#include "SPI.h"
#include "Phpoc.h"
#include 

PhpocServer server(80);
Servo servo_x;
Servo servo_y;

void setup() {
  Serial.begin(9600);
  while(!Serial);
  Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
  server.beginWebSocket("web_joystick");
  Serial.print("WebSocket server address: ");
  Serial.println(Phpoc.localIP());
  servo_x.attach(8);
  servo_y.attach(9);
  servo_x.write(90);
  servo_y.write(90);
}

void loop() {
  PhpocClient client = server.available();
  if (client) {
    String data = client.readLine();
    if(data) {
      int pos = data.indexOf(':');
      long x = data.substring(0, pos).toInt();
      long y = data.substring(pos+1).toInt();
      Serial.print("x: "); Serial.print(x);
      Serial.print(", y: "); Serial.println(y);
      // Масштаб [-100; 100] → [0; 180]
      long angle_x = (x + 100) * 180 / 200;
      long angle_y = (y + 100) * 180 / 200;
      servo_x.write(angle_x);
      servo_y.write(angle_y);
    }
  }
}

Веб-интерфейс (remote_joystick.php)

<!DOCTYPE html>
<html>
<head>
<title>Arduino - PHPoC Shield</title>
<meta name="viewport" content="width=device-width, initial-scale=0.7, maximum-scale=0.7">
<meta charset="utf-8">
<style>
  body { text-align: center; font-size: width/2pt; }
  h1, h2, button { font-weight: bold; font-size: width/2pt; }
</style>
<script>
  // ... (полный JS-код виртуального джойстика с Canvas и WebSocket)
  // Инициализация холста, обработка touch/mouse, отправка координат по WS
</script>
</head>
<body>
  <h1>Arduino - Web-based Joystick</h1>
  <canvas id="remote"></canvas>
  <h2>
    <p>WebSocket: <span id="ws_state">null</span></p>
    <button id="bt_connect" onclick="connect_onclick()">Connect</button>
  </h2>
</body>
</html>

Схемы

Веб-управляемый джойстик на Arduino UNO и WiFi Shield

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

  1. Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
  2. FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
  3. DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
  4. Создание пользовательских LED-часов с будильником — видно с 12 метров
  5. Превращаем старую радиоуправляемую машину в джойстик-контролируемый болид на Arduino
  6. Интерактивная игра с джойстиком и LED-обратной связью на Arduino
  7. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  8. Оптимизированные решения питания для проектов на Arduino
  9. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  10. Веб-управляемый MP3-плеер на Arduino: Воспроизведение аудио через браузер