PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro ausgabe auf den Hyerterminal



Illuminat23
10.11.2006, 11:27
Hi Ho,
der Illus is es ma wieder...

arbeite gerade an nem gerade fahren...

Problem Asuro soll mir wärend er fährt auf dem Hyperterminal die werte des Encoders ausgeben aber wie mache ich das bzw. welche function in der libary macht mir das ?

Bitte um Antwort!
Danke im vorraus.

greetz da Illus23.

The-BooN-
10.11.2006, 11:30
Hi Ho,
der Illus is es ma wieder...

arbeite gerade an nem gerade fahren...

Problem Asuro soll mir wärend er fährt auf dem Hyperterminal die werte des Encoders ausgeben aber wie mache ich das bzw. welche function in der libary macht mir das ?

Bitte um Antwort!
Danke im vorraus.

greetz da Illus23.schau doch mal in der biblio nach ^^ hat mal ein weiser illu zu mir gesagt.... :-P

mfg the-boon-

Illuminat23
10.11.2006, 11:35
Leider habe ich da schon kurz reingeguckt und habe die richtige function nocht nicht gefunden...

EDH
10.11.2006, 13:05
Also die odometir kannst du doch mit OdometrieData auslesen. und senden kannst du di werte mit SerWrite

mfg EDH

Illuminat23
10.11.2006, 13:07
jap SerWrite hab ich gefunden...

mmh in moemnt hab ich esm it encder[left] probiert das aht aber nicht geklappt versuche es mal mit OdometrieData

danke

EDH
10.11.2006, 13:11
encoder[left] funktioniert doch nur im interrupt betrieb, hast du den angeschaltet?

Illuminat23
10.11.2006, 13:13
mmh wenn das mit EcoderInit und Encoder_Start geht ja ansosnten nicht

damaltor
10.11.2006, 19:14
wenn du möchtest dann kann ich dir ein Programm schicken was genau das macht... also die werte ausgeben mein ich. allerdings wäre selber überlegen natürlich besser...

Illuminat23
10.11.2006, 19:21
kannst gerne machen würd mir arbeit ersparen da ich ja aus den odemetrie werten dann mir ne formel bastel zum gerade aus fahren die "Go" funktion is ja bescheiden und funktioniert naja sagen wir 0.

Wir arbeitn nämlich gerade an einem Schulprojekt mit dem Asuro mit LCD Bildschirm also geradeausfahren und wegstrecke merken udn anzeign sowie batterie stand und solche späße ;) da darf ich noch gengu denken!

EDH
10.11.2006, 19:28
ja also, wenn de dich mit der lcd ansteuerung auskennst, dann sollte doch ein ausklesen der odometriewerte kein priobelm sein ;)
woher habts ihr den die lcd erweiterung? marke eigenbau?
es gibt hier im forunm viele user, die eine bauanleitung für das lcd brauchen, aber keine gefunden haben

Illuminat23
10.11.2006, 19:53
nene auskennen tue ich mich da nicht muss mich noch einarbeiten überall

damaltor
10.11.2006, 21:54
na gut... solltet ihr wirklich in der schule was mit lcds machen könntest du dafür gut einen thread aufmachen wenn du genaueres hast...

schick mir ne pn mit deiner email adresse...

Illuminat23
15.11.2006, 11:09
Danke für den Quell etc.

habe das Programm umgeschrieben das es jede Sekunde die Werte ausgibt sieht so aus.



links rechts
373 576
771 188
723 540
286 125
206 457
287 540
399 247
666 99
719 175
760 444
720 532
580 534
214 216
206 333
290 97
748 467
748 95
722 152
535 320
335 579
250 330
202 131
542 580
'47 409
459 261
296 515


das '47 kommt mir bissl kommisch vo vorallem schlimm find ich das da z.b. l 722 und rechts 95 ist... ](*,)

damaltor
15.11.2006, 12:15
es kann manchmal passieren dass ein zeichen fehlerhaft übertragen wird (dann kommt ein anderes zeichen wie z.B. ' oder auch, wenn "aus versehen" ein steuerzeichen übertragen wurde, gar kein zeichen. die extrem niedrigen werte sind wahrscheinlich solche werte.

ansonsten nutzt diese auflistung nicht viel, lass mal lieber den originalzustans laufen und poste dann nochmal ne liste. dann kann man die übergänge zwischen weiss und schwarz deutlöich besser sehen.

Illuminat23
15.11.2006, 13:09
Gut gut habe den Asuro leider net zu hause diesmal werde ich dann machen ;)

Illuminat23
17.11.2006, 09:36
So hehe,

habe jetzt dieeine Sekunde wartezeit draußen die "Steuerbugzeichen" raus gemacht und nun das ergebnis...


links rechts
167 584
810 796
482 799
255 774
727 538
661 372
366 336
652 352
795 395
376 505
503 399
789 426
238 566
767 427
378 445
369 508
783 521
497 367
377 352
770 320
597 368
343 469
746 724
705 786
227 717
723 780
653 530
248 430
611 410
720 366
358 338
585 423
93 481
304 572
584 777
789 774
280 747
577 721
657 50
172 342
651 359
696 424
349 598
693 803
705 741
334 524
745 433
635 353
065 400
775 754
655 786
256 763
730 486
642 336
364 546
706 704
726 744
247 732
708 357
736 458
232 727
793 748
603 573
239 346
771 571
508 783
337 788
761 607
727 362


Hoffe das hilft xD da der unterschied ziemlich heavy ist gemesen wurden die daten indem wir den Asuro in der Hand hieltne und die räder frei drehen konnten...

damaltor
17.11.2006, 09:50
also beim linken rad hast du glück. die werte für schwarz und weiss sind fast 500 einheiten auseinander, damit kann man toll arbeiten. rechts wirds schwieriger, die werte sind nur etwa 150-200 auseinander (so wie bei mir auch)... also, da das ja eigentlich der beginn des topics war, würde ich dieses problem mal als gelöst betrachten =)

solltest du neuigkeiten haben zum lcd-display dann mede dich bitte!

Illuminat23
17.11.2006, 10:00
Ja laut TOpic ja xD jetzt such versuch ich mir auszrechnen wenn ich z.b. 50 eingebe wieviel das je rad ist z.b. ode =400 = 50 speed damit ich dann mit dreisatz mir errechnen kann um wieviel das rad lansamer ist und ich dann dazu geben muss ;)

damaltor
17.11.2006, 14:02
hmm...du bist auf einem guten weg... aber ich denke es geht auch einfacher... denk mal drüber nach, ich meld mich heute abend nochmal

Illuminat23
17.11.2006, 14:04
naja mit der tollen Go() function kann man es vergessen ;)

Und so denke ich dürfte das klappen mit einfachen wenn linkes rad schneller als rechtes mach rechtes schnelelr oder linkes langsamer funktioniert auch nicht so toll...

damaltor
17.11.2006, 14:06
warum nicht? so fährt meiner mehr oder weniger schnurgeradeaus...

Illuminat23
17.11.2006, 14:08
unserer nicht das mir zu ungenau klar er wird nie 100% geradeaus fahren aber so dreht er immernoch nen kreis und das mag ich nicht wir hatten es auch mal hinbekommen das er ner linie soweit folgt aber da ha er nu links rechts gelackert das auch nicht sin der sache...

damaltor
17.11.2006, 14:10
na dann: weiterprobieren, algorithmen (schreibt man das so?) verfeinern, das problem in kleinere teilprobleme teilen...

Illuminat23
17.11.2006, 14:13
kp ob man das so schreibt aber genau das werde ich tuhn wenn mein asuro gerade ausfährt werd ich meine lösung gerne posten ;)

PS: wir haben jetzt die ganzen odemetrie sachen abgedunkelt auf dem asuro bekomen auf einmal zauberhafte werte ;)

damaltor
17.11.2006, 18:33
ja das hilft wirklich sehr. mach doch mal nen foto von ujnd poste das hier!

Toschtosch
17.11.2006, 21:35
bloß nich :D
ich und illu arbeiten gerad daran :D der "blend-schutz" ist eine zerschnittene kaffe packung^^

sieht funny aus, aber erfüllt seinen zweck

PIMP my Asuro :)

mfg toschtosch

damaltor
17.11.2006, 21:38
na gerade dav0on muss man doch fotos machen... wir wollen auch was zu lachen haben =)

Toschtosch
17.11.2006, 21:41
aber mit "abdeckung" sind die werte echt super, manchmal über 820
hatte es heut auch schon mal das der mittelwert zwischen rechts und links unter 10 bzw 2x 0 war

work must go on

toschtosch

damaltor
17.11.2006, 22:01
das ist geill... bei mir sind die werte immer zwischen 720 und 920. egal, ob der raum strahlend hell ist oder nachts um 4 stockfinster... =(

Illuminat23
17.11.2006, 22:08
hehe kommt nächste stunde wenn wir asuro inna schule haben ;)

damaltor
17.11.2006, 22:12
alles kla, ich freu mich drauf =)

Hissi
08.01.2007, 18:58
Hallo

wie habt ihr die werte aus/eingelesen habt ih rHyperterminal verwendet?
hab mir auch so ein programm geschrieben allerdings gibt mir das Terminal nur wirre Zeichen aus (wird daran liegen das es die empfangenen Zahlenwerte in ASCII Zeichen umwandelt)
Hat da jemand nen Lösungsvorschlag

mfg Hissi

radbruch
08.01.2007, 20:41
Wenn du uns freundlicherweise deinen Code zeigen würdest..

Hissi
09.01.2007, 15:48
Mein Code ist mit anfänger c++ Kenntnissen geschrieben ghet sicher noch um einiges leichter.....


#include "asuro.h"

int main (void)
{
unsigned char i,s,sc,temp;
int templinks, temprechts, summelinks, summerechts, x, y, a, b, wechselrechts, wechsellinks;
//int n1l, n1r, nr, nl;
int data[2];
Init();
MotorDir(FWD,FWD);
s=200;
temp=s/3;
sc=temp*2;
MotorSpeed(s,s);
wechsellinks=0;
wechselrechts=0;
while(1)
{
for(i=0;i<1000;i++)
{
Sleep(72);
templinks=summelinks;
summelinks=wechsellinks+templinks;
temprechts=summerechts;
summerechts=wechselrechts+temprechts;
x=data[0];
y=data[1];
OdometrieData(data);
SerWrite(data[0],3);
SerWrite(data[1],3);
a=data[0];
b=data[1];
if(x>a) {wechsellinks=1;}
else {wechsellinks=0;}
if(y>b) {wechselrechts=1;}
else {wechselrechts=0;}
}
if(summelinks>summerechts) {MotorSpeed(sc,s);}
else {MotorSpeed(s,sc);}
}
}


kurze Erklärung:
Programm sollte die einzelnen Werte vor und nach der Aktualisierung in der for schleife vergleichen und dann das ergebnis für links und rechts in eine Summe zusammenfassen diese summen werden dann verglichen.

damaltor
09.01.2007, 16:48
Wo ist denn da ne ausgabe? warum kommt da überhaupt was an? habe ich das serwrite übersehn oder fehlt es wirklich?

Hissi
09.01.2007, 17:10
Oh sorry hab die Version ohne die Ausgabe erwischt stell das gleich mal richtig

mfg Hissi

edit: habs grad nochmal probiert und bin draufgekommen das der ASuro immer eine Rechtskurve fährt (ist bei den Testläufen wohl von alleine gerade gefahren :( ) find zurzeit den Fehler nicht wäre für jede Hilfe dankbar

Downad
09.01.2007, 17:54
mache an stelle der



SerWrite(data[0],3);

lieber was anderes :)

itoa -->wandelt einen Integer in einen String um
oder schau dir mal die printint an

denn die SerWrite erwartet einen String! und keinen Wert

Hissi
09.01.2007, 18:43
DAnke muss ich mal ausprobieren hab aber zur zeit inder schule sehr viel zu tun

mfg Hissi

damaltor
09.01.2007, 20:09
benutze einfach PrintInt(data[0]); an dieser stelle.
die funktion rechent den zahlenwert in ascii-zeichen um und sendet sie dann an das hyperterminal.