AlphaBot: Verzweigung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „'''Autor:''' Prof. Dr.-Ing. Schneider == Inhalt des vierten Termins == * Wir haben die Motoransteuerung geändert, so dass Alf…“)
 
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Inhalt des vierten Termins ==
== Inhalt des vierten Termins ==
* Wir haben die Motoransteuerung geändert, so dass Alf ein Dreieck gefahren ist.
* Wir haben die Motoransteuerung geändert, so dass Alf eine feste Strecke fährt.
* Wir haben uns die Inkrementalgeber angeschaut und die Werte mit dem Demo <code>E13_Photo_Interrupter_Sensor</code> angezeigt.
* Wir haben das Poti ausgelesen.
* Anschließend haben wir die Umdrehungen gezählt (<code>E14_Wheel_Encoders</code>).
* Wir haben den Servomotor mit den Potiwerten angesteuert.
* Wir haben den Radumfang berechnet: <math>U=\pi \cdot d = 3,14\cdot 6,4\,cm=20,1\,cm</math>.
* Fazit: Drehen beider Räder um 360&thinsp;°, dann fährt der Roboter 20,1&thinsp;cm vorwärts.


== Quelltext ==
== Quelltext ==
* <code>E13_Photo_Interrupter_Sensor</code>
* <code>E24_Servo_Knop</code>
* <code>E14_Wheel_Encoders</code>
 
<!--
 
<div style="width:1200px; height:300px; overflow:auto; border: 2px solid #088">
<div style="width:1200px; height:300px; overflow:auto; border: 2px solid #088">
<pre>
<pre>
/* Deklaration */
/* Bibliothek einbinden */
#include "AlphaBot.h"                  // Arduino Bibliothek einbinden     
#include <Servo.h>


AlphaBot Alf = AlphaBot();             // Instanz des AphaBot wird erzeugt
Servo usServo; /* Erzeugt ein Servo Objekt, um den Servo des Ultraschall anzusteuern */


//const byte GESCHWINDIGKEIT_u8 = 80;     // Geschw. wählbar: 0 - 255; Min: 80
int AnalogPin_s16      = 0;  /* An Analogpin A0 ist das Poti angeschlossen    */
int PotiWert_s16      = 0; /* Variable für die Stellung des Potis 0..676    */
int ServoStellung_s16  = 0; /* Variable für die Stellung des Servos 0°..180° */


void setup()
void setup() {               /* Einmalige Systeminitialisierung              */
{
   usServo.attach(9);         /* Verbindung der Servo mit einem Digitalpin     */
  // Wird einmalig beim Start ausgeführt
   Serial.begin(9600);       /* Init für serielle Ausgabe                    */
   Alf.SetSpeed(80);     // Geschw. setzen: 0 - 255
  Alf.Forward(1000);     // AlphaBot fährt für 1s mit beiden Motoren vorwärts
  Alf.Brake();          // AlphaBot bremst
   Serial.begin(9600);     // Serielle Übertragung mit 9600 Bit/s starten
  Serial.println("SETUP");
}
}


void loop()
void loop() {                                           /* Main Schleife */
{  
   PotiWert_s16 = analogRead(AnalogPin_s16);             /* Potistellung wird ausgelesen */  
  // Wird zyklisch ausgeführt
   Serial.println(PotiWert_s16);
   delay(1000);           // 1s Warten
  ServoStellung_s16 = map(PotiWert_s16, 0, 676, 0, 180); /* Die Stellung des Potis wird auf 0°..180° skapiert */
   Serial.println("Loop"); // Im Loop passiert nichts.
  usServo.write(ServoStellung_s16);                      /* Der Servo soll sich an die Position drehen */
  delay(15);                                            /* Wir warten 15ms, bis der Servo seine Position erreich hat */
}
}
</pre>
</pre>
</div>
</div>


-->
-->
== Hausaufgaben bis zum 4. Termin ==
 
Fahre genau 30&thinsp;cm geradeaus.
== Hausaufgaben bis zum 5. Termin ==
Schaut Euch die Ansteuerung Eures Servos noch einmal an. Könnt Ihr den Ultraschall in 1° Schritten von ganz links bis ganz rechts und wieder zurück drehen lassen?


== Musterlösung ==
== Musterlösung ==
* [[Hausaufgaben3_Tipp_1|Tipp 1]]
* [[Hausaufgaben4_Tipp_1|Tipp 1]]
* [[Hausaufgaben3_Tipp_2|Tipp 2]]
* [[Hausaufgaben4_Tipp_2|Tipp 2]]
* [[Hausaufgaben3_Lösung|Lösung]]
* [[Hausaufgaben4_Lösung|Lösung]]


----
----
→ zurück zum Hauptartikel: [[Projekt_Alf_–_Mobile_Robotik|Projekt Alf]]
→ zurück zum Hauptartikel: [[Projekt_Alf_–_Mobile_Robotik|Projekt Alf]]

Aktuelle Version vom 7. April 2022, 20:16 Uhr

Autor: Prof. Dr.-Ing. Schneider

Inhalt des vierten Termins

  • Wir haben die Motoransteuerung geändert, so dass Alf eine feste Strecke fährt.
  • Wir haben das Poti ausgelesen.
  • Wir haben den Servomotor mit den Potiwerten angesteuert.

Quelltext

  • E24_Servo_Knop


/* Bibliothek einbinden */
#include <Servo.h>

Servo usServo;  /* Erzeugt ein Servo Objekt, um den Servo des Ultraschall anzusteuern */

int AnalogPin_s16      = 0;  /* An Analogpin A0 ist das Poti angeschlossen    */
int PotiWert_s16       = 0;  /* Variable für die Stellung des Potis 0..676    */
int ServoStellung_s16  = 0;  /* Variable für die Stellung des Servos 0°..180° */

void setup() {               /* Einmalige Systeminitialisierung               */
  usServo.attach(9);         /* Verbindung der Servo mit einem Digitalpin     */
  Serial.begin(9600);        /* Init für serielle Ausgabe                     */
}

void loop() {                                            /* Main Schleife */
  PotiWert_s16 = analogRead(AnalogPin_s16);              /* Potistellung wird ausgelesen */ 
  Serial.println(PotiWert_s16);
  ServoStellung_s16 = map(PotiWert_s16, 0, 676, 0, 180); /* Die Stellung des Potis wird auf 0°..180° skapiert */
  usServo.write(ServoStellung_s16);                      /* Der Servo soll sich an die Position drehen */ 
  delay(15);                                             /* Wir warten 15ms, bis der Servo seine Position erreich hat */
}

-->

Hausaufgaben bis zum 5. Termin

Schaut Euch die Ansteuerung Eures Servos noch einmal an. Könnt Ihr den Ultraschall in 1° Schritten von ganz links bis ganz rechts und wieder zurück drehen lassen?

Musterlösung


→ zurück zum Hauptartikel: Projekt Alf