- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 57

Thema: Mein erster Roboter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von avus17
    Registriert seit
    28.01.2011
    Ort
    Planet Erde
    Alter
    26
    Beiträge
    239
    Also erst mal vielen Dank für die Tipps, ich hab den Code mal überarbeitet.
    Ist das so Ok oder hab ich wieder was vergessen???

    Code:
    '    Pinbelegung:
    ' Schalter vorne =PC0
    ' Schalter hinten =PC6
    ' Enable Motor1 = PA=0
    ' Motor1 Eingang A = PA1
    ' Motor1 Eingang B = PA2
    ' Enable Motor2 = PA4
    ' Motor2 Eingang A = PA5
    ' Motor2 Eingang B = PA6
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    
    Config Porta.0 = Output
    Config Porta.1 = Output
    Config Porta.2 = Output
    Config Porta.4 = Output
    Config Porta.5 = Output
    Config Porta.6 = Output
    Config Pinc.0 = Input
    Config Pinc.6 = Input
    Pinc.0 = 1
    Pinc.6 = 1
    
    Do
    If Pinc.0 = 1 Then                                          'Wenn keine kolision (vorne) erfolgt
     Porta.0 = 1                                                'fahre vorwärts.
     Porta.4 = 1
     Porta.1 = 1
     Porta.5 = 1
     End If
    
     If Pinc.0 = 0 Then                                         'Wenn kollision (vorne) erfolgt,
     Porta.1 = 0                                                'Bremse,
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20 ms
     Porta.1 = 1                                                'Drehe 200ms
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 1
     Waitms 200
     Porta.1 = 0                                                'Bremse
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20ms
     End If
    
     If Pinc.6 = 1 Then                                         ' Wenn keine kolision (hinten)
     Porta.0 = 1                                                'fahre vorwärts
     Porta.4 = 1
     Porta.1 = 1
     Porta.5 = 1
     End If
    
     If Pinc.6 = 0 Then                                         'Wenn kolision (hinten)
     Porta.1 = 0                                                'Bremse,
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20 ms
     Porta.1 = 1                                                'drehe 200ms
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 1
     Waitms 200
     Porta.1 = 0                                                'Bremse
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20 ms
     End If
    
    
    
    Loop
    
    End
    Die Website von ruedi99ms, einem anderen Freund und mir! http://www.highbankfive.de/
    Unser Feuerlöschroboter ALUBME : Version 1 Version 2

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Jap so ist gut
    Die Kommentare dienen legendlich dazu, dass du und andere den Code leichter verstehen. Wenn du jetzt beim programmieren eine Pause machst oder dir den Code 2 Monate später nochmal anschaust hast du tierische Probleme den Code zu verstehen wenn eu ihn nicht ordentlich beschriftest. Bei der Beschriftung ist es weniger wichtig zu schreiben was ein Befehl macht sondern vielmehr was eine komplette Gruppe von Befehlen macht. Hier ein Beispiel:

    Du schreibst nicht:
    Waitms 200 'Warte 200ms
    If PinD.1 = 1 then 'Wenn PinD.1 gleich 1 ist
    PinD.2 = 1 'PinD.2 gleich 1
    Else 'sonst
    PinD.2 = 0 'PinD.2 gleich 0
    End If

    Weil da siehst du ja schon im Code was die Befehle machen. Du brauchst da nicht nochmal als Kommentar schreiben das "Waitms 200" eine Pause von 200ms bedeutet.
    Du schreibst das vielmehr so:

    Waitms 200
    If PinD.1 = 1 then 'Wenn der linke Taster gedrückt wird,
    PinD.2 = 1 'wird sie Lampe eingeschaltet
    Else
    PinD.2 = 0
    End If

    So siehst du sofort die Funktion hinter dem Codeblock. Achja und das ist nur ein frei erfundenes Beispiel
    Das ist nicht aus deinem Code. In deinem Code hast du das Beschriften ja richtig gemacht, ich wollt dir nur nochmal erklären warum man das so macht .
    Ansonsten gut so und weitermachen

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Ja, viel besser. Nur noch ne Kleinigkeit: Das Setzen der internen PullUps ist eigentlich auch eine Ausgabe am Pin:

    Pinc.0 = 1
    Pinc.6 = 1

    Deshalb auch hier Portx.y=1
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von avus17
    Registriert seit
    28.01.2011
    Ort
    Planet Erde
    Alter
    26
    Beiträge
    239
    Ok, danke für den tipp, ich hab den Code noch mal überarbeitet. So müsste es doch jetzt
    stimmen oder???
    Code:
    ' Schalter hinten =PC6
    ' Enable Motor1 = PA=0
    ' Motor1 Eingang A = PA1
    ' Motor1 Eingang B = PA2
    ' Enable Motor2 = PA4
    ' Motor2 Eingang A = PA5
    ' Motor2 Eingang B = PA6
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    
    Config Porta.0 = Output
    Config Porta.1 = Output
    Config Porta.2 = Output
    Config Porta.4 = Output
    Config Porta.5 = Output
    Config Porta.6 = Output
    Config Pinc.0 = Input
    Config Pinc.6 = Input
    Portc.0 = 1
    Portc.6 = 1
    
    Do
    If Pinc.0 = 1 Then                                          'Wenn keine kolision (vorne) erfolgt
     Porta.0 = 1                                                'fahre vorwärts.
     Porta.4 = 1
     Porta.1 = 1
     Porta.5 = 1
     End If
    
     If Pinc.0 = 0 Then                                         'Wenn kollision (vorne) erfolgt,
     Porta.1 = 0                                                'Bremse,
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20 ms
     Porta.1 = 1                                                'Drehe 200ms
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 1
     Waitms 200
     Porta.1 = 0                                                'Bremse
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20ms
     End If
    
     If Pinc.6 = 1 Then                                         ' Wenn keine kolision (hinten)
     Porta.0 = 1                                                'fahre vorwärts
     Porta.4 = 1
     Porta.1 = 1
     Porta.5 = 1
     End If
    
     If Pinc.6 = 0 Then                                         'Wenn kolision (hinten)
     Porta.1 = 0                                                'Bremse,
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20 ms
     Porta.1 = 1                                                'drehe 200ms
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 1
     Waitms 200
     Porta.1 = 0                                                'Bremse
     Porta.2 = 0
     Porta.5 = 0
     Porta.6 = 0
     Waitms 20                                                  'warte 20 ms
     End If
    
    
    
    Loop
    
    End
    Die Website von ruedi99ms, einem anderen Freund und mir! http://www.highbankfive.de/
    Unser Feuerlöschroboter ALUBME : Version 1 Version 2

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ja, sieht gut aus. So wie ich gelesen habe verwendest du nun einen L293D als Motortreiber. Ich vermute PA0/4 sind die Enable-Eingänge, PA1/2 und PA5/6 sind Halbbrücken. Wenn du alles richtig angeschlossen hast sollte das so funktionieren.

    Solange dein ISP nicht läuft könntest du noch ohne gesteckten Mega32 die Signale mit Drahtbrücken am Kontrollersockel simulieren. Möglicherweise stimmt die Drehrichtung eines Antriebs nicht, wenn die Antriebe um 180° gedreht angebaut sind.

    btw. ist der Schaltplan in der Doku deines Pollinboards 'ne Frechheit.

    Gruß

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

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von avus17
    Registriert seit
    28.01.2011
    Ort
    Planet Erde
    Alter
    26
    Beiträge
    239
    Hallo zusammen, ich hab gerade meinen Programmer bekommen und versucht das Programm zu übertragen,
    ich habs so gemacht wie hier: http://www.rn-wissen.de/index.php/Ba...C3%BCbertragen

    doch ich es wird nach dem click auf das grüne symbol, immer der Bascomordner auf der
    festplatte geöffnet. Als Programmer benutze ich diesen hier: http://www.conrad.de/ce/de/product/1...archDetail=005

    Den treiber hab ich installiert und nach anleitung bei Bascom die richtigen Programmereinstellungen eingestellt.
    Hat jemand einen idee worann das liegen kann???
    Die Website von ruedi99ms, einem anderen Freund und mir! http://www.highbankfive.de/
    Unser Feuerlöschroboter ALUBME : Version 1 Version 2

  7. #7
    Erfahrener Benutzer Begeisterter Techniker Avatar von avus17
    Registriert seit
    28.01.2011
    Ort
    Planet Erde
    Alter
    26
    Beiträge
    239
    Hallo zusammen, Ich hab heute noch mal ein Geheuse für den
    Roboter Gebaut. Zudem hab ich noch zwei Fragen:
    Ich möchte nämlich versuchen, Den Roboter Probeweise über
    einen ATiny 2313 zu betreiben, da ich den verdacht habe dass der Atmega32 Durchgebrannt ist.
    Und nun hab ich keine Ahnung, wie ich den 6-poligen ISP an den ATiny 2313 anschließen soll,
    und was ich an folgendem Programm ändern muss, damit es auf den Atiny läuft.
    Code:
    '    Pinbelegung:
    ' Schalter vorne =PD2
    ' Enable Motor1 = PB=0
    ' Motor1 Eingang A = PB1
    ' Motor1 Eingang B = PB2
    ' Enable Motor2 = PB4
    ' Motor2 Eingang A = PB5
    ' Motor2 Eingang B = PB6
    
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    
    Config Portb.0 = Output
    Config Portb.1 = Output
    Config Portb.2 = Output
    Config Portb.4 = Output
    Config Portb.5 = Output
    Config Portb.6 = Output
    Config Pind.2 = Input
    Portd.2 = 1
    
    
    Do
    If Pinb.0 = 1 Then                                          'Wenn keine kolision (vorne) erfolgt
     Portb.0 = 1                                                'fahre vorwärts.
     Portb.4 = 1
     Portb.1 = 1
     Portb.5 = 1
     End If
    
     If Pinb.0 = 0 Then                                         'Wenn kollision (vorne) erfolgt,
     Portb.1 = 0                                                'Bremse,
     Portb.2 = 0
     Portb.5 = 0
     Portb.6 = 0
     Waitms 20                                                  'warte 20 ms
     Portb.1 = 1                                                'Drehe 200ms
     Portb.2 = 0
     Portb.5 = 0
     Portb.6 = 1
     Waitms 200
     Portb.1 = 0                                                'Bremse
     Portb.2 = 0
     Portb.5 = 0
     Portb.6 = 0
     Waitms 20                                                  'warte 20ms
     End If
    
    
    
    
    
    Loop
    
    End
    EDIT: Code Pinbelegungen verbessert.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 2011-09-16 19.55.47.jpg  
    Geändert von avus17 (16.09.2011 um 19:22 Uhr) Grund: Code Falsch
    Die Website von ruedi99ms, einem anderen Freund und mir! http://www.highbankfive.de/
    Unser Feuerlöschroboter ALUBME : Version 1 Version 2

Ähnliche Themen

  1. Mein erster Roboter
    Von Franky55555 im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 4
    Letzter Beitrag: 06.04.2009, 17:53
  2. Mein erster Roboter
    Von BuckWheat im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 17
    Letzter Beitrag: 19.03.2009, 15:59
  3. Mein erster Roboter
    Von Dakrat im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 10
    Letzter Beitrag: 06.05.2007, 11:42
  4. Mein erster Roboter
    Von Schnalzi im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 5
    Letzter Beitrag: 19.02.2007, 11:06
  5. mein erster roboter
    Von mäge im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 13
    Letzter Beitrag: 17.04.2005, 19:26

Berechtigungen

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

12V Akku bauen