ESP32(MicroPython) 网页控制四自由的机械臂
本程序用于通过网页控制四自由度机械臂,由于接收网页请求并写入角度后便可继续运行网页功能,不需要多线程,网页响应相对较快,但还是不适合实时性要求高的场景。视频为了便于录制,使用了手机网页,实际上电脑网页能一次显示所有内容,更适合用于操作这个程序。
代码如下
'''
舵机1-->(17)
舵机2-->(16)
舵机3-->(22)
舵机4-->(27)
'''
#导入Pin模块
from machine import Pin
import time
from servo import Servo
import network
import socket
#定义LED控制对象
led1=Pin(15,Pin.OUT,Pin.PULL_DOWN)
#连接的WIFI账号和密码
ssid = " "
password = " "
#WIFI连接
def wifi_connect():
wlan=network.WLAN(network.STA_IF) #STA模式
wlan.active(True) #激活
if not wlan.isconnected():
print("conneting to network...")
wlan.connect(ssid,password) #输入 WIFI 账号密码
while not wlan.isconnected():
led1.value(1)
time.sleep_ms(300)
led1.value(0)
time.sleep_ms(300)
led1.value(0)
return False
else:
led1.value(0)
print("network information:", wlan.ifconfig())
return True
a1=90
a2=90
a3=90
a4=90
#网页数据
def web_page():
global a1
global a2
global a3
global a4
html = """<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.button{display: inline-block; background-color: #444444; border: none;
border-radius: 4px; color: white; padding: 8px 15px; text-decoration: none; font-size: 20px; margin: 2px; cursor: pointer;}
a:link {text-decoration:none;}a:visited {text-decoration:none;}a:hover {text-decoration:none;}
a:active {text-decoration:none;}
html {
font-family: Arial;
display: inline-block;
margin: 0px auto;
text-align: center;
}
h2 { font-size: 1.5rem; }
p { font-size: 1.5rem; }
.units { font-size: 1rem; }
.dht-labels{
font-size: 1rem;
vertical-align:middle;
padding-bottom: 7px;
}
</style>
</head>
<body>
<h2>ESP32 Servo Control</h2> <p><a href="/?d1">Servo1: <strong>""" + str(a1) + """</strong></a></p>
<p><a href="/?b10"><button class="button">0</button></a>
<a href="/?b11"><button class="button">10</button></a>
<a href="/?b12"><button class="button">20</button></a>
<a href="/?b13"><button class="button">30</button></a>
<a href="/?b14"><button class="button">40</button></a>
<a href="/?b15"><button class="button">50</button></a>
<a href="/?b16"><button class="button">60</button></a>
<a href="/?b17"><button class="button">70</button></a>
<a href="/?b18"><button class="button">80</button></a>
<a href="/?b19"><button class="button">90</button></a>
<a href="/?b1a"><button class="button">100</button></a>
<a href="/?b1b"><button class="button">110</button></a>
<a href="/?b1c"><button class="button">120</button></a>
<a href="/?b1d"><button class="button">130</button></a>
<a href="/?b1e"><button class="button">140</button></a>
<a href="/?b1f"><button class="button">1