- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: uC -> rs232 -> Matlab / Plotten

  1. #11
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Klaro, hier ist der Code...:
    Code:
    clc
    clear
    try
    rmappdata(0,'A');
    rmappdata(0,'B');
    %rmappdata(0,'C');
    catch
    end
        s = serial('COM5','BaudRate',115200);
    fopen(s);
    s.BytesAvailableFcnMode = 'terminator';
    disp('Ready...')
    s.BytesAvailableFcn = @empfangen3D; 
    
    figure;
    [x,y] = meshgrid(-50:50:50,-50:50:50);
    z=[1 1 1; 0 0.1 0; -1 0 0];
    h=surface(x,y,z);
    axis equal;
    xlim([-50 50]) 
    ylim([-50 50]) 
    zlim([-50 50]) 
    view(0,30)
    setappdata(0,'h',h); 
    %setappdata(0,'z',z);
    Code:
    function empfangen3D (s, event)
    h=getappdata(0,'h');
    A=getappdata(0,'A');
    B=getappdata(0,'B');
    %C=getappdata(0,'C');
    %z=getappdata(0,'z');
    try
        string=fscanf(s);
        k = strfind(string, 'A');
        fff = strfind(string, 'B');
        %zzz = strfind(string, 'C');
        if k==1
            A=str2num(string(2:end));
            k=0;
        end
        if fff==1
            B=str2num(string(2:end));
            fff=0;
        end
        %if zzz==1
        %    C=str2num(string(2:end));
        %    zzz=0;
        %end    
        z=[-A+B -A -A-B; 0+B 0 0-B; A+B A A-B];
    catch
        disp('error reading from serial...');
        fclose(s)
    end
    
    setappdata (0,'A',A);
    setappdata (0,'B',B);
    %setappdata (0,'C',C);
    %setappdata (0,'z',z);
    try %ist die Figure geshclossen worden...
        %wohl zu viel code für diesen "interrupt"...
        set(h, 'zdata',z)
        axis equal;
        xlim([-50 50])
        ylim([-50 50])
        zlim([-50 50])
        %view(C,30)
        drawnow;
    catch
        fclose(s) %...dann wird serialport auch geschlossen.
        disp('...something went wrong or figure was closed.....')
    end
    end
    Wie man evtl. sieht ist das keine echte 3D Rotation. Aber mein Tricopter gibt auch keinen echten Winkel aus. Mal sehen ob ich das irgendwann noch ändere...
    Goran, hast du eine Idee wie man den Code optimieren könnte? Im Moment macht das BytesAvailable Callback die ganze Arbeit, dabei soll es doch eigentlich nur die Daten vom Serialport abholen. Man müsste eine weitere Function einbauen, die nur das zeichnen übernimmt. Wie das geht weiss ich aber nicht.... Müsste eine Function sein, die z.B. alle 1/25 sekunden aus den vorhandenen Daten den Plot updated.
    Denn es gibt Probleme wenn ich mehrere Datensätze übertrage, ich glaube das Callback ist dann überlastet.


    edit:
    mein µC sendet:
    "A123" --> Nick
    "B345" --> Roll
    Viele Grüße, William
    -> http://william.thielicke.org/

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Es ging mal wieder etwas weiter.....
    Video dazu:
    http://www.villalachouette.de/willia...er/matlab2.wmv

    Bild hier  
    Viele Grüße, William
    -> http://william.thielicke.org/

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    du phreak
    nicht sonderlich nützlich aber aber sieht toll aus ...
    wie bekommst du denn das Modell da rein? Ist das in Matlab gecodet oder irgendwie importiert?
    meine projekte: robotik.dyyyh

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Das ist mein CAD Modell vom Copter. Hab beim Fileexchange einen stl importer gefunden, dann hab ichs mal probiert. Geplottet ist das mit der "patch" Funktion. Die Programmierung hat sogar nur 1 Std. gedauert.
    nicht sonderlich nützlich aber aber sieht toll aus ...
    Was ist denn in diesem Forum schon nützlich...? Aber so ein Teil als Overlay bei einem onscreen Display... Das wär ma was.
    Viele Grüße, William
    -> http://william.thielicke.org/

  5. #15
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Guten morgen,
    Willa, wie hast Du das 3D-Modell Deines Kopters ins Mathlab bekommen? Ich möchte die Bewegungen meines Modell auf diese Art anzeigen lassen.

    Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Moin,
    man muss sein 3D modell als ascii .stl aus einer beliebigen CAD software exportieren. Dann gibts beim FileExchange die Function "CAD2MATDEMO", mit der man das importieren kann. In der Funktion sieht man dann wie es gemacht wird.
    Viele Grüße, William
    -> http://william.thielicke.org/

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress