M-Link Sensor mit Arduino

MaOb

User
hab heute mal etwas mit einem arduino herumgespielt und einen Sensor für M-Link gebastelt, war gar nicht so schwer :cool:
weil's so schön funktioniert hat, wurde daraus gleich mal eine library für arduino erstellt
mit C und C++ hatte ich bisher nix zu tun, mit viel nachlesen ist das aber doch noch was geworden!

ein kleines demo-video, poti wird ausgelesen, sensor antwortet auf 3 adressen:

die doku zum msb kann man bei mpx anfordern, hat das sonst noch jemand gemacht und vielleicht auch schon mit dem MSB gespielt?
recht viel ist dazu im www leider noch nicht zu finden.....

wenn ich das ok von mpx bekomme, werde ich meinen code für arduino auch veröffentlichen!
eine anfrage dazu hab ich mal abgeschickt.....

lg, martin
 

Tempo

User
Telemetrie mit Arduino

Telemetrie mit Arduino

Hallo Martin,

habe zufällig Deinen Beitrag gesehen.

Ich habe gerade das Gegenteil realisiert, eine eigene frei programmierbare Auswerteeinheit
für den MSB am Boden:

Tempomat1_oben.jpg
Tempomat_unten.jpg

Im nächsten Schritt habe ich das gleiche wie Du vor, nämlich einen Arduino als Sensor an Bord.
Hast eine PN !

Viele Grüße

Tempo
 

ingo_s

User
M-Link Sensor und deren Parametrierung

M-Link Sensor und deren Parametrierung

Hi Martin,

schön das sich mal wieder jemand zu diesem Thema meldet. Ich baue schon seit vorigem Jahr MSB Sensoren und hatte im Februar auch schon mal eine Rundfrage gestartet wer so im stillen Kämmerlein an Sensoren arbeitet. Schau dir mal meinen Thread an, besonders die Parametrierung:
http://www.rc-network.de/forum/showthread.php/250726
Leider gab es nur ganz wenig Resonanz.
Mittlerweile habe ich eine Sensor Demo, die auch das parametrier Verfahren beinhaltet erstellt und gebe sie auf Anfrage heraus.

@Tempo
die Anzeige ist doch für Dein ACT System oder?
Was für eine Anzeige setzt Du da ein?
Kennst Du schon die neuen I2C Diffdruck Sensoren (ab 2,5mBar) und den MS5611 von AMSYS?


Gruß Ingo
 

MaOb

User
anscheinend bin ich doch kein 'einsamer ritter' am MSB:D
eure threads kannte ich bisher nicht....google findet doch nicht alles:eek:

@ingo: deine doku hätte ich natürlich sehr gerne! meine mailadr. schick ich dir als pm

so hab ich das aktuell in meiner lib implmentiert:
es gibt eine klasse MSB mit den funktionen msbCheck und msbSend

ein kleines beispiel wie das in arduino zu verwenden ist:

* lib mit #include einbinden
Code:
#include <msb.h>
* eine instanz von MSB erstellen (das ist unser sensor), z.b.: ein spannungssensor der auf adr. 3 antwortet
Code:
MSB sensor1(3, MSB_CLASS_VOLTAGE);
für die werteklassen die es gibt hab ich in der lib ein paar konstanten deffiniert, nicht unbeding nötig, macht das leben aber leichter.

* im setup-teil wird nur die ser. schnittstelle eingeschalten
Code:
void setup() {
  Serial.begin (msb_speed);
}

* so schaut dann der loop aus:
Code:
void loop() {
  if (sensor1.msbCheck()){
    sensor1.msbSend(100,0);
  }
}
msbCheck() --> ist true wenn der sensor vom master (=empfänger) abgefragt wurde
msbSend(100,0) --> sendet als antwort den wert 100, das alarmbit ist nicht gesetzt

das war's dann auch schon, der sensor ist fertig:D
mehr kann meine lib bisher auch (noch) nicht.....

haltet ihr das vom syntax her für ok? kann man was besser/anders machen?
man möge es mir verzeihen wenn das eine oder andere 'blödsinn' ist,
ist das 1. mal das ich was mit C/C++ gemacht habe, da gibt's noch viel zu lernen!

lg, martin
 

MaOb

User
was wichtiges vergessen.....
so schaut die schaltung für den msb aus, zum einspielen der software muss rx/tx am arduino getrennt werden!
msb.JPG
 

foobar

User
...sehr guter Thread: Falls Multiplex nichts gegen eine oeffentliche Library hat, waere ich sehr interessiert; sonst aber auch:D Arduino ist fuer eine schnelle Sensorentwicklung bzw. fuer das Prototyping ja geradezu vorherbestimmt...

Danke und Gruesse,
 

Tempo

User
...

@Tempo
die Anzeige ist doch für Dein ACT System oder?
Was für eine Anzeige setzt Du da ein?
Kennst Du schon die neuen I2C Diffdruck Sensoren (ab 2,5mBar) und den MS5611 von AMSYS?


Gruß Ingo

Hallo Ingo,

Die Anzeige ist ein 12Spalten-4Zeilen-LCD.
Damit mache ich "Große Ziffern ca. 25mm groß" über 3 Zeilen, die sehr schnell zu erkennen sind.
Außerdem ist das eine reine Kontrollanzeige mit einzig der Information, die ich brauche.

Und dann hat das Ding natürlich noch einen akkustischen Alarm und noch besser
einen "Vibrationsalarm" aus einem alten Mobiltelefon.

Die Sensoren schaue ich mir noch an. Bin erst noch am Testen von anderen Modulen.

Viele Grüße

Tempo

P.S.: Hier scheinen sich ja die richtigen Leute zu treffen !
War wohl Zeit für dieses vereinende Thema.
 

Tempo

User
Schiebewinkelsensor

Schiebewinkelsensor

Moin,

heißen Dank erst mal.

Na zum einen die sündteuren SM-Sensoren ersetzen und zum anderen träume ich von einem Schiebewinkelsensor. Aber das dauert wohl noch ein bischen....

Gruß

gecko

Hallo Gecko,

ja, Segelflieger wollen immer nur das eine : Schiebefrei fliegen und vor allem schiebefrei Kreisen und das mit der optimalen Klappenstellung ! ;)

Ich bin gerade kurz davor meine Schiebewinkelsonde zu testen. Diese ist Bestandteil meiner
Anti-Schiebe-Automatik, welche wiederum ein Teil meiner Wölbklappenautomatik ist.
Die Automatik ist natürlich per Fernsteuerschalter nach Bedarf an/abschaltbar.
Als Schiebewinkelsonde benutze ich die entsprechenden Anschlüsse meiner 5-Loch-Sonde und Ultra-Low-Pressure-Sensoren für den unteren Geschwindigkeitsbereich, in dem unsere Segelflugzeuge kreisen. Und zur Kalibrierung benutze ich einen hochpräzisen Windfahnen-Winkelsensor (siehe auch dort: http://www.rclineforum.de/forum/boa...e-scha/280074-w-lbklappenautomatik-f-r-f3x-w/ ).

Viele Grüße

Tempo
 

MaOb

User
lange hat's gedauert......

lange hat's gedauert......

ich habe doch noch eine antwort von mpx erhalten:

bitte entschuldigen Sie die Verspätung, wie Sie sich sicher vorstellen können sind wir in der Entwicklung aktuell sehr beschäftigt, aber nun zu Ihrer Frage:

Gerne dürfen Sie den Code offen legen. Ich bitte Sie aber einen Hinweis in den Code zu Schreiben, dass das MSB-Logo geschützt ist und nur nach Rücksprache verwendet werden darf und das es bei Erweiterungen oder kommerziellen Anwendungen sinnvoll ist sich bei Multiplex offiziell das Protokoll geben zu lassen, denn nur so hat man die Chance mit seiner Software aktuell zu bleiben.

somit spricht nix dagegen sich über den MSB zu unterhalten;-)
allen die wirklich interesse daran haben empfehle ich die beschreibung zum MSB bei MPX anzufordern.
in dem pdf ist wunderbar erklärt wie das sende/antwort-spiel am MSB abläuft.

leider hab ich momentan recht wenig zeit, hab auch schon länger nichts daran gemacht....
meinen code habe ich zwischenzeitlich vollständig auf die beta von arduino 1.0 umgestellt.
http://code.google.com/p/arduino/wiki/Arduino1
hintergrund der aktion war das es in 1.0 mit 'serialEvent' eine funktion gibt die aufgerufen wird wenn daten angekommen sind.
mein code arbeitet somit noch immer mit dem uart des arduino, das hat ein paar nachteile:
*) die pin's sind vorgegeben
*) zum aufspielen der software muss die schaltung aus post #8 immer abgesteckt werden
*) die gesendeten daten werden durch die schaltung gleich wieder empfangen --> buffer muss nach dem senden gelöscht werden
*) serialFlush macht in arduino 1.0 nicht mehr das was es davor gemacht hat
Serial.flush() now waits for transmission of outgoing data rather than discarding received incoming data.
dadurch ist es nötig die originale HardwareSerial zu patchen um eine funktion 'flushRX' einzubauen

wirklich schön und einfach ist das aktuell also nicht.....
denke um das ganze wirklich praxistauglich zu machen und die einschränkungen durch arduino zu umgehen müsste man sich vom uart des arduino trennen, der sollte eigentlich schnell genug sein um das in software zu erledigen.
es gibt ja die SoftwareSerial library, auf ähnlicher basis sollte auch eine MSB library zu machen sein.

frage an die allgemeinheit: hat jemand schon mal was ähnliches gemacht?

lg, martin

ps: falls jemand unbedingt meinen aktuellen code haben möchte, bitte eine pm senden
 
es gibt ja die SoftwareSerial library, auf ähnlicher basis sollte auch eine MSB library zu machen sein.

Hallo,

ich fange auch gerade an mich mit dem Thema MSB + Arduino zu beschäftigen. Wobei ich noch in der Phase der Informationssammlung befinde.
Mir wäre die Verwendung einer Software UART auch sympatischer - das erleichtert auch Entwicklung/Debugging da man die HW-UART dann über den Serial Monitor für Diagnosezwecke verwenden kann.

Ich habe noch keine MSB-Spec von Multiplex vorliegen - daher die Frage: Wie hoch ist den die Baudrate des MSB?

Gruß
Thomas
 

Tempo

User
Baudrate MSB

Baudrate MSB

Hallo Thomas,

die Datenübertragungsrate beim MSB ist 34800 Baud.

Ich habe für meine Zwecke mit einem Speicheroszilloskop die komplette Datenübertragung des MSB aufgezeichnet, wobei jedes Bit erkennbar ist.
Wenn Du Fragen hast, melde Dich.

Viele Grüße
Tempo
 

Tempo

User
Menue-Programmierung

Menue-Programmierung

Hallo,

und da geht es bei meinem TempoMat1 lang:

Starte gerade die Programmierung meines Menues.
Versuche es mit den Softwareelementen struct und pointer.

kleineres_Bild_TempoMat1_Hauptmenue0.0.0.jpgkleineres_Bild_TempoMat1_Untermenue0.1.2.JPGkleineres_BildTempoMat1_Untermenue0.1.1.jpgkleiners_Bild_TempoMat1_Untermenue0.1.3.jpg

Bei meinem TempoMat1 gibt es vier Taster, die gemeinsam an einem einzigen ADC-Pin jeweils verschiedene Spannungsteiler freigeben.
Dafür habe ich eine Funktion programmiert, die mir die Nummer des betätigten Schalters zurückgibt.

Viele Grüße

Tempo
 

Tempo

User
Telemetrie Großziffern-Anzeige

Telemetrie Großziffern-Anzeige

Hallo ,

und so sieht meine Anzeige z.B. der Bordspannung im Flugzeug aus, die per MSB-Telemetrie an den TempoMat1 am Boden geschickt wird.
Die Zifferngröße ist so groß wie ein 1 Cent Stück (16mm).

Sie ist sehr Kontrastreich und damit gut abzulesen.
Der TempoMat1 wird oben am Handsender befestigt, genauer an der ehemaligen 35MHz-Antenne.

Sebstverständlich wird auch ein Alarm bei einer frei wählbaren Schwellenspannung ausgegeben: Piezopiepser oder Vibrationsalarm und Farbwechsel auf Rot.

kleineres_Bild_TempoMat1_Spannung.jpg

Viele Grüße

Tempo

P.S.:
Auf der Basis des Arduino-Konzeptes www.arduino.cc lassen sich recht schnell Prototypengeräte mit Mikroprozessoren aufbauen.
Mein TempoMat1 ist so ein Prototyp und voll kompatibel mit einem arduino-pro-mini.

Als Schnittstelle habe ich mir meine alte Platine von ACT umgebaut, die zuvor für die Empfängerprogrammierung gedacht war.
Ich habe dazu mit Kupferlackdraht weitere Pins am FTDI232R-Chip abgegriffen und einen Umschalter von 5V auf 3V3-Signalpegel
bzw. Versorgung eingebaut.

So passt die Schnittstelle jetzt außerdem auf den www.openaltimeter.org, der ebenfalls auf dem arduino aufbaut und frei programmierbar ist. Und für die Ladegerät der Firma Bantam kann die Schnittstelle ebenfalls zusammen mit www.logview.info genutzt werden.
 
M-Link @ Arduino

M-Link @ Arduino

Hallo zusammen,

nachdem ich vor ca. 3 Wochen auf diesen Thread gestossen bin, hat mich das Thema nicht mehr locker gelassen. Angefangen hat es eigentlich damit, dass ein Vereinskamerad von mir den Zündimplusausgang, den viele Benzinerzündungen bieten, direkt für einen M-Link Sensor nutzen wollte.
Gut, das würde man evtl. auch einfach dadurch hinbekommen, dass man den optischen Drehzahlsensor von MPX umbaut - aber die Idee gleich was komplett eigenes zu bauen war auch reizvoll.

Wir haben z.B. die Idee einen Mutlisensor - ähnlich der "General Air" Module von Graupner - zu bauen.

Aber erst mal ein Schritt nach dem anderen. Zunächst haben wir uns jeder ein Arduino Uno Board und ein wenig Zubehör zum Testen bestellt - außerdem ein Arduino Pro Mini - das wollen wir später als Basis für Sensoren im Flieger verwenden.

Die letzten 1,5 Wochen habe ich nun damit verbracht eine Library für den Zugriff auf den MSB zu bauen. Mit dieser Library kann man zum einen auf dem MSB "mitlesen" und Daten anderer Sensoren holen (z.B. könnte man damit einen MSB Datenlogger bauen) - zum anderen kann sie Sensworwerte auf den Bus schreiben.
Dazu implementiert sie das "Idle Line Multiprozessor Protokoll" des MSB.

Die Libary nutzt die NewSoftSerial http://arduiniana.org/libraries/newsoftserial/ Library für die Kommunikation. Gegenüber der Hardware Serial Schnittstelle hat man zum einen den Vorteil das man viel komfortabler debuggen/testen kann (die Hardwareschnittstelle wird nur zur Kommunikation mit dem PC verwendet),
außerdem lassen sich einige Details damit besser beeinflussen, als mit der Hardwareblibliothek. Ich habe allerdings auch ein paar kleine Erweiterungen der NewSoftwareSerial Library vornehmen müssen damit alles sauber funktioniert.


Auf jeden Fall sind die ersten Tests nun erfolgreich gelaufen - einen einfachen Spannungssensor konnte ich erfolgreich implementieren.


Mehr dazu werde ich demnächst als Blog auf RC-Network veröffentlichen.


Gruß
Thomas
 
Ansicht hell / dunkel umschalten
Oben Unten