Hallo zusammen!
Ich bin am Verzweifeln und brauche dringend eure Hilfe. Ich arbeite an einem Schulprojekt, bei dem ich einen kleinen Roboter (Minibot) mit einem Arduino steuern soll. Die Hardware ist im Grunde fertig, aber ich stehe komplett auf dem Schlauch, wenn es um die Software geht. Ich habe schon stundenlang recherchiert und Tutorials angesehen, aber ich komme einfach nicht weiter. Ich hoffe, hier im Forum finde ich jemanden, der mir unter die Arme greifen kann.
Das Projekt: Ein Arduino Minibot
Um genau zu sein, geht es um einen kleinen, zweirädrigen Roboter, der mit einem Arduino Uno gesteuert wird. Er soll in der Lage sein, einfachen Anweisungen zu folgen, wie zum Beispiel vorwärts fahren, rückwärts fahren, links und rechts drehen. Später soll er auch Hindernissen ausweichen können, aber das ist erstmal Zukunftsmusik. Im Moment geht es mir wirklich nur darum, dass er sich überhaupt bewegt!
Die Hardware
Hier ist eine kurze Liste der Hardware, die ich verwende:
- Arduino Uno R3
- Zwei Gleichstrommotoren mit Getriebe
- L298N Motortreiber
- Ein Chassis für den Roboter
- Batterien als Stromversorgung
- Verbindungskabel (Jumper Wires)
Die Hardware ist, wie gesagt, fertig aufgebaut und verkabelt. Ich habe auch schon mehrfach überprüft, ob alles richtig angeschlossen ist (so gut ich das beurteilen kann!).
Das Problem: Die Software
Hier liegt mein eigentliches Problem. Ich habe zwar ein bisschen Erfahrung mit Programmierung (hauptsächlich mit Python), aber Arduino und die Arduino IDE sind für mich Neuland. Ich verstehe einfach nicht, wie ich die Motoren richtig ansteuern soll. Ich habe versucht, Code aus verschiedenen Tutorials zusammenzubasteln, aber das Ergebnis ist meistens, dass entweder gar nichts passiert oder die Motoren unkontrolliert losrennen.
Ich habe auch Schwierigkeiten, die Logik zu verstehen. Wie sage ich dem Arduino, dass er die Motoren für eine bestimmte Zeit in eine bestimmte Richtung drehen soll? Wie kann ich die Geschwindigkeit der Motoren steuern?
Konkrete Fragen
Um es etwas konkreter zu machen, hier sind ein paar Fragen, die mir besonders unter den Nägeln brennen:
- Wie steuere ich die Motoren mit dem L298N Motortreiber korrekt an? Welche Pins muss ich verwenden?
- Wie schreibe ich eine Funktion, die den Roboter für eine bestimmte Zeit vorwärts fahren lässt?
- Wie kann ich die Geschwindigkeit der Motoren mit PWM (Pulsweitenmodulation) steuern?
- Gibt es eine einfache Möglichkeit, die Drehrichtung der Motoren zu ändern?
- Habt ihr vielleicht ein paar Beispielcodes, die mir den Einstieg erleichtern könnten?
Was ich schon versucht habe
Ich habe, wie gesagt, schon einiges versucht. Hier eine kurze Zusammenfassung meiner bisherigen Bemühungen:
- Ich habe verschiedene Tutorials auf YouTube angesehen.
- Ich habe die Arduino Referenz durchgelesen (teilweise zumindest).
- Ich habe versucht, Code aus verschiedenen Quellen zusammenzusetzen.
- Ich habe im Arduino Forum nach ähnlichen Problemen gesucht.
Leider hat bisher nichts davon wirklich geholfen. Entweder verstehe ich die Erklärungen nicht, oder der Code funktioniert nicht, oder ich mache irgendwo einen dummen Fehler, den ich einfach nicht finde.
Meine Bitte
Ich bin wirklich dankbar für jede Hilfe, die ich bekommen kann. Wenn jemand von euch Erfahrung mit Arduino und Minibots hat und mir ein paar Tipps geben könnte, wäre das fantastisch. Vielleicht hat ja jemand sogar einen ähnlichen Roboter gebaut und könnte mir seinen Code zur Verfügung stellen (natürlich nur als Inspiration, nicht zum Abschreiben!).
Auch wenn ihr keine konkreten Lösungen habt, bin ich dankbar für jede Art von Unterstützung. Vielleicht könnt ihr mir ja ein paar Links zu guten Tutorials schicken oder mir erklären, wie bestimmte Konzepte funktionieren.
Weitere Informationen
Ich bin bereit, alle möglichen Informationen zu meinem Projekt zu liefern, die ihr braucht. Ich kann Fotos von der Verkabelung machen, meinen bisherigen Code posten oder andere Details nennen. Sagt mir einfach, was ihr braucht, um mir zu helfen.
Vielen Dank im Voraus für eure Zeit und Mühe!
Viele Grüße,
[Dein Name]
Update: Mein bisheriger Code
Hier ist der Code, den ich bisher zusammengebastelt habe. Bitte beachtet, dass er wahrscheinlich nicht funktioniert und voller Fehler ist. Aber vielleicht hilft er euch, mein Problem besser zu verstehen.
// Definiere die Pins für den L298N Motortreiber
const int enA = 9;
const int in1 = 8;
const int in2 = 7;
const int enB = 10;
const int in3 = 5;
const int in4 = 4;
void setup() {
// Setze die Pins als Ausgänge
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
// Starte die serielle Kommunikation
Serial.begin(9600);
Serial.println("Arduino Minibot - Bereit!");
}
void loop() {
// Vorwärts fahren
Serial.println("Vorwärts");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enA, 255);
analogWrite(enB, 255);
delay(2000);
// Stoppen
Serial.println("Stopp");
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(1000);
// Rückwärts fahren
Serial.println("Rückwärts");
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enA, 255);
analogWrite(enB, 255);
delay(2000);
// Stoppen
Serial.println("Stopp");
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(1000);
}
Dieser Code soll den Roboter für 2 Sekunden vorwärts fahren, dann stoppen, dann für 2 Sekunden rückwärts fahren und dann wieder stoppen. Im Moment macht er aber entweder gar nichts oder die Motoren drehen einfach unkontrolliert.
Ich hoffe, das hilft euch, mir zu helfen!