Arduino y Matlab

Hola amigos, alguien ha podido utilizar la interfaz para matlab que esta en la pagina oficial de arduino???

http://www.arduino.cc/playground/Interfacing/Matlab

yo no, me lanza una serie de errores.

si alguien lo logra por favor ayudenme, gracias!

Supongo que necesitarás tener puesto Firmata en el Arduino, o si no hacer una comunicación serie normal.

Yo hace tiempo hice una prueba con Matlab, y me fue bien... Ningún problema..... Aunque lo hice por mi cuenta, no usé ningun tercer código (salvo la libreria del Nunchuck).
Probablemente la ayuda de Matlab es la mejor que he visto de un programa, y te viene con ejemplos y todas las funciones muy bien documentadas...

Hice esta tonteria, pero es de hace 2 años (recien empezando con Arduino):

Para usar Simulink como ponen ahi, necesitas tener instalado Real Time Workshop y Real Time Workshop Embedded Code.
Para el de Matlab, tienes que descargarte el archivo ArduinoIO.zip. Ahi tienes la clase de Matlab y ejemplos ya preparados.
NUNCA LO HE PROBADO. (Yo me hice todo por mi cuenta).

Si no quieres hacerte tu protocolo serie y el programa Arduino controlado como si fuera una targeta IO, puedes usar Firmware como indica Chiva. Firmware te convierte tu Arduino en una tarjeta IO controlado mediante comandos serie. Pero ésto es otro médodo distinto (aunque es el mismo concepto).

Hay un video seminario en la web de Mathworks que te explica como hacerlo (si no recuerdo mal ): "Learning Basic Mechatronics Concepts Using the Arduino Board and MATLAB". Te registras en la web y puedes verlos (es gratis).
http://www.mathworks.com/company/events/webinars/wbnr43537.html

Suerte!!

:wink:

Me refiero a que el Arduino debería tener algún sketch para interpretar los comandos, por si no lo ha descargado a la placa.

Yo ya te entendí, pero como usa su propio sketch, es para no confundir y que ponga firmdata.... :wink:

Es decir, necesitas:

  • Sketch dentro de Arduino (adiosrv.pde ó motorsrv.pde)
  • Clase de matlab (arduino.m)
  • Programa script *.m en matlab que ejecute el código deseado (ejemplo example_io.m).

Todo esto viene en un ArduinoIO.zip. Yo le mande un mail al autor y por lo menos eso es lo que me mandó.
Aunque repito que NO lo he probado, pero debería funcionar. Lo tengo guardado como referencia por si acaso algún día quiero hacer algo.

"The adiosrv.pde file is the "server" program that will continuously run on the microcontroller. It listens for MATLAB commands arriving from the serial port, executes the commands, and, if needed, returns a result.
This file is meant to be used for digital and analog read and write on every pin. Note that this is not for usage with the Motor shield.
For the motor shield, the file MOTORSRV.PDE needs to be used.
Please have a look at that section in case you are using the motor shield.
FILES:
Readme.txt : this file
contents.m : content file for the matlab help
arduino.m : defines the arduino class
adiosrv : folder containing adiosrv.pde sketch
motorsrv : folder containing motorsrv.pde sketch
examples : folder containing a few examples, specifically:
blink_challenge.m : blink challenge code
blinkchallenge.mdl : blink challenge schematics
example_io.m : IO example
example_mot.m : motor example
"

Si quieres usar Simulink, ya se necesita también tener los RTW y RTW Embedded Code instalados.

Esto es lo que tengo de la versión 2.2 - Apr 2010. Desconozco si hay actualizaciones.
El link que puse es de un video seminario de Mathworks del autor de la librería mostrando ejemplos (lo vi hace tiempo y no me acuerdo muy bien de cómo era... ;D. Aunque me debió gustar, porque escribí al autor para pedirle los archivos necesarios....).

:smiley:

Gracias a todos por sus respuestas,

@Igor : ya habia seguido los pasos que me dices,grabé el sketch en arduino y ejecuté el scipt en matlab pero no me reconoce ni la demo que viene para matlab.

de todas formas seguire probando, gracias.

Qué versión de Matlab tienes?? Necesitas al menos la version R2009a
Si tengo un rato lo pruebo..... :wink:

Te confirmo que con la version 2010a - Versión 7.10 me funciona bien.

En otro ordenador tengo la version R14 - Versión 7.0 y no funciona, ya que se necesita al menos tener la 2009a

¿puede ser ésto tu problema?

:wink:

Sí, es debe ser el problema, en estos momentos no recuerdo bien que versión esta instala da en el ordenador en el que lo probé, pero si estoy seguro de que no es la 2010, haré la prueba con una versión más reciente y comento.

GRACIAS!

Ok!, comprobado, mi problema era la versión del matlab.

Gracias por las respuestas.

Me alegro! :wink:

Por curiosidad, vas hacer algo "interesante" con matlab???