Verstanden, die Pins in der IDE beziehen sich auf die Nummern der Buchsenleisten und nicht auf den IC selbst.
Durch die Schaltung des Uno habe ich begriffen, das die ja gar nicht identisch sind.
Mein Fehler, das wusste ich nicht. Also eine kleine Tabelle anfertigen, damit ich das auf den Asuro übertragen kann.
DANKE!
EDIT: Super alles läuft nun . Der Asuro fährt mit Ultraschallmodul und stoppt vor der Wand. Nun geht es weiter mit Wendeschleife und Odometrie zwecks Geradeauslauf.
Das wird wesentlich schwieriger...
Geändert von Wolle62 (02.09.2018 um 18:39 Uhr)
Da gehts schon los. Irgendwas habe ich wohl wieder nicht richtig verstanden.
Es geht um die "Asurino" Bibliotheken und die damit verbundenen "Befehle".
Also der Codeauszug für die Motorsteuerung hier macht was er soll :
Das Problem ist der markierte Teil.if(entfernung <=30) {
asuro.setStatusLED(RED);
asuro.setMotorSpeed(100,50);
asuro.setMotorDirection (0,0);
delay (1500);
}
else {
asuro.setStatusLED(GREEN);
asuro.setMotorDirection (1, 1);
asuro.setMotorSpeed(120,100);
}
Vertausche ich die beiden Zeilen, also erst die "Direction" und dann den "Speed" gehts nicht mehr ??
Die Laufrichtung der Motore ändert sich dann nicht mehr.
gemerkt habe ich das in neuen Sketches, die alle nicht liefen, wie sie sollten.
Im "else" Teil ists aber genau umgekehrt und da geht es problemlos.
Wo ist da der Denkfehler? Oder ist da ein Bug?
Ich werde wohl den Asuro ausschlachten und mir den AAR-04 teilweise mit nem gesteckten Arduino auf Lochraster nachbauen.
Das Material habe ich ohnehin.
ganz blöde frage, welche asuro lib VVersion nutzt du, wenn ich die doku der neueren so ansehe ergibt sich relativ klar warum das nicht geht
[in] left_dir Richtung des linken Motors [ FWD | RWD | BREAK | FREE ]
#define FWD _BV(PB5) #define RWD _BV(PB4) #define BREAK 0x00 #define FREE _BV(PB4) | _BV(PB5) Wenn du also Dir 0,0 sagst stehen beide Motoren auf BREAK also Bremse (Vorrausgesetzt dasds es in deiner AsuroLib Version auch so ist)
verwende lieber die definierten Makros ... warum sind das in der lib überhaupt Makros? Warum sind das keine ordentlichen Enums?! Das schreit ja geradezu nach totaler Verwirrung
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Mit den asuro-Libs bin ich nie wirklich klar gekommen. Ich hatte mich damals entschieden die Programmierung "richtig"/"zu Fuß" in C zu machen. War für mich schwierig, weil ich kein C konnte (kann ich heute immer noch nicht wirklich/richtig) - aber man lernt ja nie aus. Und damals hatte ich mit asuro wirklich gute Fortschritte gemacht die mir später nützten... verwende lieber die definierten Makros ... warum sind das in der lib überhaupt Makros? .. Das schreit ja geradezu nach totaler Verwirrung ..
Nur so, als ne Art Ergänzung: ich hatte bei der IR-Programmierung immer wieder Störungen und hatte das damals dann mit ner üblichen ISP geflasht (siehe hier - rechtes Bild).
Ciao sagt der JoeamBerg
Ich habe die letzte verfügbare Asurino lib von hier:
https://github.com/Dirk-/Asurino-Library
benutzt.
Im Example Ordner dieser Lib war ein Motortest.
Auszug daraus:
Den habe ich als Grundlage benutzt. Daher die Erkenntnis, das " ...Direction(0,0);"> "Rückwärts" ist.// test engines backward and forward
asuro.setMotorSpeed(255, 255);
//forward
asuro.setMotorDirection (1, 1);
delay (500);
asuro.setMotorDirection (0,0);
delay (500);
asuro.setMotorSpeed(0,0);
Wie dem auch sei, ich bin auch auf die Idee gekommen, alles mit der Arduino IDE selbst zu programmieren und auf diese "Sonderbefehle" zu verzichten.
Und siehe da, alle geht wie es soll.
Ich musste nur eine Tabelle der Pins vom Atmega8 des Asuro auf die Pins des Arduino machen, um den Überblick
zu haben, was beim Asuro wo dran ist im Verhältnis zum Arduino.
Achso, mein Asuro ist umgebaut und hat ne ISP Schnittstelle. Kein IR Problem deshalb.
Geändert von Wolle62 (16.09.2018 um 12:14 Uhr)
gute entscheidung
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Lesezeichen