r Laderaum ATMEGA 128

HTL_RoboterDOKU.odt V1.0j10 HTBLA Leonding Mikrocontrollertechnik Klasse, Name : Übung : Datum : Seite : 1 von 7 Arbeiten mit dem HTL Leonding Robo...
Author: Käthe Heintze
10 downloads 3 Views 132KB Size
HTL_RoboterDOKU.odt V1.0j10

HTBLA Leonding Mikrocontrollertechnik Klasse, Name : Übung :

Datum : Seite : 1 von 7

Arbeiten mit dem HTL Leonding Roboter

1. Roboter Peripherie Eingänge

Ausgänge

DIGITAL

Taster Kante l/r

LCD Anzeige

Rad l/r Linienfolger l/r

8x LED

Laderaum Klappe

JTAG

DATEN

ANALOG

ATMEGA 128 Licht l/r

2x Motor

Abstand l/r IR

4x Sensoren ENABLE

Maussensor

2. Roboter-Sensoren Die meisten Sensoren des Roboters müssen erst eingeschaltet werden, bevor sie verwendet werden können. Dies dient zum Energiesparen, da abgeschaltete Sensoren die Batterie nicht belasten. Leitungen zum Einschalten der Sensoren sind im Schaltplan meist mit „ENA_“ (für enable) bezeichnet. Diese Enable-Leitungen sind meistens mit den Gate von FET-Transistoren verbunden. Wird das Gate auf GND gelegt, schaltet der Transistor die +5V zu den Sensoren durch.

3. LCD Display Das LCD Display ist mit PORT A verbunden. Die Ansteuerung des Displays erfolgt durch die Programmvorlagen lcd.c und lcd.h wie im Dokument „Atmel_gcc.pdf“ beschrieben. Die Anschlüsse sind am Schaltplan des Roboters zu finden.

4. Analoge Sensoren Die beiden LDRs können direkt abgefragt werden, die beiden Abstandsensoren müssen zuvor aktiviert werden. Das Auslesen der Analog-Werte erfolgt durch die Programmvorlagen adc.c und adc.h wie im Dokument „Atmel_gcc.pdf“ beschrieben. http://creativecommons.org/licenses/by-sa/3.0/deed.de Alle Inhalte dieses Dokuments sind unter einer Creative Commons 2.0 License veröffentlicht.: • • • •

Sie dürfen den Inhalt vervielfältigen, verbreiten und öffentlich aufführen. Sie dürfen Bearbeitungen anfertigen. Sie müssen den Namen des Autors/Rechtsinhabers nennen. Wenn Sie diesen Inhalt bearbeiten oder in anderer Weise umgestalten, verändern oder als Grundlage für einen anderen Inhalt verwenden, dann dürfen Sie den neu entstandenen Inhalt nur unter Verwendung identischer Lizenzbedingungen weitergeben.

HTL_RoboterDOKU.odt V1.0j10

HTBLA Leonding Mikrocontrollertechnik Klasse, Name : Übung :

Datum : Seite : 2 von 7

Arbeiten mit dem HTL Leonding Roboter

5. Startübung - Sensorentest Überprüfen Sie die Sensoren und aktivieren Sie ein LED pro Sensor. Vor dem Abfragen der Sensoren müssen diese aktiviert werden (enable)! Sensor Kante links

Einschalten

Abfragen

LED Port

funktioniert

D4

F6

C1

O

Kante rechts

O

Linie links

O

Linie rechts

O

Radsensor links

O

Radsensor rechts

O

Laderaum Lichtschranke

O

Klappe

O

Taster BOOT

O

z.B. wenn (Sensor „Kante Links“) dann LED C1 einschalten ansonsten LED C1 ausschalten Beispiel: Sensor Kante LINKS

//Sensor Kante LINKS einschalten SETBIT1(DDRD, 4); //ENA auf OUTPUT SETBIT0(PORTD, 4); //auf LOW schalten SETBIT1(DDRC,1); //LED auf OUTPUT SETBIT0(DDRF, 6); //SENSOR auf INPUT while(1) { //Kante LINKS abfragen if ( CHECKBIT1(PINF, 6) ) { SETBIT1(PORTC, 1); } else { SETBIT0(PORTC, 1); } }

