- fchao-Sinus-Wechselrichter AliExpress         
Seite 35 von 355 ErsteErste ... 2533343536374585135 ... LetzteLetzte
Ergebnis 341 bis 350 von 3542

Thema: Willas Shrediquette Tricopter / Quadrocopter / Hexacopter

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

    Powerstation Test
    Hey William,

    sag mal weist du oder könntest du mal messen was die elektronik, außer motoren, an strom zieht? bin am überlegen ob man nicht einen kleinen 5Volt schaltregler aufbaut und die 3,3Volt von einem festspannungsregler der an dem schaltregler hängt erzeugt. denke das sollte effizienter sein!?

    ich will auch mal versuche deine platine so umzuändern das man auch ohne arduino hinkommt. also das man die bauteile selber bestücken kann. spart sicher nochmal ein paar gramm. soll aber trotzdem noch so sein dass, das arduino aufgesetzt werden kann.

    EDIT:
    ich habe gerade mal nen bisl rum gesurft und auf sparkfun habe ich auch den drucksensor gefunden. mit breakout board und ohne. ohne soll der sensor knapp 9Dollar kosten und lötbar ist dieser auchnoch. evtl könnte goara auf seinem PCB layout dies auchnoch berücksichtigen das man ihn evtl so auflötet.

    gruß, Bammel

  2. #342
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Hi Sven,
    ich glaube die Schaltung der Tricopterplatine zieht ca. 50mA. Hängt aber stark davon ab was man für einen Empfänger benutzt. Bei den Platinenänderungen/ Sensoränderungen denk aber da dran, dass das ganze so aufgebaut ist, weil ich den Nachbau so einfach wie möglich machen wollte. Klaro könnte ich einfach einen Mega328p auf die Platine setzen, aber es gibt viele Menschen die TQFP-löten scheuen. Außerdem ist die Benutzung eines Bootloaders einfach sehr praktisch und simpel. Viele Leute die den Tricopter nachbauen haben keine Ahnung von Elektronik, aber wenn man meine Anleitung liest, und die Komponenten benutzt die ich vorschlage, braucht man auch keine Ahnung zu haben. Je spezieller und komplizierter der Aufbau/ das Löten wird, desto weniger interessant wird mein Tricopter.
    Für eure eigenen Weiterentwicklungen könnt ihr natürlich machen was ihr wollt, aber wenn es für potentielle Nachbauer verwendbar sein soll, muss alles so einfach wie möglich sein
    Viele Grüße, William
    -> http://william.thielicke.org/

  3. #343
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    Ja ich habe mir eben noch viele gedanken gemacht und die layouts angesehen. und bin doch zum entschluss gekommen der copter erstmal so nach deinen komponenten aufzubauen. den so funktioniert es schließlich. ich werde auch nicht den dreiachs-acc benutzen sondern den von dir verwendeten zweiachs. da dieser ja mit 5 volt betrieben werden kann.

    zudem hätten wir dann von der elektronik einen identischen copter mit dem man zusammen weiterentwickeln kann.

  4. #344
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Ich habe mal mit dem GPS angefangen. Viel Zeit hatte ich allerdings noch nicht. Her der Code, der mir die Koordinaten per Funk auf den Laptop sendet:
    Code:
    '===CHIP SETTINGS===
    $regfile = "m328pdef.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 8000000
    $baud = 38400
    
    
    Dim Serialdata As String * 120
    Dim Newval As Bit
    Dim State As Byte
    
    Dim Gpgga(12) As String * 10
    Dim Splitcounter As Byte
    
    Config Input0 = Crlf , Echo = Crlf
    Config Serialin = Buffered , Size = 120 , Bytematch = 10
    Config Serialout = Buffered , Size = 120
    
    Config Pinb.5 = Output
    
    Clear Serialin
     Waitms 1000
    Print "go"
    
    
    Enable Interrupts
    
    Do
       If Newval = 1 Then
          Reset Newval
          If Left(serialdata , 6) = "$GPGGA" Then
             Splitcounter = Split(serialdata , Gpgga(1) , ",")
          Toggle Portb.5
          End If
    
          Print Gpgga(3) ; " - " ; Gpgga(4) ; " , " ; Gpgga(5) ; " - " ; Gpgga(6) ; " quality:" ; Gpgga(7) ; " satellites: " ; Gpgga(8)
    
          State = Val(gpgga(7))
          If State = 1 Then
            Portb.5 = 1
          End If
    
       End If
    Loop
    
    Serial0charmatch:
    
    Input Serialdata , Noecho               ' , Noecho
    Newval = 1
    
    
    Return

    Ich möchte als nächstes gerne eine feste Koordinate einstellen, und dann die Differenz (in metern) der gemessenen GPS position zur voreingestellten Position berechnen. Damit möchte ich herausfinden wie genau die Messungen überhaupt sind.

    Es wäre gut wenn jeder der mitarbeitet seine Fortschritte postet damit keine Arbeit doppelt gemacht wird...
    Viele Grüße, William
    -> http://william.thielicke.org/

  5. #345
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Jetzt habe ich auch den HMC6352 Kompass getestet (code aus dem Mood pill projekt):
    Code:
    '===CHIP SETTINGS===
    $regfile = "m328pdef.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 8000000
    $baud = 38400                                                ' use a low baudrate, if you use internal RC-clock
    
    $lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI
    
    Waitms 1000                                                 ' give Compass some time to stabilize
    
    ' I2C-Slave-Address of the HMC6352 Digital Compass Module and Configuration values
    Const Compass_address = &H42
    Dim Compass_w_array(3) As Byte
    Compass_w_array(1) = &H47                                   ' "G"-Command: write to RAM
    Compass_w_array(2) = &H74                                   ' RAM Address H74: Operational Mode
    Compass_w_array(3) = &B01110000                             ' 20Hz, Set/Reset=yes, Standby mode
    
    ' Compass value read variables
    Dim Compass_r_array(2) As Byte                              ' Byte array for the two bytes of heading value
    Dim Compass_value As Word At Compass_r_array(1) Overlay     ' WORD variable for the heading value
    
    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                                                     ' we need to set the pins in the proper state
    
    'use a bps rate lower than 100000, if your µC-clock-speed is
    'below approx. 4 MHz
    Config Twi = 100000                                         ' wanted clock frequency
    'will set TWBR and TWSR
    'Twbr = 32                                                   'bit rate register
    'Twsr = 0                                                    ' pre scaler bits
    
    Waitms 50
    
    I2csend Compass_address , Compass_w_array(1) , 3            ' set Compass Configuration
    
    Waitms 100
    
    Do
       Compass_w_array(1) = &H41                                ' Command "A": Read heading value
       I2csend Compass_address , Compass_w_array(1) , 1         ' send to HMC6352
       Waitms 7
       I2creceive Compass_address , Compass_r_array(1) , 0 , 2  ' receive the two heading bytes MSB first
       Swap Compass_r_array(1) , Compass_r_array(2)             ' swap MSB and LSB bytes to be read as WORD variable
       Print Compass_value
       Waitms 10
    Loop
    Funktioniert sehr schön.

    Außerdem habe ich hier noch Code vom BMP085 Drucksensor, ich frage grad mal den Autor ob sein Code so auch veröffentlicht werden darf.
    Viele Grüße, William
    -> http://william.thielicke.org/

  6. #346
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Der Code für den Drucksensor (noch nicht getestet), von http://www.kh-gps.de/

    Code:
    'BMP085_8_lcd2a_t       86% belegt    OK am 25.3.2010
    
    '###############################################################################
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $baud = 9600
    $hwstack = 64
    $swstack = 64
    $framesize = 64
    $sim
    
    '###############################################################################
    'Byte = 0 to 255
    'Word = 0 to 65535
    'Integer = -32768 to 32767
    'Long = -214783648 to 2147483647
    'Single = 1.5 x 10^-45 to 3.4 x 10^38
    'Double = 5.0 x 10^-324 to 1.7 x 10^38
    
    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 As Word
    
    Dim Adres As Byte
    Dim Value As Byte
    Dim Result As Integer
    
    Dim Hi As Long
    Dim Lo As Long
    Dim Xlo As Long
    
    Config Scl = Portb.1
    Config Sda = Portb.0
    I2cinit
    
    Config Portb.6 = Output
    Config Portb.7 = Output
    Portb = &B11000000
    
    Dim N As Byte
    N = 1
    Do
    Portb.6 = 1
    Portb.7 = 0
    Waitms 50
    Portb.6 = 0
    Portb.7 = 1
    Waitms 50
    N = N + 1
    Loop Until N = 20
    
    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
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    Cls
    Cursor Off
    
    Locate 1 , 1
    Lcd " BMP085-DECODER "
    Locate 2 , 1
    Lcd "(C)2010 KHH V1.2"
    Wait 3
    
    'hole Kalibrierungsdaten
    '-------------------------------------------------------------------------------
    Adres = &HAA                                                'Startadresse calibration data
    
    'Do
    Waitms 50
    Call Read_reg
    Ac1 = Result
    'Print "AC1= " ; Ac1
    Call Read_reg
    Ac2 = Result
    'Print "AC2= " ; Ac2
    Call Read_reg
    Ac3 = Result
    'Print "AC3= " ; Ac3
    Call Read_reg
    Ac4 = Result
    'Print "AC4= " ; Ac4
    Call Read_reg
    Ac5 = Result
    'Print "AC5= " ; Ac5
    Call Read_reg
    Ac6 = Result
    'Print "AC6= " ; Ac6
    Call Read_reg
    B1 = Result
    'Print "B1=  " ; B1
    Call Read_reg
    B2 = Result
    'Print "B2=  " ; B2
    Call Read_reg
    Mb = Result
    'Print "MB=  " ; Mb
    Call Read_reg
    Mc = Result
    'Print "MC=  " ; Mc
    Call Read_reg
    Md = Result
    'Print "MD=  " ; Md
    'Print
    
    Dim Xx As Byte
    Xx = 1
    
    Do
    Waitms 100
    'hole Rohdaten Temperatur
    '-------------------------------------------------------------------------------
    Call Write_bmp(&Hf4 , &H2E)
    Waitms 5
    Call Read_bmp(&Hf6 , Value)                                 'read it back
    Hi = Value * 256
    Call Read_bmp(&Hf7 , Value)                                 'read it back
    Ut = Hi + Value
    'Print "UT=  " ; Ut
    'Print
    
    Waitms 100
    'hole Rohdaten Luftdruck
    '-------------------------------------------------------------------------------
    Call Write_bmp(&Hf4 , &H34)
    Waitms 40
    Call Read_bmp(&Hf6 , Value)                                 'read it back
    Hi = Value * 256
    Call Read_bmp(&Hf7 , Value)                                 'read it back
    Up = Hi + Value
    'Print "UP=  " ; Up
    'Print
    
    'Testwerte
    '------------------------------------------------------
    Ac1 = 408
    Ac2 = -72
    Ac3 = -14383
    Ac4 = 32741
    Ac5 = 32757
    Ac6 = 23153
    B1 = 6190
    B2 = 4
    Mb = -32768
    Mc = -8711
    Md = 2868
    
    Ut = 27898                                                  'Temperatur
    Up = 23843                                                  'Pressure
    
    'kalkuliere tatsaechliche Temperatur
    '-------------------------------------------------------------------------------
    Zwr1 = Ut - Ac6
    Zwr2 = 2 ^ 15
    Zwr2 = Ac5 / Zwr2
    X1 = Zwr1 * Zwr2
    Print "X1=  " ; X1
    
    Zwr1 = 2 ^ 11
    Zwr2 = Mc * Zwr1
    Zwr3 = X1 + Md
    X2 = Zwr2 / Zwr3
    Print "X2=  " ; X2
    
    B5 = X1 + X2
    Print "B5=  " ; B5
    
    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"
    Print
    
    'kalkuliere tatsaechlichen Luftdruck
    '-------------------------------------------------------------------------------
    B6 = B5 - 4000
    Print "B6=  " ; B6
    
    Zwr1 = 2 ^ 11
    Zwr2 = 2 ^ 12
    Zwr3 = B6 / Zwr2
    Zwr3 = B6 * Zwr3
    Zwr4 = B2 * Zwr3
    X1 = Zwr4 / Zwr1
    Print "X1=  " ; X1
    
    Zwr1 = 2 ^ 11
    Zwr2 = B6 / Zwr1
    X2 = Ac2 * Zwr2
    Print "X2=  " ; X2
    
    X3 = X1 + X2
    Print "X3=  " ; X3
    
    Zwr1 = Ac1 * 4
    Zwr1 = Zwr1 + X3
    Zwr1 = Zwr1 + 2
    
    If Xx = 1 Then B3 = Zwr1 * 4                                '681
    If Xx = 2 Then B3 = Zwr1 * 2                                '1006
    If Xx = 3 Then B3 = Zwr1                                    '142
    If Xx = 4 Then B3 = Zwr1 / 2                                '720
    If Xx = 5 Then B3 = Zwr1 / 4                                '1010(orig)
    Print "B3=  " ; B3
    
    Zwr1 = 2 ^ 13
    Zwr2 = B6 / Zwr1
    X1 = Ac3 * Zwr2
    'Print X1
    'X1 = Abs(x1)
    Print "X1=  " ; X1
    
    Zwr1 = 2 ^ 12
    Zwr2 = 2 ^ 16
    Zwr3 = B6 / Zwr1
    Zwr3 = B6 * Zwr3
    Zwr4 = B1 * Zwr3
    X2 = Zwr4 / Zwr2
    Print "X2=  " ; X2
    
    X3 = X1 + X2
    X3 = X3 + 2
    X3 = X3 / 4
    Print "X3=  " ; X3
    
    Zwr1 = X3 + 32768
    Zwr2 = 2 ^ 15
    Zwr3 = Zwr1 / Zwr2
    'Print "Zwr3= " ; Zwr3
    'Print "Ac4 = " ; Ac4
    
    B4a = Ac4 * Zwr3
    B4 = Abs(b4a)
    Print "B4=  " ; B4a
    
    B7 = Up - B3
    Dim B7a As Long
    B7a = B7 * 50000
    Print "B7=  " ; B7a
    
    Zwr1 = B7a * 2
    Zwr1 = Zwr1 / B4
    Zwr2 = B7a / B4
    Zwr2 = Zwr2 * 2
    If B7a < &H8000000 Then P = Zwr1 Else P = Zwr2
    Print "P=   " ; P
    
    Zwr1 = 2 ^ 8
    Zwr2 = P / Zwr1
    X1 = Zwr2 * Zwr2
    Print "X1=  " ; X1
    
    Zwr1 = 2 ^ 16
    X1 = X1 * 3028
    X1 = X1 / Zwr1
    X1 = Abs(x1)
    Print "X1=  " ; X1
    
    Zwr1 = -7357 * P
    Zwr2 = 2 ^ 16
    X2 = Zwr1 / Zwr2
    Print "X2=  " ; X2
    Print
    
    Zwr1 = X1 + X2
    Zwr1 = Zwr1 + 3791
    Zwr2 = 2 ^ 4
    Zwr1 = Zwr1 / Zwr2
    P = P + Zwr1
    Print "P=   " ; P ; "Pa"
    P = P / 100
    
    Print "XX= " ; Xx
    
    Dim P_str As String * 8
    P_str = Fusing(p , "#.##")
    Print "P=   " ; P_str ; "hPa"
    
    'kalkuliere Hoehenwerte
    '-------------------------------------------------------------------------------
    Po = 1013.25                                                'Pressure auf Seepegel
    
    Zwr1 = 1 / 5.255
    Zwr2 = P / Po
    Zwr3 = Zwr2 ^ Zwr1
    Zwr4 = 1 - Zwr3
    A = 44330 * Zwr4
    A2 = Int(a)
    Print "A=   " ; A2 ; "m"
    Print
    
    'LCD-Ausgabe
    '-------------------------------------------------------------------------------
    Cls
    Locate 1 , 7
    Lcd P_str ; "hPa"
    
    Locate 1 , 1
    Lcd Up
    
    Locate 2 , 1
    Lcd A2 ; "m"
    
    Locate 2 , 11
    Lcd T_str ; Chr(223) ; "C"
    
    'Wait 2
    
    Xx = Xx + 1
    If Xx = 6 Then Xx = 1
    
    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
    Waitms 10                                                   'wait for 10 milliseconds
    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
    Waitms 10
    End Sub
    Viele Grüße, William
    -> http://william.thielicke.org/

  7. #347
    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
    Ich hab ne Frage, ich verfolge dein Projekt schon seit längerem:

    GPS:
    Das GPS ist doch ziemlich ungenau. Ich meine vorallem wenn man bedenkt das Verhältnis zum Kopter. Wäre es da nicht besser am Boden ein Fleck anzupeilen und den zu halten? Zusätzlich kommen noch störungen bzgl des Satellitenempfangs in Frage weil ja die Motoren bei dir ja doch recht nah bei einander sind.

    Und wegen Dem Podest:
    Wenn du dein Podest über die Rotoren plazierst, heißt das, dass die Rotoren an sog verlieren, das ansich ist ja noch kein Problem aber wenn nur ein Teil bedeckt ist, wirkt sich das doch sicher negativ auf das Flugverhalten aus. Ich würde daher die zusätzlich Elektronik unterhalb anbringen.

  8. #348
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Hi oratus sum,
    danke für deine Anregungen. Ich glaube aber GPS ist relativ gut geeignet. Wenn mein Copter innerhalb eines Radius' von 5m bleibt bin ich fürs erste schon zufrieden. Die Motoren stören den GPS Empfang meines Wissens nach nicht.
    Zu GPS gibt es wohl noch keine realistische Alternative für Hobbybastler. Der Copter soll ja nicht nur die Position halten sondern später auch Pfade abfliegen. Schön wäre natürlich eine hochauflösende 3D Kartierung der Umgebung, aber soweit ist die frei verfügbare und erschwingliche Technik noch nicht.
    Und wegen Dem Podest:
    Das kommt ja nicht über die Rotoren, sondern über das Chassis. Also in der Mitte, da wo keine Propeller sind und ganz wenig verwirbelte Luft. Wenn ich die Elektronik unter das Chassis machen bekomme ich Probleme mit dem GPS Empfang und dem Luftdrucksensor.
    Viele Grüße, William
    -> http://william.thielicke.org/

  9. #349
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    so.. platine habe ich bald fertig... noch ein paar fragen:
    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?
    sollen wir vielcht noch eine sd-karte draufmachen?? für waypoints/flug speichern und am rechner visualisieren oder sonstige spässe ??
    und auf dem bild von der platine oben.. was ist denn das unter dem gps??
    meine projekte: robotik.dyyyh

  10. #350
    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
    Eine alternite gibt es Bald mit dem europäischen Satellitenprogramm, doch ja....

    Was für ein GPS verwendest du? Ich hab ein Fastrax I-300, allerdings kann ich in Gebäuden nichts empfangen, ist aber nicht überraschend.

    Dann noch eine Frage:
    Wie regelst du die Motoren? Bzw würde mich überhaupt alles rund um die Motoren interessieren.

    Ich spiele nämlich mit dem Gedanken auch etwas Flugfähiges aufzubauen wenn ich halbwegs mit MARS fertig bin.

Seite 35 von 355 ErsteErste ... 2533343536374585135 ... LetzteLetzte

Stichworte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad