- 12V Akku mit 280 Ah bauen         
Seite 2 von 8 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 73

Thema: Bammel's W.E.I.R.D.O. [Update: Neues Chassis]

  1. #11
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    Anzeige

    Powerstation Test
    ja sowas in der art dachte ich dann auhc.. vorher muss der kettenrobo halt feststellen ob das terain eben ist damit die drohen auhc fahren kann... aber wie gesagt erstmal alles nebensache erstmla muss die ketternroboter gut durch die gegend fahren können

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    so zuerst mal wieder zwei neue bilder!
    vom inneren mach ich nochmal nen bild wnen ich WEIRDO verkabel.

    Bild hier  
    Gesamtansicht

    Bild hier  
    Frontalansicht - Gut zu sehen der vorne eingelassene US-Sensor

    Nun muss ich alles neu verkabeln. eine kleine adapterplatine für die motoren löten. und doch noch ein paar kleinigkeiten am chassis ändern.

    Das gute Stück wiegt nun ca 2Kg.

  3. #13
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    43
    Beiträge
    1.273
    Sieht echt schön aus. Auch das simple abgewinkelte Blech wirkt gut finde ich. Kommt da noch irgendeine Haube drüber?
    Viele Grüße, William
    -> http://william.thielicke.org/

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    Muchas Gracias!!!

    Waren meine anfänge im metalbearbeitung. nur was ich eben feststellen musste ich glaube ich muss das getrieben nochmla auseinandernehmen. da muss auf einer seite noch ne distanzplatte rein. und das kabeldurchlass loch muss ich noch irgendwie vergrößern. aber das kommt erst bei der nächsten demontage. wir dann sein wenn ich nen neuen motortreiber hergestellt habe. will noch auf anderen treiber-ic's umsteigen und das layout soll geändert werden.

    verkabeln habe ich leider heute noch nicht fertig geschaft. evtl. morgen.

    ne haube ist derzeit nicht geplant aber denke gerade weils ein expeditionsroboter ist muss da dann noch was rüber. aber dann solls aus plexi sein. ich finds geil wenn man so elektronik und platinen sieht. dann wirkt das ganze auch nach roboter.

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    sooo.. nun ist das teil nach ein paar problemen verkabelt. hätte mir ja mal einer sagen können das sluminium leitet... dachte immer das leitet keinen strom. naja auf jedenfall habe ich irgendein potential auf den aluteilen. muss ich nochmal versuche rauszubekommen was.. weil eigentlich kann das net sein... aufjedenfall hat mein us sensor da die kapseln mit den aluteilen verbunden waren immer nen reset bzw. auch wirres zeug des motortreibers verursacht.

    habe hier dann mal ein bild vom inneren angehangen (die gallery wollte das bild net schlucken). aber net wundern bei mir auf meinem basteltisch sieht es wüst aus da muss ich mal wieder aufräumen.

    dann habe ich noch ein problem. ich habe jetzt ja die emg30 motoren mit drehgeben den habe ich wie folgt angeschlossen.

    Code:
           atmega8 int0 ---------------- Hall A
                                |
                           4,7k pullup (wie vom hersteller empfohlen)
                                |
                               +5V
                  
               12V Akku ---------------- VCC Hall
               GND Akku ---------------- GND Hall
    
               12V Akku ---------------- VCC Motor 
               GND Akku ---------------- GND Motor
    nun bekomme ich mit folgenden Bascom-code keine werte:

    Code:
    '*******************************************************************************
    '
    '*******************************************************************************
    
    '===============================================================================
    '***| Mikrocontroller Config |**************************************************
    '===============================================================================
    
    'Microcontroller
    '================
    $regfile = "m8def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
    
    Config Portd.0 = Output
    Config Portd.1 = Output
    Config Portc.2 = Output
    Config Portc.3 = Output
    
    Config Int0 = Change
    Config Int1 = Change
    
    On Int0 Odo_r
    On Int1 Odo_l
    Enable Int0
    Enable Int1
    
    Enable Interrupts
    
    
    Dim Twi_control As Byte
    Dim Twi_status As Byte
    
    Dim Command As Byte
    Dim Index As Byte
    Dim Newbyte As Byte
    Dim Byte1 As Byte
    Dim Byte2 As Byte
    Dim Byte3 As Byte
    Dim Byte4 As Byte
    
    Dim Ticks_r As Byte
    Dim Ticks_l As Byte
    
    Declare Sub Twi_init_slave
    
    Enable Interrupts
    
    'Aliases
    '========
    M1 Alias Portd.0
    M2 Alias Portd.1
    M3 Alias Portc.2
    M4 Alias Portc.3
    
    'Init
    '=====
    Call Twi_init_slave
    
    Ticks_r = 0
    Ticks_l = 0
    Command = 0
    Index = 0
    Byte1 = 0
    Byte2 = 0
    Byte3 = 0
    Byte4 = 0
    M1 = 0
    M2 = 0
    M3 = 0
    M4 = 0
    
    
    '-------------------------------------------------------------------------------
    '***| Hauptprogramm |***********************************************************
    '-------------------------------------------------------------------------------
    Do
         Newbyte = 0
    
         'schauen ob TWINT gesetzt ist
         Twi_control = Twcr And &H80                            ' Bit7 von Controlregister
    
         If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8                          ' Status
    
            'wurde ein Byte geschickt?
            If Twi_status = &H80 Or Twi_status = &H88 Then
                Command = Twdr                                  ' neue Daten merken
                Newbyte = 1                                     ' merken das ein neues Byte da ist
            End If
    
    
            'TWINT muss immer gelöscht werden, damit es auf dem Bus weiter geht
            Twcr = &B11000100                                   ' TWINT löschen, erzeugt ACK
         End If
    
         'wenn ein neues Byte gekommen ist verarbeiten
         If Newbyte <> 0 Then
    
           'Register zuordnen -> Befehl
           Select Case Command
    
                   Case 1
                   Gosub Ketten_stopp
    
                   Case 2
                   Gosub Move
    
                   Case 3
                   Gosub Ticks
    
    
           End Select
    
    
         End If
    
    Loop
    End
    
    
    
    
    '-------------------------------------------------------------------------------
    '***| Stoppt die Ketten |*******************************************************
    '-------------------------------------------------------------------------------
    Ketten_stopp:
       Index = 1                                                '4 Byte holen
       Gosub I2c_rx
    
       If Byte1 = 1 Then
         Pwm1a = 0
         Pwm1b = 0
         M1 = 0
         M2 = 0
         M3 = 0
         M4 = 0
       Else
         Pwm1a = 0
         Pwm1b = 0
         M1 = 0
         M2 = 0
         M3 = 0
         M4 = 0
       End If
    
    Return
    
    '-------------------------------------------------------------------------------
    '***| Move: Macht eine undefinierte bewegung (unendlich) |**********************
    '-------------------------------------------------------------------------------
    Move:
       Index = 4                                                '4 Byte holen
       Gosub I2c_rx
    
       'rechts
    
       If Byte1 = 1 Then
        M3 = 0
        M4 = 1
       Elseif Byte1 = 2 Then
        M3 = 1
        M4 = 0
       End If
    
       Pwm1a = Byte2
    
    
       'links
    
       If Byte3 = 1 Then
        M1 = 0
        M2 = 1
       Elseif Byte3 = 2 Then
        M1 = 1
        M2 = 0
       End If
    
       Pwm1b = Byte4
    
    
    Return
    
    '-------------------------------------------------------------------------------
    '***| Turn: Macht eine definierte bewegung |************************************
    '-------------------------------------------------------------------------------
    Ticks:
    
       Byte1 = Ticks_r
       Byte2 = Ticks_l
       'Ticks_r = 0
       'Ticks_l = 0
       Index = 2                                                '4 Byte senden
       Gosub I2c_tx
    
    
    Return
    
    '-------------------------------------------------------------------------------
    '***| I2C-BUS Daten Empfangsroutinen |******************************************
    '-------------------------------------------------------------------------------
    I2c_rx:
    
     'erstes Byte empfangen
     Newbyte = 0
     Do
    
        Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &H80 Or Twi_status = &H88 Then
                Byte1 = Twdr
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
     'Prüfen ob noch mehr empfangen werden soll
     If Index = 1 Then Return
    
    
     'zweites Byte empfangen
     Newbyte = 0
     Do
    
       Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &H80 Or Twi_status = &H88 Then
                Byte2 = Twdr
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
     'Prüfen ob noch mehr empfangen werden soll
     If Index = 2 Then Return
    
    
     Newbyte = 0
     Do
    
        Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &H80 Or Twi_status = &H88 Then
                Byte3 = Twdr
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
     'Prüfen ob noch mehr empfangen werden soll
     If Index = 3 Then Return
    
    
     Newbyte = 0
     Do
    
        Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &H80 Or Twi_status = &H88 Then
                Byte4 = Twdr
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
    Return
    
    '-------------------------------------------------------------------------------
    '***| I2C-BUS Daten Senderoutinen |******************************************
    '-------------------------------------------------------------------------------
    I2c_tx:
    
     'erstes Byte empfangen
     Newbyte = 0
     Do
    
        Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &HA8 Or Twi_status = &HB8 Then
                Twdr = Byte1
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
       'Prüfen ob noch mehr empfangen werden soll
     If Index = 1 Then Return
    
    
     'zweites Byte empfangen
     Newbyte = 0
     Do
    
       Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &HA8 Or Twi_status = &HB8 Then
                Twdr = Byte2
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
     'Prüfen ob noch mehr empfangen werden soll
     If Index = 2 Then Return
    
    
     Newbyte = 0
     Do
    
        Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &HA8 Or Twi_status = &HB8 Then
                Twdr = Byte3
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
     'Prüfen ob noch mehr empfangen werden soll
     If Index = 3 Then Return
    
    
     Newbyte = 0
     Do
    
        Twi_control = Twcr And &H80
    
        If Twi_control = &H80 Then
            Twi_status = Twsr And &HF8
    
            If Twi_status = &HA8 Or Twi_status = &HB8 Then
                Twdr = Byte4
                Newbyte = 2
            End If
    
            Twcr = &B11000100
        End If
    
        If Newbyte = 2 Then Exit Do
    
     Loop
    
    
    Return
    
    '-------------------------------------------------------------------------------
    '***| Rechte Odometrie |********************************************************
    '-------------------------------------------------------------------------------
    
    Odo_r:
    
      Incr Ticks_r
    
    Return
    
    '-------------------------------------------------------------------------------
    '***| Linke Odometrie |*********************************************************
    '-------------------------------------------------------------------------------
    
    Odo_l:
    
      Incr Ticks_l
    
    Return
    
    '-------------------------------------------------------------------------------
    '***| Unterprogramme |**********************************************************
    '-------------------------------------------------------------------------------
    'TWI als slave aktivieren
    Sub Twi_init_slave
        Twsr = 0                                                ' status und Prescaler auf 0
        Twdr = &HFF                                             ' default
        Twar = &H22                                             ' Slaveadresse setzen  I2C-RX-Adr:Hex22
        Twcr = &B01000100                                       ' TWI aktivieren, ACK einschalten
    End Sub
    sry ist nicht optimiert und groß kommentiert.

    das empfangen der ticks mit dem master geht. habe testweise die ticks mal bei jedem loop durchlauf um einen erhöhen lassen. das kam alles an.

    weiß jemand was da los ist?

    wäre sehr dankebar wenn mir jemand helfen könnte.

    vllt ist auch die verkabelung falsch aber bei einem fliegend aufgebautem test schwankte die spannung zwischen 0V und 5V
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken weirdo3.jpg  

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    33
    Beiträge
    1.080
    Blog-Einträge
    1
    Hmm also ich würde sagen, dass einfach aus einem Grund kein Interrupt aufgerufen wird.

    Ich würde mal mit einem Oszi nachmessen ob da auch Logisch 1 und logisch 0 ankommt, wenn nicht is vllt ein Schmitttrigger angesagt

  7. #17
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    ich hab kein oszi
    ich dachte da wäre schon alles fertig!? deswegen habe ich mir ja die motoren gekauft.

    also ich den ja in dem test angeschlossen hatte habe ich die motoren von hand gedreht udn da kam 0V und 5V raus

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.07.2006
    Alter
    43
    Beiträge
    2.474
    Hey Bammel, deine Verkleidung sieht aus wie geleckt, hast super hinbekommen
    Wenn da noch Platz ist, dann hau links und rechts ne Kaltlichtkathode unterm Kettenschutz \/

  9. #19
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    danke danke... ja platz ist dort schon vorhanden aber denke so ne KK verbraucht doch recht viel strom und davon habe ich nicht unendlich an bord.

    hat keine ne idee ob das mit den drehgebern an meinen code liegen könnte?

    habe gestern nochmal den schaltplan des MD23 angeschaut und da ist kein schmidtrigger drauf. da geht der hall eingang direkt auf nen pin des PIC's.

    tante EDIT:

    sooo nun läuft alles... hatte den adapter falsch gelötet. habe auflösung von ca 250 ticks pro 0,5sec bei schnellster fahrt. bei langsamster 80.

    das war nen akt :-D heute lief mal alles schief. erst fast den akku geschrottet dann ist mir na schraubbuchse abgebrochen... aber nun gehts...

    den namen hab ich auch geändert! statt: "White Expedition Intelligent Roboter Drone One"

    nun: "Worst Expedition Intelligent Roboter Drone One"

    da ich keine lust und chance sehe den bot umzulackieren.

  10. #20
    Erfahrener Benutzer Roboter-Spezialist Avatar von asurofreak.
    Registriert seit
    29.06.2009
    Ort
    Landkreis Vechta
    Alter
    27
    Beiträge
    332
    brauchst ihn doch nicht gleich "worst", also "schlimmsten" nennen
    naja, kann schon verstehen wenn man mal nen schlechten tag hat , oder verstehe ich das falsch?

    MFG
    wieder hier

Seite 2 von 8 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen