Hier erhältst du einige Gedankenanstösse zu möglichen Arduino-Projekten
Hier erhältst du einige Gedankenanstösse zu möglichen Arduino-Projekten
Auf die Frage, wie schwierig ein Arduino-Projekt ist, gibt es keine pauschale Antwort. Hier können darum nur Tendenzen aufgezeigt werden.
Hardware
Umfang: Je mehr einzlene Komponenten (z.B. LED, Servos, Berührungssensoren) eingesetzt werden, um so anspruchsvoller das Projekt. Mehr Komponenten bedeuten mehr Arbeit und jede zusätzliche Komponente ist auch eine potenzielle Fehlerquelle, bei einem Fehler ist die Fehlersuche schwieriger.
Die Art der Komponenten beeinflusst den Schwierigkeitsgrad.
einfache: LED, Touch-Sensor
mittel: Neopixel, Servo, Lichtsensor, Lautsprecher, Taster, Joystick, Bewegungssensor
schwierig: Schrittmotor, andere starke Motoren, Mikrofon, LCD, Distanzsensor, Gassensor
Programmcode
einfach: Programme, die den Input von einem Sensor direkt umsetzen, z. B.: Eine Lampe, die einschaltet, sobald es dunkel wird.
mittel: Programme, die den Input von mehreren Sensoren direkt umsetzen, z. B.: Eine Lampe, die einschaltet, wenn es dunkel ist und eine Bewegung registriert wird.
schwierig: Programme, die eine Datenspeicherung verlangen, z.B. Tic-Tac-Toe, Wortuhren
Nachdem der Entscheid für ein Projekt gefällt wurde, macht es Sinn, die Schaltung auf einem Breadboard aufzubauen und das Programm zu erstellen. Je komplexer das Projekt, umso wichtiger ist es, Schritt für Schritt vorzugehen und Teilsysteme zu prüfen.
Hardware aufbauen und einzelne Teilsysteme mit einem Testprogramm testen (also z.B. die LEDs mit dem Blink-Programm blinken lassen). Siehe dazu auch den Abschnitt Serial-Monitor.
Teilprogramme erstellen: Wenn möglich/sinnvoll, werden Teilprogramme erstellt und erprobt.
Erst jetzt werden alle Teile zu einem Programm zusammengefügt.
Wenn der Prototyp auf dem Breadboard funktioniert, kann nun dazu übergegangen werden, diesen in ein Objekt fix einzubauen.
Vorbereitung
Baue die Schaltung gemäss den Kommentaren im Code auf.
Lade den Code auf das Arduino und teste diesen. Ein Servo sollte sich nun mit der X-Achse des Joysticks bewegen lassen.
/*
* Mit einem Joystick 2 Servo ansteuern
* Die X-Achse des Joysticks steuert ein Servo
*
* Anschliessen der Bauteile:
*
* Joystick Servo 1 Servo 2
* GND = GND braun = GND braun = GND
* VCC = 5V rot = 5V rot = 5V
* VRX = A1 orange = Pin 9 orange = Pin 10
* VRY = A0
*/
#include <Servo.h> // Bibliothek "Servo" einbinden
Servo servo1; // Servo 1 erstellen
int JoyX = A1; // X-Achse des Joysticks (VRX) auf Pin A1
int pinServo1 = 9; // Servo 1 auf Pin 9
void setup() {
servo1.attach(pinServo1);
pinMode(JoyX, INPUT);
}
void loop() {
int valx = analogRead(JoyX); // Joystickwert X einlesen (0-1023)
int angle1 = map(valx, 0, 1023, 0, 180); // Wert auf Winkel umrechnen (Weite der Drehung)
servo1.write(angle1); // Servo 1 auf den Winkel fahren
}
Aufgabe
Ergänze den Code, damit sich der zweite Servo über die Y-Achse ansteuern lässt. Du musst dazu die Zeilen unten an der jeweils richtigen Stelle in den Code einfügen. Teste den Code.
Erstelle auf Grundlage technischer und gestalterischer Experimente eine Figur, die sich mit dem Joystick bewegen lässt.
Servo servo2; // Servo 2 erstellen
int JoyY = A0; // Y-Achse des Joysticks (VRY) auf Pin A0
int pinServo2 = 10; // Servo 2 auf Pin 10
servo2.attach(pinServo2); // Servo 2 verbinden
pinMode(JoyY, INPUT); // Y-Achse als Eingang
int valy = analogRead(JoyY); // Joystickwert Y einlesen (0-1023)
int angle2 = map(valy, 0, 1023, 0, 180); // Wert auf Winkel umrechnen
servo2.write(angle2); // Servo 2 auf den Winkel fahren