Hi, bin ein Arduino-Neuling.
Wir haben für das Studium eine Projektarbeit auf. Es gilt auf einem Tisch ca. 1m auf 2m 7 Pucks zu finden und in ein 15 cm breites tor zu schiessen.
Die Idee ist, den Roboter sequenziell den ganzen Tisch abfahren zu lassen und das Programm erst bei Detektion eines Pucks zu verlassen um uns Schussprogramm zu gelangen. Danach zurück in die Ausgangsposition und weiter im Programm.
Auf Anfrage beim Dozenten erhielt ich einen Bausatz für den turtle Robot von DFRobots.
Ich habe den Roboter zusammen gebaut, die beiden Motoren montiert, auf den motor Shield gehängt und auf den arduino Uno gesteckt.
Nach einigem Probieren hatte ich den Roboter soweit, dass ich ihn vorwärts und rückwärts für eine bestimmte Zeit fahren lassen kann.
Allerdings musste ich feststellen, dass die beiden Motoren weder gleichzeitig beginnen zu drehen, noch gleich schnell drehen.
Das macht ein genaues Abfahren und Kennen der Position und des Winkels unmöglich.
Also bin ich zum Dozenten zurück, welcher mir einen Universal-Encoder Kit aushändigte.
Diese Encoder Kits bestehen aus jeweils einem Metallring auf einem Gummihalter und einem Sensor.
Der Metallring hat 8 Pole.
Nach einigem Versuchen und umstecken der Leiterverbindungen kriege ich jetzt 8 Sektionen mit einer 1 aus den Sensoren.
Zuerst dachte ich mit Hilfe von Countern die Flanken zu messen und die Geschwindigkeit anzupassen. Das wird aber bis zur Anpassung Abweichungen auf die Position und den Winkel haben. Also überlegte ich mir, dass ich die Zeit zwischen den Flanken messen könnte und anpassen.
Jetzt hab ich einige Fragen an euch:
Als erstes sicher mal ist meine Idee umsetzbar?
Ich zweifle an der Genauigkeit der Manöver und der Messung aufgrund der schlechten Auflösung der Encoder und auch deren Montage (Die Sensoren werden mit Kabelbindern befestigt).
Habe ich das richtige Material?
Aufgrund einer Budgetlimite von 150€ benutze ich bisher das Gratismaterial des Dozenten.Der Arduino Uno und der MotorShield kosten zusammen 40€. Ich hätte ca. 35€ zur Verfügung um Motoren bzw. Encoder zu kaufen.
Sind bessere Motoren besser für die Aufgabe geeignet oder ändert das nur wenig?
Brauche ich einen Akku oder reicht ein Batterypack aus 10 Batterien? (<- 2 x 5 Batterien à 1.5V)
Worauf müsste ich achten und wie gross ist der Programmieraufwand?
Wie programmiere ich richtig?
Ich habe gerade erst meine ersten Schritte in der Programmierung eines Arduino gemacht. Ich habe während des Studiums sowohl c++ wie auch java kennengelernt. Wir haben Pins initialisiert und kleine Programme geschrieben.
Für das Projekt habe ich im Internet nach passenden Befehlen gesucht.
Ich versuche viele Kommentare zu setzen um den Überblick zu behalten.
Gibt es in der Struktur etwas zu beachten?
Habt ihr Tipps zur Lösung meiner Aufgabe für das Schulprojekt?
Vielen Dank im voraus,
Michiaelius