Furman_ Napisano Styczeń 31, 2022 Udostępnij Napisano Styczeń 31, 2022 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 More sharing options...
Gieneq Luty 1, 2022 Udostępnij Luty 1, 2022 @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: https://www.mathworks.com/matlabcentral/answers/80833-simple-matlab-arduino-serial-communication https://www.mathworks.com/help/supportpkg/arduino/ref/communicating-with-arduino-hardware.html 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 😉 1 Link do komentarza Share on other sites More sharing options...
Furman_ Luty 4, 2022 Autor tematu Udostępnij Luty 4, 2022 (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: https://www.mathworks.com/matlabcentral/answers/80833-simple-matlab-arduino-serial-communication https://www.mathworks.com/help/supportpkg/arduino/ref/communicating-with-arduino-hardware.html 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 Luty 4, 2022 przez Furman_ Link do komentarza Share on other sites More sharing options...
Gieneq Luty 7, 2022 Udostępnij Luty 7, 2022 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 More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Pomocna odpowiedź
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ę »