Arduino - Webbasierter Joystick
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 |
Über dieses Projekt
Wenn Sie ein Anfänger sind, können Sie Folgendes lernen:
- Arduino - Servomotor.
- Arduino - Joystick
Wir können mit diesem Projekt alles steuern, aber ich habe die Servomotoren als Beispiel genommen.
Demo
Verkabelung
- Stack PHPoC WiFi Shield oder PHPoC Shield auf Arduino
- Verbinden Sie die Pins GND und VCC von zwei Servomotoren mit GND bzw. 5 V von Arduino. (Pin IOREF von Arduino kann als 5V-Pin verwendet werden)
- Verbinden Sie die Pin-Signale von zwei Servomotoren mit Pin 8 bzw. Pin 9 von Arduino.
Datenfluss
Webbrowser ---> PHPoC WiFi Shield ---> Arduino
Die Web-App im Webbrowser sendet die Koordinate (nach der Skalierung) des Berührungs- oder Klickereignisses über WebSocket an den PHPoC-Schild. Beim Empfang der Daten übergibt PHPoC-Schild diese automatisch an Arduino. Arduino steuert zwei Servomotoren gemäß den von PHPoC Shield empfangenen Daten.
Beachten Sie Folgendes: PHPoC-Schild verfügt über ein integriertes Programm zum Übergeben von Daten vom Webbrowser an Arduino. Daher müssen wir uns nicht darum kümmern.
Was wir tun müssen
- WLAN-Informationen für PHPoC-Schild festlegen (SSID und Passwort)
- Neue Benutzeroberfläche auf PHPoC-Schild hochladen
- Arduino-Code schreiben
WLAN-Informationen für PHPoC Shield einstellen
Siehe diese Anleitung.
Neue Web-Benutzeroberfläche in PHPoC Shield hochladen
- Herunterladen des PHPoC-Quellcodes remote_joystick.php (im Codeabschnitt).
- Laden Sie es mit dem PHPoC-Debugger gemäß dieser Anleitung auf den PHPoC-Schild hoch.
Arduino-Code schreiben
- Installieren Sie die PHPoC-Bibliothek für Arduino auf der Arduino IDE (siehe die Anleitung)
- Siehe Quellcode im Codeabschnitt.
Probieren Sie es aus
- Klicken Sie auf die serielle Schaltfläche in der Arduino IDE, um die IP-Adresse anzuzeigen.
- Öffnen Sie den Webbrowser, geben Sie
http://
einreplace_ip_address
/remote_joystick.php
- Klicken Sie auf die Schaltfläche "Verbinden" und testen Sie es.
Ähnliches Projekt, aber unterschiedliche Hardwareplattform
Dieses Projekt funktioniert genauso, verwendet jedoch eine andere Hardwareplattform
Das beste Arduino Starter Kit für Anfänger
Siehe Das beste Arduino-Kit für Anfänger
Funktionsreferenzen
- Arduino - Servobibliothek
- Servo.attach()
- Servo.write()
- Servo.writeMicroseconds()
- Servo.read()
- Servo.attached()
- Servo.detach()
- Seriell.begin()
- Seriell.println()
Code
- Arduino-Code
- Web-Benutzeroberfläche (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(!Seriell); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin(); server.beginWebSocket("web_joystick"); Serial.print("WebSocket-Serveradresse:"); Serial.println (Phpoc.localIP()); servo_x.attach(8); // verbindet das Servo an Pin 8 mit dem Servo-Objekt servo_y.attach (9); // verbindet das Servo an Pin 9 mit dem Servo-Objekt servo_x.write (90); servo_y.write(90); }void loop() { // auf einen neuen Client warten:PhpocClient client =server.available(); if (client) { String data =client.readLine(); if(data){ int pos =data.indexOf(':'); langes 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); // skalieren von [-100; 100] bis [0; 180] langer Winkel_x =(x + 100) * 180 /200; langer Winkel_y =(y + 100) * 180 /200; servo_x.write (Winkel_x); servo_y.write (Winkel_y); } }}
Web-Benutzeroberfläche (remote_joystick.php)PHP
Arduino - PHPoC Shield
Arduino - Webbasierter Joystick
WebSocket:null
Schaltpläne
Herstellungsprozess