- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Brauche Hilfe beim Verbinden von zwei Teilprogrammen

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    28.11.2011
    Beiträge
    9
    Anzeige

    Praxistest und DIY Projekte
    Ja sehr! Vielen dank x) .. ich werd das morgen alles mal testen und dann mal sehen. Hoff ihr helft mir dann ein weiteres mal falls Schwierigkeiten auftreten sollten.

  2. #12
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Also ich hab mir alle neuesten Versionen aus dem internet runtergeladen welche Version habe ich dann?
    Aktuell ist V2.8:
    https://www.roboternetz.de/community...l=1#post252982

    In der Datei CHANGELOG steht der Hinweis auf die Version. Ab v2.3 sind es 36kHz.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    28.11.2011
    Beiträge
    9
    Ich meine mich zu erinnern, dass ich mal irgendwo gelesen hab das diese formulierung hier problematisch werden kann:
    (PollSwitch()!=0) <-- das soll die bedingung sein das er für kurze zeit rückwärs fährt
    falls diese schreibweise tatsächlich problematisch ist, was wäre besser?

    denn bei meinem aktuellen programm folgt er erst der linie und dann fängt er plötzlich an sich zu dreht? kann das daran liegen? oder sind noch andere fehler in dem programm?

    Denn eigendlich soll er ja einer linie folgen und wenn er wo dagegen stößt kurz rückwärtsfahren und dann eine links/rechts kurve machen und dann wieder einer linie folgen.
    Kann mir bitte jemand helfen?

    #include "asuro.h"

    int main(void)
    {
    Init();
    int i;

    while(1)
    {

    if(PollSwitch()!=0)
    {StatusLED(RED);

    MotorDir(RWD,RWD);
    MotorSpeed(120,120);
    for (i=0;i<280;i++){Sleep(255);}
    MotorSpeed(0,0);
    MotorDir(FWD,FWD);
    MotorSpeed (0,120);
    for (i=0;i<280;i++){Sleep(255);}
    MotorSpeed(0,0);
    }

    else{
    int line_data[2];
    LineData(line_data); // line_date[0]: linker Sensor, [1]: rechter Sensor
    // schwarzer Untergrund: kleine Werte; heller Hintergrund: große Werte

    FrontLED(ON); // liefert bessere bzw. konstrastreichere Werte
    int limit = 45; // Dieser Vergleichswert ist an die Lichtverhältnisse anzupassen
    int speed = 120;
    int debug_mode = 0; // 0: aus; 1: an, ASURO sendet die Werte der Sensoren zurück

    while (line_data[1] > limit)
    {
    if (debug_mode)
    {
    SerWrite("rechts\r\n", 8 );
    PrintInt(line_data[1]);
    SerWrite("\r\n", 2);
    }
    BackLED(OFF, ON);
    MotorSpeed(0, speed);
    LineData(line_data);
    }

    while (line_data[0] > limit)
    {
    if (debug_mode)
    {
    SerWrite("links\r\n", 7);
    PrintInt(line_data[0]);
    SerWrite("\r\n", 2);
    }
    BackLED(ON, OFF);
    MotorSpeed(speed, 0);
    LineData(line_data);
    }
    MotorDir(FWD, FWD);
    MotorSpeed(speed, speed);
    }
    }
    return 0;
    }
    Geändert von LikeYou (01.12.2011 um 15:23 Uhr)

  4. #14
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Ist der Pin wo der Schalter dran angeschlossen ist vielleicht nicht vernünftig auf Masse gezogen, sodass die Pegel dort mal schwanken können?
    Wäre eine erste Idee, weil auf dem ersten Blick sieht das Programm richtig aus.
    Setz mal bitte deine Programme zwischen [ code] und [/ code] ins Forum (ohne das Leerzeichen).
    Das sieht dann so aus
    Code:
    Test
    Bzw. ist es nur die Schreibweise des Befehls die Probleme macht oder der ganze Befehl?
    Weil sonst frag doch einfach den Pin wo der Taster dran angeschlossen ist direkt mit einer If-Abfrage ab.

  5. #15
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    28.11.2011
    Beiträge
    9
    hm ich glaube ein weiteres problem ist das er doch die kurve nur dann fährt wenn ein taster gedrück ist . Oder verstehe ich da das programm falsch?
    tut mir wirklich leid aber ich habe kaum programmierfähigkeit ... ich wüsste auch nicht wie ich den programmteil einbinden könnte der jeden taster mehrmals abfrägt

    hier nochmal der programm code:

    Code:
    #include "asuro.h"
    
    int main(void)
    {
    Init();
    int i;
    
    while(1)
    {
    
    if(PollSwitch()!=0) 
    {StatusLED(RED);
    
    MotorDir(RWD,RWD); 
    MotorSpeed(120,120);
    for (i=0;i<280;i++){Sleep(255);} 
    MotorSpeed(0,0); 
    MotorDir(FWD,FWD);
    MotorSpeed (0,120);
    for (i=0;i<280;i++){Sleep(255);}
    MotorSpeed(0,0);
    } 
    
    else{
    int line_data[2]; 
    LineData(line_data); // line_date[0]: linker Sensor, [1]: rechter Sensor
    // schwarzer Untergrund: kleine Werte; heller Hintergrund: große Werte
    
    FrontLED(ON); // liefert bessere bzw. konstrastreichere Werte
    int limit = 45; // Dieser Vergleichswert ist an die Lichtverhältnisse anzupassen
    int speed = 120;
    int debug_mode = 0; // 0: aus; 1: an, ASURO sendet die Werte der Sensoren zurück
    
    while (line_data[1] > limit)
    {
    if (debug_mode)
    {
    SerWrite("rechts\r\n", 8 );
    PrintInt(line_data[1]);
    SerWrite("\r\n", 2);
    }
    BackLED(OFF, ON);
    MotorSpeed(0, speed);
    LineData(line_data);
    }
    
    while (line_data[0] > limit)
    {
    if (debug_mode)
    { 
    SerWrite("links\r\n", 7);
    PrintInt(line_data[0]);
    SerWrite("\r\n", 2);
    }
    BackLED(ON, OFF);
    MotorSpeed(speed, 0);
    LineData(line_data);
    }
    MotorDir(FWD, FWD);
    MotorSpeed(speed, speed);
    }
    }
    return 0;
    }

  7. #17
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Wenn du so Probleme hast das fertige Programm zu verstehen, fang doch erstmal mit kleinen Schritten an.
    Lass den Asuro erstmal nur gerade aus fahren und dann eine Kurve usw.
    Gib ihm erstmal nur feste Sachen vor die er tun soll ohne auf seine Umwelt zu reagieren so das du die Befehle und deren Funktion kennen lernst. Und dann taste dich immer weiter ran. Also wenn du die Befehle drauf hast sag dem Asuro das er nach Links fahren soll wenn der linke Taster gedrückt wird. So tastest du dich Schritt für Schritt an dein eigentliches Ziel heran und lernst auch die Befehle. Es bringt ja nichts wenn du ein langes Programm hast wo du kaum was von verstehst oder ?

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. PIC per USB mit PC verbinden... Brauche dringendst Hilfe!!
    Von itsgre.at im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 13
    Letzter Beitrag: 29.11.2011, 14:36
  2. Brauche Hilfe beim entrümpeln
    Von BoondockDuck im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 09.09.2008, 21:50
  3. Wie zwei externe EEproms auslesen? Brauche Hilfe beim Code
    Von Lightningman im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 30.03.2008, 14:54
  4. brauche hilfe beim programmieren
    Von Anti süd im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 30.01.2008, 11:29
  5. brauche hilfe beim basteln
    Von over load im Forum Elektronik
    Antworten: 15
    Letzter Beitrag: 08.03.2006, 11:03

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test