From d4d7c3ecd392b6a295fe2a5d0047d3d700b159a1 Mon Sep 17 00:00:00 2001 From: Luthics Date: Sat, 17 Dec 2022 06:55:27 +0800 Subject: [PATCH] test step --- include/ping.h | 4 ++++ include/servo.h | 3 ++- platformio.ini | 1 + src/main.cpp | 3 +++ src/ping.cpp | 13 +++++++++++++ src/servo.cpp | 47 +++++++++++++++++++++++++++++++++++++---------- src/web.cpp | 33 ++++++++++++++++++++++----------- 7 files changed, 82 insertions(+), 22 deletions(-) create mode 100644 include/ping.h create mode 100644 src/ping.cpp diff --git a/include/ping.h b/include/ping.h new file mode 100644 index 0000000..61f3ad5 --- /dev/null +++ b/include/ping.h @@ -0,0 +1,4 @@ +#include + +void ping_init(); +void ping_loop(); \ No newline at end of file diff --git a/include/servo.h b/include/servo.h index b26dc7d..6dd5fea 100644 --- a/include/servo.h +++ b/include/servo.h @@ -1,3 +1,4 @@ void servo_init(); void servo_loop(); -void servo_deg(int servoid, int deg); \ No newline at end of file +void servo_deg(int servoid, int deg); +void move(); \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 6a35085..801a094 100644 --- a/platformio.ini +++ b/platformio.ini @@ -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 diff --git a/src/main.cpp b/src/main.cpp index e17e7cf..a271fcd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,17 +2,20 @@ #include #include #include +#include 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); } \ No newline at end of file diff --git a/src/ping.cpp b/src/ping.cpp new file mode 100644 index 0000000..2576fdc --- /dev/null +++ b/src/ping.cpp @@ -0,0 +1,13 @@ +#include + +#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()); +} \ No newline at end of file diff --git a/src/servo.cpp b/src/servo.cpp index 71d0438..79177e0 100644 --- a/src/servo.cpp +++ b/src/servo.cpp @@ -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); + // } } \ No newline at end of file diff --git a/src/web.cpp b/src/web.cpp index 30fe2ba..e60f82f 100644 --- a/src/web.cpp +++ b/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() { \ \
\ - \ + \ \ - \ + \
\
\ \ \
\ +
\ + \ +
\ "; 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, + "

Success. Back " + "after 1 " + "sencond.

"); + 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, - "

Success. Back after 1 " - "sencond.

"); + ref_ret(request, + "

Success. Back " + "after 1 " + "sencond.

"); } else { notFound(request); }