-         

Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 54

Thema: RP6 Software (Library und Demos)

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    RP6 Software (Library und Demos)

    Anzeige

    Hier kann es um die mitgelieferte Software des RP6 gehen.
    Welche Funktionen enthält die RP6Lib? Was könnte man verbessern? Probleme mit den Demos? usw. usw.

    Schaun wir 'mal, was da in C auf uns zu kommt!

    Gruß Dirk

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8

    StatusLEDs

    Es wäre schöner, wenn die LEDs wie die zugeordeten Bits von 0 bis 5 gezählt würden.

    Aktuell:
    Code:
    setLEDs(0b000001); // Und dieser schaltet StautsLED1 an und alle anderen aus.
    Schöner wäre doch so:

    Code:
    setLEDs(0b000001); // Und dieser schaltet StautsLED0 an und alle anderen aus.
    (Der Tippfehler im Komentar ist übrigens aus der Doku, im Kapitel "4.6.4. Status LEDs und Bumper")

    Im LED-Struct der BaseLib.h:

    Code:
    	struct {
    		unsigned LED1:1;
    		unsigned LED2:1;
    		unsigned LED3:1;
    		unsigned LED4:1;
    		unsigned LED5:1;
    		unsigned LED6:1;
    		unsigned reserved1:1;
    		unsigned reserved2:1;
    	};
    Und die Reserve vielleicht 6+7?

    Man könnte dann viel einfacher Bitmanipulationen im Bitfeld machen wenn die LED-Namen mit 0 starten. Es fehlt auch eine getLEDS()-Funktion.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Hallo mic,

    es gibt beim RP6 6 Status LEDs.
    Die heissen SL1 bis SL6 was eine Abkürzung für StatusLED1 bis StatusLED6 ist.
    Das ist mit SL1 bis 6 auf dem Mainboard beschriftet, würde ich daher eigentlich ungern ändern.

    Man könnte dann viel einfacher Bitmanipulationen im Bitfeld machen wenn die LED-Namen mit 0 starten.
    Hier verstehe ich nicht ganz was Du mir eigentlich sagen willst?
    Was hat der Name einer LED mit Bitmanipulationen zu tun?

    Die LEDs heissen einfach so! Habe auch noch nirgendwo eine LED0 gesehen


    Es fehlt auch eine getLEDS()-Funktion.
    Könnte man noch hinzufügen - ja. Braucht man aber nicht unbedingt - wenn dann würde ein Makro reichen.

    Über diese Union (aus RP6RobotBaseLib.h):

    Code:
    union {
     	uint8_t byte;
    	struct {
    		unsigned LEDsR:3;
    		unsigned LEDsL:3;
    		unsigned reserved:2;
    	};
    	struct {
    		unsigned LED1:1;
    		unsigned LED2:1;
    		unsigned LED3:1;
    		unsigned LED4:1;
    		unsigned LED5:1;
    		unsigned LED6:1;
    		unsigned reserved1:1;
    		unsigned reserved2:1;
    	};
    } statusLEDs;
    kannst Du einfach auf das Status LEDs byte und die einzelnen LED Bits zugreifen.
    Wird in der Anleitung auch beschrieben wie das geht.
    (Schreiben zumindest - lesen ist aber nicht viel anders)

    Du kannst direkt die Variable "statusLEDs.byte" verwenden.
    Oder statusLEDs.LED1 bis 6

    Hier ein Auszug aus einem Beispielprogramm:
    Code:
    	if(obstacle_left && obstacle_right) // Obstacle in the middle?
    		statusLEDs.byte = 0b100100;
    	else
    		statusLEDs.byte = 0b000000;
    	statusLEDs.LED5 = obstacle_left;
    	statusLEDs.LED4 = (!obstacle_left);  // Inverted LED5!
    	statusLEDs.LED2 = obstacle_right;
    	statusLEDs.LED1 = (!obstacle_right);  // Inverted LED2!
    	
    	// Update the LED values:
    	updateStatusLEDs();


    -------

    Die beiden reservierten Bits sind da eigentlich nur um den Rest vom Byte auch noch bitweise zugänglich zu machen. Brauchst Du abernicht. Mache ich einfach immer so um zu kennzeichnen das da noch Bits frei sind in dem Byte...

    MfG,
    SlyD

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8

    StatusLEDS und PWRON-LED

    Hallo

    Ich bitte um Nachsicht, ich bin doch noch c-Neuling. Den lesenden Zugriff mit .byte habe ich inzwischen auch entdeckt. Und das mit LED1 das Bit 0 gemeint ist , werde ich mir schon merken können.

    Kann ich mit der Libary auch die PWRON-LED steuern? Ich finde das nirgends.

    Mache ich einfach immer so um zu kennzeichnen das da noch Bits frei sind in dem Byte...
    Für blinken links/rechts zum Beispiel

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Hallo mic,

    Ich bitte um Nachsicht, ich bin doch noch c-Neuling.
    Hatte ich schon fast wieder vergessen Sorry


    Ja die PWRON Led kannst Du mit den Funktionen

    powerON()

    und

    powerOFF()

    steuern.
    Es sind eigentlich keine richtigen Funktionen - sind nur Makros, die einen I/O Pin umschalten (s. RP6RobotBase.h):

    Code:
    // Enable/Disable Encoders, IR Receiver and Current Sensors to
    // save power when not moving.
    #define powerON()  PORTB |= PWRON
    #define powerOFF() PORTB &= ~PWRON
    Die LED zeigt an, ob beide Encoder, Stromsensoren und ACS angeschaltet sind. Wenn man das alles inkl. POWERON LED ausschaltet, spart man insgesamt etwa 10mA an Strombedarf.


    Da hat mich adrisch schon drauf hingewiesen - das fehlt noch im Handbuch. Da wird bisher nur drauf hingewiesen, dass ohne powerON auszuführen die Encoder, Motorstromsensoren und das ACS nicht funktionieren.
    Das füge ich natürlich noch ein.

    MfG,
    Dominik

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Alles klar, dass hatte ich auch gelesen und powerON() und powerOFF() auch schon in meine Kurzreferenz eingefügt. Da dann aber auch die LEDs der Sensoren ausgehen, dachte ich, es gibt vielleicht eine Möglichkeit die PWRLED einzeln anzusteuern. Das geht aber nicht laut Schaltplan, da hätte ich auch gleich reinschauen können.

    Danke für die Infos.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.01.2004
    Alter
    28
    Beiträge
    645
    Da ja in einem anderen Thread mehr Infos von den Testern des RP6 gefordert wurden, will ich euch mal ein bisschen was über die Demoprogramme erzählen:
    Es werden 20 Beispielprogramme für die "Base-Platine" und 11 für die Erweiterungsplatine mitgeliefert. Zusätzlich ist ein Selftestprogramm dabei.
    Alle Demos sind jeweils in zwei Ausführungen dabei, einmal in kommentierter Form (sehr ausführlich!!, ideal für Einsteiger) und einmal unkommentiert.
    Die Base- Demos reichen vom Klassiker "LEDs" ansteuern, über ACS, Statemachine und Lightfollowing bis hin zu I2C Master/Slave.
    Die "Qualität" der Demos ist durchweg einwandfrei, also sehr lehrreich.
    MfG Xtreme
    RP6 Test - alles zum Nachfolger des bekannten RP5 im neuen RP6 Forum!

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8

    Demo Move4: Anstossen, zurückfahren und drehen

    Hallo

    Ich muss nun auch mal dem "Druck der Öffentlichkeit" nachgeben und euch ein paar (wie bei meinen Beiträgen üblich eher unspektakuläre) Videos meiner Tests zeigen:

    Eines der Demos (Move4) prüft beim Fahren die Bumper und weicht bei Kontakt aus:

    http://radbruch.roboterbastler.de/rp...-move4-org.mpg
    (ca. 7MB, 320X240)

    Wie man deutlich sieht, ist die KI dieses Demos noch nicht wirklich ausgereift. Aber das sind ja auch nur (super kommentierte, allerdings in Englisch) Beispiele die wohl zum Nachdenken (das hatten wir doch schon) und verbessern anregen sollen. Eine kleine Änderung und der RP6 kann's schon deutlich besser:

    http://radbruch.roboterbastler.de/rp...move4-neu1.mpg
    http://radbruch.roboterbastler.de/rp...move4-neu2.mpg
    (je ca. 2MB)

    Der RP6 rasseln zwar etwas beim Fahren, aber daran stört sich mein Hund (Sally, ein 11jähriges Dobermannmädchen) nicht besonders.

    Unglaublich, draußen ist super Sommer und ich hocke in der Bude und spiele mit dem RP6. Ich bin eindeutig suchtgefährdet...

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2004
    Beiträge
    378
    Hi Leute!

    Ja es schein wieder Sommer zu werden
    Ist passend hab Urlaub

    Dickes Lob! Jetzt wird das ganze schon Informativer.

    @Radbruch: Ich weis nicht ob du auch den RP5 hast oder in Betrieb kennst, aber ist das neue Getrieb viel leiser als das vom RP5?

    Schönes Wochenende Ulli

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.01.2004
    Alter
    28
    Beiträge
    645
    Ich hab den RP5 hier, und mach auch zu dem Thema gerade ein Video... einen Moment noch...
    MfG Xtreme
    RP6 Test - alles zum Nachfolger des bekannten RP5 im neuen RP6 Forum!

Seite 1 von 6 123 ... LetzteLetzte

Berechtigungen

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