Orodha ya maudhui:

Comunicación ESP-SASA. Dhibiti Remoto De Vehículo, Joystick, Wemos Arduino: Hatua 28
Comunicación ESP-SASA. Dhibiti Remoto De Vehículo, Joystick, Wemos Arduino: Hatua 28

Video: Comunicación ESP-SASA. Dhibiti Remoto De Vehículo, Joystick, Wemos Arduino: Hatua 28

Video: Comunicación ESP-SASA. Dhibiti Remoto De Vehículo, Joystick, Wemos Arduino: Hatua 28
Video: problemas de estar chaparrita #otakulife #cosplay #otaku 2024, Novemba
Anonim
Comunicación ESP-SASA. Dhibiti Remoto De Vehículo, Joystick, Wemos wa Arduino
Comunicación ESP-SASA. Dhibiti Remoto De Vehículo, Joystick, Wemos wa Arduino

Todo parte de la idea of poder mover una silla de ruedas for personal discapacitado vía remota y poder acompañarlos sin necesidad de empujar la misma. Je! Unapewa nafasi ya kujifurahisha, yeye ndiye anayeshughulikia mchakato huu. Posteriormente se pueden cambiar los circos 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á capacitada para manejarla personalment, se pueden fusionar ambos sketchs de Arduino en uno solo y evitar las comunicaciones remotas. Rahisi kutumia nafasi ya kudhibiti kwa njia ya kudhibiti njia ya kudhibiti na kudhibiti moto.

Hakuna mtu anayeweza kuhudhuria mkutano huo, ni pamoja na watu wengi (unaweza kupata habari njema) na uweze kujua ukweli wa hali hiyo na upekuzi wa hali ya juu ya mtu anayeweza kutekelezwa, na mimi nitumie maoni yangu.

Mwisho wa hati, ninaambatanisha PDF kwa Kiingereza ya kazi hii (mtafsiri wa wavuti).

Hati ya mwisho ya hati, kuambatanisha na PDF kwa kila mtu ili kukamilisha mpango huo.

Hatua ya 1: Utangulizi:

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

.- Wemos, especificaciones eléctricas.

.- Protocolo de comunicaciones ESP-SASA.

.- Circuito L298N. Especificaciones y pinout del mismo.

.- Montaje vehículo con dos motores DC

Kwa maana hii, maelezo ni pamoja na aina tofauti za uchambuzi na utambulisho na utaftaji wa hoteli A0 de una placa Wemos. Los valores provenientes de un joystick, se transmiten de forma rápida, segura y fácil por medio de Wifi usando el protocolo ESP-SASA. Kwa kweli, Wemos wanakumbuka orodha za habari ambazo watapata motores DC kwa udhibiti wa shughuli za gari.

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 and con componentses of bajo precio siempre es una anacacción cuando lo ves funcionar. Mbali na hilo, mimi huamua kufanya hivyo kwa sababu ya maoni yako juu ya dhana.

Intentaré explicar los conceptos usados para mejor comprensión del trabajo. Quizás a algunos le parezca interesante alguna parte del mismo.

Hatua ya 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:

Kutoa maoni kuhusu mtaalam wa IOT, kutambuliwa kwa orodha ya habari na shughuli mpya za redio na huduma nyingi, kutekelezwa kwa uwezo wa Wifi ya kazi. Kwa kweli, kwa kweli atatambua kwamba kuna wifi nyekundu inayotokana na matumizi ya redio, ikiwa ni pamoja na kutumia simu ya rununu, ikiwa ni pamoja na utangazaji. La diferencia heshima ya anterior es que en vez de usar protocolo HTLM for the comunicación, uso wa 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 mahali pa kutoa uingiliaji wa chakula kutoka 5v en el pin correspondiente (au USB) na kuingia kwa GND. Dicha alimentación no tiene porque ser 5v, ya que lleva un regulador de voltaje que lo convierte en 3.3v, que es realmente el voltaje de trabajo. Katika orodha ya data ya Wemos podemos verlo y adjunto también una picha ya la datasheet del regulador.

Según el link de las especificaciones del ESP8266, podría trabajar incluso a 3v, pero conviene alimentarlo con un voltaje mkuu wa 3.5v, kwa sababu ya la salida del regulador interno tengamos un mínimo de 3v. Kiunga hiki kinaweza kutekelezwa kwa sababu ya kuzuiliwa kwa vifaa vya kufundisha.

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

La Placa también itaondoa de 9 entradas / salidas digitales (D0-D8). Todas tienen la capacidad de poder trabajar con salidas del tipo PWM, basi I2C, n.k.

