Სარჩევი:

კომუნიკაცია ESP-NOW. კონტროლი Remoto De Vehículo, Joystick, Arduino Wemos .: 28 ნაბიჯი
კომუნიკაცია ESP-NOW. კონტროლი Remoto De Vehículo, Joystick, Arduino Wemos .: 28 ნაბიჯი

ვიდეო: კომუნიკაცია ESP-NOW. კონტროლი Remoto De Vehículo, Joystick, Arduino Wemos .: 28 ნაბიჯი

ვიდეო: კომუნიკაცია ESP-NOW. კონტროლი Remoto De Vehículo, Joystick, Arduino Wemos .: 28 ნაბიჯი
ვიდეო: როგორ დავაკვირდეთ და აკონტროლოთ ESP32 მსოფლიოს ნებისმიერი ადგილიდან RemoteXY IoT Cloud-ით 2024, ივლისი
Anonim
კომუნიკაცია ESP-NOW. კონტროლი Remoto De Vehículo, Joystick, Arduino Wemos
კომუნიკაცია ESP-NOW. კონტროლი Remoto De Vehículo, Joystick, Arduino Wemos

ეს არის იდეა, რომელიც ხელს შეუწყობს მოძრაობას და გააფართოვებს პირად დისკომფორტს და შორდება და აძლიერებს ცოდვას, რაც აუცილებელია მისი გაძლიერებისათვის. ამ ფუნქციის შემსრულებელმა ის შეასრულა. Posteriormente se pueden cambiar los circuitos de salida y los motores, for 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á capacitada para manejarla personalmente, se pueden fusionar ambos sketchs de Arduino en uno solo y evitar las comunicaciones remotas. Simpleee una única placa para controlar los movimientos del joystick 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.

დოკუმენტის დასასრულს ვამაგრებ ამ ნაწარმოების PDF- ს ინგლისურ ენაზე (ვებ თარჯიმანი).

საბოლოო დოკუმენტი, რომელიც დამატებულია PDF– სთან ერთად დაასრულებს ესპანეთს.

ნაბიჯი 1: გაცნობა:

Resumen del trabajo:.- Varios entradas analógicas a través de un solo puerto.

.- Wemos, especificaciones eléctricas.

.- Protocolo de comunicaciones ESP-NOW.

.- Circuito L298N. Especificaciones y pinout del mismo.

.- Montaje vehículo con dos motores DC

En este trabajo explico como tomar varios valores analógicos და introducirlos en un único puerto A0 de una placa Wemos. Los valores provenientes de un joystick, se de transmiten de forma rápida, segura y ficil medio de Wifi usando el protocolo ESP-NOW. ამ ავტომობილის, სხვა Wemos– ის მონაცემებით, ჩვენ გვთავაზობენ ძრავის DC მანქანების გადაადგილების კონტროლს.

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 satisfacción cuando lo ves funcionar. გარდა ამისა, me conformo 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 parezca interesante alguna parte del mismo.

ნაბიჯი 2: Placa De Desarrollo Arduino Wemos:

Placa De Desarrollo Arduino Wemos
Placa De Desarrollo Arduino Wemos
Placa De Desarrollo Arduino Wemos
Placa De Desarrollo Arduino Wemos
Placa De Desarrollo Arduino Wemos
Placa De Desarrollo Arduino Wemos

Estamos hablando de una pequeña placa de desarrollo con amplias posibilidades:

Con ella podemos realizar proyector IoT, análisis de datos y envío a través de las redes y otras muchas cosas, aprovechando la capacidad Wifi de las mismas. მისი გაცნობისას, შეიქმნა წითელი wifi პროპია და პუედო აბრაირს, რომელიც გააქტიურებულია, გამოჩნდა ახალი სმარტფონი, რომელიც გამოქვეყნდა და გამოქვეყნდა. სხვა დიფერენციალური პატივისცემა არის წინა პროტოკოლი HTLM– ის კომუნიკაციისთვის, გამოვიყენოთ კავშირი WiFi– ის საშუალებით ESP-NOW entre dos dispositivos, por ser fácil, rápida, segura (encriptada) და ცოდვის საჭიროება emparejamientos a la hora de actuar (solo al configurar el sketch de Arduino). მას შემდეგ, რაც ესკიზი la la hora de explicar, comentaré los detalles tener en cuenta.

