source: software/BristleBot/BristleBot.cpp @ 25

Last change on this file since 25 was 25, checked in by Jürgen Berwein, 15 years ago
File size: 5.8 KB
RevLine 
[4]1#include <BristleBot.h>
[25]2 #include <wiring.h>
[17]3
4
[24]5//     BristleBot::BristleBot()
6//     {
7//         //Pin fuer linkes Licht vorn.
8//         leftLight      = 3;
9//         //Pin fuer rechtes Licht vorn.
10//         rightLight     = 7 ;
11//         //Pin fuer rechtes Licht hinten.
12//         backLightRight = 8 ;
13//         //Pin fuer linkes Licht hinten.
14//         backLightLeft  = 2 ;
15//         //Pin fuer blaue LED vorn.
16//         ledBlue        = 9;
17//         //Pin fuer linken Sensor.
18//         sensorLeft     = 3 ;
19//         //Pin fuer rechten Sensor.
20//         sensorRight    = 2 ; 
21//         //Pin fuer rechten Motor (muss PWN Pin sein!!!).
22//         motorRight     = 10;
23//         //Pin fuer linken Motor (muss PWN Pin sein!!!).
24//         motorLeft      = 11;       
25//     }
26// // //Stopt alle Motoren
27// void BristleBot::stop()
28// {
29//     //Setze rechten Motor auf 0 Volt
30//     analogWrite( motorRight, 0 );
31//     //Setze linken Motor auf 0 Volt
32//     analogWrite( motorLeft, 0 );
33// }
[17]34
[24]35// //Schaltet beide Motoren an und faehrt gerade aus
36// void BristleBot::fahreGerade()
37// {
38//     //Setze rechten Motor auf maximal Volt (Darf nicht mehr als 3 Volt sein!!!)
39//     analogWrite( motorRight, motOn  );
40//     //Setze linken Motor auf maximal Volt (Darf nicht mehr als 3 Volt sein!!!)
41//     analogWrite( motorLeft, motOn  );
42// }
[17]43
[24]44// //Schaltet rechten Motor an, um eine Linkskurve zu fahren.
45// void BristleBot::fahreLinks()
46// {
47//     //Setze linken Motor auf 0 Volt
48//     analogWrite( motorLeft, 0 );
49//    //Setze rechten Motor auf maximal Volt (Darf nicht mehr als 3 Volt sein!!!)
50//     analogWrite( motorRight, motOn  );
51// }
[17]52
[24]53// //Schaltet linken Motor an, um eine Rechtskurve zu fahren.
54// void BristleBot::fahreRechts()
55// {
56//     analogWrite( motorRight, 0 );
57//     analogWrite( motorLeft, motOn );
[23]58   
[24]59// }
[17]60
61
[24]62// //Lese beide Sensorwerte aus und bestimme, welcher der beiden Sensoren mehr Licht
63// //emfaengt bzw. beide Sensoren gleich viel Licht.
64// int BristleBot::leseSensor()
65// {
66//     //Lese rechten Sensorwert ( Wert ist zwischen 0 (kein Licht) und 1024 (ganz hell).
67//     int lightRight = analogRead( sensorRight );
68//     //Lese linken Sensorwert ( Wert ist zwischen 0 (kein Licht) und 1024 (ganz hell).
69//     int lightLeft = analogRead( sensorLeft );
[17]70
[24]71//     //Entscheide, ob rechter Sensor viel mehr Licht empfaengt als linker Sensor.
72//     if( ( lightLeft - lightRight ) <  -sensibility )
73//     {
74//         return RECHTS;
75//     } //Entscheide, ob linker Sensor viel mehr Licht empfaengt als rechter Sensor.
76//     else if  (( lightLeft - lightRight ) >  sensibility )
77//     {
78//         return LINKS;
79//     } //Ansonsten sind beide Sensorwerte FAST gleich.
80//     else
81//     {
82//         return BEIDE;
83//     }       
[17]84   
[24]85// }
[17]86
[24]87// //Schalte Ruecklicht an oder aus. Wenn das Ruecklicht angeschaltet werden soll, muss fuer "an" true
88// //uebergeben werden. Wenn das Licht ausgeschaltet werden soll, muss fuer "an" false uebergeben werden.
89// void BristleBot::ruecklicht(bool an )
90// {
91//     //Schalte rechtes Ruecklicht an oder aus.
92//     digitalWrite(backLightRight, !an);
93//     //Schalte linkes Ruecklicht an oder aus.
94//     digitalWrite(backLightLeft, !an);
95// }
[17]96
97
[24]98// //Schalte linkes Licht an oder aus. Wenn das linke Licht angeschaltet werden soll, muss fuer "an" true
99// //uebergeben werden. Wenn das Licht ausgeschaltet werden soll, muss fuer "an" false uebergeben werden.
100// void BristleBot::linkesLicht(bool an)
101// {
102//     //Schalte linkes Licht an oder aus.
103//     digitalWrite(leftLight, !an);
104// }
[17]105
[24]106// //Schalte rechtes Licht an oder aus. Wenn das rechte Licht angeschaltet werden soll, muss fuer "an" true
107// //uebergeben werden. Wenn das Licht ausgeschaltet werden soll, muss fuer "an" false uebergeben werden.
108// void BristleBot::rechtesLicht( bool an)
109// {
110//     //Schalte rechtes Licht an oder aus.
111//     digitalWrite(rightLight, !an);
112// }
[17]113
[24]114// //Aktiviere Roboter und fuere einige Tests durch
115// void BristleBot::init(int _on, int _sens )
116// {
117//     //Setze Wert fuer eingeschalteten Motor Wert. Muss zwischen 0 und 255 liegen. (Darf nicht mehr als 3 Volt sein!!!
118//     //Bei 5 Volt Stromversorgung darf der Wert nicht hoeher als 180 betragen, sonst brutzeln die Motoren durch)
119//     motOn = _on;
120//     //Differenz zwischen beiden Sensoren, um einen hell/dunkel Uebergang zu erkennen.
121//     sensibility = _sens;
[17]122
[24]123//     //Aktiviere Eingangs/Ausgangs Pins des Microcontrollers
124//     pinMode(leftLight, OUTPUT);
125//     pinMode(rightLight, OUTPUT);
126//     pinMode(backLightRight, OUTPUT);
127//     pinMode(backLightLeft, OUTPUT);
128//     pinMode(ledBlue, OUTPUT );
129//     //Schalte blaue LED an
130//     digitalWrite(ledBlue, LOW);
[17]131
[24]132//     //Schalte rechtes Licht an.
133//     rechtesLicht(AN);
134//     //Schalte linkes Licht aus.
135//     linkesLicht(AUS);
136//     //Schalte Ruecklicht aus.
137//     ruecklicht(AUS);
138//     //Warte eine halbe Sekunde.
139//     delay(500);
[17]140
[24]141//     //Schalte rechtes Licht aus.
142//     rechtesLicht(AUS);
143//     //Schalte linkes Licht an.
144//     linkesLicht(AN);
145//     //Schalte Ruecklicht aus.
146//     ruecklicht(AUS);
147//     //Warte eine halbe Sekunde.
148//     delay(500);
[17]149
[24]150//     //Schalte rechtes Licht aus.
151//     rechtesLicht(AUS);
152//     //Schalte linkes Licht aus.
153//     linkesLicht(AUS);
154//     //Schalte Ruecklicht an.
155//     ruecklicht(AN);
156//     //Warte eine halbe Sekunde.
157//     delay(500);
[17]158
[24]159//     //Schalte rechtes Licht aus.
160//     rechtesLicht(AUS);
161//     //Schalte linkes Licht aus.
162//     linkesLicht(AUS);
163//     //Schalte Ruecklicht aus.
164//     ruecklicht(AUS);
165//     //Warte eine halbe Sekunde.
166//     delay(500);
[17]167
[24]168//     //Fahre Rechtskurve.
169//     fahreRechts();
170//     //Fahre drei Sekunden lang.
171//     delay(3000);
172//     //Fahre Linksskurve.
173//     fahreLinks();
174//     //Warte drei Sekunden.
175//     delay(3000);
176//     //Fahre Linksskurve.
177//     fahreLinks();
178//     //Fahre drei Sekunden lang.
179//     delay(3000);
180// }
[17]181
Note: See TracBrowser for help on using the repository browser.