- fchao-Sinus-Wechselrichter AliExpress         
Seite 36 von 355 ErsteErste ... 2634353637384686136 ... LetzteLetzte
Ergebnis 351 bis 360 von 3542

Thema: Willas Shrediquette Tricopter / Quadrocopter / Hexacopter

  1. #351
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Anzeige

    LiFePo4 Akku selber bauen - Video
    so.. platine habe ich bald fertig...
    da bin ich ja mal gespannt.... :-D
    das summensignal kommt ja vom empfänger über einen servostecker, allerdings hat der empfänger ja schon strom vom mainboard... soll ich dann den empfängeranschöluss mit einem jumper stromversorgbar machen?
    Ich würde sagen, das ist nicht nötig. Für was auch immer diese Platine benutzt wird, der Empfänger wird immer bereits mit Spannung versorgt sein.
    sollen wir vielcht noch eine sd-karte draufmachen?? für waypoints/flug speichern und am rechner visualisieren oder sonstige spässe ??
    Ich wäre eher dafür das so einfach/ klein/ leicht wie möglich zu halten...
    und auf dem bild von der platine oben.. was ist denn das unter dem gps??
    Das ist das xbee wireless UART modul. M.m nach muss das nicht unbedingt auf der Platine berücksichtigt wrden. Für position hold ist es nicht notwendig, und für den späteren waypointflug hat wohl sowieso jeder seine eigenen Präferenzen, oder? Ich habe mich für xbees entschieden weil die so einfach zu benutzen sind. Aber es gibt wohl auch günstigere Lösungen....

    Eine alternite gibt es Bald mit dem europäischen Satellitenprogramm, doch ja....
    Aber ich möchte ja möglichst bald schon autonom fliegen und nicht erst 2016 wenn Galileo wirklich fertig ist...
    Was für ein GPS verwendest du?
    Ich nutze dieses 65 Kanal 10Hz GPS:
    http://www.watterott.com/de/65-Kana-...er-mit-Antenne
    Die Brushlessmotoren regel ich mit PID² Regelkreisen und normalen Modellbauempfängern die mit 417Hz angesteuert werden.

    Bald werde ich mal auf der Wiese herumspringen und gucken was das GPS so rausgibt...
    Viele Grüße, William
    -> http://william.thielicke.org/

  2. #352
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    Ok,... Dann mach ich das ganze mal schön minimal...
    werde aber ein paar freie i/os rausführen sodass man es einfach erweitern kann..
    meine projekte: robotik.dyyyh

  3. #353
    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
    Hey Willa den Shop kannte ich noch garnicht der hat ja extrem tolle Sachen und noch dazu billig! Danke :-D

  4. #354
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    so... habe das Board fertig. mal bitte drüberschauen, ob irgdnwo was verdreht ist..
    SO sieht das ganze aus:
    Bild hier  
    die Dateien dazu gibt es hier: http://robotik.dyyyh.de/repository/navi.tar.gz

    Verbaut sind die drei Sensoren, ein Atmega32 sowei +5V und +3,3V regler für die Versorgung. das GPS ist an der UART, die andern zwei an I²C (Auf den Sensorboards sind schon Pullups, habe sie trotzdem nochmal vorgesehen, falls das Board mit den Pullups nicht bestückt wird. Ansosnten einfach frei lassen..
    links unten sind noch 3 LEDs drauf zum debuggen und 8 GPIOs für die Kommunikation mit dem 2. Board oder sonstiges..
    (der schaltplan ist noch etwas chaotisch, müssen noch Signal-Ports rein statt dem Kabelsalat)
    meine projekte: robotik.dyyyh

  5. #355
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Hi Goran,
    sieht so weit gut aus, ber iuch konnte es mir noch nicht näher anschauen. Aber ganz schön groß ist das Board, oder? Größer als meine Lochrasterversion. Das würde ich auf meinen micro-Tricopter gar nicht drauf bekommen. Wenn man schon zweiseitiges Layout macht, köntne mabn dann nicht auch die 2.54mm Teile zweiseitig bestücken? direkt unter das GPS passt doch prima der mega32, auf die andere Seite können dann auch noch bauteile. Unter den Kompass können allerlei Widerstände/ Kondensatoren. Und Luftdruck könnte senkrecht. Außerdem gehen statt Elkos auch smd Tantal kondensatoren ganz gut. Und quarze gibt es auch in deutlich kleiner glaube ich. Ich würde auch eine 3.3V version vom mega32 nehmen (ich glaube 8MHz reicht) und auf den 5V regler ganz verzichten. Dann einfach einen 1k Widerstand zum VCC des ISP steckers, dann funktioniert das flashen trotzdem.
    Ich bekomme halt leider keine Platine auf meinen micro-tricopter die deutlich größer als 45x45mm ist... Sieh bitte meine zahlreichen Anmerkungen nicht als Kritik... Es sind nur meine Wünsche wenn ich heut Geburtstag hätte ;-D
    Viele Grüße, William
    -> http://william.thielicke.org/

  6. #356
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    Ok, kein ding, war ja nur als erster Vorshclag gemeint.. 45x45 ist recht klein, aber mit zweiseitiger bestückung sollte es machbar sein.. Stimmt die 5V können wir weglassen.. werde es nochmal überarbeiten und dann wieder einstellen.. Denke halbsogross ist schon möglich..
    Weist du zufällig wie das ist mit GPS/Kompass und so wegen abschirmung?
    Stört sich das irgdnwei /muss da ne massefläche dazwischen oder ehrr nicht??
    meine projekte: robotik.dyyyh

  7. #357
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Hi,
    das GPS hat eine dicke Metallplatte an der Unterseite. das wird wohl so eine Art Abschirmung sein. Ob der Kompass das bracuht weiss ich noch nicht. Andererseits darf der ja eh nicht sonderlich empfindlich sein, sonst kann man das mit 3-4 Motoren in der Nähe sowieso vergessen... Nach meinen ersten Tests mit dem kompass weiss ich nun, dass der Kompass wirklich stark auf eine Neigung reagiert. Evtl. muss der am Ende eh gegen einen Neigungskompensierten ausgetauscht werden.... Wäre sehr ärgerlich, da die ca. 5mal so teuer sind...
    Viele Grüße, William
    -> http://william.thielicke.org/

  8. #358
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    die neigungskompensierten sind wirklich sehr teuer... kann man das nicht softwaretehcnisch lösen? beispielsweise, dass er sich immer seine ausrichtung holt wenn es gerade messbar ist und dann bis zur nächsten messung das yaw-gyro dazuintegriert oder so ähnlich... naja muss man mal schaun.. denke fürs erste wird es auch so gehen, ausserdem steht er ja wenn er im navimode ist eher wagrecht und fliegt keine fiesen manöver..
    meine projekte: robotik.dyyyh

  9. #359
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    ausserdem steht er ja wenn er im navimode ist eher wagrecht und fliegt keine fiesen manöver..
    Genau, deswegen wird das für Position-hold bei wenig bis keinem Wind erstmal funktionieren.
    kann man das nicht softwaretehcnisch lösen? beispielsweise, dass er sich immer seine ausrichtung holt wenn es gerade messbar ist und dann bis zur nächsten messung das yaw-gyro dazuintegriert oder so ähnlich...
    Ja, das geht wohl. Man kann auf der Naviplatine einfach die gleichen Berechnungen ausführen wie auf der Tricopterplatine und den errechneten Winkel dazu benutzen den Kompass zu kompensieren. Dazu müsste man den IMU-cube abzweigen und bräuchte 4 AD Kanäle. Aber die hast du ja eh schon nach außen geführt.
    Aber erstmal Position-hold, das ist auch schon eine Art "Meilenstein"... :-D
    Viele Grüße, William
    -> http://william.thielicke.org/

  10. #360
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Der Drucksensor läuft jetzt auch. Ich frage den EOC pin ab und errechne die Höhe so schnell wie der Sensor kann. Da das Signal ziemlich stark verrauscht ist bilde ich danach den Mittelwert aus 8 Messungen. Dann ist es immer noch verrauscht, aber vielleicht reicht es ja.

    Also laufen eigentlich alle Sensoren, ich werde bald mal die einzelnen Code-Stückchen zusammenfügen. Dann kann ich bald auch mit der Programmierung der Regelung anfangen.
    Code vom Drucksensor (modifiziert nach kh-gps.de):
    Code:
    '===CHIP SETTINGS===
    $regfile = "m328pdef.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 8000000
    $baud = 38400
    
    Config Pind.2 = Input                   'eoc
    
    Dim Ac1 As Single
    Dim Ac2 As Single
    Dim Ac3 As Single
    Dim Ac4 As Long
    Dim Ac5 As Long
    Dim Ac6 As Long
    
    Dim B1 As Single
    Dim B2 As Single
    Dim B3 As Long
    Dim B4 As Long
    Dim B4a As Single
    Dim B5 As Single
    Dim B6 As Single
    Dim B7 As Long
    
    Dim Mb As Single
    Dim Mc As Single
    Dim Md As Single
    
    Dim Ut As Long
    Dim Up As Long
    
    Dim X1 As Single
    Dim X2 As Single
    Dim X3 As Single
    
    Dim Zwr1 As Single
    Dim Zwr2 As Single
    Dim Zwr3 As Single
    Dim Zwr4 As Single
    
    Dim T As Single
    Dim T_str As String * 4
    Dim P As Single
    Dim P2 As Single
    
    Dim Po As Single
    Dim A As Single
    Dim A2(8) As Word
    Dim Mittelwert As Word
    Dim Averaging As Byte
    Dim I As Byte
    
    Dim Adres As Byte
    Dim Value As Byte
    Dim Result As Integer
    
    Dim Hi As Long
    Dim Lo As Long
    Dim Xlo As Long
    
    
    $lib "i2c_twi.lbx"                      ' we do not use software emulated I2C but the TWI
    Config Scl = Portc.5                    ' we need to provide the SCL pin name
    Config Sda = Portc.4                    ' we need to provide the SDA pin name
    I2cinit
    
    
    Declare Sub Write_bmp(byval Adres As Byte , Byval Value As Byte)
    Declare Sub Read_bmp(byval Adres As Byte , Value As Byte)
    Declare Sub Read_reg
    
    Const Addressw = &B11101110             'slave write address
    Const Addressr = &B11101111             'slave read address
    
    
    'hole Kalibrierungsdaten
    '-------------------------------------------------------------------------------
    Adres = &HAA                            'Startadresse calibration data
    
    Call Read_reg
    Ac1 = Result
    Call Read_reg
    Ac2 = Result
    Call Read_reg
    Ac3 = Result
    Call Read_reg
    Ac4 = Result
    Call Read_reg
    Ac5 = Result
    Call Read_reg
    Ac6 = Result
    Call Read_reg
    B1 = Result
    Call Read_reg
    B2 = Result
    Call Read_reg
    Mb = Result
    Call Read_reg
    Mc = Result
    Call Read_reg
    Md = Result
    
    Averaging = 1
    
    Do
    'hole Rohdaten Temperatur
    '-------------------------------------------------------------------------------
    If Averaging = 1 Then                   'datasheet: would be enough to get temp every second
      Call Write_bmp(&Hf4 , &H2E)
      While Pind.2 < 1                        'wait until  EOC is 1 ca. 5ms
      Waitms 1
      Wend
    
      Call Read_bmp(&Hf6 , Value)             'read it back
      Hi = Value * 256
      Call Read_bmp(&Hf7 , Value)             'read it back
      Ut = Hi + Value
    End If
    'hole Rohdaten Luftdruck
    '-------------------------------------------------------------------------------
    'Call Write_bmp(&Hf4 , &HF4)             'ultra-high precision mode
    'Call Write_bmp(&Hf4 , &H34)             'normal mode
    Call Write_bmp(&Hf4 , &HB4)             'high precision mode
    While Pind.2 < 1                        ''wait until  EOC is 1 ca. 26 ms in ultra high precision mode
    Waitms 1
    Wend
    Call Read_bmp(&Hf6 , Value)             'read it back
    Hi = Value * 256
    Call Read_bmp(&Hf7 , Value)             'read it back
    Up = Hi + Value
    
    'kalkuliere tatsaechliche Temperatur
    '-------------------------------------------------------------------------------
    Zwr1 = Ut - Ac6
    Zwr2 = 2 ^ 15
    Zwr2 = Ac5 / Zwr2
    X1 = Zwr1 * Zwr2
    
    Zwr1 = 2 ^ 11
    Zwr2 = Mc * Zwr1
    Zwr3 = X1 + Md
    X2 = Zwr2 / Zwr3
    
    B5 = X1 + X2
    
    T = B5 + 8
    Zwr3 = 2 ^ 4
    T = T / Zwr3
    T = T / 10
    T_str = Str(t)
    T_str = Left(t_str , 4)
    'Print "T=   " ; T_str ; " C"
    
    'kalkuliere tatsaechlichen Luftdruck
    '-------------------------------------------------------------------------------
    B6 = B5 - 4000
    
    Zwr1 = 2 ^ 11
    Zwr2 = 2 ^ 12
    Zwr3 = B6 / Zwr2
    Zwr3 = B6 * Zwr3
    Zwr4 = B2 * Zwr3
    X1 = Zwr4 / Zwr1
    
    Zwr1 = 2 ^ 11
    Zwr2 = B6 / Zwr1
    X2 = Ac2 * Zwr2
    
    X3 = X1 + X2
    
    Zwr1 = Ac1 * 4
    Zwr1 = Zwr1 + X3
    Zwr1 = Zwr1 + 2
    B3 = Zwr1 / 4                           '1010(orig)
    
    Zwr1 = 2 ^ 13
    Zwr2 = B6 / Zwr1
    X1 = Ac3 * Zwr2
    
    Zwr1 = 2 ^ 12
    Zwr2 = 2 ^ 16
    Zwr3 = B6 / Zwr1
    Zwr3 = B6 * Zwr3
    Zwr4 = B1 * Zwr3
    X2 = Zwr4 / Zwr2
    
    X3 = X1 + X2
    X3 = X3 + 2
    X3 = X3 / 4
    
    Zwr1 = X3 + 32768
    Zwr2 = 2 ^ 15
    Zwr3 = Zwr1 / Zwr2
    
    B4a = Ac4 * Zwr3
    B4 = Abs(b4a)
    
    B7 = Up - B3
    Dim B7a As Long
    B7a = B7 * 50000
    
    Zwr1 = B7a * 2
    Zwr1 = Zwr1 / B4
    Zwr2 = B7a / B4
    Zwr2 = Zwr2 * 2
    If B7a < &H8000000 Then P = Zwr1 Else P = Zwr2
    
    Zwr1 = 2 ^ 8
    Zwr2 = P / Zwr1
    X1 = Zwr2 * Zwr2
    
    Zwr1 = 2 ^ 16
    X1 = X1 * 3028
    X1 = X1 / Zwr1
    X1 = Abs(x1)
    
    Zwr1 = -7357 * P
    Zwr2 = 2 ^ 16
    X2 = Zwr1 / Zwr2
    
    Zwr1 = X1 + X2
    Zwr1 = Zwr1 + 3791
    Zwr2 = 2 ^ 4
    Zwr1 = Zwr1 / Zwr2
    P = P + Zwr1
    P = P / 100
    
    'kalkuliere Hoehenwerte
    '-------------------------------------------------------------------------------
    'Po = 1013.25                            'Pressure auf Seepegel
    Po = 1020.3
    Zwr1 = 1 / 5.255
    Zwr2 = P / Po
    Zwr3 = Zwr2 ^ Zwr1
    Zwr4 = 1 - Zwr3
    A = 44330 * Zwr4
    A = A * 100                             'höhe in zentimetern
    If Averaging <= 8 Then
      A2(averaging) = Int(a)
      Averaging = Averaging + 1
    End If
    If Averaging = 9 Then
      Mittelwert = 0
      For I = 1 To 8
        Mittelwert = Mittelwert + A2(i)
      Next
      Mittelwert = Mittelwert / 8
      Print Mittelwert                      'ausgabe der höhe in zentimetern
      Averaging = 1
    End If
    Loop
    End
    
    '------------------------------------------------------------
    Sub Read_reg
    Call Read_bmp(adres , Value)
    Hi = Value * 256
    Adres = Adres + 1
    Call Read_bmp(adres , Value)
    Result = Hi + Value
    Adres = Adres + 1
    End Sub
    
    '----------------------------------------------------------
    Sub Write_bmp(byval Adres As Byte , Byval Value As Byte)
    I2cstart                                'start condition
    I2cwbyte Addressw                       'slave address
    I2cwbyte Adres                          'address of register
    I2cwbyte Value                          'value to write
    I2cstop                                 'stop condition
    End Sub
    
    '----------------------------------------------------------
    Sub Read_bmp(byval Adres As Byte , Value As Byte)
    I2cstart                                'generate start
    I2cwbyte Addressw                       'slave address
    I2cwbyte Adres                          'address of register
    I2cstart                                'repeated start
    I2cwbyte Addressr                       'slave address (read)
    I2crbyte Value , Nack                   'read byte
    I2cstop                                 'generate stop
    End Sub
    Viele Grüße, William
    -> http://william.thielicke.org/

Seite 36 von 355 ErsteErste ... 2634353637384686136 ... LetzteLetzte

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test