-
        
+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Roboter Komplett Quellcode

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.11.2003
    Beiträge
    26

    Roboter Komplett Quellcode

    Kann denn nicht jemand mal ein kompletten Quelltext für einen Microcontroller hier rein stellen. Ich kann sowas nirgends finden.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    01.11.2003
    Beiträge
    53
    Das versteh ich nicht! Wie soll das denn jemand machen? Er weiss ja nicht, was du für Teile wie an deinem Bot hast!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    07.11.2003
    Beiträge
    26
    Hi, am liebsten Basic oder ASM für C-Control. Aber auch ein AVR-Mega8 Programm wäre schon hilfreich.
    So unterschiedlich sind die Roboter doch nicht. Es geht mir ja nur um das Grundprinzip mit Sensorauswertung. Da kann man doch angeben an welchen Port was für ein Sensor dran hängt. Oft ist es doch eh ein oder zwei Sharp und nur ein paar Microschalter.
    Halt einfach zum lernen.

  4. #4

    Gucks dir an!

    Hier Bitteschön, zu finden bei http://www.home.fh-karlsruhe.de/~saka0012!


    Code:
    '**************************************************************************
    '*                               Roboter.BAS                              *
    '**************************************************************************
    '* Beispielprogramm zur Steuerung eines einfachen Roboters mit 90S8535    *
    '* Controller mit 8 MHz.                                                  *
    '**************************************************************************
    '* Version: 1.0                                                           *
    '* Datum:   21.10.2001                                                    *
    '* Autor:   Kai Sachsenheimer                                             *
    '**************************************************************************
    '**************************************************************************
    
    
    '**************************************************************************
    '* Deklaration der Ports und Variablen:                                   *
    '**************************************************************************
    '* Port D = Servos bzw. Motoren                                           *
    '* Port C = IR Sensoren                                                   *
    '* Port A = Taster                                                        *
    '**************************************************************************
    
     Config Portd = Output
     Config Portc = Input
     Config Pina.0 = Input
     Dim X As Byte
     Dim Weg As Byte
     Dim Y As Byte
     Dim Zufallszahl As Byte
     Dim Servor As Integer
     Dim Servol As Integer
    
    
    '**************************************************************************
    '* Initialisierung der Variablen:                                         *
    '**************************************************************************
    
     X = 0
     Y = 0
     Servor = 0
     Servol = 0
    
    
    Losgehts:
    'Warten bis Taster am Port A.0 high ist.
     Bitwait Pina.0 , Set
    
    Sense:
     If Y = 10 Then Goto Ausweichen
    '**************************************************************************
    '* Auswertung der IR-Sensoren:                                            *
    '**************************************************************************
    '* Sensoren-Port-Belegung:                                                *
    '* IR Links außen = C.4                                                   *
    '* IR Links mitte = C.3                                                   *
    '* IR Mitte = C.2                                                         *
    '* IR rechts mitte = C.1                                                  *
    '* IR rechts außen = C.0                                                  *
    '* Erkanntes Hindernis: Sensor meldet 0                                   *
    '**************************************************************************
    
     Select Case Pinc
      'Kein Hinderniss wird nicht benötigt
      'Case &B00011111 : Goto -----------
      Case &B00011110 : Goto Linksaussen
      Case &B00011101 : Goto Linksmitte
      Case &B00011100 : Goto Linksbeide
      Case &B00011011 : Goto Zurueck
      Case &B00011010 : Goto Linksaussen
      Case &B00011001 : Goto Zurueck
      Case &B00011000 : Goto Linksaussen
      Case &B00010111 : Goto Rechtsmitte
      Case &B00010110 : Goto Zurueck
      Case &B00010101 : Goto Zurueck
      Case &B00010100 : Goto Linksaussen
      Case &B00010011 : Goto Rechtsmitte
      Case &B00010010 : Goto Linksaussen
      Case &B00010001 : Goto Zurueck
      Case &B00010000 : Goto Linksaussen
      Case &B00001111 : Goto Rechtsaussen
      Case &B00001110 : Goto Zurueck
      Case &B00001101 : Goto Zurueck
      Case &B00001100 : Goto Zurueck
      Case &B00001011 : Goto Rechtsaussen
      Case &B00001010 : Goto Zurueck
      Case &B00001001 : Goto Zurueck
      Case &B00001000 : Goto Linksaussen
      Case &B00000111 : Goto Rechtsbeide
      Case &B00000110 : Goto Rechtsaussen
      Case &B00000101 : Goto Rechtsaussen
      Case &B00000100 : Goto Zurueck
      Case &B00000011 : Goto Rechtsaussen
      Case &B00000010 : Goto Rechtsaussen
      Case &B00000001 : Goto Rechtsaussen
      Case &B00000000 : Goto Zurueck
     End Select
    
    'Fährt geradeaus
    Fahren:
     Servor = 2
     Servol = 1
     Weg = 2
     Y = 0
     Goto Motoren
    
    'Fährt links
    Linksaussen:
     Servor = 2
     Servol = 2
     Weg = 10
     Y = Y + 1
     Goto Motoren
    
    'Fährt links
    Linksmitte:
     Servor = 2
     Servol = 2
     Weg = 20
     Y = Y + 1
     Goto Motoren
    
    'Fährt links
    Linksbeide:
     Servor = 2
     Servol = 2
     Weg = 15
     Y = Y + 1
     Goto Motoren
    
    'Fährt rechts
    Rechtsaussen:
     Servor = 1
     Servol = 1
     Weg = 10
     Y = Y + 1
     Goto Motoren
    
    'Fährt rechts
    Rechtsmitte:
     Servor = 1
     Servol = 1
     Weg = 105
     Y = Y + 1
     Goto Motoren
    
    'Fährt rechts
    Rechtsbeide:
     Servor = 1
     Servol = 1
     Weg = 202
     Y = Y + 1
     Goto Motoren
    
    'Fährt zrück
    Zurueck:
     Servor = 1
     Servol = 2
     Weg = 100
     Goto Motoren
    
    '**************************************************************************
    '* Motorsteuerung:                                                        *
    '**************************************************************************
    '* Portd.3 = Servo rechts                                                 *
    '* Portd.4 = Servo links                                                  *
    '**************************************************************************
    
    Motoren:
     For X = 1 To Weg
      Portd.3 = 1
      Waitms Servor
      Portd.3 = 0
      Portd.4 = 1
      Waitms Servol
      Portd.4 = 0
      Waitms 15
     Next
     Goto Sense
    
    '**************************************************************************
    '* Ausweichen:                                                            *
    '**************************************************************************
    '* Y wird um eins erhöht, wenn der Roboter immer nach links bzw. nach     *
    '* rechts fährt ohne sich dabei nach vorwärts zu fahren.                  *
    '* Ist der Roboter 10 mal nach links bzw. recht gefahren (hat sich an     *
    '* einem Hindernis festgefahren) wird die Ausweich-Routine gestartet.     *
    '* Zufallszahlen werden generiert, um den Robo zufällig nach links oder   *
    '* rechts zu steuern.                                                     *
    '**************************************************************************
    
    Ausweichen:
     Y = 0
     Zufallszahl = Rnd(11)
     For X = 1 To 150
      Portd.3 = 1
      Waitms 1
      Portd.3 = 0
      Portd.4 = 1
      Waitms 2
      Portd.4 = 0
      Waitms 15
     Next
     If Zufallszahl > 5 Then Goto Linksaussen Else Goto Rechtsaussen

+ Antworten

Berechtigungen

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