¿Como Mover un Servomotor con Matlab?
En la siguiente guía podrás aprender a mover un servomotor con matlab utilizando una placa de programación Arduino, como pueden ser arduino uno, mega o nano asi como el programa Matlab previamente configurado.
Si no has realizado la configuración previa de tu arduino, por favor ve a la siguiente guía !
MATERIALES NECESARIOS:
- Servomotor Sg90 – Mg90s – Sg5010 – Mg995
- Arduino Uno – Mega – Nano (No se realizaron pruebas con otras placas).
PASOS A SEGUIR:
- Abre Matlab y conecta tu Arduino al pc a través de su cable azul de conexión.
- .En la pantalla de códigos, verifica la conexión de Matlab con tu arduino a través del siguiente código: .
a = arduino()
- En caso de que te genere error y estés seguro de realizar todos los pasos correctamente de nuestra guía ¿Como conectar arduino a matlab? debes ingresar a tu administrador de dispositivos y verificar en que puerto COM se ha conectado tu arduino.
- Ahora sabiendo que tipo de placa tenemos y el puerto COM al cual esta conectada procedemos a escribir el siguiente código, para esta guía utilizaremos como ejemplo una placa arduino Mega conectada a un puerto COM 22, para tu caso debes cambiar mega = nombre de tu placa y COM22 = Puerto de conexión de tu placa. .
a = arduino('COM22','Mega2560')
- En cualquiera de los dos casos expuestos anteriormente tendremos que recibir una respuesta positiva de Matlab como es la siguiente:
- Ahora procederemos a realizar la configuración de nuestro programa para mover 1 servomotor, para ello procederemos primero a limpiar la variable a con lo cual escribiremos el siguiente código en nuestra ventana de comandos: .
clear a;
- Continuaremos indicándole a Matlab que conectaremos en nuestro caso un arduino mega2560 al puerto COM 17 y que utilizaremos la librería Servo con el siguiente código: .
a = arduino('COM17', 'Mega2560', 'Libraries', 'Servo');
- Matlab nos indicara que procederá a cargar la librería servo a nuestro arduino como podremos confirmar en la siguiente imagen.
- Teniendo cargada la librería Servo en nuestro arduino procederemos a indicar el pin donde estará conectado nuestro servomotor que en nuestro caso estará conectado en digital 2, como indica el siguiente esquema.
- Con el siguiente código que digitaremos en la ventana de comandos, indicaremos la conexión que acabamos de realizar a Matlab, el programa nos debe devolver las propiedades del servomotor.
Servomotores en Matlab
El manejo de un servomotor en Matlab es totalmente distinto a como lo podrías manejar en programas como LabView o Arduino IDE, en este programa :
- El angulo 0 es igual a un 0 lógico.
- El angulo 180 es igual a un 1 lógico.
Por consiguiente debemos realizar una regla de 3 para indicarle por ejemplo posicionar nuestro servomotor en 65 grados entonces:
Donde si 180 grados equivalen a un 1 lógico, entonces ¿65 grados a cuanto equivalen?… Para ello planteamos la siguiente ecuación:
Teniendo como resultado:
0.36 es el valor que colocaremos en Matlab quedando la formula de la siguiente manera: .
writePosition(s, 0.36);
Entendiéndose que el comando writePosition hace referencia a la escritura en nuestro arduino del angulo que deseamos en nuestro Servomotor.
Recuerda que S equivale en este caso al servomotor numero 1, si deseamos utilizar mas servomotores solo es necesario nombrarlos de otro modo como por ejemplo:
- S1 = Servomotor 1
- S2 = Servomotor 2
- S3 = Servomotor 3
De esta manera podemos concluir la guía de control de servomotores con Matlab, cualquier inquietud no dudes en plantearla en nuestro whatsapp +57 320 263 0996