AlphaBot: Antriebsmotoren ansteuern: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]


== Inhalt des ersten Termins ==
== Inhalt des dritten Termins ==
* Wir haben die Motoransteuerung geändert, so dass Alf ein Dreieck gefahren ist.
* Wir haben uns die Inkrementalgeber angeschaut und die Werte mit dem Demo <code>E13_Photo_Interrupter_Sensor</code> angezeigt.
* Anschließend haben wir die Umdrehungen gezählt (<code>E14_Wheel_Encoders</code>).
* 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 ==
* <code>E13_Photo_Interrupter_Sensor</code>
* <code>E14_Wheel_Encoders</code>
<!--
<!--
== Quelltext ==
<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 */
/* Deklaration */
byte Variable_u8;         // 0..255 Variable
#include "AlphaBot.h"                  // Arduino Bibliothek einbinden     
const byte KONSTANTE = 0; // 0..255 Konstante
 
AlphaBot Alf = AlphaBot();             // Instanz des AphaBot wird erzeugt
 
//const byte GESCHWINDIGKEIT_u8 = 80;     // Geschw. wählbar: 0 - 255; Min: 80


void setup() {
void setup()
{
   // Wird einmalig beim Start ausgeführt
   // Wird einmalig beim Start ausgeführt
   Serial.begin(9600);      // Serielle Übertragung mit 9600 Baude starten
  Alf.SetSpeed(80);      // Geschw. setzen: 0 - 255
  Variable_u8 = 0;        // Initialisierung der globalen Variable
  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");
   Serial.println("SETUP");
}
}


void loop() {
void loop()
{  
   // Wird zyklisch ausgeführt
   // Wird zyklisch ausgeführt
   float Variable_s32 = 0; // lokale Hilfsvariable anlegen und initialisieren
   delay(1000);           // 1s Warten
 
   Serial.println("Loop"); // Im Loop passiert nichts.
  //Variable_u8 = Addiere(Variable_u8,5);    // +
  Variable_u8 = Subtrahiere(Variable_u8,5);  // -
  Variable_s32 =(float)Variable_u8/2;         // Division
 
   Serial.println(Variable_u8);               // Ausgabe im seriellen Monitor
  Serial.println(Variable_s32);
 
  delay(1000);                                // Pause in ms (0,001 s)
}
/*******************/
/* Unterfunktionen */
/*******************/
 
byte Addiere(byte In1_u8,byte In2_u8){
  byte Ergebnis_u8=0;          // Hilfsvarianble anlegen
  Ergebnis_u8 = In1_u8+In2_u8; // +
  return Ergebnis_u8;          // Rückgabe des Ergebnisses
}
}


byte Subtrahiere(byte In1_u8,byte In2_u8){
  byte Ergebnis_u8=0;
  Ergebnis_u8 = In1_u8-In2_u8; // -
  return Ergebnis_u8;
}
</pre>
</pre>
</div>
</div>
-->
-->
 
== Hausaufgaben bis zum 4. Termin ==
== Hausaufgaben bis zum 3. Termin ==
Fahre genau 30&thinsp;cm geradeaus.
#


== Musterlösung ==
== Musterlösung ==

Aktuelle Version vom 31. März 2022, 13:53 Uhr

Autor: Prof. Dr.-Ing. Schneider

Inhalt des dritten Termins

  • Wir haben die Motoransteuerung geändert, so dass Alf ein Dreieck gefahren ist.
  • Wir haben uns die Inkrementalgeber angeschaut und die Werte mit dem Demo E13_Photo_Interrupter_Sensor angezeigt.
  • Anschließend haben wir die Umdrehungen gezählt (E14_Wheel_Encoders).
  • Wir haben den Radumfang berechnet: .
  • Fazit: Drehen beider Räder um 360 °, dann fährt der Roboter 20,1 cm vorwärts.

Quelltext

  • E13_Photo_Interrupter_Sensor
  • E14_Wheel_Encoders

Hausaufgaben bis zum 4. Termin

Fahre genau 30 cm geradeaus.

Musterlösung


→ zurück zum Hauptartikel: Projekt Alf