- fchao-Sinus-Wechselrichter AliExpress         
Seite 317 von 355 ErsteErste ... 217267307315316317318319327 ... LetzteLetzte
Ergebnis 3.161 bis 3.170 von 3542

Thema: Willas Shrediquette Tricopter / Quadrocopter / Hexacopter

  1. #3161
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Anzeige

    Powerstation Test
    Hi Willa,

    was genau meinst du den mit Mini Bolt? Noch kleiner als der jetzige?
    Ich würde deine Ergebnisse gerne mal bestaunen, wenns dir keine Umstände macht

    Gruß
    Chris

  2. #3162
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Zitat Zitat von Willa Beitrag anzeigen
    Wenn daran noch jemand Interesse hat kann ich meine bisherigen (bescheidenen) Ergebnisse hier gerne mal reinstellen.
    Aber sicher, immer her damit

    Hast du denn deinen Code schon angepasst?
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

  3. #3163
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Hi,
    ich bin mit dem MLF Package noch nicht weiter. Und doppelseitig mache ich auch zum ersten Mal. Dauert also noch ein bisschen...
    Aber dafür habe ich soeben den ersten xMega meines Lebens zum Leben erweckt :-D Herrlich, 32MHz bei 3.3V X-D
    Leider funktioniert mein AVRISP mkII noch nicht in Bascom. Unter AVRstudio geht er, aber Bascom (2.0.7.3) behauptet der Chip würde nicht gefunden. Muss ich da noch irgendwas besonderes beachten? Ich habe nichts gemacht außer AVRstudio 5.1 mit allen geforderten Komponenten zu installieren und danach Bascom.
    Ein 0.6mm Bohrer geht übrigens perfekt, habe ich grad probiert. Wovor mir noch graust sind meine ersten MLF Gehversuche mit einem 20€ teuren IC...
    Ist das ne gute Vorgehensweise...: Pads verzinnen, überschüssiges Lot mit Entlötlitze entfernen. Löthonig drauf, IC aufsetzen, 1 Pin anlöten. Mit Lötkolben und wenig Lötzinn auf der Spitze an den Seiten entlangziehen (also ca. so wie bei TQFP). Mein Lötkolben hat ne Bleistiftspitze mit 1mm Spitzendurchmesser. Das ist schon etwas "grob". Geht das wohl...? Allein das Ausrichten des ICs kommt ja schon ans Auflösungslimit meiner Augen...
    Hast du denn deinen Code schon angepasst?
    Dazu habe ich noch nichts unternommen... Mit bleibt noch eine Woche das Gerät zum fliegen zu bringen, dann wird die Zeit wieder knapper.
    Viele Grüße, William
    -> http://william.thielicke.org/

  4. #3164
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hallo,

    um den AVRISP MK2 in Bascom einzubinden, bin ich nach der Anleitung von MCS vorgegangen (finde den Link gerade nicht).
    Das wichtigste ist, dass du den LIBUSB Treiber als "filter driver" konfigurierst (und überhaupt installiert hast?!). Somit kannst du beide Programme (BASCOM & AVRStduio) verwenden. Wie genau du das einstellen musst, steht wie gesagt iwo auf der MCS-Help Seite, aber im Endeffekt ist eh alles selbsterklärend, wenn man diese Info hat
    Unter Bascom musst du als Programmer "USBProg Programmer / AVRISP mkII" einstellen.
    Also meine Vorgehensweise ist folgende:
    1. ich verzinne ein Pad
    2. ich richte den Chip aus und verbinde ihn anschließend mit dem einen Pad
    3. ich kontrolliere nochmals die korrekte Ausrichtung
    4. ich löte ein zweites Pad auf der gegenüberliegenden Seite an
    5. ich gebe einiges an Flußmittel auf jede Seite des Chips (eigentlich reicht es auf einer Seite, da des durch den Sog unter den Chip gezogen wird und auf jeder Seite wieder rauskommt)
    6. ich gebe etwas Lötzinn auf die Lötkolbenspitze und fahre damit zügig (bei etwas höherer Temperatur, ca. 380°, damits schneller geht) über alle Pins einer Seite
    7. ich mache eine kurze Pause, um den Chip nicht zu überhitzen
    8. das gleiche für die anderen Seiten
    Das geht auch mit einer 1.5mm Spitze, hab ich schon gemacht
    Beim Entfernen des Lots von den Pads wäre ich vorsichtig, da dabei schnell mal ein kurzes Pad an der Entlötlitze hängen bleibt.

    Den Code habe ich schon ziemlich weit angepasst, momentan stimmen schon alle Werte in der Gui.
    Da es bei den Timern keinen 128 Prescalewert gibt, kommt für das Auslesen der Summensignalwerte nur ein 16Bit Timer in Frage. Somit reichen die Werte von 65116 bis 65268 (Mitte bei 65192). Dadurch werden die Empf-Werte verdoppelt, also anstatt von -37 bis +37 reichen sie jetzt von -76 bis +76. Ich denke, das kommt der Regelung nur zu Gute, da man dann auch noch etwas präziser Steuern kann.
    Deswegen müssen zwar einige Zeilen Code angepasst werden, aber das war ja sowieso von Anfang an klar.

    Gruß
    Chris

    EDIT:
    Hier der Link: http://avrhelp.mcselec.com/index.htm...programmer.htm
    Was mir noch einfällt:
    Bei mir hatte der Programmer anfangs auch nicht funktioniert, obwohl er vom PC erkannt wurde. Dann habe ich ihn an der Rückseite des PCs angeschlossen (vorher war er an der Vorderseite, das sind aber meistens nur USB-Hubs) und schon gings.
    Geändert von Che Guevara (29.03.2012 um 22:35 Uhr)

  5. #3165
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Hi William,
    nur mal so zur Auffrischung meiner grauen Zellen: Was ist denn das MLF-Gehäuse?
    In meinem Datenblatt gibt es den XMega32 im TQFP-Gehäuse, das ist das gleiche wie beim Mega328p. Dann im (V)QFN-Gehäuse, das ist das gleiche wie beim MPU-6000. Und dann noch das (VF)BGA-Gehäuse, mit den Balls auf der ganzen Unterseite verteilt.

    Wenn du das QFN-Gehäuse des MPU meinst (das legt zumindest der angegebene Preis des Chip nahe , dann ist die von dir beschriebene Vorgehensweise zumindest schon mal nicht vollkommen abwegig.

    Leider (oder zum Glück ) musste ich bisher solche Chips noch nie auf eine Platine ohne Lötstopplack auflöten, so dass ich (noch) nicht mit Erfahrungswerten dienen kann. Chris dürfte mehr dazu sagen können, der macht das schon sein ganzes Leben lang so .

    Auf einer mit Stopplack und Verzinnung versehenen Platine kann man sich das initiale Verzinnen der Pads sparen. Deine Methode (vorher verzinnen und mit Litze Überschuss entfernen) klingt richtig.
    ...
    Ah, ich sehe gerade, Chris hat sich schon gemeldet, ich spare mir also erst mal das Weitere...
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

  6. #3166
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Ich schreibe jetzt lieber nochmal einen neuen Post, nicht dass das noch überlesen wird
    Die Pads vorher zu verzinnen und das überschüssige Lot wieder mit Entlötlitze zu entfernen würde ich nicht machen, da die Gefahr sehr groß ist, dass dir ein paar Pads an der Entlötlitze hängen bleiben.
    Was man aber machen sollte, ist: Die Pads vom UV-Lack befreien (z.b. mit Flußmittel, da ist meistens Alkohol drin oder mit Spiritus) und nur ein Pad verzinnen. Den Vorgang, wie ich es mache, habe ich in meinem vorigen Post beschrieben.
    Wie gesagt, mit meiner Methode gehts fast wie von selbst, ich hatte keinerlei Brücken o.ä.

    Gruß
    Chris

  7. #3167
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Danke für die Tipps :-D Den AVRISP mkII Programmer habe ich jetzt zum laufen bekommen. In der Bascom Hilfe steht tatsächlich die genaue Vorgehensweise für diesen Programmer (LIBUSB usw.). Ich werde heute nachmittag versuchen die MPU zu löten.
    Was ist denn das MLF-Gehäuse?
    meiner Meinung nach ist das eine Art Überbegriff für (V)QFN etc. Also für "Fummelkram". Sander hat übrigens ab nächster Woche den ATXMEGA32A4-MH (MLF bzw VQFN) vorrätig für 4.96 Euro. Und die MPU6050 ist auch vorrätig.
    was genau meinst du den mit Mini Bolt? Noch kleiner als der jetzige?
    Ich konnte den Bolt nicht so klein bauen wie mechanisch möglich, da meine Steuerplatine zu groß war. Dadurch wäre ein großer Teil im Luftstrom der propeller gewesen. Jetzt könnte man eine platine mit 20x20mm verbauen, d.h. ich könnte bei der Gesamtgröße des Copters 3cm sparen. Das gibt bei der IMAV2012 ganze 3.4% mehr Punkte ;-D. Mir macht es Spaß neue Copter zu konstruieren, aber das Konzept vom Bolt ist für meine Zwecke optimal (schnell, klein, wendig, windunempfindlich, 50g Payload), daher werde ich wohl nichts komplett neues machen.
    Viele Grüße, William
    -> http://william.thielicke.org/

  8. #3168
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Ich habe die MPU nun gelötet. Beim Lötvorgang selber sind mir leider schon Pads der Platine abgeflogen. Vielleicht ist mein Platinenreiniger (Kontakt LR) zu aggressiv? Sofern ich das erkennen kann sind aber nur unwichtige Pads abgeflogen. Aber die ganze Sache sieht nicht gut aus. Ich habe es trotzdem einfach mal versucht und den Code von Chris verwendet, bzw. angepasst (richtig...?)
    Code:
    Dim Twi_start As Byte
    Open "twie" For Binary As #2  'twic
    Config Twie = 400000                                        'twic
    I2cinit #2
    
    $lib "i2c_twi.lbx"                                          ' we do not use software emulated I2C but the TWI
    Config Scl = Porte.1                                        ' we need to provide the SCL pin name
    Config Sda = Porte.0                                        ' we need to provide the SDA pin name
    Const Mpuaddw = &B11010000
    Const Mpuaddr = &B11010001
    @chris: Du hast A0 von der MPU auf Masse gelegt, richtig?

    Wenn ich den Code laufen lasse, bekomme ich für Tmp_gyrox(1) und Tmp_gyrox(2) den Wert 114. Das ist auch bei allen anderen Achsen so. Ich würde gerne feststellen ob die MPU funktioniert, aber es gibt für mich noch zu viele Dinge im Bascom Code die ich nicht verstehe. Kann da jemand helfen?
    Viele Grüße, William
    -> http://william.thielicke.org/

  9. #3169
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    ich würde die Platinen lieber mit Spiritus reinigen
    Zu deinem Code:
    Die "i2c_twi.lbx" ist beim XMega unnötig, die I2C Kommunikation ist schon in der "xmega.lib" integriert.
    Hier mal mein Testcode nur für den MPU und COM2 (portc.6/7) (ungetestet):
    Code:
    $regfile = "xm32a4def.dat"
    $crystal = 32000000
    $framesize = 100
    $hwstack = 100
    $swstack = 100
    
    
    $lib "xmega.lib"
    $external _xmegafix_clear
    $external _xmegafix_rol_r1014
    
    
    Config Osc = Disabled , 32mhzosc = Enabled
    Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
    
    
    
    Declare Sub Init_mpu()
    Declare Sub Read_mpu()
    
    
    
    
    Config Com2 = 38400 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
    'Config Serialout1 = Buffered , Size = 200
    Open "COM2:" For Binary As #1
    
    
    Dim Twi_start As Byte
    Open "twie" For Binary As #2
    Config Twie = 400000
    
    
    
    Const Mpuaddw = &B11010000                                  'AD0 auf Masse
    Const Mpuaddr = &B11010001
    
    
    Dim Test As Byte
    
    
    Dim Gyrox As Integer
    Dim Gyroy As Integer
    Dim Gyroz As Integer
    Dim Tmp_gyrox(2) As Byte At Gyrox Overlay
    Dim Tmp_gyroy(2) As Byte At Gyroy Overlay
    Dim Tmp_gyroz(2) As Byte At Gyroz Overlay
    
    
    Dim Accx As Integer
    Dim Accy As Integer
    Dim Accz As Integer
    Dim Tmp_accx(2) As Byte At Accx Overlay
    Dim Tmp_accy(2) As Byte At Accy Overlay
    Dim Tmp_accz(2) As Byte At Accz Overlay
    
    
    
    
    I2cinit #2
    
    
    Call Init_mpu()
    
    
    
    
    Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled
    Enable Interrupts
    
    
    
    Do
    
    
       Call Read_mpu()
    
       Print #1 , Gyrox
    
       Waitms 100
    
    
    Loop
    
    End
    
    
    Sub Init_mpu()
    
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 117 , #2                                        'Register 117 "Who am I"
       I2crepstart #2                                           'repeated start
       I2cwbyte Mpuaddr , #2                                    'read adress of MPU-6050
       I2crbyte Test , Nack , #2                                'read byte WHO_AM_I (Reg 117)
       I2cstop #2                                               'stop condition
    
       Print #1 , Test
    
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 25 , #2                                         'Register 25 Sample Rate Divider (1..8 kHz)
       I2cwbyte &B00000000 , #2                                 'Divider set to 1   (soll)
       I2cstop #2                                               'stop condition
    
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 26 , #2                                         'Register 26 DLPF_CFG (digital lowpass filter) Configuration
       I2cwbyte &B00000000 , #2                                 'Bits 0..2 = 000 - ACC:260Hz, 0.0ms; Gyro:256Hz, 0.98ms   ( &B00000000 )
       I2cstop #2                                               'stop condition
    
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 27 , #2                                         'Register 27 Gyro Configuration
       I2cwbyte &B00000000 , #2                                 'Bits 3+4 = 00 - Full Scale Range: +/-250°/s
       I2cstop #2                                               'stop condition
    
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 28 , #2                                         'Register 28 ACC Configuration
       I2cwbyte &B00000000 , #2                                 'Bits 3+4 = 00 - Full Scale Range: +/-2g / No High Pass Filter
       I2cstop #2                                               'stop condition
    
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 107 , #2                                        'Register 107 Power Management 1
       I2cwbyte &B00001011 , #2                                 'No Reset / No Sleep / No Cycle / Temp_Sens: Dis / Clock Source: Z-Gyro
       I2cstop #2
    
    End Sub
    
    
    Sub Read_mpu()
    
       I2cstart #2                                              'X ACC
       I2cwbyte Mpuaddw , #2
       I2cwbyte 59 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
       I2crbyte Tmp_accx(2) , Ack , #2
       I2crbyte Tmp_accx(1) , Nack , #2
       I2cstop #2
    
       I2cstart #2                                              'Y ACC
       I2cwbyte Mpuaddw , #2
       I2cwbyte 61 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
       I2crbyte Tmp_accy(2) , Ack , #2
       I2crbyte Tmp_accy(1) , Nack , #2
       I2cstop #2
    
       I2cstart #2                                              'Z ACC
       I2cwbyte Mpuaddw , #2
       I2cwbyte 63 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
       I2crbyte Tmp_accz(2) , Ack , #2
       I2crbyte Tmp_accz(1) , Nack , #2
       I2cstop #2
    
    
       I2cstart #2                                              'X GYRO
       I2cwbyte Mpuaddw , #2
       I2cwbyte 67 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
       I2crbyte Tmp_gyrox(2) , Ack , #2
       I2crbyte Tmp_gyrox(1) , Nack , #2
       I2cstop #2
    
       I2cstart #2                                              'Y GYRO
       I2cwbyte Mpuaddw , #2
       I2cwbyte 69 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
       I2crbyte Tmp_gyroy(2) , Ack , #2
       I2crbyte Tmp_gyroy(1) , Nack , #2
       I2cstop #2
    
       I2cstart #2                                              'Z GYRO
       I2cwbyte Mpuaddw , #2
       I2cwbyte 71 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
       I2crbyte Tmp_gyroz(2) , Ack , #2
       I2crbyte Tmp_gyroz(1) , Nack , #2
       I2cstop #2
    
    End Sub
    Die Test-Ausgabe sollte einen Wert von 104 (glaube ich) haben.

    Gruß
    Chris

  10. #3170
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Hi William,
    die Basisadresse des MPU ist immer 68H oder 69H (Hex).
    Wenn A0 auf low liegt also 68H (&H68 in BASCOM).

    Um die Schreibadresse (Bit 0 gelöscht) zu erhalten musst du diese 68H 1 Bit nach links shiften und dadurch das Bit 0 mit Null auffüllen.
    Da kommt dann D0H (&HD0 = &B11010000) als Wert raus.
    Die Leseadresse hat das Bit 0 gesetzt, also eins mehr als die Schreibadresse, macht &HD1 (= &B11010001).

    Die Werte, die du oben eingestellt hast, stimmen also.
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

Seite 317 von 355 ErsteErste ... 217267307315316317318319327 ... LetzteLetzte

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test