Tutorial en profundidad sobre la gestión de servos de ESP32 | Servos gestionados por Internet

En este tutorial, aprenderemos a manejar un servomotor utilizando la placa de crecimiento ESP32. Para mostrar cómo funciona la gestión del servo del ESP32, primero haremos un barrido por software en el que el servo oscile hacia delante y hacia atrás. A continuación veremos cómo se puede manejar el Servo mediante un Potenciómetro. Por último, ya que el ESP32 es todo un crecimiento de LOT, vamos a implementar un Servo gestionado por Internet utilizando el Desafío ESP32.

Ya he hecho un servo gestionado por Internet utilizando el ESP8266. Si te gusta eso, pruébalo.

NOTA: El servo gestionado por Internet que utiliza el ESP8266 fue una de las primeras implementaciones. Si quieres tener un diseño moderno (como el realizado en este reto), puedes observar pasos comparables y aplicarlo a la placa ESP8266 NodeMCU de forma adecuada.[ESP32 Projects for Beginners]

Condiciones

No hay mucho más que continuar, sin embargo hay dos iniciativas anteriores de ESP32, que deberían ayudar a poner en práctica este Desafío de Gestión de Servos de ESP32 de forma sencilla. El primero es el Tutorial de PWM de ESP32 y el segundo es el Tutorial de Servidor de Internet de ESP32.

Como alternativa al uso de una biblioteca para la gestión del servomotor, utilizaré el periférico PWM de ESP32 para gestionar el servomotor. Así que es bueno entender cómo puedes generar indicadores PWM en el ESP32 utilizando el periférico LEDC.

El siguiente requisito puede ser muy fácil. Si quieres construir un ESP32 basado principalmente en el Desafío de los Servos Administrados por Internet, es obligatorio construir una página web y configurar el ESP32 como servidor de Internet para alojar esa página web. Tener datos sobre cómo puedes crear un servidor de Internet ESP32 debería ser muy útil.

Así que completa estas tareas antes de seguir haciendo más.

Una nota temporal sobre los servomotores

Los servomotores se utilizan en todas partes: robótica, industrias, automatización, máquinas CNC e incluso iniciativas de bricolaje. Ya que nos dedicamos a los servomotores pequeños y de precio razonable para utilizarlos en nuestras tareas, permítenos hablar de dos de los servomotores más utilizados: el SG90 y el MG 996R.

SG-90-MG-996R-Servo-Motors

Cada uno de estos servomotores es de bajo coste y simplemente están en todas partes. El SG90 es un servo de plástico con un par de 1,8 kgf.cm, mientras que el MG 996R es un servo de metal con un par de 9,4 kgf.cm.

Si consultas la hoja informativa de estos servos, el SG90 tiene un ángulo de giro de 180 mientras que la MG 996R sólo tiene 120 giro.

Un nivel esencial que hay que tomar de las hojas de datos es que la Señal de Gestión de cada uno de estos servos es una Señal PWM con un intervalo de 20ms (50 Hz) y el periodo de latido debe estar entre 1ms y 2ms.

Período Servo-PWM-PWM

Cuando el periodo de latido es de 1,5 ms, el Servo está en el lugar «central». Si se utiliza un pulso de 1 ms, el servo late hasta la izquierda, mientras que un pulso de 2 ms hará que el servo se traslade hasta el final.

NOTA: Utilizaré los servomotores SG90 para todas las tareas, ya que es un extra en general y usado.

Gestión de servos de ESP32

Como hemos hablado antes, como alternativa al uso de librerías «Servo», utilizaremos el Controlador PWM del LEDC para establecer la señal de gestión del Servo. El factor atractivo del Controlador PWM LEDC es que tienes una gestión completa de los parámetros de la Era de la Señal PWM, es decir, la frecuencia, la decisión y el ciclo de responsabilidad.

La frecuencia de la señal PWM, que debe ajustarse a las especificaciones del servomotor, está preparada a 50 Hz. Se utiliza una decisión típica de 8 bits. La mitad esencial es establecer el ciclo de responsabilidad.

El Ciclo de Responsabilidad de la Señal PWM determina el lugar del Servo y oscila entre 1ms para la izquierda excesiva, 2ms para la derecha excesiva y 1,5ms para las posiciones medias.

Dado que el ciclo de la responsabilidad suele representarse como un reparto, vamos a utilizar lo mismo. Así que en cuanto establezca el ciclo de responsabilidad en 50, eso significa un ciclo de responsabilidad del 50%.

Elementos necesarios

  • Consejo de crecimiento del DevKit ESP32
  • Servomotor
  • potenciómetro de 10 KΩ
  • Bandeja para el pan
  • Conexión de cables

Diagrama del circuito

La siguiente imagen muestra las conexiones entre el ESP32 y el servomotor. La tensión de trabajo de los servomotores SG90 y MG 996R es de 4,8 V. Entonces, une el cable VCC (rosa) con el VIN del ESP32. El VIN es la entrada del USB. Así que probablemente estará en torno a los 5V. Conecta el cable GND (marrón) a uno de los muchos pines GND del ESP32.

Circuito de servocontrol ESP32

Por último, el cable de gestión del PWM (naranja). Conecta este cable a cualquiera de los pines PWM del ESP32. Como no hay pines PWM dedicados en el ESP32 y básicamente puedes configurar cualquier pin GPIO como PWM, he relacionado el cable de gestión del servo con el GPIO 16 (marcado como RX2 en la placa).

Controlar el servomotor mediante la serie

Dentro del primer reto, nos permite ver cómo se puede gestionar el servomotor introduciendo los valores de «Ciclo de Responsabilidad» desde Serial Enter. Este reto consiste simplemente en determinar los valores intensos del «Ciclo de Responsabilidad» para la rotación completa del Servo.

Código

En mi caso, los valores intensos del ciclo de responsabilidad son 5 para la izquierda excesiva y 32 para la derecha excesiva. Estos son los límites del ciclo de responsabilidad que debo observar para las posiciones excesivas. Estos valores pueden ser totalmente diferentes para ti, ya que cada Servo es totalmente diferente.

Así que para investigar los límites, añade el código al ESP32 después de hacer las conexiones, abre el monitor serie, introduce valores de ciclo de responsabilidad totalmente diferentes para comprobar y decir los extremos.

Servo escáner ESP32

Utilizando los límites de los ciclos de responsabilidad antes mencionados, escribiremos un programa de Servo Barrido, que sea capaz de oscilar constantemente entre las posiciones izquierda y derecha intensas. Aquí está el código para ello.

Código

Control del depósito-Serial-ESP32

Alterar el lugar del servo mediante POT

Otro reto útil es modificar exactamente el lugar del servomotor mediante un potenciómetro. Un potenciómetro de diez KΩ está relacionado con un pin ADC del ESP32. Utilicé ADC1_CH0, que está marcado como VP en la placa de crecimiento.

Los valores digitales de la salida del ADC, que deben estar dentro del rango 0 – 4095 (ya que se trata de un ADC de 12 bits) se asignan a los extremos del ciclo de responsabilidad (5 y 32).

Diagrama del circuito

Circuito de servocontrol de ESP32 con potenciómetro

Código

Ajustable-POT-ESP32

ESP32 Servo gestionado por Internet

El último reto para la gestión de los servos de ESP32 es el servo gestionado por Internet. El método para crear el servidor en línea con una página web en línea es idéntico al que indicamos en el tutorial de ESP32 Internet Servo.

Para gestionar la ubicación del Servo, he optado por un Slider que se muestra en la página web. Porque el Servo SG90 se situará entre 0 e 180el ajuste de las unidades de deslizamiento fuera del ángulo del servo y su rango es, correctamente, de 0 a 180.

Después de cambiar la ubicación del deslizador, el servidor recibe una petición «GET» junto con el ángulo especificado en la petición. Ahora tenemos que descodificar el ángulo de esta petición y asignar el ángulo a los valores del ciclo de responsabilidad medidos anteriormente (5 y 32).

Código

He comentado todas las partes esenciales del código. Modifica el código según tus necesidades (el estilo CSS, el deslizador, el ciclo de responsabilidad del servo varían, etc.). Además, cambia el SSID y la contraseña dentro del código (cepas 5 y 6).

La siguiente imagen es una captura de pantalla de la página web Managed Servo net del ESP32, a la que se accede utilizando el navegador Chrome en un ordenador portátil.

Página servo-controlada por la web

Cada vez que cambiamos la ubicación del deslizador, el servidor web del ESP32 recibe una petición y la siguiente imagen es una pantalla de visualización del monitor de serie que muestra la petición.

ESP32-Servidor-Web-Reserva-Solicitud

También puedes entrar en la página web en el teléfono móvil, siempre que cada ESP32 y el teléfono móvil estén relacionados con la misma comunidad Wi-Fi. La siguiente imagen es una captura de pantalla de una página web de la red a la que se accede desde un teléfono móvil.

ESP32-Web-Servo-Móvil

Conclusión

Un completo tutorial sobre cómo controlar los servomotores con la placa de crecimiento ESP32. Entendiste cómo funciona la gestión de servos del ESP32, cómo puedes calcular el ciclo de responsabilidad de la señal PWM del servo, las formas alternativas de gestionar un servo: Serial Enter, Sweep, utilizando el potenciómetro y, finalmente, todo un software en Internet que utiliza el ESP32 para gestionar un servo.

Lee:  ¿Cómo se puede cargar con 120-230 V CA y el panel fotovoltaico de cadena del inversor?
Javired
Javired

Deja una respuesta

Tu dirección de correo electrónico no será publicada.