La placa dispone de una entrada de alimentación de 5v en el pin correspondiente (o for USB) y una entrada de GND. Dicha alimentación no tiene porque ser 5v, ya que lleva un regulador de voltaje que lo convierte en 3.3v, que is realmente el voltaje de trabajo. En la datasheet de la Wemos podemos verlo y adjunto también una imagen de la datasheet del regulador.

Según el link de las especificaciones del ESP8266, podría trabajar incluso 3v, pero conviene alimentarlo con un voltaje superior a 3.5v, para que a la salida del regulador interno tengamos un mínimo de 3v. ინფორმაციის გაცნობის შემდეგ, თქვენ შეგიძლიათ გაეცნოთ ამომწურავ ტექნიკურ მომსახურებას.

cdn-shop.adafruit.com/product-files/2471/0…

La Placa también dispone de 9 entradas/salidas digitales (D0-D8). Todas tienen la capacidad de poder trabajar con salidas del tipo PWM, bus I2C და ა.შ.

დეტალურად გააცნობიერეთ, თუ როგორ უნდა გაუმკლავდეთ მას, თუ როგორ უნდა მოაწყოთ ლოგოები და განათავსოთ ციფრული დინამიკები, განათებული ლიდერები, აქტიურ რელიეფები და ა.შ. როგორც საჭიროა შევაჯამოთ მათ შორის, არსებობს ინტერკულარული ინტერვალი, რომელიც მოიცავს ტრანზისტორს და აკოპლადორ მერის პოტენციალს. 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 leds Yo რეკომენდაცია usar resistencias mas altas. როგორც ilumina el გამოიწვია nuestro gusto, no necesitamos sumar mAs al trabajo Cualquier ahoro de energía siempre es bueno.

შენიშვნა: en los pines digitales, podemos dar valores PWM entre 0 y 1023. En Arduino Uno, entre 0 y 254.

La placa Wemos también– მა გაავრცელა ციფრული A0, მონაცემთა ანალიზის ანალიზისთვის. მას აქვს უფლება შეაფასოს cuenta dos cosas. მთავარი ის არის, რომ იგი არ გამოიყენება 3.3v პირდაპირი მითითებით, რაც უარესია. Si se quiere medir un voltaje superior, hay que intercalar un divisor de voltaje externo. Los valores de dicha entrada son de 0 და 1024 წ.

Otras características:

-Salida de 3.3v alimentar circuitos exteriores. M corxima corriente 12mA por pin.

-მიკრო USB მიკრო USB კონფიგურაციის ჩამონტაჟებული პროგრამული უზრუნველყოფის პროგრამული უზრუნველყოფა 5v

-პულსადორ დე რესეტი.

Hay muchos tutoriales de como configurar el IDE de Arduino para trabajar con este tipo de placa, así como las librerías necesarias. No voy a entrar en ello para no alargar demasiado este trabajo.

ნაბიჯი 3: Circuito Del Joystick (მანდო და დისტანცია):

Circuito Del Joystick (მანდო და დისტანცია)
Circuito Del Joystick (მანდო და დისტანცია)
Circuito Del Joystick (მანდო და დისტანცია)
Circuito Del Joystick (მანდო და დისტანცია)

მე gusta la placa de desarrollo Wemos, ya que tiene poco tamaño, es barata y tiene muchas posibilidades. Como solo dispone de una entrada analógica A0, Surge el problema de querer captar varios valores analógicos al mismo tiempo. Para mi caso en concreto, un joysick está formado for dos potenciómetros con salidas individualuales analógicas y un pulsador. გარდა ამისა, quiero analizar el valor actual de la batería que uso en el mando distancia, por lo que que necesitamos tomar 3 valores analógicos distintos.

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. გაეცანით 3.7v ბატარეის გამოყენებას, რაც იმას ნიშნავს, რომ თქვენ გექნებათ სრული კომპლექსი, რომელიც არის 4v y debido al divisor de voltaje, en el pin 4 de H1 tenemos 2v (ცვლადი დამოკიდებულება del estado de la batería). ჯოისტიკი ჯოისტიკიდან, რომელიც განკუთვნილია პოტენციური და სატრანსპორტო საშუალებებისათვის (R3 es externa al joystick). Se alimentan con los 3.3v que proporciona la Wemos. ეს არის ზოგადი პირველწყარო, ადეკვატური 3 valores analógicos (ფიჭვები 2, 3 y 4 de H1) და ციფრული მნიშვნელობა (pin 1 de H1).

Para poder analizar en la placa Wemoslos 3 valores analógicos, recurrimos a unos pequeños opto-acopladores, el chip SFH615A o TLP621. Es muy básico su funcionamiento para este trabajo. En pin 4 del chip pongo un los valores analógicos a analizar. Todos los pin 2 a GND. დადასტურების მოლოდინში 3 unidos ya A0 y cada uno de los pin 1 a una salida digital and través de un resistor, las cuales voy activando sucesivamente y y dependiendo cual active y leyendo el valor en A0, asigno cada valor una variable (pot 1 pot 2 ჯოისტიკი და ბატარია).

ეს ნიშნავს, რომ ის არ არის დაკავშირებული ციფრული და Wemos- ის ციფრული მონაცემებით, რომელიც მითითებულია 1 პუნქტში TLP621, რაც უარყოფითად მოქმედებს ციფრულზე. Cad pin digital და Wemos puede suministrar unos 12mA. თუმცა, intercalamos una resistencia suficiente para activar el led interno. შეაერთეთ 470 Ω, საკმარისია აქტივაციისთვის და სოლო 7 სთ.

ჩვენ შემოვიღეთ 3 valores analógicos mediante este sistema, usamos 3 salidas digitales para poder activarlas. თუ თქვენ იყენებთ მათ ანალიზს A0- ში, შეგიძლიათ გამოიყენოთ ციფრული სიგნალი, რომელიც გამოიყენება სოლო 3 სოლიდარული ციფრული ციფრული, დემულტიპლექსორული ძრავისა და ციფრული მიღწევებისათვის 8 ციფრული მნიშვნელობით.

A mandadimos al mando a distancia 2 leds, uno para reflejar "Power ON" y el otro para est est de de batería y "Transmisión OK".

A circuitado al circuito un interruptor para la batería y un conector para poder recargar la misma sin tener que quitarla (ავტორი: APAGAR PARA RECARGAR para evitar dañar el regulador ME6211 de la placa Wemos). Con todo lo anteriormente explicado, el circuito completeo del mando distancia con joystick es la siguiente figura.

ნაბიჯი 4: ჯოისტიკი 2:

ჯოისტიკი 2
ჯოისტიკი 2

Explicación para el posterior desarrollo en el IDE de Arduino:

En A0 recojo 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 joystick ("parada de emergencia")

Si activo D1, leo el estado del potenciómetro ვერტიკალური ჯოისტიკი en A0.

A activo D2, leo el estado del potenciómetro horizontal del joystick en A0.

Si activo D5, leo el estado de la batería en A0. შენიშვნა: en un principio lo puse en D4, pero me daba problemas al flashear el programa desde el IDE de Arduino, por lo que la pasé a D5

La salida D3 se usará para el led de Actividad (azul). Dicho led se enciende cuando hay movimiento de joystick y la transmisión ha sido correcta. ეს არის რეპოსო, რომელიც არ არის მითითებული ბატარეის შესახებ (1 პარკეტი 3.6 და 3.5 ვ, 2 პარკეტი 3,5 და 3.4 ვ და 3 პარადეო 3.4 ვ).

El led rojo indica Encendido/ჩართვა.

S1 es el interruptor de encendido. კონფიდენციალური პროგრამის გამოყენება შესაძლებელია პროგრამული უზრუნველყოფის პროგრამული უზრუნველყოფის (5v და USB მიწოდებით) გამოყენებით.

El esquema del circuito montado en una protoboard es la figura siguiente:

La línea inferior positiva es el voltaje de la batería. La línea superior positiva es la salida de 3.3v de la Wemos

ნაბიჯი 5: Joystick Placa De Circuitos:

Joystick Placa De Circuitos
Joystick Placa De Circuitos
Joystick Placa De Circuitos
Joystick Placa De Circuitos
Joystick Placa De Circuitos
Joystick Placa De Circuitos
Joystick Placa De Circuitos
Joystick Placa De Circuitos

ის ავრცელებს სიგნალს პლაკატის ჩართვისას Sprint-Layout 6.0– ში, ჯოისტიკის, ოპტო აკოპლადორების, ვემოსის და სხვა სისტემების შესანახად. Indico las medidas por si alguien la quiere realizar (40x95 მმ). ჰეი ტენერ კუიადდო con el pin 1 de los TLP621. Van soldados al terminal cuadrado y en la posición indicada visto desde la cara de los კომპონენტები. La parte de la placa 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 a distancia. ჩვენ ვსაუბრობთ USB, la conexiones USB, და conector de carga de la batatería y el interruptor on ON/OFF.

Fácil de sujetar, aunque sea un poco grande. Me falta realizar una caja a medida para el mismo con la impresora 3D:

ნაბიჯი 6: Circuito Del Receptor (მოტორსი):

Circuito Del Receptor (მოტორსი)
Circuito Del Receptor (მოტორსი)

Wemos– ის გაცნობის მიზნით, თქვენ უნდა შეაგროვოთ მონაცემები ჯოისტიკში ან გააკონტროლოთ გადაადგილება და გაააქტიუროთ ის, რაც საჭიროა L298N (შესასრულებლად და H) და საკონტროლო დოზებით, ჰაერის ადექვატური მოძრაობით და კონტროლით. ეს არის სრული კომპლექსი, 3 led, ძალაუფლების ჩართვისთვის, მონაცემთა გადაცემის შესახებ მონაცემების გასავრცელებლად, რომელიც მიუთითებს "parada de emergencia". Aprovecho estos dos últimos (parpadeando) para la indicación del estado de la batería del vehículo.

ბატარეის კონტროლი: ეს არის მთავარი წესი, რომელიც გამოიყენება 9v. გსურთ, იხილოთ აღწერის ქართული (საქართველო) ვერსია Google Translate- ის მეშვეობით? აღწერის ინგლისური (ამერიკის შეერთებული შტატები) ვერსიის დაბრუნება თარგმანი Para evitarlo, ponemos también otro divisor de voltaje, esta vez mas descompensado que en el mando a distancia y reducir el valor en A0. ეს არის ის ფაქტი, რომ ის იყენებს 47k წინააღმდეგობას 4k7 სერიით. En el punto central es donde tomo la referencia a medir. "Bateria baja", entre 7v y 5.5v, 1 parpadeo del led de "Emergencia". "Bateria MUY baja" (de debajo de 5, 5v, 3 parpadeos del led “Recepción ok”)

El circuito completeo del vehículo es el siguiente:

Debido a que este circuito está montado sobre un automículo, no he querido complexar mucho el sketch de Arduino. უბრალოდ მიიღეთ ჯოისტიკი მონაცემების მეშვეობით wifi ESP-NOW y los confirerte en señales de control for los motores. ეს არის მარტივი გზა მომავალი ტაბლეტების პროგრამული უზრუნველყოფის გამოყენებით, რაც საშუალებას მოგცემთ გაეცნოთ დისტანციას (ჯოისტიკს) და ამოსვლას.

არა მან გააცნობიერა სპეციალური ადგილები. Tan solo una დროებითი para los leds y sus წინააღმდეგობა.

ნაბიჯი 7: L298N (doble Puente En H)

L298N (doble Puente En H)
L298N (doble Puente En H)
L298N (doble Puente En H)
L298N (doble Puente En H)

Esta es una pequeña descripción del circuito que controla los motores DC que mueven el automículo.

- კონექტორები 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 (3 ფიჭვი). Es la entrada de corriente al circuito. Como el mismo puede ser alimentado entre 6 y 36 volt, hay que tener muy en cuenta el jumper o puente que hay ju contector. 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). როგორ ელექტრული კონფიგურაცია 12 ვ, რა არის quit el puente para que no se dañe el convertidor DC-DC que lleva y si queremos que funcione su circuitería lógica, deberemos llevar un cable 5v externo hacia el circuito (5v შეყვანა). როდესაც საქმე ეხება 9v ბატარეის გამოყენებას, თქვენ შეგიძლიათ გაეცნოთ მათ, რაც მე ვგულისხმობ 5v. GND viene del negativo de la batería y va también a G de la Wemos y a los leds.

Conector de Control (6 ფიჭვი). Tiene dos partes. ENA, IN1, IN2 controlan 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 Movimiento los motores, adelante, atrás o frenado. En ENA y ENB თივის არმქონე. Si los dejamos puestos, el L298N pondrá los motores al voltaje de entrada Vm en el sentido indicado, sin ningún control de velocidad ni de regulación de voltaje. როგორც წესი, გამოიყენება dichos pines recibir una seal PWM desde la placa Wemos y así controlar la velocidad de cada motor. En Arduino se consigue mediante un comando analogWrite (). En la placa Wemos, todas los puerto D tienen esa capacidad.

L figura del L298N hay un recuadro con un pequeño sketch for Arduino UNO, que hará girar el motor Aacia 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) და 50% seriala analogWrite (512).

გონივრული რეალიზება არის პროეექტო, რომელიც ითვალისწინებს PWM de ENA y ENB que sum suministran mediante el comando analogWrite, ya que დამოკიდებული del valor del voltaje de la batería y del voltaje de los motores. 9v (Vm) და motors de 6v ბატარეის გამოყენების შესაძლებლობა. PWM და სხვა მექანიზმები, ძრავის მოცულობის გაზრდის მიზნით, არ არის შესაძლებელი მოძრაობის გატარება, რაც საშუალებას მოგცემთ განსაზღვროთ ის, რომლითაც შეგიძლიათ განსაზღვროთ ის PWM, რომლითაც მოძრაობს ქალაქი. 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 არ არის შეზღუდული და ძალიან პროპორციული los 6v máximo. Ambas cosas, como ya comentaba anteriormente, en el sketch de Arduino del mando a distcia.

ნაბიჯი 8: Montaje Del Vehículo:

Montaje Del Vehículo
Montaje Del Vehículo
Montaje Del Vehículo
Montaje Del Vehículo
Montaje Del Vehículo
Montaje Del Vehículo

Tengo que reconocer que el montaje es un poco casero, pero efectivo. Quizás diseñe e imprima en 3D un modelo mas bonito, pere este modelo “casero” tiene la ventaja de ver mejor el funcionamiento. არსებობს სერიის მოტორსი, შემცირებული ინკლუდიუა y ruedas para acoplar, bajo precio. მან გამოიყენა ის, რომ მანგო.

გარდა ამისა, მან შთაბეჭდილება მოახდინა 3D უნაკლო პიესების, რუქების, მოძრაობის, მოძრაობის/მოძრაობის და მოვლის ტორნილერი 3 მმ დიამეტრისთვის. იმისათვის, რომ გავითვალისწინოთ ერთიანი მოძრაობა tornillo eje, მან გამოიყენა ჩვენი კონტაქტების 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.

მონტო ლა რუედა. Tomo las medidas, corto el tornillo que sobra y los uno:

Una vez realizado el montaje de los dos conjuntos motriz, los sujeto a una plataforma de 10x13 cms (blanco). Les uno otra plataforma (8x12 სმ) 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 ჰორიზონტალური. 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.

Aado los circuitos y al final la batería con un conector para poder cargarla.

ჯერჯერობით, არ არსებობს დიდი დაავადება. მე შემიძლია გამოვიყენო ის სისტემა, რომელიც გამოიყენება როგორც კომუნიკაციის პრინციპები, ასევე ტრაბახოს. თუმცა, ეს შეიძლება იყოს დეზაროროლადი, შესაძლებელია დაავადდეს თქვენი მანქანების ელეგანტურობით.

Y ahora pasamos a la explicación del sketch de Arduino que he realizado.

ნაბიჯი 9: არდუინო:

არდუინო
არდუინო

Como escribí al principio, no puedo extenderme mucho y prescindo de como configurar el IDE de Arduino, უფასო და como debe reconocer la placa Wemos para poder trabajar con ellas. სოლო მონაცემების შესახებ:

.- წინასწარი რჩევები, Gestor de URL adicionales:

arduino.esp8266.com/stable/package_esp8266com_index.json

