Könnte es sein, dass die Batterien (Akkus) leer sind?
Hi,
habe seit 2 tagen meinen Asuro fertig und auch schon fleißig programmiert.
Hat bis vor ner Stunde auch alles geklappt.
Habe dann ein Programm drauf gespielt um den Asuro mit der Fernbedienung zu steuern.
Code:/ ******************************************************************************* * * Description: Asuro lässt sich per IR-Fernbedienung steuern * *****************************************************************************/ #include "asuro.h" #include <stdlib.h> #define CH_DN 0x21 #define CH_UP 0x20 #define VOL_DN 0x11 #define VOL_UP 0x10 #define FULL_SCRN 0x2E #define ZERO 0x00 #define OFFSET 100 #define STEP 60 int speedLeft,speedRight; volatile unsigned int rxdata; volatile unsigned char rxbits; SIGNAL (SIG_OVERFLOW0) { rxbits++; rxdata<<=1; rxdata |= (PIND & (1 << PD0)); // liest Datenbits TCNT0 = 34; // Timer auf 1778µs if(rxbits==14){ TCCR0 &= ~((1 << CS01) | (1 << CS00)); // stoppt Timer } } void Driver(void) { unsigned char leftDir = FWD, rightDir = FWD; leftDir = rightDir = FWD; if (speedLeft < 0) leftDir = RWD; if (speedRight < 0) rightDir = RWD; if (speedLeft > 240) speedLeft = 240; if (speedLeft < -240) speedLeft = -240; if (speedRight > 240) speedRight = 240; if (speedRight < -240) speedRight = -240; MotorDir(leftDir,rightDir); MotorSpeed(abs(speedLeft),abs(speedRight)); } void IRFwd(void) { speedRight += STEP; speedLeft += STEP; if (abs(speedLeft) < OFFSET) {speedRight += STEP; speedLeft += STEP;} FrontLED(ON); BackLED(OFF,OFF); } void IRRwd(void) { speedRight -= STEP; speedLeft -= STEP; if (abs(speedLeft) < OFFSET) {speedRight -= STEP; speedLeft -= STEP;} FrontLED(OFF); BackLED(ON,ON); } void IRLeft (void) { FrontLED(OFF); BackLED(ON,OFF); if (speedLeft != 0){ speedLeft /= 4; Driver(); Msleep(80); speedLeft *= 4; } else{ speedLeft = -150; speedRight = 150; Driver(); Msleep(80); speedLeft = speedRight = 0; } } void IRRight (void) { FrontLED(OFF); BackLED(OFF,ON); if (speedRight != 0){ speedRight /= 4; Driver(); Msleep(80); speedRight *= 4; } else{ speedLeft = 150; speedRight = -150; Driver(); Msleep(80); speedLeft = speedRight = 0; } } void IRStop(void) { speedRight = speedLeft = 0; FrontLED(OFF); BackLED(OFF,OFF); } int main(void) { static unsigned int cmd; Init(); for (;;) { rxbits = 1; rxdata = 0; TIMSK |= (1 << TOIE0); // Interrupt scharf while(PIND & (1 << PD0)); // warte auf 1. Flanke TCNT0 = 90; // Timer auf 1333µs TCCR0 = (1 << CS01) | (1 << CS00); // Start Timer while(rxbits < 14); // warte bis alle Bits empfangen cmd = (rxdata & 0x3F); // 6 Command-Bits werden verwertet switch (cmd) { case CH_DN : IRRwd(); break; case CH_UP : IRFwd(); break; case VOL_DN: IRLeft(); break; case VOL_UP: IRRight(); break; case ZERO : case FULL_SCRN : IRStop(); break; } Driver(); } return 0; }
Hat auch halbwegs gut geklappt.
Tja, und dann... wollte ich wieder ein normales "Fahr den Raum ab" drauf flashen, aber dann kam folgendes
Open COM1 --> OK !
Bulding RAM --> OK !
Connect to ASURO --> OK !
Sending Page 001 of 029 --> v.v.v.v.v.v.v.v.v.v.
TIMEOUT !
Not successful, Flash contents will be invalid!
Was ist passiert??? Auf dem Hyperterminal die IR vom Transceiver gecheckt. Läuft. Nur mit dem flashen geht garnix mehr.
Was kann ich machen ???
HELP plz
grüße mayo
Könnte es sein, dass die Batterien (Akkus) leer sind?
ÄH, ich glaub nicht. Die microAkkus zeigen nen Wert von 4.86 an!?
Is wohl nicht leer.
Was passiert eigentlich wenn cih die AA-Akkus anschließe? Haben ja auch nur 1.2V aber 30mA mehr. Macht das was aus??
SRY (noob)
Hallo
Ob AAA oder AA ist beim asuro egal. Die 30mA beziehen sich auf die Kapazität der Akkus, die wirkliche Stromabgabe hängt von der Belastung ab.
Bei einer echten VL-Meldung (Voltage_Low=Unterspannung) sollte die StatusLED wild flackern und auf dem Terminal VLVLVLVL.. angezeigt werden.
"V" beim Flashen bedeutet einen Verizifierungsfehler, die Prüfsumme nach dem Datenpaket war falsch. 4,86V sind recht wenig. Der TSOP (IR-Empfänger) reagiert ziemlich empfindich auf niedrige Spannung. Ich vermute, der asuro "versteht" nicht, was ihm gesendet wird, weil die Spannung beim Flashen zusammenbricht. Deshalb erster Versuch: Akkus laden (oder geladene AAs verwenden) und den Batteriehalter, den Schalter und den Jumper überprüfen.
Alternative: Bei langsamen Rechnern reagiert das Flashprogram empfindlich auf zuviele Hintergrundprozesse (bei meinem 850er W2k-PC merke ich das extrem). Um das als Ursache auszuschliesen solltest du neu booten und nur das Flashen starten. Zu schnelle Rechner haben gelegentlich auch Probleme, das würde aber wohl nur Rechner mit Multicore-Prozessoren betreffen. Hier hilft dann ein Ausbremsen mit einem rechenintensiven Prozess (Festplatte formatieren (haha), nein, defragmentieren, ein Virenscan, Explorer öffnen oder ein Bremstool für alte Spiele) beim Flashen.
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!
Hm, dass versteh ich jetzt überhaupt nicht.
Dachte gerade bei Akkus (1,2V) sollte das ding gesteckt werden damit nicht 0,6 abgezwackt werden. Ich hab ihn nämlich drinne. So hab ich das verstanden. Naja, hoffe nr dass es an den Akkus liegt(gerade im lader)und nicht am atmel.
Hoffe ich hab da keinen misst gebaut.
<-- absoluter mikrotechnik und elektronikanfängeranfänger!!
Ich verstehe es auch nicht :) Irgendwie habe ich Akkus und Batterien verwechselt. Die jetztige Version meines Beitrages sollte nun stimmen. Jumper drin mit Akkus ist richtig. Mein Fehler, sorry, es ist schon spät und ich bin alt...Hm, dass versteh ich jetzt überhaupt nicht.
Ich denke, mit frisch geladenen Akkus wird es wieder funktionieren.
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!
I hope so
thx 4 reply
Hi,
also die Akkus warens nicht. Hab sie geladen und grad versucht zu flashen - geht nicht.
akt. stand:
Asuro ON -ohne flash- Satus LED grün
mit flash StatusLED rot und gleicher Fehler wie oben.
Mit der TV Fernbedienung - funktioniert.
Was kann ich machen um rauszubekommen was da schief gelaufen ist ?
gruß mayo
Hallo
Schade, die Akkus waren mein Favorit. Ohne Flashen grün, mit Flashen rot und selbe Meldung: Der asuro erkennt das Flashen und antwortet. Wenn das Flashprogramm keine Anwort bekommen würde, wäre die Meldung "t" (timeout). Das kann man testen indem man den asuro beim Flashen (nach den ersten Vs) ausschaltet.
Tja, dann bleiben noch die üblichen Ursachen: Schlechte Lötstellen, Poti verstellt oder schwachbrüstiges USB-RS232-Wandlerkabel bei RS232-Transceiver, Fremdlicht (Halogenstrahler, Leuchtstoffröhren, LCDs...), falscher Abstand, altes Flashprogramm (Update auf v1.51, manche Rechner funktionieren allerdings mit den älteren Versionen besser). Mein Transceiver ist übrigends temperaturabhängig:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=26559
Oder hast du irgendetwas geändert? Andere Schnittstelle, anderer Aufbau beim Flashen, neues Zubehör oder Software am Rechner, Kabel beschädigt, Stecker locker, Schmutz auf asuroplatine, ...
Als Alternative zum Flashprogramm gäbe es noch die eierlegende Wollmilchsau von Osser, allerdings wäre das mein allerletzter Versuch weil es bisher mit dem orginalen Flashprogramm ja funktioniert hatte:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=25249
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!
Hi
Dein Tempabhängiger Transceiver zeigt ja dass alles möglich ist
Werd ich heut mal etwas rumprobieren - kalte Lötstellen suchen,Poti verstellen usw.-
Weil ich da grad vom Weissblatttest gelesen hab - mein Transceiver kann ich hinhalten wo ich will (vorhin richtung draussen) und es zeigt mir trotzdem alle zeichen korrekt an. Deutet das auf nen Fehler hin, oder is das "normal".
Flo
Lesezeichen