Arduino - webgebaseerde joystick
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 |
Over dit project
Als je een beginner bent, kun je het volgende leren:
- Arduino - servomotor.
- Arduino - Joystick
We kunnen alles regelen met dit project, maar ik nam de servomotoren als voorbeeld.
Demo
Bedrading
- Stapel PHPoC WiFi-schild of PHPoC Shield op Arduino
- Sluit pin GND en VCC van twee servomotoren aan op respectievelijk GND en 5V van Arduino. (pin IOREF van arduino kan worden gebruikt als 5V-pin)
- Sluit pinsignalen van twee servomotoren aan op respectievelijk pin 8 en pin 9 van Arduino.
Gegevensstroom
Webbrowser ---> PHPoC WiFi Shield ---> Arduino
De web-app in de webbrowser stuurt de coördinaat (na schaling) van de aanraak- of klikgebeurtenis naar PHPoC-schild via WebSocket. Bij ontvangst van de gegevens geeft PHPoC-shield deze automatisch door aan Arduino. Arduino bestuurt twee servomotoren volgens de gegevens die zijn ontvangen van PHPoC Shield.
Let op: PHoC-shield heeft een ingebouwd programma om gegevens van webbrowser naar Arduino door te geven. Daarom hoeven we ons er geen zorgen over te maken.
Wat we moeten doen
- Wifi-informatie instellen voor PHPoC-schild (SSID en wachtwoord)
- Upload nieuwe gebruikersinterface naar PHPoC-schild
- Schrijf Arduino-code
Wifi-informatie instellen voor PHPoC Shield
Zie deze instructie.
Upload nieuwe web-UI naar PHPoC Shield
- Download PHPoC-broncode remote_joystick.php (in het codegedeelte).
- Upload het naar PHPoC-shield met behulp van PHPoC debugger volgens deze instructie.
Schrijf Arduino-code
- Installeer PHPoC-bibliotheek voor Arduino op Arduino IDE (zie de instructie )
- Zie broncode in codesectie.
Probeer het
- Klik op de seriële knop op Arduino IDE om het IP-adres te zien.
- Open webbrowser, typ
http://
replace_ip_address
/remote_joystick.php
- Klik op de knop Verbinden en test het.
Gelijkaardig project maar ander hardwareplatform
Dit project doet hetzelfde, maar het gebruikte een ander hardwareplatform
De beste Arduino-starterkit voor beginners
Zie de beste Arduino-kit voor beginners
Functiereferenties
- Arduino - Servobibliotheek
- Servo.attach()
- Servo.write()
- Servo.writeMicroseconds()
- Servo.read()
- Servo.attached()
- Servo.detach()
- Serial.begin()
- Serial.println()
Code
- Arduino-code
- Webgebruikersinterface (remote_joystick.php)
Arduino-codeArduino
#include "SPI.h"#include "Phpoc.h"#includePhpocServer server(80);Servo servo_x;Servo servo_y;void setup() { Serial.begin(9600); while(!Serial); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin(); server.beginWebSocket("web_joystick"); Serial.print("WebSocket-serveradres:"); Serial.println(Phpoc.localIP()); servo_x.attach(8); // hecht de servo op pin 8 aan het servo-object servo_y.attach (9); // hecht de servo op pin 9 aan het servo-object servo_x.write (90); servo_y.write(90); }void loop() { // wacht op een nieuwe client:PhpocClient client =server.available(); if (client) { String data =client.readLine(); if(data){ int pos =data.indexOf(':'); lange x =data.substring(0, pos).toInt(); lange y =data.substring(pos+1).toInt(); Serieel.print("x:"); Serie.print(x); Serieel.print(", y:"); Serieel.println(y); // schaal van [-100; 100] tot [0; 180] lange hoek_x =(x + 100) * 180 /200; lange hoek_y =(y + 100) * 180/200; servo_x.write(hoek_x); servo_y.write (hoek_y); } }}
Webgebruikersinterface (remote_joystick.php)PHP
Arduino - PHPoC Shield
Arduino - webgebaseerde joystick
WebSocket:null
Schema's
Productieproces