Hola, estaba mirando como graficar las entradas del microcontrolador con octave. He visto este enlace que hace lo mismo pero con Matlab, he intentado copiarlo directamente a Octave a ver que pasaba. 1) Octave no trae de serie las funciones y por tanto hay que descargarse el paquete por separado, 2) no lo acaba de traducir bien.
El texto que quiero traducir es:
PD: la segunda linea la he añadido yo
No me funciona la función scanf: valor_potenciometro=fscanf(puerto_serial,'%d')
En concreto la función scanf, deduzco que está en el paquete especializado en la lectura de datos... pero no sé como cambiarlo. El link de la descripción de las funciones es: http://octave.sourceforge.net/instru.../overview.html
Estoy pensando que quizá tengo que escribir, para evitar posibles confusiones entre esta función y otra fopen que pueda traer por defecto octave.
@octave_serial/fopen en vez de open, etc.
Investigaré. Si alguno tiene alguna sugerencia y me pueda ayudar, queda agradecido.
Muchas gracias por adelantado, Saludos.
- - - Actualizado - - -
Hola, no lo he podido solucionar lo que proponía en el hilo. Pero ya que he visto que las nuevas versiones del Arduino IDE (que por cierto, no vienen en el centro de software de Ubuntu) crean su propia gráfica, ya no me hace falta verlo en un programa externo.
Gracias.
El texto que quiero traducir es:
PD: la segunda linea la he añadido yo
No me funciona la función scanf: valor_potenciometro=fscanf(puerto_serial,'%d')
Código:
function Arduino_octave(numero_muestras) pkg load instrument-control close all; clc; y=zeros(1,1000); %Vector donde se guardarán los datos %Inicializo el puerto serial que utilizaré puerto_serial=serial('/dev/ttyACM0',9600); %Abro el puerto serial fopen(puerto_serial); %Declaro un contador del número de muestras ya tomadas contador_muestras=1; %Creo una ventana para la gráfica figure('Name','Serial communication: Matlab + Arduino. Mario Pérez Esteso') title('SERIAL COMMUNICATION MATLAB+ARDUINO'); xlabel('Número de muestra'); ylabel('Voltaje (V)'); grid on; hold on; %Bucle while para que tome y dibuje las muestras que queremos while contador_muestras<=numero_muestras ylim([0 5.1]); xlim([contador_muestras-20 contador_muestras+5]) valor_potenciometro=fscanf(puerto_serial,'%d') y(contador_muestras)=(valor_potenciometro(1))*5/1024 plot(contador_muestras,y(contador_muestras),'X-r') drawnow contador_muestras=contador_muestras+1 end %Cierro la conexión con el puerto serial y elimino las variables fclose(puerto_serial); delete(puerto_serial); clear all; end
Estoy pensando que quizá tengo que escribir, para evitar posibles confusiones entre esta función y otra fopen que pueda traer por defecto octave.
@octave_serial/fopen en vez de open, etc.
Investigaré. Si alguno tiene alguna sugerencia y me pueda ayudar, queda agradecido.
Muchas gracias por adelantado, Saludos.
- - - Actualizado - - -
Hola, no lo he podido solucionar lo que proponía en el hilo. Pero ya que he visto que las nuevas versiones del Arduino IDE (que por cierto, no vienen en el centro de software de Ubuntu) crean su propia gráfica, ya no me hace falta verlo en un programa externo.
Gracias.