Programm Ãœberholen in NXC

Mindstorms im Unterricht. Ideen, Vorstellungen

Moderator: Moderatoren

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 8. Dez 2010 06:19

Bringt dich wahrscheinlich auch nicht weiter :D :D :D :D
Real coders don't comment their code - it was hard to write, it should be hard to understand!

Nakiri
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 55
Registriert: 9. Okt 2010 12:39

Beitragvon Nakiri » 8. Dez 2010 13:33

also gut, jetzt bitte schnell antworten :P
ich hab vielleicht ne lösung:

RotateMotor(OUT_A,50,-100);
RotateMotor(OUT_B,50,100);
also das könnte schon richtig sein müsste man halt ausprobieren...
anstatt dem kann man ja auch:
RotateMotorEx(OUT_AB, 0, 0, 0, true, false); nehmen, bloß was sagen da jeweils die werte aus? als was is geschwindigkeit und was is grad?
aber andere möglichkeit:
RotateMotor(OUT_A,50,120); ist um 30 grad nach rechts
und
RotateMotor(OUT_B,50,120); ist um 30 grad nach links
denn wenn man den motor um 360° dreht, dann dreht sich der roboter ja um 90°, laut dreisatz müsste dann bei 30°, die motorumdrehung 120° sein...und wenn man am linken A-Motor dreht, dreht der roboter sich nach rechts, wenn man am rechten B-Motor dreht, dreht der roboter sich nach links....das könnte doch stimmen...bloß denk ich bewegt er sich hierbei halt auch bisschen vorwärts während wir bei der oberen methode beide motoren drehen lassen...aber das kann man ja vernachlässigen...
wie schauts aus? kann des richtig sein?

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 8. Dez 2010 13:39

Prinzipiel könnte es stimmen(hatte noch keinen dreisatz :D )
Aber es kommt auf die reifen- bzw. Kettengröße und das getriebe an(sage ich jetzt glaube ich zum 4. Mal :D )!
Real coders don't comment their code - it was hard to write, it should be hard to understand!

Nakiri
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 55
Registriert: 9. Okt 2010 12:39

Beitragvon Nakiri » 8. Dez 2010 13:45

360° = 90° durch 3
120°=30°

naja getriebe gibts ja keins, die reifen sind ja gleich an den motoren dran...

RotateMotorEx(OUT_AB,50,strecke*360,0,true,true);
was bedeuten hier nochmal die einzelnen elemente in der klammer?

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 8. Dez 2010 14:05

NXT pro hat geschrieben:RotateMotorEx(Ports, Leistung, Drehwinkel, Lenkung, Synchronisierung, Bremsen)

Lenkung, um Motoren mit unterschiedlicher Leistung/Drehrichtung laufen zu lassen.
Synchronisierung macht glaub ich, dass beide wirklich mit gleicher Geschwindigkeit fahren/besser für die Genauigkeit.
Bremsen ist wohl klar.
Der Befehl RotateMotorEx ist generell, um mehrere Motoren anzusprechen, mit diesen Sonderfunktionen.
Hoffe das hat dir geholfen :D :) :lol:

Ports, Leistung und Drehwinkel sollten wohl klar sein.
Das mit den 120 kannst du ja mal probieren. (mittlerweile verstehe ich das Prinzip)
Real coders don't comment their code - it was hard to write, it should be hard to understand!

Nakiri
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 55
Registriert: 9. Okt 2010 12:39

Beitragvon Nakiri » 8. Dez 2010 14:10

ups hab ich ja schonmal gefragt^^ tschuldige. also dann mach ich das so mit den 120...
das mit den 100 und -100 würde auch gehen? bloß das da die werte nicht stimmen...bloß is des dann so dass sich erst motor a um 100 und dann motor b um -100 dreht? oder passiert des gleichzeitig?

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 8. Dez 2010 14:17

void RotateMotorEx ( byte  outputs,
char  pwr,
long  angle,
char  turnpct,
bool  sync,
bool  stop  
) [inline]
Rotate motor.

Run the specified outputs forward for the specified number of degrees.

Parameters:
outputs  Desired output ports. Can be a constant or a variable, see Output port constants. If you use a variable and want to control multiple outputs in a single call you need to use a byte array rather than a byte and store the output port values in the byte array before passing it into this function.
pwr  Output power, 0 to 100. Can be negative to reverse direction.
angle  Angle limit, in degree. Can be negative to reverse direction.
turnpct  Turn ratio, -100 to 100. The direction of your vehicle will depend on its construction.
sync  Synchronise two motors. Should be set to true if a non-zero turn percent is specified or no turning will occur.
stop  Specify whether the motor(s) should brake at the end of the rotation.

Aus der NXC Hilfe ( http://bricxcc.sourceforge.net/nbc/nxcd ... index.html )
Kannst da mal reinschauen wenn du einen Befehl nicht weißt.
Real coders don't comment their code - it was hard to write, it should be hard to understand!

Nakiri
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 55
Registriert: 9. Okt 2010 12:39

Beitragvon Nakiri » 8. Dez 2010 14:48

also ich müsst nur noch wissen was das 0 beim

Code: Alles auswählen

NumOut(0,LCD_LINE2,strecke);


bei dem befehl hat^^ find ich auch nicht bis jetzt auf dieser nxc seite^^
und zeig mal bitte den genauen link wo du das mit dem rotate motorex her hast...ich blick auf der seite nicht auf anhieb durch und finde so typische befehle gar nicht^^
und was ich mich noch frag is: is des wirklich immer der until befehl? weil der heisst ja eigentlich "es wird gemacht bis Bedingung eintritt" und wir habens so übersetzt: "es wird gemacht nachdem Bedingung eingetreten ist"
geht das t-dem?

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 8. Dez 2010 15:11

Die 0 steht da das die Zahl beim ersten Pixel des Displays (ganz Links) anfängt.
Bei der Seite kannst du oben Links den Befehl eingeben, für den du Informationen brauchst.
Es wird gemacht bis Befehl wahr wird ist !while oder !if (! Für not)
Das passt schon mit dem until=nachdem.
Real coders don't comment their code - it was hard to write, it should be hard to understand!

Nakiri
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 55
Registriert: 9. Okt 2010 12:39

Beitragvon Nakiri » 8. Dez 2010 15:31

also gut, ich denk jetzt bin ich einigermaßen gut vorbereitet :P danke dir :) morgen wird mir dann gesagt was falsch ist am programm :P

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 9. Dez 2010 13:40

Und, wie ist es gelaufen?
Was war am Programm falsch?
Real coders don't comment their code - it was hard to write, it should be hard to understand!

Nakiri
Hilft fleißig mit!!!
Hilft fleißig mit!!!
Beiträge: 55
Registriert: 9. Okt 2010 12:39

Beitragvon Nakiri » 9. Dez 2010 21:53

also ich habs alles erzählt und die hatten nur paar fragen wieso, ich dies oder das so gemacht hab, aber das was falsch ist hat niemand gesagt^^
und da war auch ein professor dabei, der hätte sich dann glaub ich beschwert... aber ausprobiert hab ich dann doch nicht weil dafür war nicht genügend zeit :D
also hast deine arbeit gut gemacht :D DANKE :P
ich bekomm denk ich noch vll ne schriftliche verbesserung von meinem programm falls was falsch ist, dann meld ich mich nochmal persönlich :P

ansonsten denke ich kann dieser threat gelöscht werden!

Benutzeravatar
NXT pro
Super-Enorm-Viel-Schreiber
Super-Enorm-Viel-Schreiber
Beiträge: 930
Registriert: 27. Sep 2010 21:38

Beitragvon NXT pro » 10. Dez 2010 06:16

Gesperrt meinst du!
Gelöscht werden im mindstormsforum keine beiträge.
Real coders don't comment their code - it was hard to write, it should be hard to understand!


Zurück zu „Unterricht & AG“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss