Er wurde aber in beide richtungen durchgemessen und hat funktioniert !
Aber ich verste nicht warum sich der linke Motor statt dem rechten dreht.
mfg Daniel
mehr teile betreffen die motoren wigentlich nicht. am ende der anleitung ist ein schaltplan des asuro. da kannst du genau sehen welche teile du nochmal prüfen musst.
kontrolliere genau ob alles richtig rum drin ist, ob alle lötstellen wirklich 1A in ordnung sind, und ob die Nummern auf den transistoren die richtigen sind.
versuche, mit drahtbrücken die verbindungen neu herzustellen, evtl hat eine leiterbahn etwas gelitten.
Er wurde aber in beide richtungen durchgemessen und hat funktioniert !
Aber ich verste nicht warum sich der linke Motor statt dem rechten dreht.
mfg Daniel
Hallo,
ich hab das problem das mein Asuro manchmal einfach nicht fahren will.
Ob er nun auf dem Schreibtisch oder auf dem Laminat steht.
Er fährt vieleicht eine Sekunde los und bleibt dann stehen.
Ich vermute das vieleicht ein Taster klemmt oder das vieleicht auch das Getriebe nicht richtig funktioniert. Die Räder lassen sich leicht drehen und nach überprüfen der Taster keine Ergebnisse...
Ich habe versucht den Motoren mehr speed zugeben auch daran lag es nicht.
habt ihr vieleicht eine idee?
auch habe ich versucht meine Linienfolgesensoren zu optimieren. ich habe gelesen das jemand mit "jogurtbecher-teilen" eine abschirmung um diese herum gebastelt hat.
Inspiriert bin ich auf die idee gekommen ein stück aus einen milchtetrapack heraus zu schneiden, da die innenseite mit der aluminiumbeschichtung vieleicht ganz gut taugt...was meint ihr? reflektiert das zu sehr? stört das die sensoren? Leider habe ich keine besondere Ergebnisse damit erzielt...
Mal abgesehen davon das wenn ich mein asuro startbereit auf eine linie stelle, er eine leichte ahnung von der linie hat, einen leichten schwenker macht und er ihr keines wegs folgt...
Die Pape die ich da herum gebastelt habe ist ca. 5-8mm breit und ca. 2cm lang.
nun ja...aller anfang ist schwer...aber wenigstens hab ich den selftest überstanden... =D>
grüße Wolf
Hallo
Erstmal herzlich willkommen hier.
Könnte an einer kalten Lötstelle liegen oder am Programm.ich hab das problem das mein Asuro manchmal einfach nicht fahren will.
Abschirmen der Liniensensoren (und auch der Odometriesensoren) bringt bessere Ergebnisse. Zu den Sensoren reflektierende Abschirmungen könnten die Messungen allerdings ungünstig beeinflussen.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
zeig uns doch mal deinen programmcode. vielleicht liegt der fehler ja da.
wenn der asuro anhält, blinkt dann die statusled? dann hat der prozessor zu wenig spannung, er hat einen BrownOut-Reset durchgeführt und meldet durch das blinken (und auch über die infrarotschnittstelle, wenn man den transceiver drüberhält) dass die spannung nicht reicht.
Hallo und danke,
das anfahrts problem tritt jetzt nicht mehr auf...
ich habe die programme aus der anleitung benutzt...ich habe jetzt eins von eueren beispiel programmen benutzt und etwas umgeschrieben, da das funktionen enthielt die anscheinend nicht von meiner version unterstütz wurden.
ich hab mir darauf hin die v2.70 runtergeladen...bekomme aber immer fehler beim compilieren das die ir-asuro.h fehlt? die ich auch sonst nicht finde. muss ich die vorhergehenden updates auch runterladen?
statt Msleep hab ich dann sleep benutzt....aber mit 3ms...
nun ja, für was braucht man eigentlich die "sleep()" funktion? warum ist sie so nützlich wenn die verzögerung nur 3ms beträgt? und warum hat die sleep() ein intervall von 216-255 ? ich hab mir gedacht anstatt die Msleep() zu benutzen könnte ich vieleicht die sleep() benutzen und irgend wie umschreiben das ich vieleicht dann auf sekunden komme? geht das
ich hab mir dabei sowas gedacht:
(meine Msleep)
void Msleep(int i)
{ i= Sleep(216) *1000;
}
ich weiss,...blöde idee, man kann ja nicht eine funktion multiplizieren...ich hab halt keine ahnung von programmieren...aber könnte es vieleicht so ähnlich funktionieren?
ich hab mal versucht ob ich mit meinem ir-transceiver datan von handy auf mein computer senden kann. auf meim handy stand dann übertragen....aber ich habe keine dateien oder sonst irgend was auf dem computer gefunden. dabei habe ich das standart hyper-terminal von WinXp benutzt.
gut dann werde ich eine andere abschirmung benutzen.
wie finde ich kalte lötstellen?
soll ich ein neuen thread aufmachen?
grüße wolf
Mach daraus besser einvoid Msleep(int i)
{ i= Sleep(216) *1000;
}
dann wartet die Funktion i mal Sleep(216);void Msleep(int i)
unsigned int j;
{for (j=0;j<i;j++) {Sleep(216) ; }
}
Wo die 216 herkommen, weis ich auch nicht genau, der Wertebereich ist byte, also 0-255. Bei 36kHz-Timer entspricht 36 einer Milisek. glaube ich irgendwo gelesen zu haben.
Solche "Zeitschleifen" sind meiner Meinung nach Schrott, weil der Prozessor in dieser Zeit (ausser Interrupts bearbeiten) nichts tun kann.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
der wertebereich der sleep-funktion geht vfon 0 bis 255. die 216 hat folgenden grund: es ist die höchstmögliche zahl, welche eingesetzt werden kann, um eine glatte millisekundenzahl zu bekommen. die funktion arbeitet mit 72kHz, also sleep(1) wartet eine 72.000stel sekunde. 72*3=216. also wartet sleep(216) ziemlich exakt 3 millisekunden.
msleep wartet einen millisekundenwert, also msleep(1000) wartet eine sekunde. lade dir von sourceforge die version 2.6.1 runter (von der lib) dass ist etwas einfacher als mit version 2.70
geh auf www.sorceforge.net (oder com? oder org?) und gib beim suchen asuro ein, dann findest du die. entpacke die dateien asuro.c und asuro.h in das verzeichnis des quellcodes, und überschreibe die daten die du von der cd kopiert hast. dann kannst du die funktion msleep benutzen.
hallo,
void Msleep(int i)
unsigned int j;
{for (j=0;j<i;j++)
{Sleep(216) ; }
}
Dann würde ich in einem programm i einen wert geben zum beispiel 3 und die funktion noch aufrufen...?...danke,
und was ist mit: wie finde ich kalte lötstellen?
und der ir-transciever?
grüße wolf
die geschweifte klammer vor dem for muss vor das unsigned int. dann sollte es klappen. aufrufen kannst du dann so:
Msleep(100) oder Msleep(10) oder ähnlich. allerdings: um millisekunden zu bekommen, musst du die 216 in eine 72 ändern:
void Msleep(int i)
{
unsigned int j;
for(j=0;j<i;j++)
{
Sleep(72);
}
}
dann wartet Msleep(1000) etwa eine sekunde.
kalte lötstellen: schau auf deinem lötzinn nach. wenn es bleihaltig ist (es steht igendwo Pb drauf) dann erkennst du kalte lötstellen meistens (!) daran, dass sie nicht glänzen. sie entstehen dadurch, dass das bauteil bewegt wird während der lötpunkt erhärtet. solltest du bleifreies lötzinn verwenden (bei der zusammensetzung steht NICHT Pb, oder es steht irgendwo "ROHS-konform" (kannst auch im katalog oder da wo du es bestellt hast nachsehen) dann funktioniert das leider nicht... dann ist vorsichtiges (!) nachlöten angesagt.
der ir-transceiver funktioniert nicht zur dateiübertragung. er folgt dem rs232-protokoll (so in etwa) und dein handy folgt dem IrDA-Protokoll, welche beide grundverschieden sind.
Lesezeichen