1 http://arduino.cc/en/Reference/serial 2 http://www.ladyada.net/learn/arduino/lesson4.html Programacin de MATLAB. Para obtener ms informacin, vaya a 1 http://users.ece.gatech.edu/bonnie/book/TUTORIAL/ tut_1.html 2 http://www.mathworks.in/help/techdoc/matlab_ product_page.html Usted debe estar familiarizado con las estructuras de MATLAB, objetos, etc Conceptos bsicos de programacin. Serial Communication De serie significa "Uno tras otro". La comunicacin en serie es cuando transferimos datos un bit a la tiempo, uno despus del otro. La informacin pasa hacia atrs y adelante entre el ordenador y Arduino por, esencialmente, el establecimiento de un alfiler alto o bajo. Al igual que nos volvemos un LED y o?, Tambin podemos enviar datos. Un lado establece el pasador y el otro lo lee. MATLAB puede leer / enviar datos desde / hasta el puerto serie de la computadora y procesarla. Buffer Es ms importante para entender la naturaleza de BUFF ER para evitar errores ms tarde al escribir cdigos. Existe una BUFF ER entre los dos eventos de enviar y leer los datos. Digamos que un sensor est fluyendo de nuevo los datos de su programa, con ms frecuencia que su programa lo lee. Luego los datos se almacenan en una lista que llamamos un BUFFER. Uno escribe datos en l y otra lo lee, puede ser con diferentes velocidades. BUFFER son de longitud infinita.
Configuracin de puerto serie de objetos Esta lnea de comando slo construye el objeto. No comprueba / setup / inicializar la comunicacin. Este comando funcionar incluso si el puerto serie no est conectado a ningn dispositivo. Muchos objetos pueden ser creados para un puerto serie, pero slo uno se pueden conectar a la vez. (Veremos ms adelante) Esto muestra todas las propiedades del objeto puerto serie construida. En MATLAB, s es una estructura que tiene todas las propiedades anteriores. Podemos acceder / modificar utilizando punto (.) Operador. Tenga en cuenta que el Estado est cerrado. Esto implica que el puerto serie no est conectado. BaudRate Es la tasa de transferencia de los datos en bits / seg. Podemos cambiar la velocidad de transmisin utilizando el mtodo set de la siguiente manera- >> set(s, 'BaudRate', 4800); >> s.BaudRate = 4800; Tambin puede configurar la velocidad en baudios diferente al tiempo que el objeto del puerto serie de la siguiente manera- >> s = serial('COM1','BaudRate', 4800); Usted puede verificar el cambio utilizando get mtodo >> get(s, 'BaudRate') ans = 4800 Lo siguiente tambin se mostrar el resultado similar >> s.BaudRate ans = 4800 Tambin puede hacer lo siguiente para verificar el cambio- >> s Serial Port Object : Serial-COM1 Communication Settings Port: COM1 BaudRate: 4800 Terminator: 'LF' Communication State Status: closed RecordStatus: o_ Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0 Tenga en cuenta el nuevo valor de BaudRate muestra. Properties of Serial port object Como ya hemos dicho que s es de tipo de datos MATLAB llamada estructura (similar a las estructuras en C + +). Hay un montn de flexibilidad MATLAB proporciona para cambiar las propiedades del objeto de puerto serie. Los comandos son similares a lo que hemos utilizado para BaudRate. Utilice siguiente comando para enumerar abajo de todas estas propiedades y su valor actual- >> get(s) Para ver los valores posibles de todas estas propiedades, utilice- >> set(s) Setup the connection Antes de que realmente escribir los datos en el puerto serie, debe conectarse al dispositivo. Esto es como una cerradura de JAVA. Slo una entidad puede adquirir el bloqueo a la vez. Utilice fopen adquirir el bloqueo y la configuracin de la conexin. >> fopen(s) Observe la propiedad de estado del puerto serie objeto- >> s.Status ans = open Si el bloqueo ya est adquirido, fopen dar un error. Para evitar el error, compruebe primera la propiedad Status del objeto puerto serie. Si est cerrado luego tratar de configurar la conexin.
Writing to the Serial Port in MATLAB Escribir en el puerto serie en MATLAB MATLAB puede escribir cualquier tipo de datos en el puerto serie binaria, string, int, avena etc con precisin especificada. Utilizamos fwrite o fprintf para escribir datos. Transferir una matriz de int / float >> fwrite(s, vector array, 'precision'); La especificacin de precisin es el tipo de datos de la matriz de vectores. Puede ser 'int8', 'int16', 'oat32', 'oat64', 'uint8', 'char' etc. String- >> fwrite(s, 'string'); Usted puede utilizar fprintf para cuerdas, as- >> fprintf(s, 'string'); Puede especificar el formato en el fprintf para una cadena. Reading from Serial Port in MATLAB Lectura de puerto serie en MATLAB. fscanf se utiliza para leer los datos- >> data = fscanf(s); Esto leer todos los datos hasta que encuentra una nueva lnea / Terminator. Es por eso que utilizamos println en lugar de print. Siguiendo este procedimiento usted estar leyendo todos los datos enviados en un comando de Serial.println a la vez. En este caso, MATLAB convierte automticamente los datos en el formato correcto y lo almacena en la variable de MATLAB. Si no hay datos para leer, se producir una salida. Reading from Serial Port in MATLAB Para evitar el tiempo de espera, puede rst compruebe la propiedad del objeto bytesAvailable puerto serie al igual que lo hicimos en Arduino- >> if s.BytesAvailable > 0 data = fscanf(s); end