¿Como Mover un Servomotor con Matlab?

¿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 !

¿Como Conectar Arduino a Matlab R2018a?

MATERIALES NECESARIOS:

  • Servomotor Sg90 – Mg90s – Sg5010 – Mg995
  • Arduino Uno – Mega – Nano (No se realizaron pruebas con otras placas).Arduino uno

 

PASOS A SEGUIR:

  1. Abre Matlab y conecta tu Arduino al pc a través de su cable azul de conexión.
  2. .En la pantalla de códigos, verifica la conexión de Matlab con tu arduino a través del siguiente código:                                                                                                                                                     .
    a = arduino()
    
    
  3. 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.
  4. 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')
  5. En cualquiera de los dos casos expuestos anteriormente tendremos que recibir una respuesta positiva de Matlab como es la siguiente:
  6. 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;
  7. 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');
  8. Matlab nos indicara que procederá a cargar la librería servo a nuestro arduino como podremos confirmar en la siguiente imagen.
  9. 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.
  10. 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