- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 211

Thema: Software-Fragen zur Multi-IO

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Vielen Dank!
    Passend für deine "saubere" Platine, die wirklich Spaß macht!!!

    Ne Frage: Manche Funktionen wie alles für die LFS, Bumper, Sharps usw stehen doch nur in den Examples, nicht aber in den Libs. War das so gedacht? Oder kommen diese Funktionen noch in deine RP6M256_MultiIO.c/.h?
    Ich bin da unsicher.
    Ich selbst möchte es bei der "zentralen" Lib eigentlich belassen, weil dafür ganz klar ist, was da rein muss. Nämlich alle Funktionen für die fest installierten Komponenten (genau so wie bei der RP6 Lib). Eine Lib macht ja auch nur Sinn, wenn sie weitgehend unverändert bleiben kann und nicht von wechselnden Komponenten abhängig ist.

    Deshalb habe ich die anderen Funktionen (LFS, Bumper) erst einmal in den Demos gelassen, aber so angelegt und voneinander getrennt, dass eigentlich jeder "seine" Funktionen aus den Demos einfach in seine zentrale Lib einfügen kann:
    - Definitionen in den Header (RP6M256_MultiIOLib.h)
    - Funktionen in die Source (RP6M256_MultiIOLib.c)

    Der Konfigurations-Header der Lib (RP6M256_MultiIO.h) braucht dabei nicht geändert zu werden, weil er schon alle grundlegenden Definitionen (auch für LFS, Bumper, DCF77...) enthält.
    Im Prinzip ist es also einfach, sich eine individuelle Lib zusammenzubasteln.

    Wenn gewünscht, würde ich evtl. die LFS und Bumper-Teile einmal zur Lib dazutun, wenn sich das jemand kopieren will. Damit würde ich aber noch warten, bis evtl. Bugs raus sind.
    Gruß
    Dirk

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Vielleicht ein "Mittelweg" : eine Lib für die beiden Boards Linie und Bumper? Vielleicht auch noch fürs Radio?

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Du meinst also die MultiIO-"Hauptlib" und je eine weitere für Linie/Bumper und für Radio?

    Das ist eine gute Idee. Werde ich so machen.
    Gruß
    Dirk

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    wie wäre es mit einer "hauptlib" und einer fürs "zubehör"?
    gruß inka

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Jo, genau. Eine hauptlib hast du ja schon gemacht. Dann noch eine "exp-Lib" für die drei zusatzboards!?
    oder eben eine für jedes Board... Wie es vom programmieren her sinnvoller ist.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Fabian:
    Ok, wird so gemacht. Ein bisschen Geduld ...
    Gruß
    Dirk

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi,
    das kompilieren der RP6Control MultiIO.c hat funktioniert, beim starten kommen im terminal folgende meldungen (ausschnitt)


    Code:
    Terminal cleared!
    □
    [READY]
    
    
    RP6Control Multi IO Selftest 1!
    
    Writing 128 to EEPROM address 5:
    Done!
    
    Reading EEPROM address 5:
    
    I2C ERROR --> TWI STATE IS: 0x20
    
    I2C ERROR --> TWI STATE IS: 0x48
    Done!
    EEPROM address 5 content: 17
    
    3V3 Voltage:  2.6V
    ADC 3V3: 536
    TOUCHED!!!
    ADC Touch: 541
    Temperature:  21.8°
    RTC: 12:00:00  10.01.2013
    Temperature:   0.0°
    BAT Current:    0.0mA
    BAT Voltage:  0.0V
    SERVO Volt.:  0.0V
    VCC Voltage:  2.5V
    
    3V3 Voltage:  2.3V
    ADC 3V3: 473
    NOT touched.
    ADC Touch: 424
    Temperature:  21.8°
    RTC: 12:00:00  10.01.2013
    Temperature:   0.0°
    BAT Current:    0.0mA
    BAT Voltage:  0.0V
    SERVO Volt.:  0.0V
    VCC Voltage:  2.5V
    
    3V3 Voltage:  2.2V
    ADC 3V3: 448
    NOT touched.
    ADC Touch: 392
    Temperature:  21.8°
    RTC: 12:00:00  10.01.2013
    Temperature:   0.0°
    BAT Current:    0.0mA
    BAT Voltage:  0.0V
    SERVO Volt.:  0.0V
    VCC Voltage:  2.5V
    
    3V3 Voltage:  2.1V
    ADC 3V3: 437
    NOT touched.
    ADC Touch: 383
    Temperature:  21.8°
    RTC: 12:00:00  10.01.2013
    Temperature:   0.0°
    BAT Current:    0.0mA
    BAT Voltage:  0.0V
    SERVO Volt.:  0.0V
    VCC Voltage:  2.5V
    
    3V3 Voltage:  2.1V
    ADC 3V3: 437
    NOT touched.
    ADC Touch: 380
    Temperature:  21.8°
    RTC: 12:00:00  10.01.2013
    Temperature:   0.0°
    BAT Current:    0.0mA
    BAT Voltage:  0.0V
    SERVO Volt.:  0.0V
    VCC Voltage:  2.5V
    
    [RP6BOOT]
    
    [READY]
    was bedeuten die zwei I2C errors am anfang?

    ist sonst noch was für die experten zu erkennen was falsch ist?
    gruß inka

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    Hi,
    1. Ich habe da mal eine Frage zu der Servo Ansteuerung. Als Grenzwerte sind 147 und 471 angegeben. In diesen Bereich decke ich auch fast alles ab. Bei einem Servo brauche ich aber volle 180 Grad. Die Werte wären 90 und 460. Bei einem Versuch klappte das auch Prima. Nur wird in der Lib das nicht empfohlen.
    Warum ? Ich bitte um Erleuchtung

    2. Ich habe die Sharps GP2D120 und berechne die Sharps mit der Formel aus http://www.rn-wissen.de/index.php/Sensorarten Ich habe die Berechnung in der Lib ausgetauscht, alles funktioniert, alles ist schön. Trotzdem würde mich interessieren, nach welcher Formel in der Lib gerechnet wird, wo kommen die Zahlen her ?

    3. Wie bekomme ich die Werte von tint, cbat ,vbat auf das Display ?. Meine Versuche mit writeIntegerLengthLCD(tint, DEC, 3) bringen nicht die Ausgabe wie im Terminal.

    Gruß Trainmen

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi TrainMen:
    Zu 1:
    Die Grenzwerte 143 und 471 entsprechen 0,7 bzw. 2,3ms. Das ist die Spezifikation, die die meisten Servos einhalten.
    Wenn du ein Servo hast, das nur einen Impuls am linken Anschlag von 0,44ms braucht, dann kannst du natürlich auch 90 nehmen.

    Zu 2:
    Ich habe mit meinem Sensor eine Tabelle (ADC-Werte <-> Entfernung) angelegt und die in Excel eingetragen. Excel hat mir dann die Formel errechnet.

    Zu 3:
    tint, cbat, vbat sind ja keine Integer-Variablen, sondern double.
    Eine Ausgabefunktion für das LCD:
    Code:
    /**
     * Write a floating point number to the LCD.
     *
     * Example:
     *
     *			// Write a floating point number to the LCD (no exponent):
     *			writeDoubleLCD(1234567.890, 11, 3);
     *
     * The value of prec (precision) defines the number of decimal places.
     * For 32 bit floating point variables (float, double ...) 6 is
     * the max. value for prec (7 relevant digits).
     * The value of width defines the overall number of characters in the
     * floating point number including the decimal point. The number of
     * pre-decimal positions is: (width - prec - 1).
     */
    void writeDoubleLCD(double number, uint8_t width, uint8_t prec)
    {char buffer[width + 1];
    	dtostrf(number, width, prec, &buffer[0]);
    	writeStringLCD(&buffer[0]);
    }
    Viel Erfolg!
    Gruß
    Dirk

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    Hi Dirk,

    zu 1: dann ist ja alles schön, es lass sich nur so bedrohlich in der Lib, da dachte ich frag mal nach.

    zu 2: ja genau, ich habe es hier auch mit Excel gemacht. Inzwischen verstehe ich auch was Du da gemacht hast und warum es so kompliziert aussieht. Du berechnest alles in der Lib. Während ich die festen Daten schon ausgerechnet übernehme und nur noch mit den Variablen ADC Werten rechne. Alles ist schön.

    zu 3: Danke

    Gruß Trainmen

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Anfängerfrage zur Software PWM
    Von Daaniel im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 04.04.2012, 21:33
  2. Rasenmähroboter fragen zur lenkung und mehr fragen :-)
    Von andiwalter im Forum Staubsaugerroboter / Reinigungs- und Rasenmähroboter
    Antworten: 11
    Letzter Beitrag: 11.05.2009, 18:25
  3. Software zur Fehlersuche in Schaltungen
    Von konservator im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 21.01.2007, 10:08
  4. PDA-Software zur Camerabildauswertung?
    Von gpsklaus im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 0
    Letzter Beitrag: 08.12.2005, 16:13
  5. [ERLEDIGT] Software zur Kartenerstellung
    Von im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 38
    Letzter Beitrag: 12.11.2004, 09:46

Berechtigungen

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

LiFePO4 Speicher Test