jo also wen die noch lötbar sind wirde ich mich für den anfang auch damit zu frieden stellen ;)
Druckbare Version
jo also wen die noch lötbar sind wirde ich mich für den anfang auch damit zu frieden stellen ;)
hier ist ein bild von zwei verrutschten:
http://www.villalachouette.de/willia...ter/rutsch.jpg
sehen noch brauchbar aus immer her damit ;)
ich nehm auch eine!
hi
hast du nur die triguide mini platine oder auch die normale ?
könntest du mal ein foto von einer zusammengebauten triguide V3 machen ich finde irgend wie keins ^^
habt ihr für die bauteile der triguide eine liste mit bestellnummer von reichelt ?
danke schon mal im vorraus
In meinem Blog gibts fotos von der v3 und von der mini v2. Für die Miniversion habe ich eine Liste für Reichelt. Kannst mir mal eine email and trashcan @@@@ gmx.com schreiben, auch wegen deiner Adresse.Zitat:
könntest du mal ein foto von einer zusammengebauten triguide V3 machen ich finde irgend wie keins ^^
hast ne mail ;)
Heute hatte ich die Gelegenheit meinen Drucksensor und meinen Kompass draußen zu testen (Video folgt). Außerdem hatte ein Kumpel einen ublox LEA4 GPS Empfänger mit, den ich grad testen konnte. So viel vorweg, ich habe das Modul sofort bei Conrad bestellt nachdem ich diese Daten sah:
Stillstand:
Bild hier
Achten laufen (die waren in echt wohl auch so krumm...):
Bild hier
Da sieht doch schon sehr viel besser aus als mit dem 10Hz Modul. Wenn ihr euch später mein Druck/ Kompass Video anguckt (Vorsicht, sehr langweilig), werdet ihr sehen, dass das GPS eigentlich gar nicht viel zu tun haben wird. Bei Windstille steht mein Copter ziemlich still, die Höhe wird relativ gut gehalten und der Kompass funktioniert sehr gut solange der Copter weniger als 10° gekippt ist. Gebt mir drei Tage nach Lieferung des GPS Sensors, dann funktioniert Heading Hold :-D
hey das klingt ja echt gut ;)
ich kann es garnicht abwarten bis ich meinen fertig habe :D :D
zum glück habe ich gleich drucksensor und kompass mitbstellt ;)
ok, das gps sieht echt sher gut aus.. werd ich mir auch gleich eins holen...
Hi,
hier das Video von Druck und Kompass:
http://www.vimeo.com/12535282
kann man eigentlich mit dem GPS modul einer vorprogrammierten Route folgen ?
ai sischer ;) muss man nur programmieren...
super test... langweilig... aber lustig.. vorallem bei minute 2:30 wollte der dich verarschen wa :-D viel länger habe ich auch nicht geschaut...
ist die haltung der höhe den gut? kann man auf dem video ja nciht so richtig gut einschätzen.
so hab mir heute mal bei conrad ein Lea 4h für unschlagbare 50€ gekauft ;)
hier mal ein kleines bild :
Bild hier
is nich das beste bild ^^
Wie steuerst du denn das Teil an? Ist ja USB. Ich meine mein Bot hat ein USB-Host Modul aber direkt UART wäre ja besser. Ich nehem ja stark an, dass bei dem Modul das Prinzip UART <-> USB <-> Com-port in betrieb ist. Daher wäre es ja bisschen kontraproduktiv mit UART <-> UART zu USB <-> USB zu UART <-> UART.
Ich habe mir am Freitag dieses Teil bestellt:
372784 - 62
Ist zwar nicht für den Roboter, aber dadurch, dass MARS auch eine Bluetoothschnittstelle hat könnte ich es ja auslesen. Die 2m erreicht er laut beschreibung auch und 30€ sind ja nciht viel. Im gegensatz zu meienm Fastrax I300 welches ich noch nichtmal anrühren konnte
Ja, da ist ein UART (3.3V) -> USB converter in der Conrad GPS Maus. D.h. man kann das Modul einfach rausnehmen und per UART abfragen.Zitat:
Wie steuerst du denn das Teil an? Ist ja USB.
Draufschreiben dürfen die Hersteller leider fast alles... Außer den uBlox Modulen scheint aber für eine präzise Navigation keiner der GPS Empfänger zu taugen. Das ist jedenfalls die gängige Meinung von Drohnenbastlern. Wäre ja nur schön wenn diese Meinung falsch ist.Zitat:
Die 2m erreicht er laut beschreibung auch
Nochmal zu dem Layout von der Navigationsplatine (die braucht auch noch einen Namen...): Vielleicht ist es gar nicht so schlau die Sensoren auf eine Platine zu packen. Platinen sind nun mal strikt zweidimensional, viel kompakter kann man aber in drei Dimensionen bauen. Ich dachte an so eine Art Turm/ Pyramide mit drei Etagen: Unten Stromversorgung, und Stecker für die Verbindung zur TriGUIDE & evtl. Funkmodul, in der Mitte dann Drucksensor und Kompass, ganz oben dann das GPS als Abschluss. Ich halte das für eine gute Möglichkeit, weil man diesen Turm auch mit Depron verschließen kann und dann der Drucksensor aus jeglicher Strömung raus ist. Außerdem ist der Kompass/ das GPS weiter weg von den Motoren. Was haltet ihr davon? Die drei Stockwerke kann man ja auch in Eagle Layouten, die werden dann mit vier CFK Stäbchen in den Ecken gestapelt.
@Goran, ich setze mich da mal ran, ok?
Ich werde in den nächsten Tagen zwei GPS Modle testen.
Das eine von Conrad mit Bluetoothverbindung für 30€, laut Hersteller 2m genau und mein Fastrax IT-300 für 60€ aut Hersteller 1,9m genau :-D
Ich war gestern eim Conrad und hab mir ne GPS Antenne für das Fastrax gekauft. Er sendet zwar Daten aber im Haus hat er trotzdem keinen Empfang.
Ich werde dann mal berichten.
@william: die etagen lösung halte ich auch für sinnvoll. als namen hätte ich den vorschlag "TriNavi"
@oratus sum: seit wann sendet ein GPS empfänger!?
Meiner Sendet, der hat ne Bluethoot Schnittstelle. :-)Zitat:
Zitat von Bammel
Gruß Richard
ja aber das hat ja im prinzip nichts mit dem GPs zu tun
Ok, tu das, sorry wollte ja behilflich sein, aber bei mit is grade zeittechnisch sowas von keine luft.. wenn ich wieder mehr zeit habe werd ich aber auch mal was zu beitragen ;)
Sooo
Ich hab heute das Fastrx IT300 in Betrieb genommen.
Ich war gestern beim Conrad und hab mir eine 10€ GPS Antenne geholt. Diese gleich direkt am Modul angelötet, das Ergebnis ist sehr gut:
Bild hier
Ich habe die Antenne aus dem Fesnter gehalten und er hatte nach kurzer Zeit 7 Satelliten in Sich. Der Empfang war Exzellent 4/7 Satelliten hatte ich bei 100% und der Rest war nicht unter 80%.
Meine Wohung ist im Haus bisschen weiter oben. Das ist aber weil die Karte wahrscheinlich etwas ungenau ist.
Aja das sind 30 Messungen.
Original GPS RAW-Daten: (wens interessiert)
Das Modul scheint ganz nett z sein.Code:$GPGGA,210952.000,4813.9929,N,01624.5496,E,1,07,1.7,183.6,M,43.4,M,,0000*55
$GPGSA,A,3,06,16,31,03,24,21,18,,,,,,2.5,1.7,1.8*36
$GPGSV,3,1,11,21,78,157,36,16,56,297,46,29,39,084,,24,37,216,49*7C
$GPGSV,3,2,11,06,26,280,43,18,24,147,37,31,16,217,46,05,14,036,*78
$GPGSV,3,3,11,03,11,281,39,30,07,146,,22,02,174,*4C
$GPRMC,210952.000,A,4813.9929,N,01624.5496,E,0.06,160.99,160610,,,A*68
$GPGGA,210953.000,4813.9929,N,01624.5496,E,1,07,1.7,183.5,M,43.4,M,,0000*57
$GPGSA,A,3,06,16,31,03,24,21,18,,,,,,2.5,1.7,1.8*36
$GPGSV,3,1,11,21,78,157,36,16,56,297,46,29,39,084,,24,37,216,49*7C
$GPGSV,3,2,11,06,26,280,43,18,24,147,37,31,16,217,46,05,14,036,*78
$GPGSV,3,3,11,03,11,281,40,30,07,146,,22,02,174,*42
$GPRMC,210953.000,A,4813.9929,N,01624.5496,E,0.07,143.18,160610,,,A*60
$GPGGA,210954.000,4813.9929,N,01624.5496,E,1,07,1.7,183.4,M,43.4,M,,0000*51
$GPGSA,A,3,06,16,31,03,24,21,18,,,,,,2.5,1.7,1.8*36
$GPGSV,3,1,11,21,78,157,36,16,56,297,46,29,39,084,,24,37,216,49*7C
$GPGSV,3,2,11,06,26,280,43,18,24,147,37,31,16,217,46,05,14,036,*78
$GPGSV,3,3,11,03,11,281,40,30,07,146,,22,02,174,*42
$GPRMC,210954.000,A,4813.9929,N,01624.5496,E,0.06,151.62,160610,,,A*68
Als nächstes teste ich mal das 30€ Teil. Ist heute angekommen, lädt aber noch...
[EDIT]
Ich habe meine Daten mit dem Freeware Programm VisualGPS analysiert:
http://www.visualgps.net/VisualGPS/D.../Download.html
laut dem Programm habe ich eine Standardabweichung von:
Latitude(Breitengrad): 1,642m
Longitude(Längengrad): 2,235m
Höhe ganze 5,623m
Man muss noch dazu sagen, dass ich kurz noch mit der Antenne in die Wohung gegangen bin wo er natürlich die Satelliten sofort verloren hat.
Guten morgen,
wenn ich mir Dein Bild anschaue kann da aber etwas nicht stimmen, denn dass kann keine Genauigkeit von 2 Meter sein. Wenn die 2 m stimmen sollten, müssen die Messdaten ja genau am Haus +- 2 m liegen. Das tun sie aber nicht. Soweit kannst Du Dich nicht aus dem Fenster gelehnt haben. Da kommt ca. eine Ungenauigkeit von 10 m hin.
Peter
Guten morgen,
wenn ich mir Dein Bild anschaue kann da aber etwas nicht stimmen, denn dass kann keine Genauigkeit von 2 Meter sein. Wenn die 2 m stimmen sollten, müssen die Messdaten ja genau am Haus +- 2 m liegen. Das tun sie aber nicht. Soweit kannst Du Dich nicht aus dem Fenster gelehnt haben. Da kommt ca. eine Ungenauigkeit von 10 m hin.
Peter
Die Antenne habe ich auf einen Stab befestigt der selbst so 2-3m lang ist (ich weiß es nicht genau, ein Bambusstab halt). Den habe ich aus dem Fenster gehalten. Wobei ich diesen wiederum nicht ganz raushalten konnte weil das Antennenkabel nur 2m lang ist.
Die 2m kommen hin. Man sieht das auf der Karte nicht ganz eindeutig aber da sieht man einen Rasen, links, dann das Haus, dazwischen ist noch ein Asphaltweg. Der Asphaltweg selbst ist so ca 2-2.5m breit. Und die Punkte sind in der Mitte des Weges ca
Ich werde sowieso noch mal Messungen durchführen und schauen.
Hallo,
ich verstehe das hier nicht. Ihr bekommt mit einem GPS-Empfänger, der sich fest an einem Ort befindet, sich also nicht bewegt, eine Genauigkeit von 2 m hin. Wenn ich das mit meiner GPS-Maus, eine RoyalTek STARIII inside, mache, bekomme ich eine Genauigkeit von 17m nur hin. Hier ein Bild von meinem Empfang der Rohdaten und anschlie0ender konvertierung für Google-Earth.
Ich empfange die Daten der Maus ganz normal mit Putty, speichere diese Daten in einer Textdatei ab und konvertiere sie dann in eine KML-Datei, die dann mit Google-Earth geöffnet wird. Es kann nicht sein, dass diese GPS-Maus schlecht ist. Ich verstehe das hier bei Euch nicht.
Peter
Vielleicht ist das ublox LEA-4 einfach extrem gut, so wie es immer gesagt wird. Wo befindest du dich denn mit dem Empfänger? Freie Sicht in alle Richtungen zum Himmel? Aus dem Fenster raushalten geht wohl nur gut wenn man glück hat, oder das Haus nicht hoch ist.Zitat:
Es kann nicht sein, dass diese GPS-Maus schlecht ist
Wieso ist denn die GoogleEarth Auflösung bei dir so schlecht...?
Einige GPS-Empfänger verwenden eine digitale Filterung in Form einer Art Hysterese. GPS ist halt nicht so genau wie man sich das oft vorstellt.
Oder nutzt der andere Empfänger irgendeine Art DGPS? Und der schlechtere eben nicht?
ließ dir mal das durch:
http://www.kowoma.de/gps/Fehlerquellen.htm
da sind bei dir einige Bäume zu sehen...
Guten morgen,
ich werde heute Nachmittag auf s freie Feld fahren und dann mal Daten empfangen. Mal sehen, was dabei herauskommt.
In dem Bild liegt der GPS-Empfämger ca. 3m neben dem Haus auf einem Tisch. Bin selber gespannt, was da heute bei raus kommt.
Es gibt bei Google-Earth noch sehr viele Bereiche, bei denen die Auflösung so schlecht ist. Die Kleinstädte hier an der Ostsee gehören leider dazu.
Das Ergebniss teile ich Euch dann hier mit.
Peter
hi
hatte heute meinen erfolgreichen erstflug :)
bin grad dabei die parameter noch etwas anzupassen .
aber im großen und ganzen fliegt er schon echt gut :D
werde mal die tage ein video machen ;)
Hi,
Glückwunsch, das ging ja echt schnell...!
Hallo,
die Welt ist wieder für mich in Ordnung. Habe eine Messung über 10 Minuten an einem festen Standord mitten auf einem Maisfeld gemacht. Und siehe da, es ist eine Genauigkeit von 1,5 Meter. Die Probleme bei der Messung und wodurch die Fehler entstehen, waren mir eigentlich klar, dass sie sich aber so stark auswirken, war mir nicht bewusst bzw. Ich habe daran nicht geglaubt.
Peter
klar bei dem klasse teil musste es einfach schnell gehen ^^Zitat:
Zitat von Willa
ich hab die parameter jezt soweit eingestellt und bin begeistert bei windstille is schweben ohne steuern im umkreis von 5m garkein proplem :D :D :D
willa hast du den schon dein GPS empfänger bekommen ?
Cool, dann mach mal ein Video :-D Und wie fliegt sich mein Tricopter im Vergleich zu anderen Multicoptern? Ich habe noch nie was anderes geflogen, daher kann ich das nicht einschätzen. GPS ist da und heute wollte ich die ersten Versuche machen. Leider ist aber einfach ein Motor auf Vollgas angelaufen und hat das GPS vom Copter gerissen. Ich muss mir aber nochmal ein richtiges Konzept überlegen und die Software neu konzipieren. Bisher habe ich einfach die drei Sensoren (GPS, Druck, Kompass) zusammen und ohne Koordinierung abgefragt. Da hauen die sich gegenseitig die Signale kaputt. Sehr nervig solche Konflikte zu lösen :-( ...
naja nen vergleich gibt es nicht ^^ da deiin copter einfach zu gut fliegt :D:D
also ich bin bis jezt 2 verschiedene quadrocoptersystheme geflogen und muss sagen das der tricopter im vergleich besser fliegt , das liegt aber auch an den guten sensoren ;)
ich hab einfach die parameter per funk stück für stück angepasst und er fliegt einfach perfekt :D
wenn Position Hold per gps geht kann ich mal ein vergleichvideo machen .
könntest du die software mit dem kompass und luftdrucksensor mir geben oder is die nich brauchbar ^^ ?
hast du dafür ein extra arduino mini genommen oder leuft das noch über eins ?
Ich habe dafür einen extra arduino pro mini 3.3V, 8MHz genommen. Das ist der Code glaube ich....:
Code:'===CHIP SETTINGS===
$regfile = "m328pdef.dat"
$framesize = 128
$swstack = 128
$hwstack = 128
$crystal = 8000000
$baud = 38400
Config Pind.2 = Input 'eoc
Config Pinb.5 = Output 'green led
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 B7a 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 P As Single
Dim Po As Single
Dim A As Single
Dim Height_filt As Single
Dim A2(6) As Integer 'Word
Dim Height As Integer 'Word
Dim Averaging As Byte
Dim I As Byte
Dim Startup As Word
Dim Okay As Bit
Dim Heightzero As Single
Dim Adres As Byte
Dim Value As Byte
Dim Result As Integer
Dim Hi As Long
Dim P_set_height As Single
Dim P_set_height_old As Single
Dim I_set_height As Single
Dim D_set_height As Single
Dim P_set_height_out As Single
Dim I_set_height_out As Single
Dim D_set_height_out As Single
Dim Setpoint_height As Single
Dim Outputpid As Byte
Dim Outputpid_height_integer As Single
'output:
Dim Command(2) As Byte
'compass
' 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_w_array(3) = &B01110010 ' 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
Dim Compass_value2(6) As Integer
Dim Heading As Integer
Dim Setpoint_heading As Integer
Dim P_set_heading As Integer
Dim P_set_heading_raw As Integer
Dim P_set_heading_raw_abs As Word
Dim P_set_heading_v1 As Integer
Dim P_set_heading_v1_abs As Word
Dim P_set_heading_out As Integer
Dim I_set_heading_out As Integer
Dim I_set_heading As Single
Dim Outputpid_heading_integer As Integer
'===READ RX SETTINGS===
Config Timer0 = Timer , Prescale = 256
On Timer0 Detectrxpause 'timer overflow = pause in receiver's signal
Config Int1 = Rising
On Int1 Getreceiver
$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
'--Read Receiver (Rx)--
Dim Empf(6) As Word 'data from getreceiver interrupt
Dim Sempf(6) As Integer 'rescaled data
Dim Channel As Byte 'current channel to be read out
Dim Rc_on_counter As Word 'counter that counts the amount of correct rx signals
Dim Poslock As Bit
Dim Poslock_old As Bit
Config Twi = 100000
Enable Timer0
Enable Int1
Enable Interrupts
Config Serialout = Buffered , Size = 254
Clear Serialout
Waitms 100
'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
'compass config
I2csend Compass_address , Compass_w_array(1) , 3 ' set Compass Configuration
Waitms 100
Do
If Empf(5) > 185 And Empf(6) > 170 Then
Poslock = 1
Else
Poslock = 0
End If
'lese kompass:
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
Compass_value = Compass_value / 10
'Print Compass_value 'in degrees
'hole Rohdaten Temperatur
'-------------------------------------------------------------------------------
If Averaging = 1 Then 'datasheet: would be enough to get temp every second
If Okay = 1 Then
Toggle Portb.5
End If
Call Write_bmp(&Hf4 , &H2E)
While Pind.2 < 1 'wait until EOC is 1 ca. 5ms
Waitus 100
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
Waitus 100
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
'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
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 : 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
Zwr1 = 1 / 5.255 : Zwr2 = P / Po : Zwr3 = Zwr2 ^ Zwr1 : Zwr4 = 1 - Zwr3 : A = 44330 * Zwr4
If Okay = 0 Then
If Startup < 200 Then
Startup = Startup + 1
If Startup > 150 Then
Heightzero = Heightzero + A
End If
Else
Okay = 1
Heightzero = Heightzero / 50
End If
End If
A = A - Heightzero
A = A * 100 'höhe in zentimetern
If Okay = 0 Then
Height_filt = A
For I = 1 To 6
A2(i) = A
Next
End If
Height_filt = Height_filt * 0.965 '0.96
A = A * 0.035 '0.04
Height_filt = Height_filt + A
Height_filt = Height_filt
If Averaging <= 6 Then
A2(averaging) = Int(height_filt)
Averaging = Averaging + 1
End If
If Averaging = 7 Then 'reduced output rate
Height = 0
For I = 1 To 6
Height = Height + A2(i)
Next
Height = Height / 6
Heading = Compass_value
If Poslock_old <> Poslock Then 'switched
If Poslock = 1 Then
Setpoint_height = Height
Setpoint_heading = Heading
P_set_height = 0
P_set_heading = 0
I_set_height = 0
I_set_heading = 0
D_set_height = 0
End If
If Poslock = 0 Then 'switch off
Command(1) = 128
Command(2) = 128
Printbin Command(1)
End If
Poslock_old = Poslock
End If
If Okay = 1 And Poslock = 1 Then
P_set_height = Setpoint_height - Height
P_set_height_out = P_set_height * 0.03 '10cm --> 1.5 direkt auf motoren
I_set_height = I_set_height + P_set_height
If I_set_height > 500000 Then
I_set_height = 500000
End If
If I_set_height < -500000 Then
I_set_height = -500000
End If
I_set_height_out = I_set_height * 0.00008 '0.00005
D_set_height = P_set_height - P_set_height_old
D_set_height_out = D_set_height * 0.16 '0.1
P_set_height_old = P_set_height
'Print Height ; " " ; P_set_height_out ; " " ; i_set_height_out ; " " ; d_set_height_out
'Print "height: " ; Height
Outputpid_height_integer = 128 + P_set_height_out
Outputpid_height_integer = Outputpid_height_integer + I_set_height_out
Outputpid_height_integer = Outputpid_height_integer + D_set_height_out
If Outputpid_height_integer > 254 Then
Outputpid_height_integer = 254
End If
If Outputpid_height_integer < 0 Then
Outputpid_height_integer = 0
End If
'heading
P_set_heading_raw = Setpoint_heading - Heading
''(
If P_set_heading_raw > 0 Then
P_set_heading_v1 = P_set_heading_raw - 359
P_set_heading_v1_abs = Abs(p_set_heading_v1)
P_set_heading_raw_abs = Abs(p_set_heading_raw)
If P_set_heading_v1_abs > P_set_heading_raw_abs Then
P_set_heading = P_set_heading_raw
Else
P_set_heading = P_set_heading_v1
End If
Elseif P_set_heading_raw < 0 Then
P_set_heading_v1 = P_set_heading_raw + 359
P_set_heading_v1_abs = Abs(p_set_heading_v1)
P_set_heading_raw_abs = Abs(p_set_heading_raw)
If P_set_heading_v1_abs > P_set_heading_raw_abs Then
P_set_heading = P_set_heading_raw
Else
P_set_heading = P_set_heading_v1
End If
End If
'')
'P_set_heading = P_set_heading_raw
'print p_set_heading
P_set_heading_out = P_set_heading / 2
I_set_heading = I_set_heading + P_set_heading
If I_set_heading > 960 Then
I_set_heading = 960
End If
If I_set_heading < -960 Then
I_set_heading = -960
End If
I_set_heading_out = I_set_heading / 16 ' *0.1 geht nich...
I_set_heading_out = 0
Outputpid_heading_integer = 128 + P_set_heading_out
Outputpid_heading_integer = Outputpid_heading_integer + I_set_heading_out
'Print Heading ; " " ; P_set_heading_out ; " " ; I_set_heading_out ; " " ; Outputpid_heading_integer
If Outputpid_heading_integer > 254 Then
Outputpid_heading_integer = 254
End If
If Outputpid_heading_integer < 0 Then
Outputpid_heading_integer = 0
End If
Command(1) = Outputpid_height_integer
Command(2) = Outputpid_heading_integer
'Printbin Command(1)
Print Height ; " " ; Heading
End If
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
'===READ RX=====================================================================
Getreceiver: 'falling edge detection
If Channel > 0 And Channel < 7 Then 'fill empf(1-5)
Empf(channel) = Timer0
End If
Timer0 = 131 'preload for 4.096 ms
Incr Channel 'if no falling edge was detected for a longer period, channel will increase above 11
Return 'that means that there are problems with the receiver
Detectrxpause:
Channel = 0
Timer0 = 131 'preload for 4.096 ms
Return
ok
ich werde morgen mal nen board mit einem atmega32 löten und das ganze mal testen ;)
kommt auf der triguid auch noch eine extra software drauf ?
Ich habe diese hier drauf. Sollte gehen, aber ist wohl noch nicht optimal:
edit: tja, darf ich leider nicht posten, da länger als 20.000 Zeichen...Code:'===CHIP SETTINGS===
$regfile = "m328pdef.dat"
$framesize = 64
$swstack = 64
$hwstack = 64
$crystal = 16000000
$baud = 38400