.- En Herramientas (ინსტრუმენტები), Gestor de tarjetas, como muestra la imagen:

ნაბიჯი 10: ¿Qué MacAddress Tiene Nuestra Placa?

¿Qué MacAddress Tiene Nuestra Placa?
¿Qué MacAddress Tiene Nuestra Placa?

ეს არის imprescindible antes de trabajar con el protocolo ESP-NOW, debemos cargar este pequeño sketch en las Wemos con las que vamos trabajar, para saber la AP MAC de las ESP8266 que llevan integradas. Herramientas, Monitor Serie podemos ver el resultado del sketch y anotar sobre todo la AP de cada placa Wemos.

Tengo la costumbre de al recibir las que compro, marco las bolsitas y la placa con dicho dato:

ნაბიჯი 11: ESP-NOW

Una vez con la AP MAC de las placas, comienzo ablar del protocolo ESP-NOW desarrollado por Espressif:

”ESP-NOW ნებადართულია უშუალო კონტროლი, რომლითაც თქვენ გექნებათ ინტელექტუალური ძალაუფლების ცოდვა, რაც აუცილებელია არაინრუტადორისთვის. Este método es energéticamente eficiente y მოსახერხებელი.

ESP-Now არის ავტომატური პროტოკოლი, რომელიც განკუთვნილია Espressif– ისთვის, რაც საშუალებას მოგცემთ გამოიყენოთ მრავალი სხვა კომუნიკაცია, რომლებიც დაკავშირებულია Wi-Fi– ს გამოყენებით. ეს იგივე პროტოკოლია, რომელიც დაკავშირებულია 2.4 GHz სიხშირეზე იმ სიჩქარით, რომლითაც შესაძლებელია განხორციელდეს არაჩვეულებრივი სიჩქარე. Por lo tanto, el emparejamiento entre dispositivos es necesario antes de su 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."

საინფორმაციო ლინკი:

docs.espressif.com/projects/esp-idf/en/latest/api-reference/network/esp_now.html

ESP-NOW არის პროტოკოლი, რომელიც შეიძლება გამოყენებულ იქნას, როგორც წესი, რაც შეიძლება მეტი ფორმა იყოს კომუნიკაციისთვის განკუთვნილი მოწყობილობების გადაცემისათვის და მათი შემდგომი გამოყენებისათვის.

ნაბიჯი 12: Librería ESP-NOW

Librería ESP-NOW
Librería ESP-NOW

ესკიზი ის არის, რომ მან მოამზადა სოლო განკარგვის გადაცემა (ჯოისტიკი) და სხვა საშუალებები (მანქანები). Pero ambos deben tener cosas comunes necesariamente, las cuales paso a აღწერა.

.- Inicio de la librería ESP-NOW

ნაბიჯი 13: La Estructura De Datos a Transmitir/recibir:

La Estructura De Datos a Transmitir/recibir
La Estructura De Datos a Transmitir/recibir

.- La estructura de datos a transmitir/recibir. არ არის განსაზღვრული ცვლადი გრძივი ცვლადი, სიგანე გრძივი ფიგურა, განმცხადებელი აგზავნის ინფორმაციას თქვენი მონაცემების შესახებ, თუ რა მნიშვნელობა აქვს ცვლადი ასორტიმენტის დიქოს ბაიტი recibidos. Es como cuando se prepara un tren, con distintos vagones y la estación que los recibe debe saber cuantos y para que empresa deben ir. Quiero transmitir 5 datos a la vez, Si pulso el joystick, y los voltajes (motor Izquierdo y Derecho) y sentido (adelante/atrás) de cada motor del automículo, que extraigo de la posición del mismo.

ნაბიჯი 14: განსაზღვრეთ El Tipo De Función ESP-NOW

Defino El Tipo De Función ESP-NOW
Defino El Tipo De Función ESP-NOW

.- Defino el tipo de función que realizará cada Wemos. გამოაქვეყნა გამოცდილება, რომელიც მოიცავს პროტოკოლს ESP-NOW, მან დაადგინა, თუ რა პრობლემები აქვს მას შემდეგ, რაც მას ესტროს და სხვა გზებს გაუკეთებს. Siempre me ha funcionado bien poniendo los dos como bidireccionales (როლი = 3)