Detalle a tener muy en cuenta a la hora de conectar al la la salida de los pines digitales, para iluminar leds, activar relés, nk La corriente máxima que puede entregar un pin Digital es de 12mA. Kama sehemu ya kuingiliana kati, madaraka ya kuingiliana kati ya kila kitu na utaftaji wa barua pepe ni moja ya chaguzi za meya potencia. Ver figura de salidas.

Con resistoria en serie con la salida de 330 ohms, se entrega una corriente de 10mA, kwa sababu hiyo inastahili, kwa muhtasari wa nguvu zote za upinzani. Hay en muchas webs la recomendación de una resistencia de 330 ohm en serie con los leds Yo recomiendo usar resistencias mas altas. Si ilumina el led a nuestro gusto, no necesitamos sumar mAs al trabajo Cualquier ahoro de energía siempre es bueno.

VIDOKEZO: en los pines digitales, podemos dar valores PWM entre 0 y 1023. En Arduino Uno, entre 0 y 254.

La placa Wemos también dispone de una entada digital A0, para análisis de datos analógicos. Kazi ya kuajiriwa kwa kila siku. La kwanza sio kuwa na maoni yanayofaa kwa mtu aliye na nguvu zaidi ya 3.3v, ambayo inaweza kuzorota. Si se quiere medir un voltaje mkuu, hay ni sawa kwa mgawanyiko wa mgawanyiko wa nje. Los valores de dicha entada mwana de 0 a 1024.

Makala ya Otras:

-Salida de 3.3v kwa exteriores za alimentar. Máxima corriente 12mA kwa pini.

-Kidhibiti cha USB ndogo kwa dereva wa firmware na 5v

-Pulsador de Rudisha.

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

Hatua ya 3: Circuito Del Joystick (mando a Distancia):

Circuito Del Joystick (mando a Distancia)
Circuito Del Joystick (mando a Distancia)
Circuito Del Joystick (mando a Distancia)
Circuito Del Joystick (mando a Distancia)

Me gusta la placa de desarrollo Wemos, ya que tiene poco tamaño, es barata y tiene muchas posibilidades. Como solo dispone de una entada analógica A0, surge el problema de querer captar varios valores analógicos al mismo tiempo. Para mi caso en concreto, un joysick is formado por dos potenciómetros con salidas individualuales analógicas y un pulsador. Además, quiero analizar el valor actual de la batería que uso en el mando a distancia, kwa sababu hiyo ni necesitamos tomar 3 valores analógicos distintos.

