PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie den Einstieg in die Programmierung finden???



applican
22.03.2007, 20:04
Hallo

Ich bin neu hier, heisse Dave und habe kürzlich einen Asuro gekauft, gebaut und auch schon ein bisschen experimentiert.
Nun stellt sich mir jedoch die Frage, wie ich am besten fortfahre bez. Programmieren. Ich habe schon mit diversen Sprachen experimentiert (u.a. C) und möchte auch damit arbeiten. Die Robotik ist für mich hingegen Neuland, genauso wie "Realtime"-abläufe. Und das ist auch schon das Problem, das ich im Moment habe. Wenn ich mir ein Programm für meinen Asuro überlege, hänge ich immer daran Fest, dass ich nichts Parallel machen kann (habe mich mal mit den interrupts der Schalter beschäftigt, damit hatte ich aber einige Probleme).
Ich wollte beispielsweise ein Programm erstellen, dass ein Iterrupt der Schalter den Asuro dazu bringt 2 sekunden rückwärts zu fahren und dann 3 Sekunden zu drehen, nachher weiter zu fahren. Da hatte ich aber das Problem, dass ich im vom Interrupt gestarteten Programm den Timer nicht nutzen konnte.

Was könnt ihr mir nun empfehlen, wie ich mich am besten in die Materie des Roboterprogrammierens einarbeite? Ich bräuchte einfach die Grundlegenden Lösungsansätze. Kann das Buch "mehr spass mit asuro (1 oder 2)" helfen? Oder kennt ihr eine gute Website oder sonst ein gutes Buch, wo ich mich (zusammenhängend, also nicht da ein Element und auf einer zweiten Seite ein Element) einarbeiten kann?

danke und gruss Dave

damaltor
22.03.2007, 20:18
Die bücher sind gut für den anfang. allerdings kannst du gut zuerst mal die anleitung surcharbeiten, hier sind viele grundlagen gut erklärt. probiere, die programme zu verstehen und zu verändern - es sind nicht nur mini-beispiele. kopieren und einfügen funktioniert übrigens aus zeichensatzgründen nicht - abtippen ist das zauberwort ^^

ansonsten: versuch mal langsam anzufangen, ohne interrupts (die timer sind übrigens alle belegt) und mit so sachen wie tastererkennung, oder versuch mal den kleinen geregelt geradeausfahren zu lassen. das ist das beste was es zum einstieg gibt. wenn du einen ansatz hast, dann poste ihn hier - vielleicht können wir helfen.

applican
22.03.2007, 23:27
ich habe auf der Anleitung basierend schon viel herumprobiert, aber ich brauche ein bisschen Hilfe, wie ich es angehe, eine umfangreicheres Programm zu schreiben mit mehr Funktionen (z.B. Taster o.ä.)
Ich werde mir wohl das Buch kaufen. Denkst du, dass mir das helfen könnte?

gruss dave

DGS
22.03.2007, 23:57
Also was den Timer angeht - da empfehle ich dir einfache for-schleifen.

bsp: (pseudo code)


if (taster==1) {
FahreRückwärts();
for (j=0; j <2; j++)
for (i=0; i<0xf000; i++ );
DreheImKreis();
for (j=0; j <3 j++)
for (i=0; i<0xf000; i++ );
Bremse();
}

Jede Operation kostet Zeit. Der Roboter hat einen festen Takt, der spürbar kleiner ist als von allen gebräuchlichen PCs.

So kannst du dir nen Timer bauen. Allerdings müsstest du auch schauen, ob die werte so hinhauen. Was dir weiterhelfen sollte: Der Prozessor arbeitet mit 72KHz.

applican
23.03.2007, 08:23
ah, ok... danke...

Osser
23.03.2007, 16:20
Sorry DGS,

aber der Prozessor arbeitet mit 8MHz und nicht mit 72KHz.


cu

O.

radbruch
23.03.2007, 16:33
Zum Einstieg würde ich Interrupts meiden, sie sind gefährlich, weil man die Kontrolle über den Programmablauf abgibt. Da sollte man dann schon wissen, was man macht.

Wenn man Programme ohne Sleep()/Msleep() und ohne bremsende Tunix-Schleifen schreibt, hat man genug Zeit um per Polling die aktuellen Daten der Sensoren im Hauptprogramm einzulesen.

damaltor
23.03.2007, 17:42
Das Buch sollte helfen, aber ansonsten sind alle funktionen in der anleitung erklärt. man muss sie nur zusammenpuzzeln. versuche, dir eine idee auszudenken, was der asuro können soll, und poste sie hier. dann können wir dir tipps geben, das kann evtl helfen.