Skocz do zawartości

Komunikacja Arduino-Matlab


Furman_

Pomocna odpowiedź

Cześć!

Mam do zrobienia projekt, mianowicie muszę stworzyć symulator obiektów które mogę sterować za pomocą kontrolera PID. W GUI Matlaba muszę mieć 4 przyciski z gotowymi transmitancjami obiektów, np. serwosilnika. W menu również muszę zmieniać wartości PID a wyniki mają przestawiać się na wykresie też w tym menu. To wszystko ma być zaprogramowane na Arduino a Matlab służy wyłącznie do sterowania poprzez menu oraz przedstawiania wyników na wykresie. W jaki sposób mogę to zrobić aby Arduino współpracowało z Simulinkiem oraz Matlab GUI w tym samym czasie? Bardzo bym prosił o nakierowanie mnie jak to zrobić. 

Link do komentarza
Share on other sites

@Furman_ witam na forum 🙂 Ciekawy temat. Możesz komunikować się przez port szeregowy. Hasło "Arduino matlab communcate" jest dość trafne i jest sporo wyników w poradnikach wydawcy:

Kod na Arduino to zwykły serial:

byte incomingByte1;
 void setup(){
  pinMode(2,OUTPUT);
  Serial.begin(115200);
  Serial.println("Ready");       
}
 void loop() {
  digitalWrite(2,LOW); //turn off LED
  delay(500);
if (Serial.available() > 0) { 
 digitalWrite(2,HIGH); //flash LED everytime data is available
 delay(500);
 incomingByte1 = Serial.read(); //read incoming data
 Serial.println(incomingByte1,HEX); //print data
}
}

a kod Matlaba to:

 clear
 clc
s=serial('COM7','BaudRate',115200);
fopen(s);
 readData=fscanf(s) %reads "Ready" 
writedata=uint16(500); %0x01F4
fwrite(s,writedata,'uint16') %write data
 for i=1:2 %read 2 lines of data
readData=fscanf(s)
end
 fclose(s);
 delete(s);

Kiedyś kiedyś miałem laborke i mieliśmy suwaki w matlabie, możesz zrobić podobne i przy zdarzeniach zmian wartości wysyłać dane do Arduino i odczytywać odpowiedź. Powodzenia 😉 

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

@Gieneq Cześć, dzięki za odpowiedź 🙂 Byłbyś w stanie pokazać mi na jakimś przykładzie jak by to mniej więcej miało wyglądać w kodzie? Np. na tym suwaku o którym wspominasz albo pokrętle, jak mniej więcej napisać kod do tego. Temat jest dosyć ambitny a ja niestety zielony jeżeli o to chodzi. Mam też pytanie co do wywoływania tych transmitancji z przycisków, jak to zrobić?  Jeżeli chodzi o te fragmenty kodu co podałeś wyżej faktycznie widzę, że urządzenie prawidłowo komunikuje się z programem.

Dnia 1.02.2022 o 07:11, Gieneq napisał:

@Furman_ witam na forum 🙂 Ciekawy temat. Możesz komunikować się przez port szeregowy. Hasło "Arduino matlab communcate" jest dość trafne i jest sporo wyników w poradnikach wydawcy:

Kod na Arduino to zwykły serial:



byte incomingByte1;
 void setup(){
  pinMode(2,OUTPUT);
  Serial.begin(115200);
  Serial.println("Ready");       
}
 void loop() {
  digitalWrite(2,LOW); //turn off LED
  delay(500);
if (Serial.available() > 0) { 
 digitalWrite(2,HIGH); //flash LED everytime data is available
 delay(500);
 incomingByte1 = Serial.read(); //read incoming data
 Serial.println(incomingByte1,HEX); //print data
}
}

a kod Matlaba to:



 clear
 clc
s=serial('COM7','BaudRate',115200);
fopen(s);
 readData=fscanf(s) %reads "Ready" 
writedata=uint16(500); %0x01F4
fwrite(s,writedata,'uint16') %write data
 for i=1:2 %read 2 lines of data
readData=fscanf(s)
end
 fclose(s);
 delete(s);

Kiedyś kiedyś miałem laborke i mieliśmy suwaki w matlabie, możesz zrobić podobne i przy zdarzeniach zmian wartości wysyłać dane do Arduino i odczytywać odpowiedź. Powodzenia 😉 

 

Edytowano przez Furman_
Link do komentarza
Share on other sites

Dnia 4.02.2022 o 13:01, Furman_ napisał:

Byłbyś w stanie pokazać mi na jakimś przykładzie jak by to mniej więcej miało wyglądać w kodzie

Niestety nie, matlaba nie mam i używałem go kilka lat temu 😞 myslę że hasła "GUI, slider, gauge" mogą się przydać.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.