Sensor (F6)

uC

Sensor ENABLE (D4)

LED (C1)

HTBLA Leonding Mikrocontrollertechnik Klasse, Name :

HTL_RoboterDOKU.odt V1.0j10

Datum :

Übung :

Seite : 3 von 7

Arbeiten mit dem HTL Leonding Roboter

6. Ansteuern der Motoren Der Roboter hat 2 Getriebemotoren, die mit der Versorgungsspannung (Batterie) betrieben werden. Der Motor ändert seine Drehrichtung, wenn die Polarität der Motorspannung geändert wird. Diese Aufgabe übernimmt der L239. Die Drehzahl das Motors kann durch periodisches Ein/AusSchalten der Motor-Versorgungsspannung eingestellt werden. Batteriespannung Motor R ein / aus

(B6)

Motor R Richtung

(G3)

Transistor H-Brücke

Motor L ein / aus

(B5)

L293

Motor L Richtung

(G4)

ATMEGA

Motor R

Motor L

Motor Links einschalten

Motor Rechts einschalten

Anschlüsse B6 und G3 auf OUTPUT

Anschlüsse B5 und G4 auf OUTPUT

Motor einschalten durch B6 auf HIGH

Motor einschalten durch B5 auf HIGH

Drehrichtung durch G3 auf HIGH/LOW stellen

Drehrichtung durch G4 auf HIGH/LOW stellen

Drehzahländerung mittels PWM: Bei der Pulsweitenmodulation (PWM) wird eine technische Größe (z. B. elektrischer Spannung) zwischen zwei Werten gewechselt. Dabei wird bei konstanter Frequenz das Tastverhältnis des Signales verändert. Der interne 16 BIT Timer/Counter 1 kann dieses PWM Signal erzeugen. Test der Motoren: //Motor auf Ausgang

SETBIT1 (DDRB, 5); SETBIT1 (DDRB, 6);

//Motor Richtung auf Ausgang SETBIT1(DDRG, 4); SETBIT1(DDRG, 3); //Richtung VORAUS! SETBIT1(PORTG, 4); SETBIT0(PORTG, 3);

//Motoren EIN

SETBIT1 (PORTB, 5); SETBIT1 (PORTB, 6);

Steuerung der Motoren über internen PWM:

Die Drehrichtung kann durch Setzen der Anschlüsse G3 und G4 geändert werden. Soll sich der Roboter auf der Stelle drehen, müssen die Motoren in entgegengesetzten Drehrichtungen laufen!

HTBLA Leonding Mikrocontrollertechnik Klasse, Name : Übung :

HTL_RoboterDOKU.odt V1.0j10

Datum : Arbeiten mit dem HTL Leonding Roboter

Seite : 4 von 7

//Motor PWM auf Ausgang SETBIT1 (DDRB, 5); SETBIT1 (DDRB, 6);

//Motor Richtung auf Ausgang SETBIT1(DDRG, 4); SETBIT1(DDRG, 3); //Richtung VORAUS! SETBIT1(PORTG, 4); SETBIT0(PORTG, 3); //Einstellungen PWM SETBIT1(TCCR1B, CS10); //prescaler SETBIT1(TCCR1B, CS11); //prescaler SETBIT0(TCCR1B, CS12); //prescaler SETBIT1(TCCR1A, SETBIT0(TCCR1A, SETBIT0(TCCR1B, SETBIT0(TCCR1B,

WGM10); WGM11); WGM12); WGM13);

SETBIT0(TCCR1A, SETBIT1(TCCR1A, SETBIT0(TCCR1A, SETBIT1(TCCR1A,

COM1B0); COM1B1); COM1A0); COM1A1);

// // // //

8 BIT Phase Correct PWM

//Compare //mode //none //inverting

//PWM Vergleichswert OCR1AL = 0x88; //Speed Motor 1 OCR1BL = 0x88; //Speed Motor 2

Das Ändern der PWM-Vergleichswerte zwischen 0x00 und 0xff bestimmt die Geschwindigkeit der Motoren. Sollten sich die beiden Getriebemotoren unerschiedlich schnell drehen kann das durch unterschiedliche PWM-Vergleichswerte ausgeglichen werden.

HTBLA Leonding Mikrocontrollertechnik Klasse, Name : Übung :

HTL_RoboterDOKU.odt V1.0j10

Datum : Arbeiten mit dem HTL Leonding Roboter

Seite : 5 von 7

7. Ansteuern des Roboters – Aufgaben 7.a) Folge dem Licht Aufgabenstellung: Der Roboter soll eine Lichtquelle suchen und auf sie zeigen. Anschlussplan: MOTOREN

Eingänge: LDR R Ausgänge: LDR L

uC LED 2x

Lösungsvorschlag: • • • • • • •

Programmvorlage verwenden Eingänge und Ausgänge festlegen (DDR) LCD Display einbinden und testen ADC einbinden ADC-Werte der beiden LDRs einlesen und am LCD ausgeben Motoransteuerung nach Vorlage einbinden Werte der beiden LDRs vergleichen. Je nachdem welcher LDR näher zum Licht steht, den Roboter drehen!

Erweiterungen (1): • •

Wenn die beiden LDRs ähnliche Werte melden, den Motor stoppen oder Wenn die beiden LDRs ähnliche Werte melden, den Motor starten und zum Licht fahren!

Erweiterungen (2): • •

Wenn die beiden LDRs ähnliche Werte melden, den Motor starten und zum Licht fahren! Zusätzlich die Abstandsensoren aktivieren und vor der Lichtquelle stoppen.

HTL_RoboterDOKU.odt V1.0j10

HTBLA Leonding Mikrocontrollertechnik Klasse, Name : Übung :

Datum : Seite : 6 von 7

Arbeiten mit dem HTL Leonding Roboter

7.b) Nicht Runterfallen! Aufgabenstellung: Der Roboter soll bis zu einer Kante fahren. Anschlussplan: Eingänge:

Kante R

Motoren

Ausgänge: Kante L

uC

Sensor enable 2X LED (ev. LCD)

Lösungsvorschlag: • • • • • •

Programmvorlage verwenden Eingänge und Ausgänge festlegen (DDR) Motoransteuerung nach Vorlage ein binden Sensoren aktivieren Die beiden LEDs sollen den Zustand der Kantensensoren anzeigen. Solange keine Sensor meldet, die beiden Motoren laufen lassen

Erweiterungen (1): • • •

Status über LCD Display anzeigen. Wenn ein Sensor meldet, die beiden Motoren rückwärts laufen lassen oder Wenn ein Sensor meldet, die beiden Motoren kurz rückwärts laufen lassen und danach die Motoren stoppen

Erweiterungen (2): •

Wenn ein Sensor meldet, die beiden Motoren kurz rückwärts laufen lassen und danach den Roboter ein wenig drehen und danach die beiden Motoren nach vorne laufen lassen

HTL_RoboterDOKU.odt V1.0j10

HTBLA Leonding Mikrocontrollertechnik Klasse, Name : Übung :

Datum : Seite : 7 von 7

Arbeiten mit dem HTL Leonding Roboter

7.c) Achtung Hindernisse! Aufgabenstellung: Der Roboter soll vor einem Hindernis stoppen. Anschlussplan: Eingänge:

Abstand R

Motoren

Ausgänge: Abstand L

uC

Sensor enable LCD 2X LED

Lösungsvorschlag: • • • • • • • •

Programmvorlage verwenden Eingänge und Ausgänge festlegen (DDR) LCD Display einbinden und testen ADC einbinden ADC-Werte der beiden Abstandsensoren einlesen und am LCD ausgeben Motoransteuerung nach Vorlage einbinden Die beiden LEDs sollen den Zustand (Schwellenwert) der Kantensensoren anzeigen. Solange keine Sensor ein Hindernis meldet, die beiden Motoren laufen lassen

Erweiterungen (1): • •

Wenn ein Sensor meldet, die beiden Motoren rückwärts laufen lassen oder Wenn ein Sensor meldet, die beiden Motoren kurz rückwärts laufen lassen und danach die Motoren stoppen

Erweiterungen (2): •

Wenn ein Sensor meldet, die beiden Motoren kurz rückwärts laufen lassen und danach den Roboter ein wenig drehen und danach die beiden Motoren nach vorne laufen lassen