Mục lục:
- Bước 1: Giới thiệu:
- Bước 2: Placa De Desarrollo Arduino Wemos:
- Bước 3: Cần điều khiển Circuito Del (mando a Distancia):
- Bước 4: Cần điều khiển 2:
- Bước 5: Cần điều khiển Placa De Circuitos:
- Bước 6: Circuito Del Receptor (Motores):
- Bước 7: L298N (doble Puente En H)
- Bước 8: Montaje Del Vehículo:
- Bước 9: Arduino:
- Bước 10: ¿Qué MacAddress Tiene Nuestra Placa?
- Bước 11: ĐẶT BÂY GIỜ
- Bước 12: Librería ESP-NOW
- Bước 13: La Estructura De Datos a Transmitir / Receibir:
- Bước 14: Defino El Tipo De Función ESP-NOW
- Bước 15: Emparejamiento De Los Dispositivos ESP-NOW:
- Bước 16: Envío De Datos Al Vehículo:
- Bước 17: Recepción De Datos En El Vehículo:
- Bước 18: Cần điều khiển: Biến Definicion De Pines Y
- Bước 19: Thiết lập ()
- Bước 20: Vòng lặp ()
- Bước 21: Funcion LeePots ()
- Bước 22: Funcion AjustePots ()
- Bước 23: Función DirMot ()
- Bước 24: Điều khiển De Batería En El Joystick:
- Bước 25: Arduino (Vehículo)
- Bước 26: Vehículo, Loop ():
- Bước 27: Vehículo: - Función WriteL298N ()
- Bước 28: Cuối cùng:
Video: Comunicación ESP-NOW. Điều khiển Remoto De Vehículo, Joystick, Arduino Wemos.: 28 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Todo parte de la idea de poder mover una silla de ruedas para personal discapacitado do remota y poder acompañarlos sin necesidad de empujar la misma. Como ejemplo de funcionamiento, anh ấy creado este proyecto. Posteriormente se pueden cambiar los circuitos de salida y los motores, por otros de mayor potencia y acoplar a las ruedas de la silla un sistema mecánico que la mueva.
Si la persona que va en silla de ruedas está Capada para manjarla Personalmente, se pueden fusionar ambos sketchs de Arduino en una solo y evitar las comunicaciones remotas. Simplemente una única coroa para controlar los phimmientos del cần điều khiển y control de los motores.
Aunque no gane ningún concurso, si a alguien le gusta (o una parte del mismo) o puede realizar el proyecto y aliviar el estado de ánimo de una persona mejorando su movilidad, me sentiré contento.
Ở cuối tài liệu, tôi đính kèm một bản PDF bằng tiếng Anh của tác phẩm này (bản dịch trên web).
Al final del documento, adjunto un PDF con el trabajo completo en español.
Bước 1: Giới thiệu:
Resumen del trabajo:.- Varios entradas analógicas a través de un solo puerto.
.- Wemos, especificaciones eléctricas.
.- Protocolo de comunicaciones ESP-NOW.
.- Mạch L298N. Especificaciones y pinout del mismo.
.- Montaje vehículo con dos motores DC
En este trabajo explico como tomar varios valores analógicos e Introductionirlos en un único puerto A0 de una nhau thai Wemos. Cần điều khiển Los valores pro Tiệnes de un, se truyền de forma rápida, segura y fácil por medio de Wifi usando el protocolo ESP-NOW. En el vehículo, otra Wemos nhận được los datos y acciona dos motores DC para controlar la dirección del Motorcyulo.
Quizás alguien se pueda plantear que las cosas expuestas de estos trabajos, se puedan conseguir de forma fácil y barata en alguna web, pero el hecho de hacerlo tu mismo y con componentes de bajo precio siempre es una thoả mãnfacción cuando lo ves funcionar. Aparte de eso, me conto con que a una persona le guste o le aclare algún concepto o duda.
Intentaré explicar los conceptos usados para mejor comprensión del trabajo. Quizás a algunos le parezcaprissante alguna parte del mismo.
Bước 2: Placa De Desarrollo Arduino Wemos:
Estamos hablando de una pequeña sa khoánga de desarrollo con amplias posibilidades:
Con ella podemos Realizar proyector IoT, análisis de datos y envío a través de las red y otras muchas cosas, aprovechando la Capidad Wifi de las mismas. En otro proyecto que he realizado, creo una red wifi propia y puedo abrir una cerradura remota, mediante una clave tecleada desde nuestro smartphone, que también he publicado. La diferenciapecto al anterior es que en vez de usar protocolo HTLM para la comunicación, uso la característica muy poco publicada de la comunicación WiFi del tipo ESP-NOW entre dos dispositivos, por ser fácil, rápida, segura (encriptada) y sin necesidad de emparejamientos a la hora de actuar (solo al configurar el sketch de Arduino). Mas adelante, a la hora de explicar el sketch, comentaré los detalles a tener en cuenta.
La pla dispone de una entrada de alimentación de 5v en el pin tương ứng (o por USB) y de una entrada de GND. Dicha alimentación no tiene porque ser 5v, ya que lleva un Regiador de voltaje que lo convierte en 3.3v, que es realmente el voltaje de trabajo. En la datasheet de la Wemos podemos verlo y adjunto también una imagen de la datasheet del rules.
Según el link de las especificaciones del ESP8266, podría trabajar incluso a 3v, pero conviene alimentarlo con un voltaje cao cấp 3,5v, para que a la salida del qui định interno tengamos un mínimo de 3v. En dicho link se puede ver otros detalles técnicos que amplian esta Información.
cdn-shop.adafruit.com/product-files/2471/0…
La Placa también dispone de 9 entradas / salidas digitales (D0-D8). Todas tienen la Capidad de poder trabajar con salidas del tipo PWM, bus I2C, v.v.
Detalle a tener muy en cuenta a la hora de conectar algo a la salida de los pines digitales, para iluminar leds, activar relés, v.v. La corriente máxima que puede entregar un pin Digital es de 12mA. Si se necesita entregar mas corriente, debemos intercalar entre el pin y el dispositivo un transistor o un opto acoplador de mayor potencia. Ver figura de salidas.
Con una Resistencia en serie con la salida de 330 ohms, se entrega una corriente de 10mA, por lo que si es posible, aumentar el valor de las Resistencias. Hay en muchas webs la recomendación de una Resistencia de 330 ohm en serie con los đã dẫn Yo recomiendo usar Resistencias mas altas. Si ilumina el đã dẫn đầu một người ham mê, không có necesitamos sumar mAs al trabajo Cualquier ahoro de energygía siempre es bueno.
NOTA: en los pines digitales, podemos dar valores PWM entre 0 y 1023. En Arduino Uno, entre 0 y 254.
La nhau Wemos también dispone de una entrada kỹ thuật số A0, para análisis de datos analógicos. Hay que tener en cuenta dos cosas. La primera es que NO se le puede aplicar un voltaje vượt trội một Directamente 3.3v, ya que se goneoraría. Si se quiere medir un voltaje cấp trên, hay que intercalar un divisor de voltaje externo. Los valores de dicha entrada son de 0 a 1024.
Otras características:
-Salida de 3.3v para alimentar circuitos Exteriores. Máxima corriente 12mA por chân.
-Conector micro USB para la carga del firmware y alimentación de 5v
-Pulsador de Reset.
Hay muchos hướng dẫn de como configurar el IDE de Arduino para trabajar con este tipo de sa khoáng, así como las librerías necesarias. No voy a entrar en ello para no alertgar demasiado este trabajo.
Bước 3: Cần điều khiển Circuito Del (mando a Distancia):
Me gusta la sa khoáng de desarrollo Wemos, ya que tiene poco tamaño, es barata y tiene muchas posibilidades. Como solo dispone de una entrada analógica A0, tăng el problemma de querer captar varios valores analógicos al mismo tiempo. Para mi caso en Specificto, un joyick está formado por dos potenciómetros con salidas Individuales analógicas y un pulsador. Además, quiero analizar el valor fact de la batería que uso en el mando a distancia, por lo que ya necesitamos tomar 3 valores analógicos chưng cất.
En el siguiente esquema, creado con Fritzing, tenemos a la izquierda un divisor de voltaje. Si la batería es de mas de 3.3v, la entrada analógica Corre riesgo de averiarse, por ello conviene Reducir el voltaje para su análisis. Voy a usar una batería de 3.7v, por lo que cuando está cargada completamente es de aproximadamente 4v y debido al divisor de voltaje, en el pin 4 de H1 tenemos 2v (biến phụ thuộc del estado de la batería). A la derecha tenemos un cần điều khiển básico, formado bởi dos potenciómetros y un pulsador (R3 es externa al cần điều khiển). Se alimentan con thua 3.3v que tương ứng la Wemos. En este esquema general primero, tenemos 3 valores analógicos (pines 2, 3 y 4 de H1) y un valor digital (pin 1 de H1).
Para poder analizar en la placenta Wemoslos 3 valores analógicos, recrimos a unos pequeños opto-acopladores, el chip SFH615A o TLP621. Es muy básico su funcionamiento para este trabajo. En el pin 4 del chip pongo una de los valores analógicos a analizar. Việc cần làm los pin 2 a GND. Todos los pin 3 unidos ya A0 y cada una de los pin 1 a una salida kỹ thuật số a través de un điện trở, las cuales voy activando sucesivamente y phụ thuộc cual hoạt động y leyendo el valor en A0, asigno a cada valor una biến (nồi 1y 2 cần điều khiển del y batería).
Hay que tener en cuenta que no podemos conectar la salida digital de la Wemos directamente al pin 1 del TLP621, ya que serio dicha salida digital. Cada pin kỹ thuật số vi Wemos puede suministrar unos 12mA. Por ello, intercalamos una Resistencia su Fluide para activar el đã dẫn interno. Con 470 Ω, es suficiencye para activarlo y solo supone 7 mA.
Al querer Introductionir 3 valores analógicos mediante este sistema, usamos 3 salidas digitales para poder activarlas. Si queremos Introductionir mas valores analógicos por A0, podemos usar otras salidas digitales más o podemos seguir usando solo 3 salidas digitales, añadiendo al circuito un demultiplexor y dando valores binarios a las entradas, conseguimos hasta 8 posibles valores digitales.
Añadimos al mando a distancia 2 leds, una para phản xạ "BẬT nguồn" y el otro para el estado de la batería y "Transmisión OK".
Añado al Circuito un interruptor para la batería y un conector para poder recargar la misma sin tener que quitarla (aviso: APAGAR PARA RECARGAR para evitar dañar el dieuador ME6211 de la nhaua Wemos). Con todo lo anteriormente explicado, el circuito completo del mando a distancia con cần điều khiển es la siguiente figura.
Bước 4: Cần điều khiển 2:
Explicación para el posterior desarrollo en el IDE de Arduino:
En A0 regjo los valores de los potenciómetros y del nivel de la batería.
En D0 pasa a HIGH cuando se pulsa el botón del cần điều khiển (“parada de Emergencyencia”)
Si activo D1, cần điều khiển leo el estado del potenciómetro dọc del en A0.
Si activo D2, cần điều khiển leo el estado del potenciómetro ngang del en A0.
Si activo D5, leo el estado de la batería en A0. NOTA: en un integerio lo puse en D4, pero me daba problemas al flashear el programma desde el IDE de Arduino, por lo que la pasé a D5
La salida D3 se usará para el led de Actividad (azul). Dicho đã dẫn se enciende cuando hay phimmiento de cần điều khiển y la transmisión ha sido correcta. Cuando está en reposo nos indica el estado de la batería (1 parpadeo entre 3.6 y 3.5v, 2 parpadeos entre 3.5 y 3.4v y 3 parpadeos por debajo de 3.4v).
El led rojo indica Encendido / BẬT nguồn.
S1 es el gián đoạn de encendido. Phần mềm Conviene tenerlo apagado cuando se realiza la carga de la batería o si hago modificaciones en el (5v a través del USB).
El esquema del circuito montado en una protoboard es la figura siguiente:
La línea thấp hơn Posva es el voltaje de la batería. La línea superior posva es la salida de 3.3v de la Wemos
Bước 5: Cần điều khiển Placa De Circuitos:
Anh ta vô hiệu hóa cần điều khiển Sprint-Layout 6.0 para la conexión del, opto acopladores, Wemos y otros. Indico las medidas bởi si alguien la quiere realizar (40x95mm). Hay que tener cuidado con el pin 1 de los TLP621. Van sellados al terminal cuadrado y en la posición indicada visto desde la cara de los componentes. La parte de la lasa próxima a los conectores y Wemos, la recorto posteriormente, así queda de forma cómoda el agarre del mando, el encendido y las conexiones externas.
Las fotos del mando một bản phân phối. En los bordes, las conexiones USB, el conector de carga de la batería y el interrupor de ON / OFF.
Fácil de sujetar, aunque sea un poco grande. Tôi falta realizar una caja a medida para el mismo con la impresora 3D:
Bước 6: Circuito Del Receptor (Motores):
Está compuesto bởi otra coroa Wemos, donde Recogbo la data del cần điều khiển o control remoto y activa las señales necesarias hacia un L298N (doble puente en H) y controlar dos motores, hacia adelante y hacia atrás, con control de dirección. Como bổ sung del mạch, 3 đèn led, nguồn điện chưa BẬT, otro para la transmisión de datos y un tercero como indicativo de “parada de khẩn cấp”. Aprovecho estos dos últimos (parpadeando) para la indicación del estado de la batería del vehículo.
Control de estado de la batería: Lo primero a tener en cuenta es que la batería que estoy usando es de 9v. Intentar medir la misma en A0 directamente, supone Deporar el puerto, ya que el máximo valor que se le puede aplicar es de 3.3v. Para evitarlo, ponemos también otro divisor de voltaje, esta vez mas descompensado que en el mando a distancia y Reduceir el valor en A0. Para este caso, entizo un điện trở de 47k en serie con otro de 4k7. En el punto central es donde tomo la refncia a medir. "Bateria baja", công suất 7v y 5.5v, 1 parpadeo del led de "osystem ". "Bateria MUY baja" (bởi debajo de 5, 5v, 3 parpadeos del đã dẫn "Recepción ok")
El Circuito completo del vehículo es el siguiente:
Debido a que este circuito está montado sobre un vehículo, no he querido complexar mucho el sketch de Arduino. Simplemente Receibe los datos del cần điều khiển qua wifi ESP-NOW y los convierte en señales de control para los motores. Eso secureita a que en futuros cambios de software o modificaciones de khayectoria, se realicen solo en el mando a distancia (phím điều khiển) en vez de en ambos.
Không, anh ta nhận ra ninguna sa khoáng a de circuitos especial. Tan solo una provisional para los dẫn y sus kháng cự.
Bước 7: L298N (doble Puente En H)
Esta es una pequeña descripción del circuito que controla los motores DC que mueven el vehículo.
- Conectores A y B (azules de 2 pines). Son las salidas de corriente hacia los motores. Si tras las pruebas, el motor gira al lado contrario del que deseamos, simplemente invertir los pines del mismo
Conector de Power (azul de 3 cây thông). Es la entrada de corriente al Circuito. Como el mismo puede ser alimentado entre 6 y 36 voltios, hay que tener muy en cuenta el jumper o puente que hay junto al conector. Si lo alimentamos con un voltaje entre 6 y 12v, el puente se deja PUESTO y en Vlogico tenemos una salida de 5v hacia la Wemos (como en este trabajo). Si el circuito se alimenta con un voltaje superior a 12v, hay que quitar el puente para que no se dañe el converttidor DC-DC que lleva y si queremos que funcione su circuitería lógica, deberemos llevar un cable de 5v externo hacia el circuito (5v đầu vào). En mi caso, como useizo una batería de 9v, lo dejo puesto y me sirve para alimentar la lasa Wemos a través del pin 5v. GND viene del negativo de la batería y va también a G de la Wemos y a los led.
Conector de Control (6 cây thông). Tiene dos chia tay. ENA, IN1, IN2 bộ điều khiển el motor conectado en A y ENB, IN3, IN4 que controlan el motor conectado en B. En la tabla de la figura anterior se indica los niveles de las señales que debe tener para poner en phimmiento los motores, adelante, atrás o frenado. En ENA y en ENB hay unos puentes. Si los dejamos puestos, el L298N aorá los motores al voltaje de entrada Vm en el sentido indicado, sin ningún control de velocidad ni de quiación de voltaje. Si los quitamos, usaremos dichos pines para Recogbir una señal PWM desde la nhau Wemos y así controlar la velocidad de cada motor. En Arduino se consigue mediante un comando analogWrite (). En la nhau Wemos, todas los puerto D tienen esa Capidad.
En la figura del L298N hay un recuadro con un pequeño sketch para Arduino UNO, que hará girar el motor A hacia adelante a un voltaje cercano al 75% de Vm.
La gráfica anterior a este texto, explica la relación de analogWrite () con la forma de salida en los pines para Arduino UNO. En la Wemos, 100% se consigue con analogWrite (1023) y al 50% sería analogWrite (512).
A la hora de realizar este proyecto, hay que tener muy en cuenta los posibles valores PWM de ENA y ENB que se suministran mediante el comando analogWrite, ya que dependen del valor del voltaje de la batería y del voltaje de los motores. En este caso Pracizo una batería de 9v (Vm) y motores de 6v. Al ir aumentando la señal PWM en ellos, el voltaje del motor asciende, pero no comienza a moverse hasta que llega a un valorminado, por lo que en las pruebas, se debe establecer ese mínimo PWM que lo haga mover a baja velocidad. Por otra parte, si ponemos la señal PWM al máximo, le damos al motor el voltaje Vm de la batería (9v) y se puede dañar el mismo, por lo que en las pruebas, debemos medir el voltaje y establecer ese máximo PWM para que không có se sa sút y como mucho tỷ lệ los 6v máximo. Ambas cosas, como ya comentaba anteriormente, en el sketch de Arduino del mando a distancia.
Bước 8: Montaje Del Vehículo:
Tengo que recnocer que el montaje es un poco casero, pero efectivo. Quizás disñe e printma en 3D un modelo mas bonito, pero este modelo “casero” tiene la ventaja de ver mejor el funcionamiento. Existen una serie de motores, con reductora incluida y ruedas para acoplar, một precio bajo. Yo he usado lo que tengo a mano.
Para el montaje, he impreso en 3D unas piezas, ruedas, soporte de rodamiento / motor y unos casquillos y uso tornillería de 3mm de diámetro para unir las piezas. Para la unión del motor al tornillo eje, he usado thua contactos de una regleta de conexión eléctrica cortando el plástico externo. Al montar las ruedas, conviene pegar el tornillo a la rueda, para evitar que patine al girar.
La siguiente muestra el soporte del rodamiento / motor y la pieza 3D que lo sujeta.
Monto la rueda. Tomo las medidas, corto el tornillo que sobra y los una:
Una vez realizado el montaje de los dos suggest motriz, los sujeto a una plataforma de 10x13 cms (blanco). Les una otra plataforma (8x12cms) para soporte de los circuitos y la rueda trasera. La diferencia de altura la marca el tipo de rueda que pongamos, para mantener el vehículo ngang. La distancia entre la rueda trasera y la primera plataforma nos debe asegurar el giro de la misma, por eso tuve que Corregir el primer agujero, como veis en las fotos.
Añado los circuitos y al final la batería con un conector para poder cargarla.
Como veis, no es un gran disño. Mi intención es aplicar este sistema a una silla de ruedas como comentaba al precisionio de este trabajo. Pero ya que lo tengo desarrollado, posiblemente disñe un tipo de vehículo mas Elegante.
Y ahora pasamos a la explicación del sketch de Arduino que he realizado.
Bước 9: Arduino:
Como escripí al precisionio, không có puedo Extenderme mucho y prescindo de como configurar el IDE de Arduino, librerías y como debe biên dịch lại la nhau Wemos para poder trabajar con ellas. Dữ liệu unos Solo:
.- En Preferencias, Gestor de URL adicionales:
arduino.esp8266.com/stable/package_esp8266com_index.json
.- En Herramientas (Công cụ), Gestor de tarjetas, como muestra la imagen:
Bước 10: ¿Qué MacAddress Tiene Nuestra Placa?
Como paso previo e imprescindible antes de trabajar con el protocolo ESP-NOW, debemos cargar este pequeño sketch en las Wemos con las que vamos a trabajar, para saber la AP MAC de las ESP8266 que llevan integrationdas. En Herramientas, Monitor Serie podemos ver el resultado del sketch y anotar sobre todo la AP de cada coroa Wemos.
Tengo la costumbre de al Recogbir las que compro, marco las bolsitas y la nhaua con dicho dato:
Bước 11: ĐẶT BÂY GIỜ
Una vez con la AP MAC de las ban, comienzo a hablar del protocolo ESP-NOW desarrollado bởi Espressif:
“ESP-NOW permite un control directo y de baja potencia de las luces inteligentes, sin la necesidad de un enrutador. Este método es energygéticamente eficiencye y seeke.
Giao thức ESP-Now es otro desarrollado por Espressif, que permite que múltiples dispositivos se comuniquen entre sí sin usar Wi-Fi. El protocolo es tương tự một la conectividad inalámbrica de baja potencia de 2.4GHz que a menudo se implementa en ratones inalámbricos. Por lo tanto, el emparejamiento entre dispositivos es necesario antes de su comunicación. Una vez que se realiza el emparejamiento, la conexión es segura y de igual a igual, sin que sea necesario un apretón de manos. “
Mas Información en el liên kết:
docs.espressif.com/projects/esp-idf/en/latest/api-reference/network/esp_now.html
ESP-NOW es un protocolo amplio y con muchas posibilidades, pero quiero mostrar una forma fácil de comunicar dos dispositivos y transmitir datos entre ellos, sin useizar formas complejas.
Bước 12: Librería ESP-NOW
El sketch que he preparado solo un dispositivo transmite (phím điều khiển) y otro nhận dữ liệu (vehículo). Pero ambos deben tener cosas comunes necesariamente, las cuales paso a mô tả.
.- Inicio de la librería ESP-NOW
Bước 13: La Estructura De Datos a Transmitir / Receibir:
.- La estructura de datos a transmitir / Recogbir. Không có biến podemos xác định las biến con longitud biến, sino de longitud fija, debido a cuando se truyền todos los datos a la vez, el que Recogbe debe saber splitr cada byte Receibido y saber a que valor de biến asignar dichos bytes Recogbidos. Es como cuando se prepara un tren, con chưng cất vagones y la estación que los debe debe saber cuantos y para que empresa deben ir. Quiero transmitir 5 datos a la vez, cần điều khiển Si pulso el, y los voltajes (motor Izquierdo y Derecho) y sentido (adelante / atrás) de cada motor del vehículo, que extraigo de la posición del mismo.
Bước 14: Defino El Tipo De Función ESP-NOW
.- Defino el tipo de función que realizará cada Wemos. Quizás debido a la falta de Experiencia en el protocolo ESP-NOW, he tenido ciertos problemas cuando a una lo defino como maestro y al otro como esclavo. Siempre me ha funcionado bien poniendo los dos como bidireccionales (Vai trò = 3)
Bước 15: Emparejamiento De Los Dispositivos ESP-NOW:
.- Emparejamiento de los dispositivos. Nhập khẩu: En el sketch del joystck debo poner la AP MAC de la Wemos del vehículo. En el sketch del vehículo, debo poner la AP MAC del cần điều khiển.
.- Como clave (key), he puesto igual en ambos, la unión de ambas AP MAC, bởi ejemplo.
Bước 16: Envío De Datos Al Vehículo:
.- Envío de datos al vehículo, figura siguiente. Primero hay que preparar esos vagones del tren que hay que enviar (dữ liệu), con recuadro rojo. Después, hay que Defr a quien lo envío (da), que es la AP MAC de la Wemos del vehículo y la longitud total del TREN. Una vez Defdos estos datos anteriores, se envía el paquete de datos (cuadro verde).
Recuerda: Quiero transmitir 5 datos a la vez, cần điều khiển Si pulso el, y los voltajes (motor Izquierdo y Derecho) y sentido (adelante / atrás) de cada motor del vehículo.
Tras el envío, Verifico que el vehículo ha Recogbido los datos correctamente (cuadro azul).
Bước 17: Recepción De Datos En El Vehículo:
.- Recepción de datos en el vehículo. Esta es la función que he usado en la Wemos del vehículo. Como se puede ver la pongo en modo de refción (con đáp lại, gọi lại) y la dữ liệu nhận được là asigno a las biến (vagones del TREN) con la misma estructura useizada en ambos:
Y simplemente con lo anterior, puedo transmitir / Recogbir datos qua Wifi ESP-NOW de forma sencilla.
En los siguientes pasos descriptioniré el sketch de Arduino del mando a distancia (phím điều khiển).
Bước 18: Cần điều khiển: Biến Definicion De Pines Y
.-Tras Defr la librería de ESP-NOW, defino los pines que voy a Pracizar de la Wemos
.- Các biến defino las que usaré posteriormente:
Bước 19: Thiết lập ()
.- Ya en setup (), en la primera parte, defino como van a trabajar los pines de la Wemos y un valor inicial de los mismos. También verifyfico que el protocolo ESP-NOW esté inicializado bien. Y tras ello, defino el modo de trabajo y emparejamientos anteriormente comentados:
Bước 20: Vòng lặp ()
.- Inicio el loop () con un retardo que nos marca el número de transmisiones o lecturas del cần điều khiển que quiero hacer por segundo (figura siguiente). He puesto 60 msg, con lo que realizo unas 15 lecturas por segundo mas o menos. Cần điều khiển Después leo el estado del pulsador de khẩn cấp del. Si se pulsa, pongo a cero los valores de los motores, transfero y establezco un retardo donde no responsee a nada hasta que pase ese tiempo (en mi caso de 5 segundos, delay (5000);).
.- El resto del loop (), son las llamadas a las funciones que tasizo, que posteriormente explicaré.
Bước 21: Funcion LeePots ()
.- Leo el estado de los potenciómetros y de la batería. Los retardos (chậm trễ) que pongo de 5msg son para que las lecturas en los optoacopladores sean Preisas. Hay que tener en cuenta que desde que se activa el led, tarda unos microsegundos (unos 10) en settingilizar la salida, así que le pongo 5 msg para que las lecturas sean mas correctas. Se podría bajar este retardo perfectamente.
Bước 22: Funcion AjustePots ()
.- Una vez leídos los potenciómetros y el estado de labatería, hay que converterar el phimmiento del cần điều khiển en sentido y corriente hacia los motores. Si analizamos el potenciómetro vertical, por ejemplo, los pasos están mostrados en la figura siguiente.
1.- El valor total en el phimmiento (mínimo, reposo, máximo) está entre 0 y 1024.
2.- Averiguar cual es el punto medio del mismo (reposo de la palanca). Ver leePot ();
3.- Establecer un margen para que no se mueva el vehículo con ligeros phimmientos o que no afecten las evaluaciones eléctricas.
4.- Convertir los phimmientos hacia arriba o hacia abajo en sentido y corriente de los motores.
Los pasos 2 a 4 thua realizo en ajustePots ();.
Bước 23: Función DirMot ()
.- Partimos del hecho de que un dispositivo de dos motores, sin eje de dirección, necesita unos valores de sentido y voltaje hacia los mismos. Laversión de hacia adelante / atrás y hacia la izquierda / derecha en sentido / voltaje lo realizo en dirMot (), teniendo en cuenta las 3 direcciones hacia adelante izquierda / frontal / derecha, lo mismo hacia atrás e incporo el giro sobre s. Cuando va hacia adelante y giro, lo que hago es Reduceir el voltaje de la rueda a la que giro, ratiocionalmente al phimmiento del cần điều khiển y evitando los valores negativos (se descontrola el vehículo), por lo tanto, el valor de Reduceción nunca puede ser menor que el valor de avance (como mucho, para el motor). De ahí el uso de la biến de giro (VariableGiro). Esta biến convierte el giro en mas suave y el vehículo se controla mejor.
Como la función es grande, se puede sacar del fichero INO adjunto.
Cần điều khiển Tiene varios casos, dependiendo de la posición del:
.- Centrado y en reposo (vehículo parado).
.- Giro sobre si mismo (izquierda o derecha).
.- Avance (con o sin giro)
.- Retroceso (con o sin giro)
Bước 24: Điều khiển De Batería En El Joystick:
.- Por último, el control del estado de la batería. Cuando el cần điều khiển está en reposo, o no ha podido transmitir, incremento un contador. Si alcanza un valor deseado (50 miếng), analizo el estado de la batería y hago parpadear el led (1 parpadeo = baja, 2 parpadeos = muy baja)
Bước 25: Arduino (Vehículo)
Sobre la parte Correiente a las comunicaciones (ESP-NOW) cần điều khiển con el, ya se comentaron anteriormente, por lo que analizo el resto. Hay que tener en cuenta de que lo he simpleficado Beiante, para que si hay que hacer modificaciones, se trabaja mejor modificando el mando a distancia que a tener que poner el vehículo en la mesa y conectarlo al ordenador. Por ello, me limito a retger los datos de phimmiento y pasarlos al L298N para que se muevan thua motores. Priorizo la refción del pulsador de khẩn cấp y en los tiempos sin phimmoiento, analizo el estado de la batería.
.- Pines de entrada salida de la placenta Wemos y Variables usadas:
.- ya en el setup () inicio los pines y su estado inicial. El resto de setup es sobre ESP-NOW:
Bước 26: Vehículo, Loop ():
.- En loop (), aparte de mirar el estado de la batería, mando ejecutar dos funciones, una comentada ya al hablar del ESP-NOW, rección () y la otra realiza el Mamejo del L298N con thua datos. Por supuesto, lo primero es analizar una posible Emergencyencia y parar el vehículo.
Primero establezco un pequeño retardo en las comunicaciones, para sincronizar el receptor mas o menos con el transmisor. Ejecuto la función de refción () y analizo si se ha pulsado “powersencia” para procedure a la inmovilización. Si không nhận được datos o phimmiento de ninguno de los motores, los paro también mediante el envío de datos a la función writeL298N (). Si no hay datos, incremento un contador para revisión de la batería. Si hay datos Recogbidos, enciendo el led de comunicaciones y por supuesto, los mando a la función writeL298N () para que se mueva el motor según dichos datos.
Bước 27: Vehículo: - Función WriteL298N ()
.- Función writeL298N () Si recordais la tabla del L298N, simplemente es escripir dichos valores con los datos Recogbidos
Bước 28: Cuối cùng:
Ésto es todo. Không có es mi intención ganar concursos, sino aclarar conceptos. Si UNA persona agradece este trabajo, le sirve para adquirir un conocimiento y Desués desarrollar alguna ý tưởng propia, tôi tuân theo. Si una lo implementa en una silla de ruedas y hace mas confortable la vida a una persona, me haría mucha ilusión.
Adjunto PDF en español y PDF en Inglés
Adjunto los ficheros de arduino de ambos dispositivos.
Un saludo:
Miguel A.
Đề xuất:
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: 5 bước
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: Đây là các hướng dẫn để tạo ô tô được điều khiển từ xa của riêng bạn, được điều khiển bằng bộ điều khiển Xbox 360 không dây
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Tự làm bộ điều khiển bay điều khiển đa hệ điều khiển Arduino: 7 bước (có hình ảnh)
Tự làm bộ điều khiển máy bay đa năng điều khiển Arduino: Dự án này là tạo ra một bảng logic máy bay không người lái đa năng linh hoạt nhưng tùy chỉnh dựa trên Arduino và Multiwii
Bộ vi điều khiển AVR. Điều chế độ rộng xung. С bộ điều khiển động cơ DC và cường độ ánh sáng LED.: 6 bước
Bộ vi điều khiển AVR. Điều chế độ rộng xung. Bộ điều khiển của Động cơ DC và Cường độ ánh sáng LED: Xin chào mọi người! Điều chế độ rộng xung (PWM) là một kỹ thuật rất phổ biến trong viễn thông và điều khiển điện năng. nó thường được sử dụng để điều khiển công suất cấp cho thiết bị điện, cho dù đó là động cơ, đèn LED, loa, v.v. Về cơ bản, nó là một modu
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu