AEP Gruppe B2: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
(→Aufbau) |
||
Zeile 3: | Zeile 3: | ||
== Aufbau == | == Aufbau == | ||
[[Datei:AEP Gruppe B2 Bild 2.JPG|200px|thumb|right|Seitenansicht]] | [[Datei:AEP Gruppe B2 Bild 2.JPG|200px|thumb|right|Seitenansicht]] | ||
Das Fahrzeug wurde zunächst mit einer 1:1 Übersetzung über eine Kette zu einem Differential angetrieben, allerdings erwies sich diese Art von Antrieb als zu störanfällig und wurde durch einen 1:1 Zahnradantrieb zu einem Differential ersetzt. Die Lenkung wurde zunächst von Zahnräder übersetzt, welches allerdings Aufgrund der Genauigkeit durch eine Direktlenkung ersetzt wurde. | |||
Es wurden neben dem NXT-Baustein an sich ein Antriebs- und ein Lenkungsmotor, ein Gyrosensor, ein Abstandssensor und ein Differential verbaut. | |||
Die Abmessungen betragen: | |||
Fahrzeuglänge: 31mm | |||
Fahrzeugbreite: 15,5mm | |||
Spurweite vorn: 12mm | |||
Spurweite hinten: 12mm | |||
Achsabstand: 22mm | |||
Max. Radeinschlagswinkel Linkseinschlag: 20° | |||
Max. Radeinschlagswinkel Rechtseinschlag: 20° | |||
== Bauplan == | == Bauplan == | ||
Hier ist der Bauplan für den LEGO Digital Designer zu finden. [[Datei:AEP Gruppe B2.lxf.zip]] | Hier ist der Bauplan für den LEGO Digital Designer zu finden. [[Datei:AEP Gruppe B2.lxf.zip]] |
Version vom 20. Juni 2014, 10:17 Uhr
Im SoSe14 wurde im Rahmen des Informatikpraktikums II die Aufgabe gestellt, ein autonom einparkendes Fahrzeug zu entwickeln. Als Grundlage diente ein Lego_Mindstorms_NXT. Entwickelt wurde dieses Fahrzeug von Dominik Bräker, Nina Gorski und Sebastian Henneböhl.
Aufbau
Das Fahrzeug wurde zunächst mit einer 1:1 Übersetzung über eine Kette zu einem Differential angetrieben, allerdings erwies sich diese Art von Antrieb als zu störanfällig und wurde durch einen 1:1 Zahnradantrieb zu einem Differential ersetzt. Die Lenkung wurde zunächst von Zahnräder übersetzt, welches allerdings Aufgrund der Genauigkeit durch eine Direktlenkung ersetzt wurde.
Es wurden neben dem NXT-Baustein an sich ein Antriebs- und ein Lenkungsmotor, ein Gyrosensor, ein Abstandssensor und ein Differential verbaut.
Die Abmessungen betragen:
Fahrzeuglänge: 31mm
Fahrzeugbreite: 15,5mm
Spurweite vorn: 12mm
Spurweite hinten: 12mm
Achsabstand: 22mm
Max. Radeinschlagswinkel Linkseinschlag: 20°
Max. Radeinschlagswinkel Rechtseinschlag: 20°
Bauplan
Hier ist der Bauplan für den LEGO Digital Designer zu finden. Datei:AEP Gruppe B2.lxf.zip
Software
Programmiert wurde der NXT mithilfe von Matlab 2014a 32-Bit und RWTH_Aachen_Toolbox_meets_NXT.
Konzept
Quellcode (Auszug)
Parameter eingeben
power = 50;
durchmesser = 0.056; %im Meter
radumfang = durchmesser * pi;
fahrzeuglaenge = 0.32; %in m
luecke = fahrzeuglaenge * 1.3; %1,5 fache größe des fahrzeugs
lueckegrad = round(luecke/radumfang * 360);
strecke = 1; %in m
StreckeVorfahren = 0.1; % 10 cm vorfahren
grad = round(strecke/radumfang * 360); %2046 ; % 2046,28 Grad(errechnet durch den Radumfang) entspricht 1m
Motorfunktionen
motorA = NXTMotor(MOTOR_A, 'Power', power, 'TachoLimit', 0,'SmoothStart', true); %% Unendlich lange fahren
motorC = NXTMotor(MOTOR_C,'HoldBrake');
motorA.SendToNXT();
motorC.SendToNXT();
Motor vorbereiten
bParklueckeGefunden = false;
XStart =0;
Parlücke suchen
while(bParklueckeGefunden == false)
Messwerte holen
if (distance < 15) % Parklücke besetzt
else
% Parklücke frei
if LueckenLaenge > luecke
bParklueckeGefunden = true;
end
end
end
10 cm vorfahren
motorA = NXTMotor(MOTOR_A, 'Power', power, 'TachoLimit', round(StreckeVorfahren/radumfang * 360)); %% Unendlich lange fahren
motorA.SendToNXT();
motorA.WaitFor();
Einparken State Machine
Gyro reset -> Winkel = 0
CalibrateGyro(nGyroPort, 'AUTO');
pause(1) % NICHT BEWEGEN
Erst jetzt wieder Motor an!!!!
nState = 1;
bEinparkenErfolgreich = false;
while(bEinparkenErfolgreich==false)
switch nState
case 1
nState = 2;
case 2
nState = 3;
case 3
nState = 4;
case 4
NXT_PlayTone(440, 100); % Fanfare
bEinparkenErfolgreich = true;% Parkvorgang abgeschlossen
end
end;
--Ulrich Schneider (Diskussion) 08:31, 19. Jun. 2014 (CEST)
Tipps:
- Quellcode absetzen (s.o.)
- Inhalt ist übnersichtlich
- Teammitglieder auf USER-Seite verlinken
- Veröffentlichen Sie nicht den Quelltext, sondern das Konzept und die PAP. Sonst kopieren in einem Jahr alle Studierenden Ihren Quelltext.
→ zurück zum Hauptartikel: Informatikpraktikum 2 - SoSe14