7.1.4.10 Test des Vehikels mit Motoren
- Mit dem Programm im ersten Projekt, kann der Antrieb durch Drücken der Taster auf Vorwärtsfahrt oder Rückwärtsfahrt geschaltet werden:
|
Hier kann das Projekt 5a heruntergeladen werden ( 007protoneu_motortest.zip ).
- Beim folgenden Programm fährt das Vehikel autonom und weicht Hindernissen aus:
|
Hier kann das Projekt 5b heruntergeladen werden ( 101protoneu_ausweichen.zip ).
- Mit dem nun folgenden Programm verfolgt das Vehikel eine Linie (schwarzer Klebestreifen / Isolierband auf hellem Grund, z.B. Tischplatte):
|
Hier kann das Projekt 5c heruntergeladen werden ( 102protoneu_linienfahrt_diskret.zip ).
- Im letzten Programm erfolgt das Linienverfolgen über einen PID-Regler und ist mit dem Ausweichen kombiniert:
|
Hier kann das Projekt 5d heruntergeladen werden ( 105protoneu_linien_ausweichen.zip ).
Gesonderte Auflistung der Befehle des Anwendungsprogramms aus muecb.c in 007protoneu_motortest.zip (Test 5a)
//****************************** Anwenderprogramme **************************************
//Programmbeschreibung: Alle Motoren laufen vorwärts und LED leuchtet, wenn Taster 1 gedrückt.
// Alle Motoren laufen rückwärts und LED leuchtet nicht, wenn Taster 2 gedrückt.
//Hinweis: Sollte eine oder beide Motorseiten in einer oder beiden Richtungen nicht funktionieren, sofort ausschalten wg. Kurzschluß!
// Denn dann ist wahrscheinlich eine Strombrücke zwischen den Motorleiterbahnen und der Masse oder der Versorgungsspannung beim Löten entstanden.
// Untersuchen Sie die Leiterplatine mit Hilfe der Augenklemmlupe und verbessern Sie ggf. die defekte Lötstelle.
while(true)
{
if(taster.taster1_gedrueckt())
{
lampe.ein();
antrieb.rechts_vor();
antrieb.links_vor();
}
else if(taster.taster2_gedrueckt())
{
lampe.aus();
antrieb.rechts_rueck();
antrieb.links_rueck();
}
else
{
lampe.aus();
antrieb.rechts_stop();
antrieb.links_stop();
}
}
//****************************** ENDE Anwenderprogramme *********************************
Code 7.1.4.10-1: Anwendungsprogramm aus muecb.c in 007protoneu_motortest.zip (Test 5a).
Aufgaben
- Sumo-Ringen: Schreiben Sie ein Programm, bei dem sich das Vehikel ständig dreht und sich auf ein Hindernis zu bewegt, das durch den Frontalsensor erkannt wird.
- Sumo-Ringen2: Der "Sumo-Ringer" soll aber in jedem Fall innerhalb eines mit schwarzem Klebeband markierten Kreises bleiben.
|
Gesonderte Auflistung der Befehle des Anwendungsprogramms aus muecb.c in 101protoneu_ausweichen.zip (Test 5b)
//****************************** Anwenderprogramme **************************************
//Programmbeschreibung: Warte, solange Taster 1 noch nicht gedrückt wurde.
while(!taster.taster1_gedrueckt());
//Programmbeschreibung: Anwendungsprogramm, wenn kein Hindernis, fahre geradeaus, sonst drehe rechts herum.
while(true)
{
if(frontsensor.objekt_vorhanden())
{
lampe.ein();
antrieb.rechts_vor();
antrieb.links_rueck();
}
else
{
lampe.aus();
antrieb.rechts_vor();
antrieb.links_vor();
}
}
//****************************** ENDE Anwenderprogramme *********************************
Code 7.1.4.10-1: Anwendungsprogramm aus muecb.c in 101protoneu_ausweichen.zip (Test 5b).
Aufgaben
- Testen Sie, ob das Vehikel an allen Hindernissen vorbeikommt. Sorgen Sie ev. dafür, dass die Phase des Wegdrehens von einem Hindernis verlängert wird.
|
Gesonderte Auflistung der Befehle des Anwendungsprogramms aus muecb.c in 102protoneu_linienfahrt_diskret.zip (Test 5c)
//****************************** Anwenderprogramme **************************************
//Programmbeschreibung: Warte, solange Taster 1 noch nicht gedrückt wurde.
while(!taster.taster1_gedrueckt());
//Programmbeschreibung: Wenn Helligkeits wert <50 drehe links, >50 drehe rechts, sonst geradeaus.
while(true)
{
adw.waehlePinHigh(36);
x = adw.holeGemitteltenWertHigh();
if(x<50) //Linkskurve
{
antrieb.rechts_vor();
antrieb.links_stop();
}
else if(x>50) //Rechtskurve
{
antrieb.rechts_stop();
antrieb.links_vor();
}
else
{
antrieb.rechts_vor();
antrieb.links_vor();
}
}
//****************************** ENDE Anwenderprogramme *********************************
Code 7.1.4.10-1: Anwendungsprogramm aus muecb.c in 102protoneu_linienfahrt_diskret.zip (Test 5c).
Aufgaben
- Versuchen Sie das Programm so zu verbessern, dass die Linienverfolgung schneller von statten geht.
|