GLBasic forum

Other languages => GLBasic - de => Topic started by: sechsrad on 2008-Mar-08

Title: routine optimieren
Post by: sechsrad on 2008-Mar-08
hallo, ich habe hier ein programm welchs ein viereck darstellt mit 4 rädern und wo die vorderräder gelenkt  werden. bedienung mit den pfeiltasten
da ich es auf dem gp2x einsetze für meinen roboter möchte ich es optimieren. wer kann hier weiterhelfen?

Code (glbasic) Select
//charosserie
CREATESCREEN 1,1,20,40
USESCREEN 1
DRAWRECT 0,0,20,40,RGB(255,255,0)

//rad
CREATESCREEN 2,2,6,16
USESCREEN 2
DRAWRECT 0,0,6,16,RGB(0,255,0)

USESCREEN -1

x=40*1.6
y=40*1.6

x2=x/2
y2=y/2

mx=100
my=100


WHILE TRUE

     IF KEY(208)            // pfeil oben
        INC phi, phid
        x1 = SIN(phi)*1
        y1 = COS(phi)*1
        INC mx, x1
        INC my, y1
    ENDIF

    IF KEY(200)            // pfeil unten
        DEC phi, phid
        x1 = SIN(phi)*1
        y1 = COS(phi)*1
        DEC mx, x1
        DEC my, y1
    ENDIF

    IF KEY(203) THEN DEC phid, 0.05 ; GOSUB drehen // pfeil links

    IF KEY(205) THEN INC phid, 0.05 ; GOSUB drehen // pfeil rechts

    RotoPivot(3, mx, my, x2,y2, phi)
    SHOWSCREEN

WEND

SUB drehen:
    IF phid > 1.55
    DEC phid, 0.05
    ELSEIF phid < -1.55
    INC  phid, 0.05
    ENDIF

    phi1=phid*20
    CREATESCREEN 3,3,x,y
    USESCREEN 3
    DRAWSPRITE 1,x2-10,y2-20           // charosserie
    RotoPivot (2,x2-10,y2-15,3,8,-phi1)    // rad vorn links
    RotoPivot (2,x2+10,y2-15,3,8,-phi1)    // rad vorn rechts
    RotoPivot (2,x2-10,y2+15,3,8,0)        // rad hinten links
    RotoPivot (2,x2+10,y2+15,3,8,0)        // rad hinten links
    USESCREEN -1
ENDSUB

FUNCTION RotoPivot: id, x,y, px, py, phi
LOCAL sx, sy, rx,ry
LOCAL cosp, sinp
    cosp=COS(phi)
    sinp=SIN(phi)

    GETSPRITESIZE id, sx, sy

    sx=sx/2
    sy=sy/2

    DEC px, sx
    DEC py, sy
    rx = px*cosp + py*sinp
    ry = py*cosp - px*sinp

    INC rx,sx
    INC ry,sy

    ROTOSPRITE id, x-rx, y-ry, phi
ENDFUNCTION
Title: routine optimieren
Post by: BumbleBee on 2008-Mar-08
Hi
Mach doch gleich ein Geschicklichkeitsspiel daraus. Um Hindernisse herumfahren und so. :)
Erzähl doch mal was über das Projekt mit dem Roboter. Was macht der eigentlich so genau? Hilft der dann im Haushalt mit, mäht der den Rasen, geht der etwa einkaufen? Wird es die Welt verändern? ;) War nur Spass.  Wäre interessant zu erfahren was du da eigentlich genau machst.

Cheers
Title: routine optimieren
Post by: sechsrad on 2008-Mar-08
QuoteWäre interessant zu erfahren was du da eigentlich genau machst.
na jut,

ich habe an der seriellen schnittstelle ein atmegaboard mit dem atmega32 oder auch manchmal den atmega644 eingesteckt.  ich möchte nun das das glbasic einen visuellen roboter darstellt mit einem ultraschallsensor der auf einem screen rumfährt wo hindernisse (würfel/farbflächen bei 2d) aufgestellt sind.

der visuelle roboter soll nun hindernisse erkennen und soll auf befehlen reagieren (vor,zurück,links,rechts, stop). die erkennungsdaten soll der visuelle roboter nun über die serielle schnittstelle zum  atmegaboard senden bzw empfangen

das atmegaboard wird mit bascom programmiert und soll die daten auf nehmen und dem roboter befehle senden wie er sich nun zu verhalten hat (vor,zurück,links,rechts, stop).

auch sollen sogenannte scandaten von den hindernissen(screeen) zum atmegaboard gesendet werden.diese daten werden vom atmegaboard auf eine sd-karte(128mb) geschrieben.

dann kommt das zweite spielchen.

das atmegaboard sendet mir  auf verlangen die daten der sd-karte zum pc , aber nicht mehr zum visuellen roboter sondern zu einem anderen programm welches jetzt aus den scandaten eine umgebung zeichnet.

damit kann ich prüfen, wie genau ich den atemage programmiert habe,das dieses programm darauf mit einem roboter dann einen raum einscannen kann.

dieses ist eine aufgabe die ich mir gesetzt habe.

dieses ...einfach so rumfahren usw ....ist nicht mein ding.

ich möchte mit hardware-atmegaboard und hardware-pc zusammenarbeiten. und irgendwann habe ich auch den gp2xf200 soweit, das er mir darin den pc ersetzt.

ist ein anspruchsvolles hobby, auch finanziell. aber es bindet einen sehr lange und ist keine augenblickanschaffung bzw augenblickbeschäftigung.

muss man sich vorher reichlich überlegen, bevor man in diese fussspuren lang läuft.
Title: routine optimieren
Post by: BumbleBee on 2008-Mar-08
Na da hast du dir ja was vorgenommen. :D Aber ein schönes Hobby.

Cheers
Title: routine optimieren
Post by: sechsrad on 2008-Mar-08
ist wie bei der modelleisenbahn : das ding darf nicht fertig werden.

schnüffel hier mal rum : http://www.mikrocontroller.net/forum/mikrocontroller-elektronik

es ist für jedem etwas da. vielleicht funkt es auch bei dir...!

mfg
Title: routine optimieren
Post by: Schranz0r on 2008-Mar-09
Schweres hobby :)
Aber doch irgendwo interessant!

Ich erwarte bei Erfolg ein Video ;)
Title: routine optimieren
Post by: sechsrad on 2008-Mar-09
http://www.roboternetz.de/phpBB2/album_pic.php?pic_id=2060

da siehst du schon das atmegaboard am notebook  , seriell.
da sind 2 atmega32 drauf und 1 atmega8 ,

können auch so gesteckt werden mit den verbindungsdrähten das alle oder auch nur zwei zusammenarbeiten.
 
das andere ist nur noch eine programmiersache.

das ist der umgebaute roboter von der kette auf räder :

http://www.roboternetz.de/phpBB2/album_pic.php?pic_id=1994

mfg
Title: routine optimieren
Post by: Kitty Hello on 2008-Mar-09
Cooles Gerät! Fette Sache. Ich dachte das wär' so ein Schuhkarton auf Rädern.