inicial
This commit is contained in:
184
src/main.cpp
Normal file
184
src/main.cpp
Normal file
@@ -0,0 +1,184 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <WebSocketsServer.h>
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <ESP8266mDNS.h>
|
||||
#include "FS.h"
|
||||
|
||||
volatile int estado = HIGH;
|
||||
|
||||
volatile int left_motor, throttle_left_motor, throttle_counter_left_motor, throttle_left_motor_memory;
|
||||
volatile int right_motor, throttle_right_motor, throttle_counter_right_motor, throttle_right_motor_memory;
|
||||
|
||||
unsigned long loop_timer;
|
||||
unsigned char Dir_m_left=D5;
|
||||
unsigned char Step_m_left=D6;
|
||||
unsigned char Dir_m_right=D3;
|
||||
unsigned char Step_m_right=D4;
|
||||
bool FWD=HIGH;
|
||||
bool BWD=LOW;
|
||||
volatile int valor=0;
|
||||
|
||||
int descI=0;
|
||||
int descR=0;
|
||||
|
||||
|
||||
extern "C" {
|
||||
#include "user_interface.h"
|
||||
}
|
||||
|
||||
os_timer_t myTimer;
|
||||
|
||||
bool tickOccured;
|
||||
|
||||
// start of timerCallback
|
||||
void timerCallback(void *pArg) {
|
||||
throttle_counter_left_motor ++; //Increase the throttle_counter_left_motor variable by 1 every time this routine is executed
|
||||
if(throttle_counter_left_motor > throttle_left_motor_memory){ //If the number of loops is larger then the throttle_left_motor_memory variable
|
||||
throttle_counter_left_motor = 0; //Reset the throttle_counter_left_motor variable
|
||||
throttle_left_motor_memory = throttle_left_motor; //Load the next throttle_left_motor variable
|
||||
if(throttle_left_motor_memory < 0){ //If the throttle_left_motor_memory is negative
|
||||
digitalWrite(Dir_m_left,BWD); //Set output 3 low to reverse the direction of the stepper controller
|
||||
throttle_left_motor_memory *= -1; //Invert the throttle_left_motor_memory variable
|
||||
}
|
||||
else digitalWrite(Dir_m_left,FWD); //Set output 3 high for a forward direction of the stepper motor
|
||||
}
|
||||
else if(throttle_counter_left_motor == 1)digitalWrite(Step_m_left,HIGH); //Set output 2 high to create a pulse for the stepper controller
|
||||
else if(throttle_counter_left_motor == 2)digitalWrite(Step_m_left,LOW); //Set output 2 low because the pulse only has to last for 20us
|
||||
|
||||
//right motor pulse calculations
|
||||
throttle_counter_right_motor ++; //Increase the throttle_counter_right_motor variable by 1 every time the routine is executed
|
||||
if(throttle_counter_right_motor > throttle_right_motor_memory){ //If the number of loops is larger then the throttle_right_motor_memory variable
|
||||
throttle_counter_right_motor = 0; //Reset the throttle_counter_right_motor variable
|
||||
throttle_right_motor_memory = throttle_right_motor; //Load the next throttle_right_motor variable
|
||||
if(throttle_right_motor_memory < 0){ //If the throttle_right_motor_memory is negative
|
||||
digitalWrite(Dir_m_right,BWD); //Set output 5 low to reverse the direction of the stepper controller
|
||||
throttle_right_motor_memory *= -1; //Invert the throttle_right_motor_memory variable
|
||||
}
|
||||
else digitalWrite(Dir_m_right,FWD);; //Set output 5 high for a forward direction of the stepper motor
|
||||
}
|
||||
else if(throttle_counter_right_motor == 1)digitalWrite(Step_m_right,HIGH); //Set output 4 high to create a pulse for the stepper controller
|
||||
else if(throttle_counter_right_motor == 2)digitalWrite(Step_m_right,LOW);
|
||||
|
||||
|
||||
} // End of timerCallback
|
||||
|
||||
|
||||
|
||||
void user_init(void) {
|
||||
|
||||
os_timer_setfn(&myTimer, timerCallback, NULL);
|
||||
os_timer_arm(&myTimer, 1, true);
|
||||
} // End of user_init
|
||||
|
||||
const char* ssid = "mdchaparror";
|
||||
const char* password = "un260874";
|
||||
int contconexion = 0;
|
||||
|
||||
|
||||
ESP8266WebServer server = ESP8266WebServer(80);
|
||||
|
||||
void setup() {
|
||||
pinMode(Dir_m_left,OUTPUT);
|
||||
pinMode(Step_m_left,OUTPUT);
|
||||
pinMode(Dir_m_right,OUTPUT);
|
||||
pinMode(Step_m_right,OUTPUT);
|
||||
//digitalWrite(Dir_m_left,HIGH);
|
||||
|
||||
|
||||
Serial.begin(115200);
|
||||
SPIFFS.begin();
|
||||
|
||||
|
||||
Serial.println("");
|
||||
Serial.println("--------------------------");
|
||||
Serial.println("ESP8266 Motor Test");
|
||||
Serial.println("--------------------------");
|
||||
|
||||
user_init();
|
||||
|
||||
|
||||
|
||||
WiFi.mode(WIFI_STA); //para que no inicie el SoftAP en el modo normal
|
||||
WiFi.begin(ssid, password);
|
||||
while (WiFi.status() != WL_CONNECTED and contconexion <50) { //Cuenta hasta 50 si no se puede conectar lo cancela
|
||||
++contconexion;
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
if (contconexion <50) {
|
||||
|
||||
Serial.println("");
|
||||
Serial.println("WiFi conectado");
|
||||
Serial.println(WiFi.localIP());
|
||||
}
|
||||
else {
|
||||
Serial.println("");
|
||||
Serial.println("Error de conexion");
|
||||
}
|
||||
|
||||
|
||||
if(MDNS.begin("motores")) {
|
||||
Serial.println("MDNS responder started");
|
||||
}
|
||||
|
||||
// handle index
|
||||
server.on("/", []() {
|
||||
File index = SPIFFS.open("/index.html", "r");
|
||||
server.streamFile(index, "text/html");
|
||||
index.close();
|
||||
});
|
||||
|
||||
server.on("/stick", []() { // Recibe los datos (dx y dy)
|
||||
String dx=server.arg("dx");
|
||||
String dy=server.arg("dy");
|
||||
server.send(200);
|
||||
int x = dx.toInt(); // Convierte los datos de tipo String a Int
|
||||
int y = dy.toInt();
|
||||
|
||||
|
||||
valor = map(abs(y),0,255,20,3);
|
||||
if (y==0)valor=0;
|
||||
if(y<0) valor*=-1;
|
||||
|
||||
if(x>100){
|
||||
descI =3;
|
||||
descR =-3;
|
||||
}
|
||||
if(x<-100) {
|
||||
descI =-3;
|
||||
descR =3;
|
||||
|
||||
}
|
||||
if(x<=100 && x>=-100) {
|
||||
descI =0;
|
||||
descR =0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
throttle_left_motor = valor+descI;
|
||||
throttle_right_motor = valor+descR;
|
||||
|
||||
Serial.println(valor);
|
||||
|
||||
// Serial.print(x); Serial.print(" "); Serial.println(y);
|
||||
});
|
||||
|
||||
server.begin();
|
||||
|
||||
// Add service to MDNS
|
||||
MDNS.addService("http", "tcp", 80);
|
||||
MDNS.addService("ws", "tcp", 81);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
|
||||
server.handleClient();
|
||||
// throttle_left_motor = 10;
|
||||
//throttle_right_motor = 10;
|
||||
while(loop_timer > micros());
|
||||
loop_timer += 4000;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user