Es gibt auch eine Elektronische Verbesserung fuhr diese Störungen:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=44641
Das meine ich.Code:#include "asuro.h" int main(void) { int i; int k=0; i=0; int l; l=1; Init(); while(1) { while(1) { if (PollSwitch()>1) i=1; if(i==0) { MotorDir(FWD,FWD); MotorSpeed(200,210); } else { MotorDir(RWD,RWD); MotorSpeed(150,160); Sleep(250); k++; } if(k>500) { MotorSpeed(0,0); break; } } while(1) { if(l<300) { MotorDir(FWD,RWD); MotorSpeed(120,120); l++; Sleep(250); } else { MotorSpeed(0,0); i=0; k=0; l=1; break; } } } return 0; }
Er reagiert sicher nicht auf Sichtkontakt. Die Taster sind nur Mechanische Schaltern. Er macht eine irre. Die Motoren stören die Tastermessung uber die Bordspannung beim Fahren. Die taster K6, neben den Grosse Schalter liefert den wert 1. K5 liefert 2, und ist in deinem fall auch verirrt War genommen.
Die (Programmierbare) Lösung ist 2 mal oder mehr ein Pollswitch messung zu machen, aber das in 2 (oder mehr) verschiedene Variabelen zu speichern. Danach mit ein if-befehl abfragen ob die (beider) Variabelen gleich sind und auch nicht nul (0). Sind sie das sind kann man die Einzelne Tastern aus dem wert Berechnen. Sind die werten nicht gleich dann soll das Programm nichts machen, nur wieder anfangen mit eine neue Pollswitch anruf.
Code:unsigned char t1, t2; t1=0; t2=0; ... while(1) { t1=PollSwitch(); // Erste Taster Messung t2=PollSwitch(); // Zweiter Messung if ((t1=t2) && (t1>0)) i=1; //Ist die Tastenmessung gleich oder stabil? und ist irgendeiner Taster bemerkt? ! Moebious ignorierte den Taster K6 mit >1 if(i==0) // Kein Taster Bemerkt, Vorwärts! { MotorDir(FWD,FWD); MotorSpeed(200,210); } else // Taster Bemerkt. Rückfahrt! { MotorDir(RWD,RWD); MotorSpeed(150,160); Sleep(250); k++; } if(k>500) // Warteschleife, 500 mal reagiert auf Taster Erkennung. Nun Reichst! { MotorSpeed(0,0); break; } ...
Es gibt auch eine Elektronische Verbesserung fuhr diese Störungen:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=44641
Hallo Valen ………….. danke für deine Mühe.
Aus dem ersten Satz entnehme ich, dass das Programm, welches ich auf meinem ASURO gespeichert habe Fehler enthält.
Soll mir das erste Programm zeigen, wo der Fehler in meinem (Moebius) Programm steckt?
Im zweiten Satz (die Programmierbare Lösung) soll ich eine Pollswitchmessung machen und das in 2 oder mehr Variablen und dann mit einem if-Befehl abfragen.
Ich nehme an, dazu dient das zweite Programm!? Ich habe mir beide In WORD kopiert. Aber dann?
Wäre es auch möglich, dass Programm fehlerfrei umzuschreiben? Ich würde es mir auch abtippen. Wenn ich das kann.
Dort, wo ich über die elektronische Verbesserung nachgesehen habe, wird auch darauf hingewiesen,
dass die meisten ASURO auch ohne Umbau laufen.
Programmieren?????? Da bringe ich doch meiner Katze eher das Sprechen bei!!!!!
Vielleicht verstehe ich dich nicht richtig, aber das erste Venster mit Code in meinem Beitrag ist das ganze Program (den Datei test.c) von Moebius, ungeändert! Ich möchte nur angeben wie du das schöner in einem Beitrag wiedergeben kann, ohne Riesige Beitragen zu machen. Es hat meines wissen kein Fehler drin. Mit einer Ideal-Asuro ohne Messstörungen soll das Programm gut laufen.Zitat von Pewi006
In meinen Letzter (grosse) Beitrag habe ich nur das wichtigste Teil der Anderungen sehen lassen. Aber ich verstehe das du nicht gleich wisst was du damit anfangen soll. Jedenfall sollst du nicht mit Microsoft Word diese Programmen bearbeiten. Das tut den Kompiler wehe! Windows Notepad, oder Programmer Notepad (mitgeliefert mit den WinAVR Kompiler: pn.exe) reichts. Es ist nur ein einfaches Textdatei, und das soll es auch bleiben. Word macht gern seine eigenes Dateiformat davon. Mein Code-schnippsel ist die erste while-schleife innen von den Außerste While-schleife. Aber ich werde das Komplete dur mich Geänderte Programm hier geben. Das soll den Datei test.c ersetzen. Welcher Meldungen habst du beim Kompilieren bekommen? Bitte die Resultaten von den "make all" Anruf Posten. Nicht alle warnungen sind wichtig.Im zweiten Satz (die Programmierbare Lösung) soll ich eine Pollswitchmessung machen und das in 2 oder mehr Variablen und dann mit einem if-Befehl abfragen.
Ich nehme an, dazu dient das zweite Programm!? Ich habe mir beide In WORD kopiert. Aber dann?
Wäre es auch möglich, dass Programm fehlerfrei umzuschreiben? Ich würde es mir auch abtippen. Wenn ich das kann.
EDIT Ich hatte noch ein Fehler bemerkt in meiner erste Beitrag:Code:// Originale Program von Moebius // https://www.roboternetz.de/phpBB2/viewtopic.php?t=9317 // Geändert durch Valen (14-12-2010): Mehrfache PollSwitch Anruf zur stabile Taster Erkennung, weitere Kommentaren. #include "asuro.h" int main(void) { int i; int k=0; i=0; int l; l=1; unsigned char t1, t2; // Speicher führ Taster Werten, zugefugt durch Valen t1=0; // Anfangswert geben, kein Taster t2=0; // Anfangswert geben, kein Taster Init(); while(1) { while(1) { // Änderungen von Valen: Stabiele Tastererkennung t1=PollSwitch(); // Erste Taster Messung t2=PollSwitch(); // Zweiter Taster Messung if ((t1==t2) && (t1>0)) i=1; //Ist die Tastenmessung gleich oder stabil? Und ist irgendeiner Taster bemerkt? ! Moebius ignorierte den Taster K6 mit >1 // Ende von Änderungen von Valen: Stabiele Tastererkennung if(i==0) // Kein Taster Bemerkt, Vorwärts! { MotorDir(FWD,FWD); MotorSpeed(200,210); } else // Taster Bemerkt. Rückfahrt! { MotorDir(RWD,RWD); MotorSpeed(150,160); Sleep(250); k++; } if(k>500) // Ausbrechen von diese schleife, 500 mal reagiert auf Taster Erkennung. Nun Reichst! { MotorSpeed(0,0); break; } } while(1) // Wegdrehen vom Objekt-umgebung { if(l<300) // 300 mal 250 Timer Ticks Drehen { MotorDir(FWD,RWD); MotorSpeed(120,120); l++; Sleep(250); } else // Weit genug weggedreht! Wieder Vorwärts und Tastermessungen machen, also aus diese Schleife brechen. { MotorSpeed(0,0); i=0; // Letzte Taster erkennung ist nicht mehr gultig. k=0; // Zeitzähler Ruckwärtsgang zuruckzetsen. l=1; // Zeitzähler Drehung zuruckzetsen. break; } } } return 0; }
if ( (t1==t2) && (t1>0)) i=1; // war (t1=t2)
Das stimmt. Vielleicht geht es auch ohne, aber es ist Recht einfach (nur ein Bischen Knapp dort auf die Platine), und Angeraten durch den Atmega8 Fabrikant.Dort, wo ich über die elektronische Verbesserung nachgesehen habe, wird auch darauf hingewiesen,
dass die meisten ASURO auch ohne Umbau laufen.
Dann wurde ich mal Bald anfangen mit Programmieren lernen. Deine Katze wird doch ein Gesprächspartner Brauchen im Mitte der Nacht, oder?Programmieren?????? Da bringe ich doch meiner Katze eher das Sprechen bei!!!!!
Oder vielleicht Gesangpartner.
https://www.roboternetz.de/phpBB2/ze...ag.php?t=32782
Hallo Valen
Jetzt muss ich dir doch etwas länger schreiben.
Ich habe den ASURO gebaut, weil ich gerne bastele. Ich war auch sehr stolz, dass er alle Tests ohne Fehler bestand.
Ich habe vor Jahren mal ein wenig mit Basic programmiert, nichts Tolles. Daher weiß ich, dass das Programmieren nicht so einfach ist und wenn man nicht immer damit zu tun hat, vergisst man schnell. Da es für den ASURO, im Internet sehr viel Information dazu gibt, habe ich mich darauf verlassen, auch einige Programme zu finden. Aber…. Fehlanzeige.
Da habe ich mir viel Mühe gegeben und was macht er? Eine grüne Lampe blinkt … na toll (sagt meine Frau.)
Aber….. dank deiner geduldigen Hilfe (und meinem Ehrgeiz) hat mein ASURO vor 12min
genau das gemacht, was ich mir vorgestellt habe. Er startet und wenn er mit einem Sensor an ein Hindernis stößt dreht er ab dazwischen macht er einige willkürliche Drehungen. Genau wie im Video(http://www.youtube.com/watch?v=rxcRx-FIbng). Prima, prima, ein schönes Weihnachtsgeschenk von dir.
Danke.
Ich werde meine vorherigen Beiträge etwas kürzen aber im Forum bleiben (es gibt ja noch Erweiterungen.) Ha – ha – ha.
Danke natürlich auch an Moebius.
Grüße aus Schleswig-Holstein.
In die Niederlande.
Ja, singen kann die Katze besser .. aber Bruder Jacob? Da programmiere ich doch lieber!!
Ich habe noch ein kleines Programm:
Nach dem Anschalten fährt er los und regelt mittels Odmetrie, er soll gerade fahren. Wenn man ein Rad festhält wird es beschleunigt usw.
Tastenbelegung:
(von vorne links nach rechts)
1 - langsam 123
2 - normal 150
3 - rückwärts
4 - rechtskurve
5 - stop
6 - linkskurve
Noch folgende "Features":
-flankengesteuerte Odometrie mit Helligkeitsanpassung
-sanftes Beschleunigen und Abbremsen
-verbesserte Tastenauswertung
Es würde mich interessieren ob das alles auch auf einen anderen ASURO klappt.
Gruß
ASUR0
Mein Asuro ist immer noch im Garage und noch nicht Flash fähig. Ich habe deshalb nichts an dein hex. Könnte ich vielleicht schon den Quell Code anschauen?
schwierig, da alles in einer Bibliothek drin ist und es deshalb zig Codeschnipsel sind.
Beitrag verlegt in anderen Threat
Lesezeichen