Ich möchte Sensoren auf einem Arduino verwenden, um Werte in einem MATLAB- Programm zu steuern . Welche Kommunikationsmöglichkeiten habe ich?
Ich habe die Verarbeitung verwendet , um Daten zu empfangen, die über das serielle Kabel gesendet wurden, und diese Strategie hat ziemlich gut funktioniert. Kann ich mit MATLAB etwas Ähnliches tun? Ich bin etwas neu in MATLAB, daher wäre eine sanfte Anleitung großartig.
Ich bin nicht wirklich auf der Suche nach so etwas wie dem ArduinoIO- Paket - ich möchte eine separate Berechnung auf dem Arduino ausführen und gelegentlich mein MATLAB-Programm informieren (das gelegentlich die serielle Leitung abfragt , nehme ich an).
Antworten:
Mit dem MATLAB Support Package für Arduino (auch bekannt als ArduinoIO Package) können Sie dies ziemlich einfach tun.
quelle
Ich weiß nicht viel über MATLAB, aber ich habe einige Tutorials zum Lesen und Schreiben über die serielle Schnittstelle gefunden:
out
ist jetzt Ihre empfangenen Daten, und Sie können damit machen, was Sie wollen.Schließen:
Es stammt aus dem Schreiben und Lesen von Daten ( MATLAB / Daten- und Dateiverwaltung / Geräte mit serieller Schnittstelle ).
Aus Ihrer Frage gehe ich davon aus, dass Sie die Arduino-Seite der Dinge kennen (mit
Serial
).quelle
Ich habe eine Verbindung hergestellt und Nummern gesendet. Durch einfaches Ändern von Serial.write in Serial.print und von fread in fscanf können Sie klaren ASCII-Text anstelle von Binärdaten senden / empfangen.
Bei dieser Frage finden Sie sowohl Matlab- als auch Arduino-Code:
/programming/24368670/matlab-plot-serial-data-continously
quelle
clc löscht alle globalen Werte globaler Wert1 globaler Wert5 globaler Wert6 globaler Wert7 globaler Wert8 globaler Wert8 globaler Wert9 a = arduino ('COM4'); Wert = Nullen (); Wert1 = Nullen (); val5 = Nullen (); val6 = Nullen (); val7 = Nullen (); val8 = Nullen (); val9 = Nullen (); für i = 1: 1000
val1 (i) = analogRead (a, 0) / 2; % eingehend
val2 (i) = analogRead (a, 1) / 2; %Heizung
val3 (i) = analogRead (a, 2) / 2; %Kühlkörper
val4 (i) = analogRead (a, 5) / 2; % atmsphr
val8 (i) = analogRead (a, 6) / 2; %Druck
val9 (i) = analogRead (a, 7) / 2; %Druck
val (i) = analogRead (a, 0) / 2;
Wert (i) = (val1 (i) + val4 (i) + val3 (i)) / 3;
Wert1 (i) = (Wert8 (i) - Wert9 (i)); %Druck
val5 (i) = analogRead (a, 0) / 2% eingehend
val6 (i) = analogRead (a, 4) / 2% ausgehend
val7 (i) = Wert (i) -val6 (i) Diagramm (Wert, 'r'); Titel ('Kühlkörpertemperatur');
Ende
quelle