test step
This commit is contained in:
parent
70093772ad
commit
d4d7c3ecd3
|
@ -0,0 +1,4 @@
|
|||
#include <NewPing.h>
|
||||
|
||||
void ping_init();
|
||||
void ping_loop();
|
|
@ -1,3 +1,4 @@
|
|||
void servo_init();
|
||||
void servo_loop();
|
||||
void servo_deg(int servoid, int deg);
|
||||
void move();
|
|
@ -16,4 +16,5 @@ lib_deps =
|
|||
madhephaestus/ESP32Servo@^0.12.0
|
||||
h2zero/NimBLE-Arduino@^1.4.1
|
||||
ottowinter/ESPAsyncWebServer-esphome@^3.0.0
|
||||
teckel12/NewPing@^1.9.5
|
||||
monitor_speed = 115200
|
||||
|
|
|
@ -2,17 +2,20 @@
|
|||
#include <servo.h>
|
||||
#include <bt.h>
|
||||
#include <web.h>
|
||||
#include <ping.h>
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
servo_init();
|
||||
bt_init();
|
||||
web_init();
|
||||
ping_init();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
servo_loop();
|
||||
bt_loop();
|
||||
web_loop();
|
||||
ping_loop();
|
||||
delay(100);
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
#include <ping.h>
|
||||
|
||||
#define TRIGGER_PIN 21
|
||||
#define ECHO_PIN 19
|
||||
#define MAX_DISTANCE 200
|
||||
|
||||
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
|
||||
|
||||
void ping_init() {}
|
||||
|
||||
void ping_loop() {
|
||||
// Serial.println(sonar.ping_cm());
|
||||
}
|
|
@ -5,28 +5,34 @@
|
|||
Servo servo[8];
|
||||
ESP32PWM pwm;
|
||||
|
||||
int servoPin[8] = {13, 12, 14, 26, 25, 33, 32, 15};
|
||||
int servoPin[8] = {13, 12, 14, 27, 26, 25, 33, 32};
|
||||
int pos[8] = {0};
|
||||
|
||||
int minUs = 500;
|
||||
int maxUs = 2500;
|
||||
int minUs = 550;
|
||||
int maxUs = 2450;
|
||||
|
||||
void servo_init() {
|
||||
ESP32PWM::allocateTimer(0);
|
||||
ESP32PWM::allocateTimer(1);
|
||||
ESP32PWM::allocateTimer(2);
|
||||
ESP32PWM::allocateTimer(3);
|
||||
for (int i = 0; i < 8; i++) {
|
||||
ESP32PWM::allocateTimer(i);
|
||||
servo[i].setPeriodHertz(50);
|
||||
}
|
||||
for (int i = 0; i < 8; i++) {
|
||||
servo[i].attach(servoPin[i], minUs, maxUs);
|
||||
}
|
||||
pwm.attachPin(27, 10000);
|
||||
servo_deg(8, 0);
|
||||
pwm.attachPin(15, 10000);
|
||||
servo_deg(8, 90);
|
||||
}
|
||||
|
||||
void servo_loop() {
|
||||
// servo_deg(8, 0);
|
||||
// servo_deg(7, 90);
|
||||
// servo_deg(6, 90);
|
||||
// servo_deg(8, 45);
|
||||
// delay(5000);
|
||||
// servo_deg(8, 180);
|
||||
// servo_deg(8, 135);
|
||||
// servo_deg(6, 180);
|
||||
// delay(5000);
|
||||
// for (int i = 0; i < 8; i++) {
|
||||
// servo[i].attach(servoPin[i], minUs, maxUs);
|
||||
|
@ -63,11 +69,32 @@ void servo_deg(int servoid, int deg) {
|
|||
for (int i = 0; i < 8; i++) {
|
||||
servo[i].write(deg);
|
||||
pos[i] = deg;
|
||||
Serial.println(deg);
|
||||
delay(100);
|
||||
}
|
||||
} else {
|
||||
servo[servoid].write(deg);
|
||||
pos[servoid] = deg;
|
||||
Serial.println(deg);
|
||||
}
|
||||
}
|
||||
|
||||
void move() {
|
||||
// for (int j = 0; j < 4; j++) {
|
||||
servo_deg(0, pos[0] + 45);
|
||||
delay(300);
|
||||
servo_deg(2, pos[2] - 45);
|
||||
delay(300);
|
||||
// servo_deg(0, pos[0] - 45);
|
||||
// delay(300);
|
||||
// servo_deg(2, pos[2] + 45);
|
||||
// delay(300);
|
||||
// servo_deg(1, pos[1] + 45);
|
||||
// delay(300);
|
||||
// servo_deg(3, pos[3] - 45);
|
||||
// delay(300);
|
||||
// servo_deg(1, pos[1] - 45);
|
||||
// delay(300);
|
||||
// servo_deg(3, pos[3] + 45);
|
||||
// delay(300);
|
||||
delay(500);
|
||||
// }
|
||||
}
|
33
src/web.cpp
33
src/web.cpp
|
@ -9,8 +9,8 @@
|
|||
|
||||
AsyncWebServer server(80);
|
||||
|
||||
const char* ssid = "Luthics' WLAN";
|
||||
const char* password = "qwerasdf";
|
||||
const char* ssid = "7-2-903";
|
||||
const char* password = "wenwen200421";
|
||||
|
||||
const char* PARAM_MESSAGE = "foo";
|
||||
|
||||
|
@ -40,14 +40,17 @@ void web_init() {
|
|||
</head>\
|
||||
<body>\
|
||||
<form action='servo' method='post'>\
|
||||
<button name='deg' value='0'>0</button>\
|
||||
<button name='deg' value='60'>60</button>\
|
||||
<button name='deg' value='90'>90</button>\
|
||||
<button name='deg' value='180'>180</button>\
|
||||
<button name='deg' value='120'>120</button>\
|
||||
</form>\
|
||||
<form action='servo' method='post'>\
|
||||
<input name='deg' />\
|
||||
<button name='submit' value='submit'>设置</button>\
|
||||
</form>\
|
||||
<form action='servo' method='post'>\
|
||||
<button name='move' value='90'>move</button>\
|
||||
</form>\
|
||||
</body>";
|
||||
request->send(200, "text/html", mp);
|
||||
});
|
||||
|
@ -77,7 +80,15 @@ void web_init() {
|
|||
server.on("/servo", HTTP_POST, [](AsyncWebServerRequest* request) {
|
||||
int deg;
|
||||
int servoid;
|
||||
if (request->hasParam("deg", true)) {
|
||||
if (request->hasParam("move", true)) {
|
||||
ref_ret(request,
|
||||
"<!DOCTYPE html><html><head><meta http-equiv=\"refresh\" "
|
||||
"content=\"1; "
|
||||
"url='http://192.168.21.9'\" /></head><body><h1>Success. Back "
|
||||
"after 1 "
|
||||
"sencond.</h1></body></html>");
|
||||
move();
|
||||
} else if (request->hasParam("deg", true)) {
|
||||
deg = request->getParam("deg", true)->value().toInt();
|
||||
if (request->hasParam("id", true)) {
|
||||
servoid = request->getParam("id", true)->value().toInt();
|
||||
|
@ -85,12 +96,12 @@ void web_init() {
|
|||
servoid = 8;
|
||||
}
|
||||
servo_deg(servoid, deg);
|
||||
ref_ret(
|
||||
request,
|
||||
"<!DOCTYPE html><html><head><meta http-equiv=\"refresh\" "
|
||||
"content=\"1; "
|
||||
"url='http://192.168.6.9'\" /></head><body><h1>Success. Back after 1 "
|
||||
"sencond.</h1></body></html>");
|
||||
ref_ret(request,
|
||||
"<!DOCTYPE html><html><head><meta http-equiv=\"refresh\" "
|
||||
"content=\"1; "
|
||||
"url='http://192.168.21.9'\" /></head><body><h1>Success. Back "
|
||||
"after 1 "
|
||||
"sencond.</h1></body></html>");
|
||||
} else {
|
||||
notFound(request);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue