-
        
+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Testprogramme für das RoboterNetz Board RNBFRA1.1

  1. #1
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.943
    Blog-Einträge
    1

    Testprogramme für das RoboterNetz Board RNBFRA1.1

    Hier poste ich ein paar kleine Testprogramme für das Roboternetz Board. Die Programme sind recht klein und Verständlich zumal sie mit dem Basic-Compiler Bascom (siehe unser Bascom Unterforum) geschrieben wurden.

    Diese machen nichts weltbewegendes, sie dienen nur dazu die verschieden Funktion und Schaltkreise auf dem Board zu testen. Da ja inzwischen schon einige mit dem löten begonnen haben, möcht eman ja so schnell wie möglich testen ob man auch keinen Fehle rbei Aufbau gemacht hat. Für diesen fall sind diese Programme gedacht.


    1.Testprogramm testet I2C-Bus und Powerport durch Lauflicht
    Code:
    '###################################################
    'Testprogramm 1
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    'Aufgabe:
    'Ausgabe über PowerPort per I2C testen indem
    'die vier Led´s im lauflichtartig leuchten
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    
    Const Writepowerport_adr = &H72                             'I2C Adr PCF 2
    Const Readpowerport_adr = &H73                              'I2C Adr PCF 2
    
    Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574
    
    
    Dim I As Byte
    
    $crystal = 8000000                                          'Quarzfrequenz
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    I2cinit
    
    I = 0
    I2cdaten = 1
    Do
       I2cdaten = I2cdaten * 2
       If I2cdaten > 16 Then I2cdaten = 1
    
       I2cstart
       I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
       I2cwbyte I2cdaten                                        'Datenbyte an PCF
       I2cstop
       Incr I
       Waitms 100
       Print "hallo"
    Loop
    
    
    End



    2.Testprogramm testet RS232 und Baustein MAX232 indem es Text zum PC schickt
    Code:
    '###################################################
    'Testprogramm 2
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    'Aufgabe:
    'Testen vom MAX232 und RS232 Schnittstelle indem
    'das Wort Hallo und eine Zahl an die RS232 sendet!
    'Unter Windows kann man das mit dem Hyperterminal
    'anzeigen lassen (9600 Baud einstellen)
    'Noch einfacher kann man es anzeigen, wenn man
    'in der Bascom Entwicklungsumgebung unter Tools
    'TERMINAL EMULATOR aufruft (oder Modem Symbol klickt)
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    
    
    
    Dim I As Byte
    
    $crystal = 8000000                                          'Quarzfrequenz
    Weiter:
    $baud = 9600
    
    
    I = 0
    Do
       Incr I
       Wait 2
       Print "Hallo " ; I
    Loop
    
    End

    3. Testprogramm testet Motortreiber indem es Motoren in beide Richtungen dreht
    Code:
    '###################################################
    'Testprogramm 3
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    'Aufgabe:
    'Testen der Getriebemotorensteuerung
    '1. Linker Motor wird 5 Sekunden gedreht
    '2. 5 Sekunden Pause
    '3. Linker Motor wird 5 Sekunden in andere Richtung gedreht
    '4. 5 Sekunden Pause
    '5. Rechter Motor wird 5 Sekunden gedreht
    '6. 5 Sekunden Pause
    '7. Rechter Motor wird 5 Sekunden in andere Richtung gedreht
    '8. 5 Sekunden Pause
    '9. Das ganze wieder ab linken Motor wiederholen
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    
    
    
    Dim I As Byte
    
    $crystal = 8000000                                          'Quarzfrequenz
    
    Nochmal:
    
    'Ports für linken Motor
    Config Pinc.6 = Output                                      'Linker Motor Kanal 1
    Config Pinc.7 = Output                                      'Linker Motor Kanal 2
    Config Pind.4 = Output                                      'Linker Motor PWM
    
    'Linker Motor ein
    Portc.6 = 1                                                 'bestimmt Richtung
    Portc.7 = 0                                                 'bestimmt Richtung
    Portd.4 = 1                                                 'Linker Motor EIN
    
    Wait 5                                                      'Warte 5 Sekunden
    Portd.4 = 0                                                 'Linker Motor AUS
    Wait 5                                                      'Warte 5 Sekunden
    
    'Linker Motor andere Richtung
    Portc.6 = 0                                                 'bestimmt Richtung linker Motor
    Portc.7 = 1                                                 'bestimmt Richtung linker Motor
    Portd.4 = 1                                                 'linker Motor EIN
    
    Wait 5                                                      'Warte 5 Sekunden
    Portd.4 = 0                                                 'Motor AUS
    Wait 5                                                      'Warte 5 Sekunden
    
    'Ports für rechten Motor
    Config Pinb.0 = Output                                      'Linker Motor Kanal 1
    Config Pinb.1 = Output                                      'Linker Motor Kanal 2
    Config Pind.5 = Output                                      'Linker Motor PWM
    
    
    'Rechter Motor ein
    Portb.0 = 1                                                 'bestimmt Richtung rechter Motor
    Portb.1 = 0                                                 'bestimmt Richtung rechter Motor
    Portd.5 = 1                                                 'rechter Motor EIN
    
    Wait 5                                                      'Warte 5 Sekunden
    Portd.5 = 0                                                 'Rechter Motor AUS
    Wait 5                                                      'Warte 5 Sekunden
    
    Portb.0 = 0                                                 'bestimmt Richtung rechter Motor
    Portb.1 = 1                                                 'bestimmt Richtung rechter Motor
    Portd.5 = 1                                                 'rechter Motor EIN
    
    Wait 5                                                      'Warte 5 Sekunden
    Portd.5 = 0                                                 'Rechter Motor AUS
    Wait 5                                                      'Warte 5 Sekunden
    
    Goto Nochmal
    
    End


    4. Testprogramm testet die Geschwindigkeitsregelung per PWM indem es Motoren beschleunigt und wieder verlangsamt
    Code:
    '###################################################
    'Testprogramm 4
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    'Aufgabe:
    'Testen der Geschwindigkeitsregelung der
    'Getriebemotorensteuerung über PWM
    'Regelt die Geschwindigkeit beider Motoren langsam
    'hoch und wieder runter
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    
    
    Dim I As Word
    
    
    $crystal = 8000000                                          'Quarzfrequenz
    
    Dim Geschwindigkeitlinks As Word
    Dim Geschwindigkeitrechts As Word
    
    'Ports für linken Motor
    Config Pinc.6 = Output                                      'Linker Motor Kanal 1
    Config Pinc.7 = Output                                      'Linker Motor Kanal 2
    Config Pind.4 = Output                                      'Linker Motor PWM
    
    'Ports für rechten Motor
    Config Pinb.0 = Output                                      'Rechter Motor Kanal 1
    Config Pinb.1 = Output                                      'Rechter Motor Kanal 2
    Config Pind.5 = Output                                      'Rechter Motor PWM
    
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
    Geschwindigkeitlinks = 50
    Geschwindigkeitrechts = 2900
    Pwm1a = Geschwindigkeitrechts
    Pwm1b = Geschwindigkeitlinks
    Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8
    
    
    'Linker Motor ein
    Portc.6 = 1                                                 'bestimmt Richtung
    Portc.7 = 0                                                 'bestimmt Richtung
    Portd.4 = 1                                                 'Linker Motor EIN
    
    'Rechter Motor ein
    Portb.0 = 1                                                 'bestimmt Richtung rechter Motor
    Portb.1 = 0                                                 'bestimmt Richtung rechter Motor
    Portd.5 = 1                                                 'rechter Motor EIN
    
    
    I = 0
    Do
       Pwm1a = I
       Pwm1b = I
       Waitms 40
       I = I + 5
    Loop Until I > 1023
    
    Wait 1
    Do
    
       Pwm1a = I
       Pwm1b = I
       Waitms 40
       I = I - 5
    Loop Until I < 1
    
    
    Pwm1a = 0                                                   'Linker Motor aus
    Pwm1b = 0                                                   'rechter Motor aus
    
    End

    5. Testprogramm testet Schrittmotorentreiber indem es Schrittmotoren eine bestimmte Anzahl von Schritten in beide Richtungen bewegt
    Code:
    '###################################################
    'Testprogramm 5
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    'Aufgabe:
    'Testen der Schrittmotortreiber
    'Dreht erst linken Schrittmotor in beide Richtungen
    'und dann rechten Schrittmotor in beide richtungen
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    Declare Sub Ledein
    Declare Sub Ledaus
    
    
    Const Writepowerport_adr = &H72                             'I2C Adr PCF 2
    Const Readpowerport_adr = &H73                              'I2C Adr PCF 2
    
    Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574
    
    
    Dim I As Word
    
    
    $crystal = 8000000                                          'Quarzfrequenz
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    I2cinit
    
    
    
    Config Pind.6 = Output                                      'Schrittmotoren Ein/Aus
    Config Pinc.5 = Output                                      'Schrittmotor Links Richtung
    Config Pinc.3 = Output                                      'Schrittmotor Links Step
    
    Config Pinc.4 = Output                                      'Schrittmotor Rechts Richtung
    Config Pinc.2 = Output                                      'Schrittmotor Rechts Step
    
    Ledaus
    Portd.6 = 0                                                 'Schrittmotoren erst mal ausschalten
    
    Wait 2
    
    Ledein
    Portd.6 = 1                                                 'Beide Schrittmotoren einschalten
    
    'Linker Schrittmotor
    Portc.5 = 0                                                 'Richtung
    Portc.3 = 0
    I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
    Do
       Ledaus
       Portc.3 = 0
       Waitms 5
       Portc.3 = 1
       Ledein
       Waitms 5
       I = I - 1
    Loop Until I < 1
    
    Portc.5 = 1                                                 'Andere Richtung
    I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
    Do
       Ledaus
       Portc.3 = 0
       Waitms 5
       Portc.3 = 1
       Ledein
       Waitms 5
       I = I - 1
    Loop Until I < 1
    
    Wait 2
    
    'Rechter Schrittmotor
    Portc.4 = 0                                                 'Richtung
    I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
    Do
       Ledaus
       Portc.2 = 0
       Waitms 5
       Portc.2 = 1
       Ledein
       Waitms 5
       I = I - 1
    Loop Until I < 1
    
    Portc.4 = 1                                                 'Andere Richtung
    I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
    Do
       Ledaus
       Portc.2 = 0
       Waitms 5
       Portc.2 = 1
       Ledein
       Waitms 5
       I = I - 1
    Loop Until I < 1
    
    
    
    Portd.6 = 0                                                 ' Schrittmotoren erst mal ausschalten
    Ledaus
    
    End
    
    
    
    
    Sub Ledein()
       I2cstart
       I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
       I2cwbyte 15                                              'Datenbyte an PCF
       I2cstop
    End Sub
    
    Sub Ledaus
       I2cstart
       I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
       I2cwbyte 0                                               'Datenbyte an PCF
       I2cstop
    End Sub

    6. Testprogramm testet den Eingangsport per I2C-Bus
    Code:
    '###################################################
    'Testprogramm 6
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    'Aufgabe:
    'Testet Eingangsport indem Wert über RS232
    'übermittelt wird (9600 Baud einstellen)
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    
    Const Writeeingabeport_adr = &H7E                           'I2C Adr PCF 2
    Const Readeingabeport_adr = &H7F                            'I2C Adr PCF 2
    
    Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574
    
    
    Dim I As Byte
    
    $baud = 9600
    $crystal = 8000000                                          'Quarzfrequenz
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    Portd.6 = 0                                                 'Schrittmotoren erst mal ausschalten
    I2cinit
    
    I = 0
    I2cdaten = 1
    Do
       I2cstart
       I2cwbyte Readeingabeport_adr                             'Lesebefehl an PCF schicken
       I2crbyte I2cdaten , Nack                                 'Datenbyte von PCF lesen
       I2cstop
       Waitms 50
       Print I ; " Eingangsport Wert" ; I2cdaten
       Incr I
    Loop
    
    End

    7. Testprogramm ermittelt die Batteriespannung und sendet diese an PC. Analoger Port wird getestet
    Code:
    '###################################################
    'Testprogramm 7
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    ' Aufgabe:
    ' Dieses Testprogramm ermittelt die Batteriespannung
    ' und gibt diese über die RS232 aus (9600 Baud einstellen)
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    
    
    Const Ref = 5 / 1023
    
    Dim I As Byte
    Dim W As Word
    Dim Volt As Single
    
    
    
    Config Adc = Single , Prescaler = Auto
    
    
    $baud = 9600
    $crystal = 8000000                                          'Quarzfrequenz
    Portd.6 = 0                                                 'Schrittmotoren erst mal ausschalten
    
    
    Start Adc
    Do
       W = Getadc(4)
       Volt = W * Ref
       Volt = Volt * 5.2941
       Print "Spannung: " ; Volt
    
       Waitms 200
    Loop
    
    End

    Das letzte Testprogramm testet den CoController indem er die Steuerung des Powerports übernimmt
    Code:
    '###################################################
    'CoController Testprogramm 1
    'für
    'RoboterNetz Standard-Roboter Board RBNFRA 1.1
    '
    'Aufgabe:
    'CoController übernimmt nun
    'Ausgabe über PowerPort per I2C testen indem
    'die vier Led´s im lauflichtartig 50 mal leuchten läßt
    'Danch ist er deaktiv
    '
    'Autor: Frank
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de
    '###################################################
    
    
    Const Writepowerport_adr = &H72                             'I2C Adr PCF 2
    Const Readpowerport_adr = &H73                              'I2C Adr PCF 2
    
    Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574
    
    
    Dim I As Byte
    
    $crystal = 4000000                                          'Quarzfrequenz
    Config Scl = Portd.3                                        'Ports fuer IIC-Bus
    Config Sda = Portd.2
    
    I2cinit
    
    I = 0
    I2cdaten = 1
    For I = 1 To 200
       I2cdaten = I2cdaten * 2
       If I2cdaten > 16 Then I2cdaten = 1
    
       I2cstart
       I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
       I2cwbyte I2cdaten                                        'Datenbyte an PCF
       I2cstop
       Waitms 100
    Next
    
    End
    Ich hab die Beispiele hier gepostet damit man bei Unklarheiten mal schnell rein schaun kann. Ich lege die aber auch noch als ZIP-Datei im Download-Bereich ab.

    Es wäre schön wenn auch ihr eure ersten interessanten Programme posten würdet.

    Gruß Frank

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    16.01.2004
    Alter
    61
    Beiträge
    74
    Hallo Frank,

    können wir nicht eine Rubrik im Forum hinzufügen, z.B.: Programmsammlung oder Codesammlung für RNB ?
    Da könnten wir dann alle lauffähigen Programme posten.

    Gruß Jörg
    Geduld......... [-(

  3. #3
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.943
    Blog-Einträge
    1
    Hi Jörg,

    ich fände es auch schön wenn jeder seine Programme als auch Hardware die er in Verbindung mit dem Board RNBFRA1.1 nutzt postet.
    Allerdings würde ich vorschlagen das dies erst mal alles in dieses Unterforum Diskussionen / Schaltungen zum Roboternetz-Projekt postet. Da können dann auch gleich noch Programme zu Zusatzboards gepostet werden. Ich werde den Begriff "Software" gleich nochmal ergänzend in die Forumbeschreibung aufnehmen.
    Derzeit müssen wir ein wenig aufpassen das wir nicht zuviel Foren aufmachen, zuviel des guten ist auch nicht immer gut Aber wenn sich viele Software-Postings angesammelt haben, dann können wir ja immer noch ein aufmachen und die Beiträge schieb ich dann einfach rüber.
    Denke derzeit ist es besser alles was mit unserem Standard-Projekt zu tun hat in diesem Forum zu posten.
    Zudem gibt es im Download-Bereich auch eine Rubrik für Hardware und Software zu unserem Projekt. Hier kann jeder auch Dateien (Software / Bauanleitungen) ablegen.

    Gruß Frank

  4. #4
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.943
    Blog-Einträge
    1
    Demo 7 hab ich eben korrigiert, da war falscher Faktor drin, woduch falsche Spannung gemessen wurde. So stimmt es!

+ Antworten

Berechtigungen

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