Hey,
Du kannst ja bei dem kleinen Wettbwerb mitmachen. Wenn Du schon so weit bist, sollte das Problem einer Linie zu folgen und einen Gegenstand zurückzuschieben, kein Problem sein.
Gruss,
stochri
Moin,
Ich habe zwar schon zwei kleine Roboter gebaut, zähle mich aber noch zu den Robotereinsteigern. Auch ich habe einen ASURO und möchet mit dem einiges ausprobieren. Mein ASURO kann schon eine Linie erkennen und ihr folgen und auch Hindernissen ausweichen.
Ich möchte mit der Erweiterungsplatine eine Objekterkennung per Infrarot realisieren. Im Moment hab ich noch ein paar kleine Probleme mit der Software. Ich Programmiere ASURO in C. Ich möchte einen Timer programmierenweiß aber nicht wie. Vielleicht kann mir da jemand helfen.
Wer auch einen ASURO besitzt und mehr damit machen möchte: Schreibt was das Zeug hält, dann können wir die Sache gemeinsam angehen.
mfG Sebastian
Hey,
Du kannst ja bei dem kleinen Wettbwerb mitmachen. Wenn Du schon so weit bist, sollte das Problem einer Linie zu folgen und einen Gegenstand zurückzuschieben, kein Problem sein.
Gruss,
stochri
Mich würde mal interssieren, wie Du das gemacht hast. Es wäre nett, wenn Du Code posten könntest und das Verfahren beschreibst, dann haben alle etwas davon.Mein ASURO kann schon eine Linie erkennen und ihr folgen und auch Hindernissen ausweichen.
Gruss,
stochri
Moin,
was für ein Wettbewerb und vor allem wo? Das mit dem Linie verfolgen steht auch im Bedienerhandbuch drinne. Ich habe das Programm nur noch ein bischen abgewandelt ud wollte es anschließend noch mit dem Ausweichprogramm kombinieren, sodass ASURO der Linie folgen kann und bei Kollision einem Hinderniss ausweicht. Zusätzlich soll er später mal IR-Augen bekommen. Leider habe ich noch ein paar Probleme mit der Software, da ich das noch nicht lange mache. C-Code zum Linienfolgen hängt an. Bei dem Ausweichprogramm fehlen noch die Timer für das Rückwärtsfahren.
mfG Sebastian
Hallo Bremer,
wenn Du irgendwas mit Timern machen willst, gibt es
1. eine ganz einfache Lösung, hier in Forum nach der erweiterten Asuro Bibliothek zu suchen, Weja hat dort eine Zeitfunktion eingefügt.
2. eine etwas schwierigere Lösung hier http://www.mikrocontroller.net/artic...ounter_des_AVR
Dabei lernst Du auch was über die Timer des AVRs
Gruß Sebastian
@Bremer:
Welcher Wettbewerb ? Na der hier, passt ja optimal zu Deiner Programmierefahrung: https://www.roboternetz.de/phpBB2/viewtopic.php?t=10806
Welches Verfahren benutzt Du um die Stelle zu erkennen, bei der der ASURO ausweichen muss ?Das mit dem Linie verfolgen steht auch im Bedienerhandbuch drinne. Ich habe das Programm nur noch ein bischen abgewandelt ud wollte es anschließend noch mit dem Ausweichprogramm kombinieren, sodass ASURO der Linie folgen kann und bei Kollision einem Hinderniss ausweicht.
Gruss,
stochri
Moin,
ja ich mir das mal durchgelesen und finde, dass das ne ganz schön knifflige Aufgabe ist. Das mit dem positionieren bekommt man wohl mit den Radencodern hin. Die Reflexlixhtschranken von meinem ASURO wollen allerdings nicht so recht. Hab schon alles verucht und auch alle Widerstände ausgetauscht aber da kommt kein Signal an. Versteh ich nicht.
Um zu erkennen ob der "Schatz" weg ist und wo er denn geblieben ist fällt mir spontan nur Ultraschall ein.
Und zu deiner Frage welches Verfahren ich benutze: Ich habe außer den Kollisionstastern leider keine weiteren Sensoren, was heißt, ASURO muss erst mit etwas kollidieren umes zu bemerken. Dem Programm habe ich dann gesagt, wenn du keine Kollision bemerkst (while (PollSwitch()==0)
folge der Linie, ansonsten weiche aus. Leider hängt er dann immer in der ausweichschleife fest. Also nach einer Kollision fährt er dann die ganze Zeit Rückwärts, weil kein Befehl kommt das zu beenden. Da muss ich mir noch was ausdenken. Naja mal schaun.
mfG Sebastian
Bau da doch einfach ein break; an die richtige stelle. Musst halt irgendwie festlegen, wann er aufhören soll.
www.subms.de
Aktuell: Flaschcraft Funkboard - Informationssammlung
Moin,
ich habe das mitlerweile hinbekommen mit der Rückwärtsfahrt. Ich habe einfach einen timer eingebaut und die neue asuro.h benutzt. Jetzt funktioniert alles besten. Nun muss ich nur noch Linienfolgeprogramm mit einarbeiten und schon kanns losgehen. anbei noch der Code für das Ausweichen.
mfG Sebastian
#include "asuro.h"
int main(void)
{
Init();
while(1)
{
if(PollSwitch()>=1)
{
StatusLED(RED);
MotorDir(RWD,RWD);
if(PollSwitch()>=7)
{
MotorSpeed(100,200);
BackLED(ON,OFF);
Msleep(1000);
}
else
{
MotorSpeed(200,100);
BackLED(OFF,ON);
Msleep(1000);
}
}
else
{
Msleep(100);
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(200,180);
BackLED(ON,ON);
}
}
}
Lesezeichen