Este tutorial trata sobre la interfaz de un servomotor con el módulo WiFi nodemcu esp8266. Nodemcu proporciona una página web que enumera los controles del servomotor. El usuario puede conectarse a nodemcu esp8266 y acceder a la página web. Para abrir la página web en el navegador, el usuario debe ingresar la dirección HTTP del servidor que sirve la página web. Hay dos tipos de servomotores: servomotores de CA y CC. Los servos de CA funcionan con corriente alterna y consumen mucha energía. Mucha potencia significa que pueden soportar cargas más pesadas. Los servos de CA se utilizan en aplicaciones industriales. Los servos de CA pueden mover su eje con precisión a cualquier posición angular o lineal. Tienen un controlador con un mecanismo de retroalimentación que se utiliza para ajustar las variables de control. Los servomotores de CC, por otro lado, son populares en aplicaciones medianas como juguetes, etc. Los servomotores de CA y CC pueden girar hacia adelante y hacia atrás con una rotación de 360°. Se puede controlar fácilmente la velocidad y la velocidad de los servomotores utilizando cualquier controlador de servomotor disponible comercialmente.
Servomotor en tutorial
En este tutorial usaré un servomotor de CC. Los servomotores de CC son populares entre los fabricantes de circuitos de bricolaje. También se utilizan en juguetes y se conocen como servomotores RC. Los servomotores Rc son sistemas pequeños, económicos y fáciles de usar que involucran microcontroladores o chips (usados en juguetes) dedicados a un propósito singular. Los servos RC sólo pueden girar 180 grados. Su propósito es proporcionar una localización precisa en campos angulares de 0 a 180 grados. El servomotor Rc que utilizaré en el proyecto es el tower pro micro servo sg90. El servomotor Sg90 funciona a 4,8 voltios. El pequeño par producido por el SG90 a 4,8 voltios puede desplazar una carga de 1,8 kg por cm. La rotación del eje del servomotor SG90 depende de la frecuencia de la señal PWM y del ciclo de trabajo. El requisito de frecuencia Pwm para la mayoría de los servomotores RC es de 50 Hz. Pueden girar entre 0 y 180 grados en el ciclo de trabajo de la señal pwm entre 1 milisegundo y 2 milisegundos. El ciclo de trabajo de 1 milisegundo a una frecuencia de 50 Hz mueve el eje del servo a un ángulo de 0 grados. 1,5 ms se mueve a 90 grados y 2 ms a 180 grados. Usted mismo puede calcular los ciclos de trabajo para otros ángulos. Por ejemplo, para una rotación del eje de 45 grados, el ciclo de trabajo será 45/180 = 0,25, por lo que 1 (0 grados) + 0,25 = 1,25 ms.
|
Requisitos de señal pwm del servomotor Sg90, ciclo de trabajo y frecuencia
|
A continuación se muestran la imagen y la distribución de pines del servomotor Tower Pro sg90. El servomotor Tower Pro tiene 3 pines. Dos son pines de alimentación y el tercero es pin de control PWM. Puede conectar el cable rojo a +5 voltios. Haz un fondo negro. Conecte el cable amarillo a la señal PWM del controlador que está utilizando en el proyecto.
servotorre pro sg90
Diagrama del circuito del proyecto.
Nodemcu esp8266 funciona con 3,3 voltios y el servomotor requiere 5 voltios para su funcionamiento. Por tanto, necesitamos fuentes de alimentación diferentes para ambos periféricos. El Nodemcu se alimenta del puerto USB de la computadora y el servo se alimenta de otro adaptador de 5 voltios. El pin GPIO-2 o D4 de nodemcu esp8266 12e emite una señal pwm para la rotación del servomotor. La salida de señal Pwm del nodemcu también está en formato TTL de 3,3 V. También debe aumentarse a 5 V TTL antes de alimentar el servomotor. Utilicé un par de transistores para este propósito. El primer transistor aumenta la señal pwm a 5 voltios, pero invierte la señal. La salida del primer transistor se alimenta a la entrada/base del segundo transistor. El segundo transistor invierte la señal nuevamente y la devuelve a la forma original con el nivel TTL elevado a 5 v. Tenga en cuenta que la tierra del nodemcu y la fuente de alimentación de 5 voltios están conectadas a tierra en común en el circuito.
Servomotor con módulo WiFi nodemcu esp8266
El código del proyecto está escrito en Arduino IDE. Afortunadamente, Arduino cuenta con muchas bibliotecas para cada función que ofrece. Para interconectar el servo con Arduino o placas compatibles con Arduino, existe una biblioteca predefinida llamada "Servo.h". Incluí esta biblioteca en mi código y llamé a sus funciones en un código que es bastante fácil de usar. Primero se importó en código la biblioteca 'ESP8366WiFi.h'. Esta biblioteca contiene funciones utilizadas para inicializar el servidor nodemcu e iniciar el WiFi nodemcu esp8266. Luego se importó la biblioteca 'Servo.h'. Después de eso, ingrese el SSID y la contraseña de la red WiFi a la que desea conectar su nodemcu. Espero que estés haciendo este proyecto de bricolaje en casa, en este caso tendrás que conectar tu nodemcu al enrutador WiFi de tu hogar.
const char* ssid = “Su SSID”;
const char* contraseña = “Tu contraseña de Wifi”;
Ingrese el SSID y la contraseña entre comillas. En la función de configuración, el canal de comunicación serie Arduino se abre a una velocidad de 115200 bps. Después de configurar el pin de salida Nodemcu PWM (modulación de ancho de pulso). Luego se registra la solicitud de nodemcu a su WiFi para una asignación de IP y el comienzo de las instrucciones del código del servidor.
Simplemente haga el circuito y cargue el código anterior en su módulo WiFi nodemcu. Antes de cargar, asegúrese de que esté seleccionado el tablero correcto en la administración de tableros. Después de cargar, abra el monitor serie nodemcu. Tan pronto como abra el monitor serie, verá que nodemcu le solicita a su enrutador una asignación de IP. Después de la asignación de IP, nodemcu iniciará su servidor e imprimirá la dirección del servidor en el monitor serie. Esta dirección es en realidad la dirección de la página web que tiene controles de servomotor. Debes introducir esta dirección en tu navegador. Si no ve nada en el monitor serie o solo caracteres completos y arbitrarios, busque la velocidad en baudios en la ventana del monitor serie. Debe configurarse en 115200. Verifique posibles conexiones perdidas.
|
|
Nota: Tanto el servidor (nodemcu) como el cliente (móvil, escritorio, portátil y notebook) deben estar conectados a la misma red WiFi para comunicarse entre sí. Si alguien está en otra red, no podrá cargar la página web en el navegador.
Cuando obtiene la dirección del servidor de la ventana del monitor serie Arduino como la que se muestra arriba. Debes ingresarlo en tu navegador. Si su servidor y cliente están en la misma red, verá la página de control en su navegador. Los controles de la página de control se proporcionan a continuación.
Cuando obtiene la dirección del servidor de la ventana del monitor serie Arduino como la que se muestra arriba. Debes ingresarlo en tu navegador. Si su servidor y cliente están en la misma red, verá la página de control en su navegador. Los controles de la página de control se proporcionan a continuación.
Servomotor con botones de control de página web del módulo WiFi nodemcu esp8266
La página de control muestra el estado actual del eje del servomotor. También contiene 3 botones. Puede girar el eje del servomotor en estos tres ángulos definidos. ¿Qué pasa cuando presionas el botón? La función de bucle en el código se ejecuta continuamente. Esperando solicitud del cliente. Cuando llega una solicitud, verifica el contenido de la solicitud, los decodifica y realiza la función solicitada por el cliente (Mueve el eje del servomotor). Antes de cerrar la función de bucle de conexión responde al cliente el estado actual del eje del servomotor.
Trabajo futuro
Trabajo futuro
Este tutorial se limita a sólo tres ángulos. Para el futuro, se podría definir un cuadro de texto en la página HTML y tomar el ángulo de rotación del eje como entrada del usuario y rotar el eje según lo ingresado. Esto se puede hacer usando formularios HTML y el botón de enviar.
Descarga el código del proyecto. La carpeta contiene el archivo .ino del proyecto Arduino. El código es de código abierto. Puedes editarlo y modificarlo según tus necesidades. Por favor envíenos sus comentarios sobre el proyecto.
Códigos/Archivos