PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Asuro] Programmierproblem bei Linienfolge



Maximatic
19.01.2005, 16:43
Hallo zusammen,

ich bin gerade dabei meinem Asuro das Folgen von Linien beizubringen. Auf dem Level der Programmierbeispiele funktioniert schon alles wie es soll.
Den Code finde ich aber noch verbesserungswürdig( soll ja schließlich auch nur Beispiel seien, mehr nicht).

Mein Ansatz:

- Wenn [0]==[1] fährt er gerade aus. Weil der Untergrund aber nie wirklich == wiedergibt fährt er immer nach rechts.. vielleicht ist die rechte Fotozelle einfach bischen anders gebogen o.ä.
Ich möchte also eine Art Toleranz einbauen, die z.B. mit einer Schneise von +-200 als == interpretiert.

-Um eben diese Werte "einstellen" zu können, würde ich gerne die Werte der FZellen per IR an das Hyperterminal schicken.

Leider bin ich in C noch nicht so gut, um zu wissen, wie das genau geht.
Kann mir viellecht jemand einen Tip gehen? - Das mit dem Wert versenden wäre fast das wichtigere, weil ich dann wenigstens sehe, wie stark der Papkarton(untergrund) "unterschiedlich" ist.



mein bisheriger Code:
#include "asuro.h"

int main(void)
{

unsigned int data[2];

Init();

FrontLED(ON);

while(1){
LineData(data);

if(data[0] > data[1]){
MotorDir(FWD,FREE);
MotorSpeed(180,180);
StatusLED(RED);
BackLED(OFF,ON);
}

if(data[0] < data[1]){
MotorDir(FREE,FWD);
MotorSpeed(180,180);
StatusLED(YELLOW);
BackLED(ON,OFF);
}

if(data[0] == data[1]){
MotorDir(FWD,FWD);
MotorSpeed(180,180);
StatusLED(GREEN);
BackLED(ON,ON);
}



else;



}
return 0;
}





mfg und fröhliches Asuro Gassi-gehen


Maximatic

RCO
19.01.2005, 18:55
In der Anleitung sind doch die verschiedenen Funktionen beschrieben, unter anderem auch "SerWrite("Text", 4);" Seite 64!
Außerdem hindert dich nix daran in in Basic (Bascom) zu Programmieren.

Fragen dazu?

MFG Moritz

Maximatic
20.01.2005, 19:12
Edit:

Hab gefunden was du gemeint hast, thx. Aber ein Problem hab ich immer noch. Er scheint zwar die daten zu senden, aber das Hyperterminal entpfängt nur Müll.


---´º---´Ó---¡---¯---´---´¦---Ž¡---¯---`Y---¡¯---¡¯---¡¯---¯---¡¯---´´---
´‚---R¡---¯---¡¯---ö¡--- ¡---¡---¡¯---¯---´ ---´’---^¡---¯------â¡---Ä¡--
-l¡---¡---¡¯---´´---´´---´µ---¯---¡¯---´´---ERO-------ƒE-----{---VL----------
--------------------------------------CK---VL---VL---OK---ROK---OK---VL---VL---O
K---ROK---OKC---VL---ERO---åER---…ER---ERO---`Y‚---<---<---<€---<€------¯---¯--
----------<---<€---<€------------<€---ERO----



etc... die "---" hab ich zwischen jeden Wert gesetzt.

Irgendeine Idee?


Hätte ich nach einer Basic-Lösung gesucht, hätte ich die Frage wohl nicht im C Forum gestellt. Ich möchte aber auf jedenfall bei C bleiben, weil ich in der Uni auch nur damit arbeite und sich so hobby und lernen gut ergänzt.[/code]

bluebrother
21.01.2005, 10:39
das sieht stark nach falscher Baudrate aus -- hast du die mal durchprobiert? Ich hab auch die Erfahrung gemacht dass Microschrott's Hüperterminal totaler Schrott ist, ich würde dir empfehlen dir was besseres im Internet zu besorgen. Ich hab hier "Terminal" von "Br@y". Relativ leicht zu finden.



Außerdem hindert dich nix daran in in Basic (Bascom) zu Programmieren.

@RCO: warum würde er denn dann im C-Forum schreiben? Ich verstehe wirklich nicht wir man überhaupt _freiwillig_ einen AVR in Basic programmieren (auch nur) _will_.

RCO
21.01.2005, 14:00
Ich verstehe wirklich nicht wir man überhaupt _freiwillig_ einen AVR in Basic programmieren (auch nur) _will_.

Immer locker!
Maximatic meinte:


Leider bin ich in C noch nicht so gut, um zu wissen, wie das genau geht.

Es hätte ja sein können, dass er Basic besser kann aber nicht weiß, dass es auch möglich ist, ihn damit zu proggen.

Was meint ihr denn, ist besser an C?
Also ein Vorteil ist, denke ich:
C ist Assembler-ähnlicher und damit weit näher am wirklichen Geschehen im AVR als Basic.

Aber als ich angefangen habe, kam mir Basic nun einfach mal simpler und einstiegsfreundlicher vor. Mittlerweile denke ich auch ein bisschen anders darüber, würde aber wenn vermutlich direkt auf ASM umsteigen.

MFG Moritz

mirki
23.01.2005, 13:11
Ich glaube kaum, dass Du als Basic fan direkt auf ASM umsteigst !?

RCO
23.01.2005, 13:29
Basic-Fan bin ich ja nicht. UNd soweit ich weiß, bietet Bascom die möglichkeit Basic-Code einzubinden, also auch in das Basic-Programm.
Was dann schon mal ein erster SChritt in die Richtung wäre.

MFG Moritz

pebisoft
23.01.2005, 16:44
hallo, ich binde für die programmierung des küchenbrettroboters auch "asm-schnipsel" in bascom ein, ist eine tolle sache. es gibt nicht sehr viele routinen im avr die zeitkritisch für die verwendeten baugruppen sind, sei es rc5,srf04,srf08,compass-sensor. gerade im roboterbau wird meistens eine schnelligkeit gefordert, die keinenfalls für die durchführung erforderlich ist. die meiste zeit bleibt die auslastung des avr im unteren bereich. gerade bei der fehlersuche habe ich in bascom überhaupt keine probleme. auch kann ich im programm zu 100% nachvollziehen, was das bascom gerade macht. ich habe hier im forum vor einpaar tagen mal um eine lösung gebeten, für die anbauteile meines küchenbrettroboters in c.
meine forderung war doch zu hoch, es war ein schlamützel, es gab keine einigkeit in der lösung, nach der 4. -5. nachricht war das thema schon gewechselt worden, schade.
mfg pebisoft

NumberFive
23.01.2005, 23:40
Also Hyperterminal ist sicher nicht das non plus ultra aber
ich habe bios jetzt noch nie probelme mit.

die Ausgabe sieht wirklich nach de falschen baud rate aus
aber den code hast du ja nicht dabei. Hast du dich vielleicht
verechnet CPU takt ?

Gruß