ნაბიჯი 15: Emparejamiento De Los Dispositivos ESP-NOW:

Emparejamiento De Los Dispositivos ESP-NOW
Emparejamiento De Los Dispositivos ESP-NOW

.- Emparejamiento de los dispositivos. მნიშვნელოვანია: ესკიზის გასახსნელად დაათვალიერეთ AP MAC de la Wemos del automículo. ესკიზის ესკიზი, გადახედვა AP MAC ჯოისტიკს.

.- Como clave (გასაღები), მან უნდა გაარკვიოს, რა არის ერთი APA MAC, მაგალითად.

ნაბიჯი 16: Envío De Datos Al Vehículo:

Envío De Datos Al Vehículo
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 (მონაცემები), con recuadro rojo. Después, hay que definir a quien lo envío (da), que es la AP MAC de la Wemos del vehículo y la longitudinal total del TREN. Una vez definidos estos datos anteriores, se envía el paquete de datos (cuadro verde).

აღწერილობა: Quiero transmitir 5 datos a la vez, Si pulso el joystick, 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 recibido los datos correctamente (cuadro azul).

ნაბიჯი 17: Recepción De Datos En El Vehículo:

Recepción De Datos En El Vehículo
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 Recepción (con respuesta, call back) y data data recibida la asigno a las variables (vagones del TREN) con la misma estructura utilizada en ambos:

Y simplemente con lo anterior, puedo transmitir/recibir datos vía Wifi ESP-NOW de forma sencilla.

En los siguientes pasos აღწერა ესკიზი de Arduino del mando a distancia (ჯოისტიკი).

ნაბიჯი 18: ჯოისტიკი: Definicion De Pines Y Variables

Joystick: Definicion De Pines Y Variables
Joystick: Definicion De Pines Y Variables
Joystick: Definicion De Pines Y Variables
Joystick: Definicion De Pines Y Variables

.-Tras definir la librería de ESP-NOW, defino los pines que voy a utilizar de la Wemos

.- Defino las variables que usaré posteriormente:

ნაბიჯი 19: დაყენება ()

Აწყობა()
Აწყობა()

.- 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 verifico que el protocolo ESP-NOW esté inicializado bien. Y tras ello, defino el modo de trabajo y emparejamientos anteriormente comentados:

ნაბიჯი 20: მარყუჟი ()

მარყუჟი ()
მარყუჟი ()
მარყუჟი ()
მარყუჟი ()

.- Inicio el loop () con un retardo que nos marca el número de transmisiones o lecturas del joystick que quiero hacer por segundo (figura siguiente). He puesto 60 msg, con lo que realizo unas 15 lecturas por segundo mas o menos. Después leo el estado del pulsador de emergencia del joystick. როგორც ჩანს, pongo a cero los valores de los motores, transmito y establezco un retardo donde არ გიპასუხებთ და არ გამოგადგებათ ეს დრო (en mi caso de 5 segundos, delay (5000);).

.- El resto del loop (), son las llamadas a las funciones que utilizo, que posteriormente explicaré.

ნაბიჯი 21: Funcion LeePots ()

Funcion LeePots ()
Funcion LeePots ()

.- Leo el estado de los potenciómetros y de la batería. Los retardos (დაგვიანებით) que pongo de 5msg son para que las lecturas en los optoacopladores sean precisas. Hay que tener en cuenta que desde que se activa el led, tarda unos microsegundos (unos 10) en salilisar la salida, así que le pongo 5 msg para que las lecturas sean mas correctas. Se podría bajar este retardo perfectamente.

ნაბიჯი 22: Funcion AjustePots ()

ფუნქცია AjustePots ()
ფუნქცია AjustePots ()

.- Una vez leídos los potenciómetros y el estado de labatería, hay que transformar el movimiento del joystick 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 movimiento (mimonimo, 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 movimientos o que no afecten las fluctuaciones eléctricas.

4.- Convertir los movimientos hacia arriba o hacia abajo en sentido y corriente de los motores.

Los pasos 2 a 4 los realizo en ajustePots ();.

ნაბიჯი 23: Función DirMot ()

გართობა DirMot ()
გართობა 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. La conversió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 morporo el incororo Cuando va hacia adelante y giro, lo que hago es reducir el voltaje de la rueda a la que giro, proporcionalmente al movimiento del joystick y evitando los valores negativos (se descontrola el vehículo), por lo tanto, el valor de reducción nunca puede menor que el valor de avance (como mucho, para el motor). De ahí el uso de la variable de giro (VariableGiro). ეს არის ცვლადი დამტკიცება 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.

Tiene varios casos, დამოკიდებული de la posición del joystick:

.- Centrado y en reposo (vehículo parado).

.- Giro sobre si mismo (izquierda o derecha).

.- ავანსი (con o sin giro)

.- Retroceso (con o sin giro)

ნაბიჯი 24: გააკონტროლეთ ბატერია და ელ ჯოისტიკი:

კონტროლი De Batería En El Joystick
კონტროლი De Batería En El Joystick

.- Por último, el control del estado de la batería. Cuando el joystick está en reposo, o no ha podido transmitir, incremento un contador. Si alcanza un valor deseado (50 veces), analizo el estado de la batería y hago parpadear el led (1 parpadeo = baja, 2 parpadeos = muy baja)

ნაბიჯი 25: არდუინო (ავტომობილი)

არდუინო (ავტომობილი)
არდუინო (ავტომობილი)
არდუინო (ავტომობილი)
არდუინო (ავტომობილი)

Sobre la parterespondresponde a las comunicaciones (ESP-NOW) ჯოისტიკით, ან წინამორბედი კომენტირებით, რაც შეეხება ანალიზს. Hay que tener en cuenta de que lo he simpleific bastante, 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. თუმცა, მე limito a recoger los datos de movimiento y pasarlos al L298N para que se muevan los motores. Priorizo la recepción del pulsador de emergencia y en los tiempos sin movimiento, analizo el estado de la batería.

.- Pines de entrada salida de la placa Wemos y Variables usadas:

.- ya en el setup () inicio los pines y su estado inicial. E Resto de setup es sobre ESP-NOW:

ნაბიჯი 26: ავტომობილი, მარყუჟი ():

მანქანა, მარყუჟი ()
მანქანა, მარყუჟი ()
მანქანა, მარყუჟი ()
მანქანა, მარყუჟი ()
მანქანა, მარყუჟი ()
მანქანა, მარყუჟი ()

.- En loop (), aparte de mirar el estado de la batería, mando ejecutar dos funciones, una comentada ya al hablar del ESP-NOW, recepción () y la otra realiza el manejo del L298N con los datos recibidos. Supuesto, lo primero es analizar una posible emergencia 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 recepción () y analoza si se ha pulsado “Emergencia” para proceder a la inmovilización. Si no recibo datos o movimiento de ninguno de los motores, los paro también mediante el envío de datos a la función writeL298N (). თუ არ გვაქვს მონაცემები, ჩვენ ვამატებთ კონტრაქტორს ბატარეის გადასინჯვისთვის. რა თქმა უნდა, მათ შეუძლიათ გამოიყენონ კომუნიკაცია და გაგზავნონ თავიანთი მომსახურება, დაწერეთ L298N () და გამოიყენოთ ფუნქცია, რომლითაც თქვენ შეგიძლიათ გამოიყენოთ ეს მონაცემები.

ნაბიჯი 27: მანქანა: - გართობა ჩაწერეთ L298N ()

მანქანა: - გართობა ჩაწერეთ L298N ()
მანქანა: - გართობა ჩაწერეთ L298N ()
მანქანა: - გართობა ჩაწერეთ L298N ()
მანქანა: - გართობა ჩაწერეთ L298N ()

.- ჩაწერა L298N () Si recordais la tabla del L298N, simplemente es escribir dichos valores con los datos recibidos

ნაბიჯი 28: საბოლოო:

Essto es todo. No es mi intención ganar concursos, sino aclarar conceptos. როგორც UNA persona agradece este trabajo, le sirve para adquirir un conocimiento და después desarrollar alguna idea propia, me conformo. როგორც uno slo de ruedas y hace mas confortable la vida a una persona, me haría mucha ilusión.

PDF და espñol y PDF en Inglés

Adjunto los ficheros de arduino de ambos dispositivos.

სალდო:

მიგელ ა.

გირჩევთ: