Arduino - 基于网络的操纵杆
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 |
关于这个项目
如果你是初学者,你可以学习:
- Arduino - 伺服电机。
- Arduino - 操纵杆
我们可以通过这个项目控制一切,但我以伺服电机为例。
演示
接线
- 在 Arduino 上堆叠 PHPoC WiFi 扩展板或 PHPoC 扩展板
- 将两个伺服电机的 GND 和 VCC 引脚分别连接到 Arduino 的 GND 和 5V。 (arduino 的 IOREF 引脚可以像 5V 引脚一样使用)
- 将两个伺服电机的引脚信号分别连接到 Arduino 的引脚 8 和引脚 9。
数据流
Web 浏览器 ---> PHPoC WiFi Shield ---> Arduino
Web 浏览器上的 Web 应用程序将通过 WebSocket 将触摸或点击事件的坐标(缩放后)发送到 PHPoC 盾。收到数据后,PHPoC shield 自动将其传递给 Arduino。 Arduino根据从PHPoC Shield接收到的数据控制两个伺服电机。
注意: PHPoC shield 有一个内置程序可以将数据从网络浏览器传递到 Arduino。因此,我们不需要关心它。
我们需要做什么
- 为 PHPoC shield 设置 Wifi 信息(SSID 和密码)
- 将新 UI 上传到 PHPoC shield
- 编写 Arduino 代码
为 PHPoC Shield 设置 Wifi 信息
请参阅此说明。
将新的 Web UI 上传到 PHPoC Shield
- 下载 PHPoC 源代码 remote_joystick.php(在代码部分)。
- 根据此说明使用 PHPoC 调试器将其上传到 PHPoC shield。
编写 Arduino 代码
- 在 Arduino IDE 上为 Arduino 安装 PHPoC 库(请参阅说明)
- 在代码部分查看源代码。
试试吧
- 单击 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"#includePhpocServer server(80);Servoservo_x;Servoservo_y;void setup() { Serial.begin(9600);而(!串行); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin(); server.beginWebSocket("web_joystick"); Serial.print("WebSocket 服务器地址:"); Serial.println(Phpoc.localIP());伺服_x.attach(8); // 将引脚 8 上的伺服器连接到伺服器对象servo_y.attach(9); // 将引脚 9 上的伺服器连接到伺服器对象servo_x.write(90);伺服_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]长角_x =(x + 100) * 180 /200;长角_y =(y + 100) * 180 /200;伺服_x.写(角度_x);伺服_y.write(angle_y); } }}
Web 用户界面 (remote_joystick.php)PHP
Arduino - PHPoC Shield
Arduino - 基于网络的操纵杆
WebSocket :null
示意图
制造工艺