serial telnet
This commit is contained in:
20
README.md
20
README.md
@@ -1,10 +1,14 @@
|
|||||||
# Carro autónomo ESP32
|
# Carro autónomo ESP32
|
||||||
|
|
||||||
Carro autónomo basado en el tarjeta esp32 MH-ET LIVE
|
Carro autónomo basado en el tarjeta esp32 MH-ET LIVE
|
||||||
|

|
||||||
|
|
||||||
|
## Pinout tarjeta esp32 MH-ET LIVE
|
||||||

|

|
||||||
|
|
||||||
Para controlar los motores del carro usamos un driver TB6612FNG, el cual es un módulo que nos permite controlar 2 motores con una corriente de 1.2 A (3.2 A corriente pico) y un voltaje de 15 V, el firmware se programará usando OTA
|
Para controlar los motores del carro usamos un driver TB6612FNG, el cual es un módulo que nos permite controlar 2 motores con una corriente de 1.2 A (3.2 A corriente pico) y un voltaje de 15 V, el firmware se programará usando OTA
|
||||||
|
|
||||||
|
## Módulo TB6612FNG
|
||||||

|

|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -27,23 +31,15 @@ Para controlar los motores del carro usamos un driver TB6612FNG, el cual es un m
|
|||||||
OUT4 --> GPIO35 --> ADC1_7
|
OUT4 --> GPIO35 --> ADC1_7
|
||||||
OUT5 --> GPIO32 --> ADC1_4
|
OUT5 --> GPIO32 --> ADC1_4
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
Alimentación:
|
|
||||||
+ voltaje independiente motores,
|
|
||||||
+ voltaje independiente camara,
|
|
||||||
+ voltaje arduino.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# ToDo
|
# ToDo
|
||||||
[x] Shield diseño esquemático
|
[x] Shield diseño esquemático
|
||||||
[x] PCB
|
[x] PCB
|
||||||
[x] Fabricación Shield
|
[x] Fabricación Shield
|
||||||
[x] Ensamble Shield
|
[x] Ensamble Shield
|
||||||
[] Pruebas
|
[X] Ota
|
||||||
[] Seguidor de linea
|
[X] Serial telnet
|
||||||
[] no choque
|
[] Seguidor de linea
|
||||||
|
[] no choque
|
||||||
|
|
||||||
## Referencias
|
## Referencias
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
<button class='buttons btn2' onclick='onDynamic()'>Dinámico</button>
|
<button class='buttons btn2' onclick='onDynamic()'>Dinámico</button>
|
||||||
<p id='txt1_id' class='buttons data'></p>
|
<p id='txt1_id' class='buttons data'></p>
|
||||||
<p id='txt2_id' class='buttons data'></p>
|
<p id='txt2_id' class='buttons data'></p>
|
||||||
<p id='distancia' class='buttons data'></p>
|
<p id='sensores' class='buttons data'></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -39,8 +39,8 @@
|
|||||||
var estatico = true, touchStart = false, mouseDown = false;
|
var estatico = true, touchStart = false, mouseDown = false;
|
||||||
var angRad, angGrd, vectorHypot, speed;
|
var angRad, angGrd, vectorHypot, speed;
|
||||||
var vector2 = function (x,y) {this.x= x || 0; this.y = y || 0;};
|
var vector2 = function (x,y) {this.x= x || 0; this.y = y || 0;};
|
||||||
let distancia =0;
|
let sensores =0;
|
||||||
var distancia_label = document.getElementById('distancia');
|
var sensores_label = document.getElementById('sensores');
|
||||||
vector2.prototype = {
|
vector2.prototype = {
|
||||||
reset: function ( x, y ) {this.x = x; this.y = y; return this;},
|
reset: function ( x, y ) {this.x = x; this.y = y; return this;},
|
||||||
copyFrom : function (v) {this.x = v.x; this.y = v.y; return this;},
|
copyFrom : function (v) {this.x = v.x; this.y = v.y; return this;},
|
||||||
@@ -53,11 +53,11 @@
|
|||||||
connection.onerror = function (error) {console.log('WebSocket Error ', error);};
|
connection.onerror = function (error) {console.log('WebSocket Error ', error);};
|
||||||
connection.onmessage = function (event) {
|
connection.onmessage = function (event) {
|
||||||
|
|
||||||
if(!isNaN(event.data))
|
//if(!isNaN(event.data))
|
||||||
|
|
||||||
distancia = parseInt(event.data,10)
|
sensores = event.data//parseInt(event.data,10)
|
||||||
distancia_label.innerHTML = 'Distancia<br/>'+distancia +" cm";
|
sensores_label.innerHTML = 'Sensores Linea<br/>'+sensores
|
||||||
console.log('Server: ', distancia);
|
console.log('Server: ', sensores);
|
||||||
};
|
};
|
||||||
|
|
||||||
///////CANVAS///////
|
///////CANVAS///////
|
||||||
|
|||||||
@@ -4,12 +4,13 @@
|
|||||||
#include "wifi_config.hpp"
|
#include "wifi_config.hpp"
|
||||||
#include "SPIFFS.h"
|
#include "SPIFFS.h"
|
||||||
#include <ArduinoOTA.h>
|
#include <ArduinoOTA.h>
|
||||||
|
#include <TelnetStream2.h>
|
||||||
#include "config_ota.hpp"
|
#include "config_ota.hpp"
|
||||||
TaskHandle_t TareaProcesador1;
|
TaskHandle_t TareaProcesador1;
|
||||||
TaskHandle_t TareaProcesador2;
|
TaskHandle_t TareaProcesador2;
|
||||||
void loop1(void *pvParameters);
|
void loop1(void *pvParameters);
|
||||||
int anterior = millis();
|
int anterior = millis();
|
||||||
char sensorCadena[16];
|
char sensorCadena[50];
|
||||||
|
|
||||||
|
|
||||||
OpenTB6612FNG misMotores(0);
|
OpenTB6612FNG misMotores(0);
|
||||||
@@ -21,6 +22,8 @@ void setup()
|
|||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
wifi();
|
wifi();
|
||||||
ota_init();
|
ota_init();
|
||||||
|
TelnetStream2.begin();
|
||||||
|
|
||||||
SPIFFS.begin();
|
SPIFFS.begin();
|
||||||
init_sensores();
|
init_sensores();
|
||||||
|
|
||||||
@@ -45,9 +48,9 @@ void loop()
|
|||||||
if (((millis() - anterior) > 100) && (nCliente > -1))
|
if (((millis() - anterior) > 100) && (nCliente > -1))
|
||||||
{
|
{
|
||||||
anterior = millis();
|
anterior = millis();
|
||||||
|
snprintf(sensorCadena, 50, "[%d,%d,%d,%d,%d]", readSensors(0), readSensors(1), readSensors(2),readSensors(3),readSensors(4));
|
||||||
sprintf(sensorCadena, "%d",readSensors(0));
|
webSocket.sendTXT(nCliente, sensorCadena);
|
||||||
webSocket.sendTXT(nCliente, sensorCadena);
|
TelnetStream2.println(sensorCadena);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
BIN
imagenes/carro.jpg
Normal file
BIN
imagenes/carro.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.4 MiB |
Reference in New Issue
Block a user