En el siguiente esquema, creado con Fritzing, tenemos a la izquierda un divisor de voltaje. Kama sehemu ya watu 3.3v, na kuingia kwenye uchoraji wa huduma kwa kila siku, kwa njia ya kupunguzwa kwa njia ya upigaji kura. 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 (variable dependiendo del estado de la batería). A la derecha tenemos un joystick básico, formado por dos potenciómetros y un pulsador (R3 es externa al joystick). Kama sehemu ya tatu 3.3v que proporciona la Wemos. En este esquema general primero, tenemos 3 valores analógicos (pines 2, 3 y 4 de H1) y digital digital (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 el pin 4 del chip pongo uno de los valores analógicos a analizar. Todos los pin 2 a GND. Todos los pin 3 unidos ya A0 y cada uno de los pin 1 a una salida digital a través de un resistor, las cuales voy activando sucesivamente y dependiendo cual active y leyendo el valor en A0, asigno a cada valor una variable (sufuria 1y sufuria 2 del joystick y batería).

Kazi ya kuajiriwa bila sababu yoyote ikiwa ni pamoja na vipindi vya picha ya dijiti ya Wemos moja kwa moja kwenye 1 TLP621, ambayo itazidi kuzorota kwa njia ya dijiti. Cada pin digital en Wemos puede suministrar unos 12mA. Kwa njia, intercalamos una resistencia suficiente para activar el led interno. Con 470 Ω, es suficiente para activarlo y solo supone 7 mA.

Utangulizi wa huduma 3 valores analógicos mediante este sistema, usamos 3 salidas digitales for poder activarlas. Kama sehemu ya utangulizi wa masomo ya A0, podemos usar otras salidas digitales más o podemos seguir usando solo 3 salidas digitales, añadiendo al circo un demultiplexor y dando valores binarios a las entradas, conseguimos hasta 8 posibles valores digitales.

Añadimos al mando a distancia 2 leds, uno para reflejar "Power ON" na el otro para el estado de la batería na "Transmisión OK".

Je! Unapenda kituo hiki? Kutoa maelezo ya awali, kila mzunguko kukamilika kwa tafrija kwa njia ya shabaha ya la siguiente figura.

Hatua ya 4: Joystick 2:

Joystick 2
Joystick 2

Maelezo kwa ajili ya posterior desarrollo en el IDE de Arduino:

En A0 recojo los valores de los potenciómetros y del nivel de la batería.

Katika D0 pasa a HIGH cuando se pulsa el boton del joystick ("parada de emergencia")

Si activo D1, leo el estado del potenciómetro wima del joystick en A0.

Si 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. ANGALIZO: tumia kanuni za msingi za D4, ikiwa ni pamoja na shida nyingi za mpango wa mpango wa IDE ya Arduino, kwa sababu ya D5.

La salida D3 se usará para el led de Actividad (azul). Dicho ilisababisha watu wengi kusoma nyongeza ya nyongeza kwa njia ya kufurahi kwa njia ya kufurahisha. 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 / Power ON.

S1 es el interruptor de encendido. Conviene tenerlo apagado cuando se realiza la carga de la batería o si hago modificaciones en an software (5v a través del USB).

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

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

Hatua ya 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

Ana ugonjwa wa eneo la mzunguko kwa Mpangilio wa Sprint 6.0 kwa ajili ya mkutano wa furaha, macho ya macho, Wemos y otros. Indico las medidas por si alguien la quiere realizar (40x95mm). Hay que tener cuidado con el pin 1 de los TLP621. Vituo vyako vya mwisho vinaweza kutekelezwa kwa njia inayowezesha kuonyesha sehemu ya sehemu ya sehemu. La parte de la placa próxima a los conectores y Wemos, the recorto posteriormente, as queda de forma cómoda el agarre del mando, el encendido y las conexiones externas.

Las fotos del mando a distancia. Kwenye mipaka, na vifaa vya USB, kiunganishi cha gari la wahusika na msumbufu wa ON / OFF.

Fácil de sujetar, aunque bahari un poco grande. Ninaweza kutambua ukweli wa mambo kwa sababu ya 3D kwa njia ya 3D:

Hatua ya 6: Circuito Del Receptor (Motores):

Circuito Del Receptor (Motores)
Circuito Del Receptor (Motores)

Hii ni sehemu ya Wemos, na kumbukumbu ya data ya furaha na udhibiti wa kumbukumbu za picha na alama za mwili na L298N (doble puente en H) na udhibiti wa moto, hacia adelante y hacia atrás, con control de dirección. Como complemento del circo, leds 3, uno para power ON, otro para la transmisión de datos y un tercero como indicativo de "parada de emergencia". Aprovecho estos dos últimos (parpadeando) para la indicación del estado de la batería del vehículo.

Udhibiti wa eneo hili: Hakikisha utaftaji wa huduma ya 9v. Intentar medir la misma en A0 directamente, supone deteriorar 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 reducir el valor en A0. Para este caso, utilizo un resistor de 47k en serie con otro de 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" (por debajo de 5, 5v, 3 parpadeos del led "Recepción ok")

El circo completo del vehículo es el siguiente:

Debido ni kama hii ya mzunguko wa montado inafanya kazi kwa njia ya moto, hapana yeye anayeshughulikia mambo mengi kama mchoro wa Arduino. Rudisha kumbukumbu ya data ya kufurahi kupitia wifi ESP-SASA na utafungua dereva kwa kudhibiti moto. Ili kufanya hivyo kwa siku zijazo kwa programu zinazofaa za programu ya trayectoria, tazama ukweli wa kibinafsi kwa mtu mmoja (shabaha ya shangwe) katika mazingira.

Hapana yeye realizado ninguna placa de circos especial. Tan solo una muda mfupi kwa sababu ya vipingamizi.

Hatua ya 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 Detail of circo que controla la motores DC ni mueven el vehículo.

- Conectores A y B (azules de 2 pines). Mwana las salidas de corriente hacia los motores. Ni njia tatu tu za kufanya kazi, ni motor motor na gari inayotokana na hali hiyo, njia rahisi ya kutafakari kuhusu pines del mismo

Conector de Power (azul de 3 pines). Es la entada de corriente al circo. 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 circo se alimenta con un voltaje superior a 12v, hay que quitar el puente para que no se dañe el convertidor DC-DC que lleva y si queremos que funcione su circería lógica, deberemos llevar un cable de 5v externo hacia el circo (5v pembejeo). Katika miji mingine, utumiaji wako hautumii de 9v, tazama hii ni siri kwa sehemu ya Wemos a través del pin 5v. GND viene del negativo de la batería y va también a G de la Wemos na los leds.

Udhibiti wa Conector (6 pini). Sehemu za Tiene. ENA, IN1, IN2 control con en conadoado en A y ENB, IN3, IN4 que controlan el motor conectado en B. En to tabla de la figura anterior se indica los niveles de las señales que debe tener kwa poner en movimiento los motores, adelante, atrás o frenado. En ENA y en ENB hay unos puentes. Si los dejamos puestos, el L298N pondrá los motores al voltaje de entada Vm en el sentido indicado, sin ningún control de velocidad ni de regulación de voltaje. Kama wewe kuacha kazi, usaremos dichos pines for recibir una señal PWM desde la placa Wemos and the 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.

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, maelezo ya relación de analogWrite () con la forma de salida en los pines para Arduino UNO. En la Wemos, el 100% se consigue con analogWrite (1023) na al 50% seria analog Anwani (512).

Hili ni jambo la kufahamika zaidi, kazi ya kuajiriwa ni nyaraka za kufanya kazi kwa PWM ya ENA na ENB ambayo inajumuisha vyombo vya habari kama ilivyoandikwa Kwa sababu hii utumiaji wako hauhusiwi na 9v (Vm) na motores de 6v. Al aumentando la señal PWM en ellos, el voltaje del motor asciende, peroenza comienza a movers quick que llega a un valve determinado, kwa sababu hiyo, watu wengi wataweza kushughulikia PWM kwa sababu ya kushawishi mtoa huduma. 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 and establecer ese máximo PWM for quee no se deteriore y como mucho proporcione los 6v máximo. Ambas cosas, como ya comentaba anteriormente, en el sketch de Arduino del mando a distancia.

Hatua ya 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 and imprima en 3D in the modelo mas bonito, pero this modelo “casero” ni njia ya kufanya kazi kwa kutumia njia nzuri. Ipo sasa serie de motores, con reductora incluida y ruedas para acoplar, a bajo precio. 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. Kwa sababu ya magari yanayotokana na hali hiyo, yeye angeweza kuwasiliana na watu bila kupata habari zaidi. 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 na la pieza 3D ni nini kitafaa.

Monto la rueda. Tomo las medidas, corto el tornillo que sobra y los uno:

Unahitaji kujua zaidi kuhusu mtu anayeweza kufanya kazi kwa njia inayofaa, kwa sababu ana mpango wa cm 10x13 (blanco). Les uno otra plataforma (8x12cms) para soporte de los circos y la rueda trasera. La diferencia de altura la marca el tipo de rueda que pongamos, para mantener el vehículo usawa. 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 circos na al final la batería con un conector para poder cargarla.

Como veis, no es un gran diseño. Mi ni nia ya kufanya hivyo kwa sababu ya ruedas como comentaba al Principio de este trabajo. Pero ya que lo tengo desarrollado, posiblemente diseñe un tipo de vehículo mas elegante.

Y ahora pasamos na la explicación del sketch de Arduino ni yeye atakamilika.

Hatua ya 9: Arduino:

Arduino
Arduino

Kuandika kwa kanuni, hakuna maelezo ya ziada yanayotokana na muundo wa muundo wa IDE ya Arduino, uhuru na maoni tena ya eneo la Wemos kwa poder trabajar con ellas. Sos unos datos:

.- En Preferencias, Gestor de URLs adicionales:

arduino.esp8266.com/stable/package_esp8266com_index.json

.- En Herramientas (Zana), Gestor de tarjetas, como muestra ya picha:

Hatua ya 10: é Qué MacAddress Tiene Nuestra Placa?

¿Qué MacAddress Tiene Nuestra Placa?
¿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 integratedadas. Katika Herramientas, Monitor Serie podemos ver el resultado del sketch y anotar sobre todo la AP de cada placa Wemos.

Tengo la gharama kubwa zaidi ya marekebisho ya kila aina, marco las bolsitas na la placa con dicho dato:

Hatua ya 11: ESP-SASA

Una ve con con AP MAC de las placas, comienzo a hablar del protocolo ESP-NOW desarrollado por Espressif:

ESP-SASA ruhusu udhibiti wa moja kwa moja kutoka kwa vyanzo vya habari vya wafanyikazi, kwa sababu hiyo inafanya kazi. Hesabu za kazi ni nguvu ya kufanya kazi kwa urahisi.

ESP-Sasa ni protokolo zinazotengwa kwa Espressif, ambayo inaruhusu idadi kubwa ya vifaa vya kutolea huduma ikiwa ni pamoja na kutumia Wi-Fi. Itifaki sawa na ile inayoweza kutambuliwa katika eneo kubwa la 2.4GHz ikiwa ni pamoja na mfumo wa utekelezaji wa riadha. Por lo tanto, el emparejamiento entre dispositivos es necesario antes de su comunicación. Unahitaji kujua ukweli wa mambo, ni jambo linalowezekana kuwa la kawaida na la kawaida, na dhambi ya bahari itakayotumiwa na manos."

Maelezo kwa kiungo:

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

ESP-SASA ni protokolo amplio y con muchas posibilidades, pero quiero mostrar una forma fácil de comunicar dos dispositivos y transmitir datos entre ellos, sin utilizar formas complejas.

Hatua ya 12: Librería ESP-SASA

Librería ESP-SASA
Librería ESP-SASA

Mchoro ambao aliandaa solo bila malipo (mshindo wa shabaha) y otro recibe sus datos (vehículo). Pero ambos deben tener cosas comunes necesariamente, las cuales paso a descriptir.

.- Inicio de la librería ESP-SASA

Hatua ya 13: La Estructura De Datos Transmitir / recibir:

La Estructura De Datos ni Transmitir / urekebishaji
La Estructura De Datos ni Transmitir / urekebishaji

.- La estructura de datos a transmitir / recibir. Hakuna podemos definir las variables con longitud variable, sino de longitud fija, debido a cuando se transmiten todos los datos a la vez, it que recbe debe saber separar cada byte recibido y saber a que valor de variable asignar dichos bytes recibidos. Hii ni pamoja na kutayarisha sehemu nyingine, vagone za watu wanaoweza kupata maoni kutoka kwa watu wanaoweza kupata huduma hizi kwa sababu wanapeana dhamana. Quiero transmitir datos 5 la la vez, Si pulso el joystick, 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.

Hatua ya 14: Defino El Tipo De Función ESP-SASA

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

.- 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 uno lo defino como maestro y al otro como esclavo. Siempre me ha funcionado bien poniendo los dos como bidireccionales (Wajibu = 3)

Hatua ya 15: Emparejamiento De Los Dispositivos ESP-SASA:

Emparejamiento De Los Dispositivos ESP-SASA
Emparejamiento De Los Dispositivos ESP-SASA

.- Emparejamiento de los dispositivos. Muhimu: En sketch del joystck debo poner la AP MAC de la Wemos del vehículo. Mchoro wa picha, unapeana dhamana ya AP MAC del joystick.

.- Como clave (key), yeye puesto igual en ambos, la unión de ambas AP MAC, por ejemplo.

Hatua ya 16: Envio 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 ni sawa na maandalizi ya vagoni ya kila siku ya data (data), con recuadro rojo. Después, hay ques quien lo envío (da), que es la AP MAC de la Wemos del vehículo na la longitud jumla ya TREN. Una habari kamili juu ya data zinazotangulia, kwa hivyo tazama orodha ya data (cuadro verde).

Recuerda: Quiero transmitir datos 5 la 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).

Hatua ya 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) pamoja na misma ya utumiaji wa barua pepe:

Y rahisi kutumia kwa nje, puedo transmitir / recibir datos kwa Wifi ESP-NOW de forma sencilla.

En los siguientes pasos definediré el sketch de Arduino del mando a distancia (fimbo ya furaha).

Hatua ya 18: Joystick: Definicion De Pines Y Vigezo

Joystick: Ufafanuzi De Pines Y Vigezo
Joystick: Ufafanuzi De Pines Y Vigezo
Joystick: Ufafanuzi De Pines Y Vigezo
Joystick: Ufafanuzi De Pines Y Vigezo

. -Taifa ya ufafanuzi wa uhuru wa ESP-SASA, maelezo zaidi ni kuhusu matumizi ya la Wemos

.- Defino las variables que usaré posteriormente:

Hatua ya 19: Sanidi ()

Sanidi ()
Sanidi ()

.- 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:

Hatua ya 20: Kitanzi ()

Kitanzi ()
Kitanzi ()
Kitanzi ()
Kitanzi ()

.- Inicio el loop () ni pamoja na mafundisho ya hali ya juu ya uhamisho wa masomo na mafunzo ya kufurahisha zaidi kwa sababu ya masomo (figura siguiente). Yeye alisema 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. Si se pulsa, pongo a cero los valores de los motores, transmito y establezco un retardo donde no responde 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 utilizo, que posteriormente explicaré.

Hatua ya 21: Funcion LeePots ()

Funcion LeePots ()
Funcion LeePots ()

.- Leo el estado de los potenciómetros y de la batería. Los retardos (kuchelewesha) kwa sababu ya 5msg son para que las lecturas en los optoacopladores sean precisas. Hay que tener in the desu que des des que se activa el led, tarda unos microsegundos (unos 10) en setsifying the salida, as the que le leongo 5 msg for que las lecturas sean mas correctas. Je! Unashughulikia hali gani ya upendeleo.

Hatua ya 22: Funcion AjustePots ()

Vipodozi vya Funcion ()
Vipodozi vya Funcion ()

. Ni analizamos el potenciómetro wima, kwa mfano, los pasos están mostrados en la figura siguiente.

1.- El valor jumla en el movimiento (mínimo, reposo, máximo) ni kati ya 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 ();.

Hatua ya 23: Función DirMot ()

Función DirMot ()
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. 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 incorporo el giro sobre síísísísísí síre. 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), kwa sababu hiyo, nguvu zote zitatekelezwa hali ya uvumilivu (como mucho, para el motor). De ahí el uso de la variable de giro (VariableGiro). Esta variable 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.

Tiene varios casos, dependiendo de la posición del joystick:

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

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

.- Avance (con o sin giro)

.- Retroceso (con o sin giro)

Hatua ya 24: Dhibiti De Batería En El Joystick:

Dhibiti De Batería En El Joystick
Dhibiti 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 na hago parpadear el led (1 parpadeo = baja, 2 parpadeos = muy baja)

Hatua ya 25: Arduino (Vehículo)

Kiarduino (Vehículo)
Kiarduino (Vehículo)
Kiarduino (Vehículo)
Kiarduino (Vehículo)

Sobre la parte correspondiente a las comunicaciones (ESP-NOW) con joy joy, na comentaron anteriormente, kwa sababu hii analizo za kupumzika. Hay que tener en cuenta de que lo yeye simplificado bastante, para que si hay que hacer modificaciones, se trabaja mejor modificando el mando a distancia quer a tener que elonículo en la mesa y conectarlo al ordenador. Kwa hivyo, mimi ni mtaalam wa kupata kumbukumbu za data za kuhamisha na kupitisha vifaa vya L298N kwa sababu wewe ni moto. Priorizo la recepción del pulsador de emergencia y en los tiempos sin movimiento, analizo el estado de la batería.

.- Pines de entada salida de la placa Wemos y Vigezo vya usadas:

.- ya en setup () inicio los pines y su estado inicial. Kuweka upya kwa kuanzisha ESP-SASA:

Hatua ya 26: Vehículo, Kitanzi ():

Vehículo, Kitanzi ()
Vehículo, Kitanzi ()
Vehículo, Kitanzi ()
Vehículo, Kitanzi ()
Vehículo, Kitanzi ()
Vehículo, Kitanzi ()

.- En kitanzi (), mbali na mirad el estado de la batería, mandojecutar dos funciones, una comentada ya al hablar del ESP-NOW, recepción () ni ya utaftaji mpya wa L298N con los datos recibidos. Por 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 analizo si se ha pulsado "Emergencia" kwa mtaratibu wa la inmovilización. Sio data mpya za kuhamia kwa njia ya moto, ambayo inaweza kutekelezwa kwa njia ya maandishi ya maandishi ya kuandika L298N (). Si habari za nyasi, nyongeza kwa utaftaji upya wa la batri. Hati za kumbukumbu za nyasi, 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.

Hatua ya 27: Vehículo: - Función AndikaL298N ()

Vehículo: - Función AndikaL298N ()
Vehículo: - Función AndikaL298N ()
Vehículo: - Función AndikaL298N ()
Vehículo: - Función AndikaL298N ()

.- Función writeL298N () Rekodi za tabla del L298N, rahisi kutolea maelezo kuhusu dichos valores con los datos recibidos

Hatua ya 28: Mwisho:

Essto es todo. Hakuna es mi intención ganar concursos, sino aclarar conceptos. Kama UNA ilianza kufanya kazi hii, tunaweza kupata maoni yako kwa sababu ya maoni yangu. Si uno 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 sw Inglés

Adjunto los ficheros de arduino de ambos dispositivos.

Salama:

Miguel A.

Ilipendekeza: