- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 32

Thema: Problem mit dem Auswerten der Liniensensoren

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    69
    Beiträge
    699
    Anzeige

    Praxistest und DIY Projekte
    Dann wandele doch rtf in txt (Textdokument) um (z.B. mit Wordpad).

  2. #12
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    Hallo,
    Zitat Zitat von Jacob2
    Ich bin hier nämlich auf einem uralten Mac unterwegs, und dem sein Word kann nicht viele Dateien erstellen, die der andere PC(von dem aus ich ASURO programmiere) lesen/erkennen kann (aber rtf eben).
    Das stimmt doch nicht. Ich hab den Code heute mal auf dem Mac in allen möglichen Formaten gespeichert, die der PC aber alle nicht (zumindest nicht richtig) erkennen konnte. Auch rtf enthielt Blöcke und wirre Zeichen.
    ich richte mir vielleicht bald einen internetzugang für den PC ein und dann ist mit solchen Sachen endlich schluss!(hoffentlich)!
    ich weiß wirklich nicht, wie ich den Code "heile" rüberbringen soll.
    MfG Jacob

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    69
    Beiträge
    699
    Normalerweise in einem möglichst einfachen "Textformat" ohne besondere Steuerzeichen. Aber mit einem alten Apple Mac kenne ich mich nicht aus. Wozu auch?

  4. #14
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    Ich kenn mich hier zwar noch nicht so gut aus, aber kann man nicht an den Beitrag ein Attachment zum download anhängen?
    Und wenn ja, könntest du mir den Code als "für den PC verständliches Format" (z.B. .txt) so mitschicken? Wäre wirklich nett! (wenns geht!)
    MfG Jacob

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    69
    Beiträge
    699
    Du kannst Deine Source-datei gerne hier anhängen, dann können wir uns diese ja mal anschauen, testen und evtl. alle "bösen" Zeichen entfernen.

  6. #16
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.066
    der apple wird doch wohl ein minimales text-format verstehen... nimm mal ein windows- .txt file und öffne es mit dem mac. dann siehst du welches programm du für die dateien nehmen solltest...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #17
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    In der datei ist das was auf dem PC ankommt (Blöcke und wirre Zeichen vorne und hinten schon ausgeschnitten).
    Angehängte Dateien Angehängte Dateien

  8. #18
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    69
    Beiträge
    699
    Code:
    #include "asuro.h" 
    #include <stdlib.h> 
    
    #define SPEED       100 
    #define SPEEDMAX    200 
    #define SPEEDMIN     20 
    #define IMAX      16000 
    #define IMAXALARM 15000 
    
    unsigned char speed, j; 
    int speedLeft,speedRight; 
    unsigned int lineData[2]; 
    int x, xalt, kp, kd, ki, yp, yd, yi, drest=0, y, y2, isum=0, ADOffset; 
    
    void FollowLine (void) 
    { 
       unsigned char leftDir = FWD, rightDir = FWD; 
      
       LineData(lineData); 
       x = (lineData[LEFT] - lineData[RIGHT]) - ADOffset; 
      
       yp = x*kp;                          // P-Anteil 
      
       isum += x; 
       if (isum >  IMAX) isum =  IMAX;  
       if (isum < -IMAX) isum = -IMAX; 
       yi = isum / 625 * ki;               //I-Anteil 
      
       yd = (x - xalt) * kd;               // D-Anteil 
       yd += drest;                        
       if (yd > 255) 
       { 
           drest = yd - 255;    
       } 
       else if (yd < -255) 
       { 
           drest = yd + 255; 
       } 
       else 
       { 
           drest = 0; 
       } 
      
       if (isum > IMAXALARM)        BackLED(OFF,ON);  
       else if (isum < -IMAXALARM)  BackLED(ON,OFF); 
       else BackLED(OFF,OFF); 
      
       y = yp + yi + yd;                 // PID 
       y2 = y / 2;                        
       xalt = x;                        
      
       speedLeft = speedRight = speed; 
       MotorDir(FWD,FWD); 
      
       if ( y > 0) 
       {                    
          StatusLED(GREEN); 
          speedLeft = speed + y2;        
          if (speedLeft > SPEEDMAX) 
          { 
             speedLeft = SPEEDMAX;        
             y2 = speedLeft - speed;      
          } 
          y = y - y2; 
          speedRight = speed - y;        
          if (speedRight < SPEEDMIN) 
          { 
             speedRight = SPEEDMIN; 
          } 
       } 
      
       if ( y < 0) 
       {                    
          StatusLED(RED); 
          speedRight = speed - y2;        
          if (speedRight > SPEEDMAX) 
          { 
             speedRight = SPEEDMAX;      
             y2 = speed - speedRight;    
          } 
          y = y - y2; 
          speedLeft = speed + y;          
          if (speedLeft < SPEEDMIN) 
          { 
             speedLeft = SPEEDMIN; 
          } 
       } 
       leftDir = rightDir = FWD; 
       if (speedLeft  < SPEEDMIN + 5)  leftDir  = BREAK; 
       if (speedRight < SPEEDMIN + 5)  rightDir = BREAK; 
       MotorDir(leftDir,rightDir); 
       MotorSpeed(abs(speedLeft),abs(speedRight)); 
    } 
    
    int main(void) 
    { 
       Init(); 
       FrontLED(ON); 
       for (j = 0; j < 255; j++) LineData(lineData); 
       LineData(lineData); 
       ADOffset = lineData[LEFT] - lineData[RIGHT]; // Helligkeitsunterschied links und rechts    
      
       MotorDir(FWD,FWD); 
       StatusLED(GREEN); 
    
       speed = SPEED; 
       speedLeft  = speed; 
       speedRight = speed; 
      
       kp = 10; ki = 4; kd = 70;      // Regler Parameter kd enthält bereits Division durch dt 
       /*   10(!)    4(!)     70(!)   */ /*<=== gute Ausgangswerte*/  
      
       while(1) 
       { 
          FollowLine(); 
       } 
       return 0; 
    }

  9. #19
    Erfahrener Benutzer Begeisterter Techniker Avatar von Jacob2
    Registriert seit
    26.05.2007
    Ort
    Berlin
    Beiträge
    345
    Hi,
    entschuldigt die unterbrechung, aber unser internet schlappt gerade ein bisschen ab (wir haben immerhin noch ein 28k modem!!!)
    Der apple hat zwar ein programm welches textdateien lesen kann, aber die damit erstellten textdokumente gefielen dem Pc immer noch nicht richtig.
    ich hab mir jetzt einfach den code in programmers notepad abgetippt und es sind jetzt "nur" noch ein paar Fehler, die mir aber auch eher was mit dem inhaltlichen des Codes zu tun haben scheinen:
    Code:
    I:\Dokumente und Einstellungen\Jacob\Desktop\ASURO_src\FirstTry>make all 
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
    [ -s test.d ] || rm -f test.d
    -------- begin --------avr-gcc --version
    avr-gcc (GCC) 3.3.1
    Copyright (C) 2003 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    Size before:
    test.elf  :
    section    size      addr
    .text      1528         0
    .data         0   8388704
    .bss          1   8388704
    .noinit       0   8388705
    .eeprom       0   8454144
    .stab      3144         0
    .stabstr   1740         0
    Total      6413
    
    
    avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
    test.c: In function `FollowLine':
    test.c:20: error: `LEFT' undeclared (first use in this function)
    test.c:20: error: (Each undeclared identifier is reported only once
    test.c:20: error: for each function it appears in.)
    test.c:20: error: `RIGHT' undeclared (first use in this function)
    test.c: In function `main':
    test.c:98: error: parse error before ';' token
    test.c:100: error: `LEFT' undeclared (first use in this function)
    test.c:100: error: `RIGHT' undeclared (first use in this function)
    test.c:118:1: warning: no newline at end of file
    make: *** [test.o] Error 1
    
    > Process Exit Code: 2
    MfG Jacob

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.04.2007
    Ort
    Einhausen
    Alter
    69
    Beiträge
    699
    in der asuro.h sollte man Folgendes finden:

    #define LEFT 0
    #define RIGHT 1

    einfach selbst ins Programm übernehmen.

    ... und am Schluss noch eine Leerzeile.

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress