PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro fahren programmiert durch Hyperterm



Arexx-Henk
18.05.2006, 11:10
Hallo Robotiker,

Gerne mochte ich mal wissen wie euren Asuro reagiert auf dieses Program.
Mit dieses Program lasst sich Asuro (hoffentlich ;-)) ziemlich genau manouvrieren.

- dass Program laden in Asuro
- Hyperterminal aufstarten
- z.B. q,d25,f,l,x in Hyperterminal eingeben

(Asuro soll 25cm forwarts fahren und sich dann nach links umdrehen)

Hier findet mann diesen Program und ein kleines Handbuch Textdatei (auf English)

http://home.planet.nl/~winko001/Asuro/Software/AsuSfwPagFrm.htm

Gruss

Henk

dopez
22.05.2006, 14:42
Hallo Henk!

ich schreibe mal eben kurz in englisch weil mann mir dann bestimmt besser versteht,

I have not used my Asuro for a few weeks but when i saw this code i just had to try it :) (I was playing around with PIC's and serial/LCD, trying to do things similair to what this does)

It works great for so far i can see, just that i use the other wheel sensors so that's probably why it doesn't make 'exact' 45 or 90 degrees turns

Next thing is to make my PDA's IR work again :D

oh, it might be nice to note in the readme that the serial connection is 2400 8N1 for people not using hyperterminal

Gruß,
dopez

Theux
17.01.2008, 13:11
ähm ne dumme frage wenn ich nur eine hex. datei hab wie lad ich die auf meinen asuro, ich mein wenn ich auf den link geh der oben steht und dann auf eiene beliebige .hex datei klick seh ich nur die 00FF...usw. wie krieg ich das als .hex datei raus?

pinsel120866
17.01.2008, 13:55
Ganz einfach, hex - Datei mit rechter Maustaste anklicken - Speichern unter und Speicherort auswählen.

Das war's!

Theux
17.01.2008, 14:09
ok thx hat auch schon geklappt, aber so ganz begeistert bin ich etz davon net weil wie will cih machn das ich den steuern kann ohne das er aus dem empfangsbereich des infrarot rausfährt?

damaltor
18.01.2008, 13:18
langsam langsam.

was für ein programm? code? quelle? doku?
was willst du machen?
was klappt nicht?

Theux
18.01.2008, 15:46
ich hab ein programm auf meinen asuro geflasht von oben genannter seite (hoffe die funktioniert jetzt wieder) mit dem ich asuro per hyperterminal steuern kann.
das dumme ist nur:
die befehle sind eher müsam einzugebn aber des is etz erstmal egal
mein hauptproblem is das ich das nur machn kann wenn mein asuro unter dem infrarot-sender steht. da ich ihn aber sag er soll fahren is das der einzige befehl den er machn kann weil er dann aufgrund seiner entfernung zum infrarot keinen konntakt zum pc mehr hat :-( und ich ihn erst wieder zurückschiebn muss und deshalb wollt ich wissen ob es irgendwie eine möglichkeit gibt dieses problem zu behebn, im notfall auch ob man auf den asuro z.B das rn-funkboard (ich mein halt ne antenne etc.) draufmachn könne anstelle des infrarot-empfängers

thx schonma

Theux

oberallgeier
18.01.2008, 16:52
... programm auf meinen asuro geflasht von oben genannter seite ... mit dem ich asuro per hyperterminal steuern kann.
... hauptproblem ... is das der einzige befehl den er machn kann ...Ach wie gut Du es hast.

Ich habe von der AREXX-site (http://home.planet.nl/~winko001/Asuro/Software/AsuSfwPagFrm.htm) so ein Programm geholt, "Driving Asuro by programming through Hyperterminal V1.0", und auf den asuro geladen. Nach dem Start fährt nun MEIN asuro 15 cm vor, bleibt dann stehen und schaltet ALLE Anzeigen ab. Eine Kommunikation mit ihm ist jetzt nicht mehr möglich, obwohl ich ihn VOR dem Einschalten so stelle, dass er nach der Fahrstrecke direkt und ordentlich vor dem flash tool steht.

Dabei "höre" ich auch am Terminal nichts mehr vom asuro.

Keine Ahnung was ich jetzt machen soll.

Arexx-Henk
18.01.2008, 19:04
Hallo,

Da gibts zwei versionen, 1.0 und 1.1.
Beim aufstarten tont sich die Version in Hyperterminal.
Wenn mann 1.0 hat dan vielleicht mal 1.1 ausprobieren von hier:

http://home.planet.nl/~winko001/Asuro/Software/AsuSfwPagFrm.htm

Gruss,

Henk

oberallgeier
18.01.2008, 22:15
Schade - bei mir läuft die Version 1.0 nur sehr schlecht. Der Befehl qfx lässt ihn etwa 10 cm mit geringer Geschwindigkeit fahren - unabhängig davon, welcher default Wert für speed und distance eingegeben wird.

Beim Driving example:
qs10d20fld10fid10frd20fex
macht er nur einen kleinen Ruck um etwa 45 Grad.

Na ja, aber "...playing music" läuft hübsch.

damaltor
19.01.2008, 13:35
oberallgeier: kann das an zu geringer stromversorgung liegen? infrarot und motoren ist ganz schön viel...

Theux: Halte den transceiver etwas höher =) bei mir sind knapp 1 m kein Problem.

oberallgeier
19.01.2008, 14:14
Hallo

oberallgeier: kann das an zu geringer stromversorgung liegen? ...Hast Du mir gestern über die Schulter geguckt!!? Das Terminal zeigte plötzlich lauter VL VL VL VL . . . darauf hin hatte ich die Lademaschine angeworfen.

Und jetzt läuft er, der Asuro. Ich hatte ein Energieproblem :(

damaltor
19.01.2008, 17:06
Kannste mal sehen... =) Naja passiert. aber wenn es so einfach war ist doch alles gut.

rossir
20.01.2008, 23:31
Ich habe das Herauskommen der neuen lib 2.7.1 zum Anlass und Übung genommen um damit Henks Programm mal als Quellcode nach zu vollziehen.

#include "asuro.h"

#define MAX 50

#define SPEED 10*reg[0]
#define DIST 10*reg[1]

void readLine(char *cmd, int max) {
unsigned char len=0;
char data;

while(len<max-1) {
SerRead(&data, 1, 0);
switch (data){
case 'k': // end of command sequence but first wait for any asuro key (change)
StatusLED(YELLOW);
PollSwitch();
max=PollSwitch();
while (PollSwitch()==max); // LOOP
// FALL THRU
case 'x': // end of command sequence
cmd[len++]=data;
max=len;
break;
case 'q': // kills the entire input buffer
StatusLED(RED);
len=0;
break;
default:
cmd[len++]=data;
break;
}
}
cmd[len]=0;
StatusLED(GREEN);
}

void turtle(void) {
int reg[]={10, 20};
unsigned char i, r=0;
char cmd[MAX];

EncoderInit();

while(1) {
readLine(cmd, MAX);
for(i=0; cmd[i]; i++) {
switch(cmd[i]) {
case 's': r=0; reg[0]=0; break;
case 'd': r=1; reg[1]=0; break;
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
reg[r]=10*reg[r]+cmd[i]-'0';
break;
case 'l': Turn( -90, SPEED); break;
case 'r': Turn( 90, SPEED); break;
case 'L': Turn( -45, SPEED); break;
case 'R': Turn( 45, SPEED); break;
case 'e': Turn(-180, SPEED); break;
case 'i': Turn( 180, SPEED); break;
case 'f': Go( DIST, SPEED); break;
case 'b': Go(-DIST, SPEED); break;
}
}
}
}

int main(void) {
Init();
turtle();
return 0;
}

Ich hoffe, ich habe es damit im Wesentlichen getroffen Henk?

Arexx-Henk
21.01.2008, 20:15
Hallo,

>Ich hoffe, ich habe es damit im Wesentlichen getroffen

Ja dass stimmt. ;-)

Gruss,

Henk