Forum: Mikrocontroller und Digitale Elektronik C/C++ Programmierer gesucht


von Stephan B. (exinger)


Lesenswert?

Hallo liebe Programmierer,

ich suche jemanden, der mir ein Programm schreiben kann. Was das 
Programm beinhalten soll, erkläre ich weiter unten.

Einmal zur groben Orientierung:

Vorhanden sind 3 ESP LOLIN32, davon sollen 2 Transmitter sein und einer 
Receiver. Der Transmitter überwacht einen Taster. Wenn der Taster 
betätigt wird, wird ein Zeitwert (Zeitpunkt der Betätigung) an den 
Receiver übertragen. Wichtig ist, die Zeit beider Transmitter müssen 
synchron laufen (Millisekunden genau).

Fall 1: Wird Transmitter A betätigt, sendet der seine Zeit an den 
Receiver. Der Receiver lässt LED A leuchten.

Fall 2: Wird Transmitter B betätigt, sendet der seine Zeit an den 
Receiver. Der Receiver lässt LED B leuchten.

Fall 3: Wird Transmitter A und Transmitter B betätigt, werden die Zeiten 
an den Receiver gesendet und verglichen. Ist die Differenz kleiner als 
350ms, lässt der Receiver LED A und LED B leuchten.

Fall 4: Wird Transmitter A und Transmitter B betätigt, werden die Zeiten 
an den Receiver gesendet und verglichen, ist die Differenz größer als 
350ms, lässt der Receiver den zuerst betätigten leuchten.

Die Leuchtdauer beträgt 4 Sekunden. Während eine der beiden, oder beide 
LEDs leuchten, darf keine weitere Messung signalisiert werden.

(Transmitter A = LED A, Transmitter B = LED B) Die LEDs befinden sich am 
Receiver, nicht am Transmitter.

Soweit schonmal zum Programmablauf.
(Optional)

Ein wenig kniffliger wird es jetzt:
Die beiden Transmitter, sowie der Receiver haben eine Masse. Die Taster 
sind elektrisch leitend (Taster sind aus Metall) und sollen erkennen, ob 
sie auf eine Masse oder nicht getroffen haben. Liegt Masse an (schon bei 
Berührung) darf keine Zeit an den Receiver gesendet werden. Erst wenn 
der Taster wieder auf einem massefreien Material betätigt wird, darf das 
Programm wie oben reagieren.

Für die Zeit, die Transmitter A „Masse“ hat, soll am Receiver die LED C 
aufleuchten.

Für die Zeit, die Transmitter B „Masse“ hat, soll am Receiver die LED D 
aufleuchten.

Beispiele:

Taster von Transmitter A berührt die Masse von Transmitter B oder Masse 
von Receiver, darf nur A nicht auslösen, B kann auslösen. 
(Vorrausgesetzt, B hat keine Masse von A oder vom Receiver)

Taster von Transmitter B berührt die Masse von Transmitter A oder Masse 
von Receiver, darf nur B nicht auslösen, A kann auslösen. 
(Vorrausgesetzt, A hat keine Masse von B oder vom Receiver)

Ich hoffe es ist einigermaßen verständlich erklärt und dargestellt. 
Wichtig ist natürlich ein gesichertes W-LAN, Datenpakete dürfen nicht 
verloren gehen, Programmierung in C/C++ und die einzelnen Programmzeilen 
sollen durch Kommentare nachvollziehbar sein.

Bei Unklarheiten und/oder ernsthaftem Interesse, gebe ich gerne über PN 
meine Telefonnummer bekannt. Bei einem persönlichen Gespräch sind 
Rückfragen sicher leichter zu beantworten.

Falls wer wen kennt, der oder die sich der Aufgabe gewachsen fühlen 
könnte, bitte per PN melden. Wenn die Zusammenarbeit gut klappt, habe 
ich noch Folgeaufträge gleichen Umfangs.

Vielen Dank und viele Grüße

Exinger

: Verschoben durch User
von DanielF (Gast)


Lesenswert?

Der zweite Teil mit der Masse erinnert mich an die Elektronik beim 
Fechten.
Da habe ich vor Jahren mal dran gebastelt.

Wie wird (oder soll) denn sichergestellt werden, dass beide Transmitter 
die gleiche Zeit haben? sntp oder wird das in Hardware erledigt?

von Jens M. (schuchkleisser)


Lesenswert?

Warum überhaupt eine Zeit?
Der Master sieht doch welcher Slave zuerst und wann kommt.
Für den Fall einer Funkblockade kann der Slave das Alter des Signals 
mitsenden.
Das erübrigt dann die Zeitsynchronisation.

von DanielF (Gast)


Lesenswert?

Ich vermute, dass die Latenz per Wlan viel zu stark für die Aufgabe 
schwankt.

von Stefan F. (Gast)


Lesenswert?

Der Falk B. macht Dir das bestimmt ganz schnell für kleines Geld. Wenn 
du Geduldig bist, macht er auch gerne mal was kostenlos, sobald alle 
Infos zusammen getragen sind.

von Stephan B. (exinger)


Lesenswert?

[quote]Wie wird (oder soll) denn sichergestellt werden, dass beide 
Transmitter
die gleiche Zeit haben? sntp oder wird das in Hardware erledigt?[/quote]

Ich dachte daran, dass die Transmitter zeitgleich einen Impuls an einem 
Pin bekommen und der einen Interrupt, quasi die Uhr anstößt.

von Max D. (max_d)


Lesenswert?

Wie präzise müssen denn die 350 ms stimmen ?
WLAN ist nicht gerade berühmt für Echtzeit...

Das Konzept an sich ließe sich auch leicht mit ein paar 433 MHz Module 
umsetzen bei denen man ein engeres timing Zustand bringen könnte.

von Stefan F. (Gast)


Lesenswert?

Stephan B. schrieb:
> Ich dachte daran, dass die Transmitter zeitgleich einen Impuls an einem
> Pin bekommen und der einen Interrupt, quasi die Uhr anstößt.

Wenn da schon ein Kabel liegt, genügt vielleicht auch ein Transmitter. 
Mir ist das Gesamtkonstrukt noch ziemlich unklar.

von Stephan B. (exinger)


Lesenswert?

Max D. schrieb:
> Wie präzise müssen denn die 350 ms stimmen ?
> WLAN ist nicht gerade berühmt für Echtzeit...
>
> Das Konzept an sich ließe sich auch leicht mit ein paar 433 MHz Module
> umsetzen bei denen man ein engeres timing Zustand bringen könnte.

Die 350ms sind nur die Differenz beider Zeiten der Transmitter. Denn die 
Zeit wird schon im Transmitter gestoppt und weitergeleitet. Die 
Übertragung der Zeiten selbst könnte theoretisch auch bis zu 1-2 
Sekunden dauern, wenn das so ein großes Problem ist.

von Max D. (max_d)


Lesenswert?

Die Uhren in den beiden Sendern werden dir unweigerlich weglaufen. 
Solange nicht Platz für eine Atomuhr ist auch in absehbarer Zeit. Die 
muss regelmäßig (per Funk) synchronisiert werden.
Diese Synchronisierung erzeugt unweigerlich Abweichungen.

Daher nochmal die Frage: Wie präzise müssen die 350 ms stimmen ?

von Schnauze (Gast)


Lesenswert?

Stefan: Butthurt? Wie wär's mit Pfandflaschen sammeln anstatt im Forum 
kreatives Schreiben zu üben?

von Stefan F. (Gast)


Lesenswert?

Schnauze schrieb:
> Butthurt?

Kannst du dem TO Hilfe anbieten oder jemanden empfehlen?

von Schnauze (Gast)


Lesenswert?

Nein, aber du ja scheinbar auch nicht, also was solls.

von Stefan F. (Gast)


Lesenswert?

Schnauze schrieb:
> Nein, aber du ja scheinbar auch nicht, also was solls.

Ich hab Falk B. empfohlen.

von Stephan B. (exinger)


Lesenswert?

Max D. schrieb:
> Die Uhren in den beiden Sendern werden dir unweigerlich weglaufen.
> Solange nicht Platz für eine Atomuhr ist auch in absehbarer Zeit. Die
> muss regelmäßig (per Funk) synchronisiert werden.
> Diese Synchronisierung erzeugt unweigerlich Abweichungen.
>
> Daher nochmal die Frage: Wie präzise müssen die 350 ms stimmen ?

Sollten schon genau stimmen, wenn es möglich ist. Angenommen, ich habe 
eine Station auf der die Transmitter durch einen Impuls synchronisiert 
werden können, kann ich das auch jede Stunde machen. Würde dann doch 
noch im Rahmen bleiben, oder etwa nicht?

Wenn die Synchronisation ein so großes Problem darstellt, kann das sonst 
auch erstmal ausgeklammert werden.

von Stefan F. (Gast)


Lesenswert?

> Sollten schon genau stimmen, wenn es möglich ist.

Möglich ist viele, nur kann der Aufwand extrem hoch sein. Was heißt denn 
"genau stimmen" für dich? Um wie viele Promille dürfen die Uhren 
zueinander abweichen? Oder drücke es in Sekunden pro Tag aus, wenn Dir 
das leichter fällt.

von Max D. (max_d)


Lesenswert?

Stephan B. schrieb:
> Würde dann doch
> noch im Rahmen bleiben, oder etwa nicht?

Was IST der Rahmen ?
Wenn der Rahmen jetzt +- 1 ns ist, dann spielt die 
Ausbreitungsgeschwindigkeit der Signale (Lichgeschwindigkeit) ja schon 
eine Rolle.
Wenn der Rahmen jetzt +-1 s ist, dann braucht man nichtmal einen Quarz.

von foobar (Gast)


Lesenswert?

>> Wie wird (oder soll) denn sichergestellt werden, dass beide
>> Transmitter die gleiche Zeit haben?
>
> Ich dachte daran, dass die Transmitter zeitgleich einen Impuls an einem
> Pin bekommen und der einen Interrupt, quasi die Uhr anstößt.

Dann kannst du auch gleich den Taster zum anderen Sender rüberlegen ...

von Stephan B. (exinger)


Lesenswert?

Max D. schrieb:
> Stephan B. schrieb:
>> Würde dann doch
>> noch im Rahmen bleiben, oder etwa nicht?
>
> Was IST der Rahmen ?
> Wenn der Rahmen jetzt +- 1 ns ist, dann spielt die
> Ausbreitungsgeschwindigkeit der Signale (Lichgeschwindigkeit) ja schon
> eine Rolle.
> Wenn der Rahmen jetzt +-1 s ist, dann braucht man nichtmal einen Quarz.

Der Rahmen sollte sein, in 1-2 Stunden Betrieb +- 3ms.

> Dann kannst du auch gleich den Taster zum anderen Sender rüberlegen ...

Die sind nicht dauerhaft zusammen, die sitzen auf einer Station, 
bekommen ihr high Signal und werden dann heruntergenommen. So in der Art 
war mein Lösungsansatz.

von Np R. (samweis)


Lesenswert?

Stephan B. schrieb:
> Die sind nicht dauerhaft zusammen,

Wie lange sind sie nicht zusammen und wie weit dürfen sie in dieser 
Zeit auseinander laufen?

Max 2 Stunden getrennt und max. 3ms auseinander?
Oder würden sie auch innerhalb der 2 Stunden wieder in die "Station" 
zurück kommen?

: Bearbeitet durch User
von Stephan B. (exinger)


Lesenswert?

Np R. schrieb:
> Stephan B. schrieb:
>> Die sind nicht dauerhaft zusammen,
>
> Wie lange sind sie nicht zusammen und wie weit dürfen sie in dieser
> Zeit auseinander laufen?
>
> Max 2 Stunden getrennt und max. 3ms auseinander?
Ja, genau.
> Oder würden sie auch innerhalb der 2 Stunden wieder in die "Station"
> zurück kommen?
Die Transmitter können jederzeit wieder auf die Station, um sich ihren 
Impuls abzuholen.

von Max D. (max_d)


Lesenswert?

Eine DS3231 RTC läuft (mit 2 ppm, ziemlich präzise für einen Quarz) in 1 
h gut 7 ms weg.
Nennenswert besser wird es nicht ohne Atomuhr.

von Tuxpilot (Gast)


Lesenswert?

Max D. schrieb:
> Eine DS3231 RTC läuft (mit 2 ppm, ziemlich präzise für einen
> Quarz) in 1
> h gut 7 ms weg.
> Nennenswert besser wird es nicht ohne Atomuhr.

Atomuhren sind nicht teuer: Mit GPS* & Co. sollte es gehen.

Stephan B. schrieb:
> Die beiden Transmitter, sowie der Receiver haben eine Masse. Die Taster
> sind elektrisch leitend (Taster sind aus Metall) und sollen erkennen, ob
> sie auf eine Masse oder nicht getroffen haben.

Werden das Anschlagplatten für irgendeinen Sport?

Warum ist das eigentlich im Forum Platinen?

*Global Positioning System

*Anzeige-Link

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tuxpilot schrieb:
> Warum ist das eigentlich im Forum Platinen?

Verschiebe-Irrtum.

von Tuxpilot (Gast)


Lesenswert?

Tuxpilot schrieb:
> Max D. schrieb:
>> Eine DS3231 RTC läuft (mit 2 ppm, ziemlich präzise für einen
>> Quarz) in 1
>> h gut 7 ms weg.
>> Nennenswert besser wird es nicht ohne Atomuhr.
>
> Atomuhren sind nicht teuer: Mit GPS* & Co. sollte es gehen.

Wenn es nicht weltweit funktionieren soll, reicht auch schon ein 
DCF77-Empfänger. Das DCF77-Signal wird ebenfalls über eine Atomuhr 
erzeugt.

Ach, falls es nur um die Zeitdifferenz geht: Warum nicht einfach 
irgendein beliebiges Funksignal nehmen?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Stefanus F. schrieb:
> Der Falk B. macht Dir das bestimmt ganz schnell für kleines Geld.

Interessant, wie Du so einfach über die Ressourcen anderer Leute 
bestimmst. Wenn sich hier jemand von sich aus anbietet, dann ist das ja 
okay. Aber einfach den TO direkt an jemand unbeteiligten weiterzureichen 
und dann direkt die Höhe des Geldes festzulegen, geht einfach zu weit.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Stephan B. schrieb:
> Ich dachte daran, dass die Transmitter zeitgleich einen Impuls an einem
> Pin bekommen und der einen Interrupt, quasi die Uhr anstößt.

Wo kommt der Impuls an dem Pin her? Über ein gemeinsames Kabel?

: Bearbeitet durch Moderator
von Max D. (max_d)


Lesenswert?

Frank M. schrieb:
> Wo kommt der Impuls an dem Pin her? Über ein gemeinsames Kabel?

Stephan B. schrieb:
> Die sind nicht dauerhaft zusammen, die sitzen auf einer Station,
> bekommen ihr high Signal und werden dann heruntergenommen.

von foobar (Gast)


Lesenswert?

Der "Receiver" könnte ja auch regelmäßig (z.B. jede Sekunde) nen Sync 
per Broadcast senden ...

von Joe F. (easylife)


Lesenswert?

DanielF schrieb:
> Der zweite Teil mit der Masse erinnert mich an die Elektronik beim
> Fechten.
> Da habe ich vor Jahren mal dran gebastelt.

Hallo Stephan B., kannst du dich dazu mal äußern?
Auch ich habe früher mal gefochten und deine Beschreibung hört sich 
stark nach diesem Anwendungsfall an...

Der Grund, warum man im Fechtsport hier ein Kabel benötigt ist ganz 
simpel:
Beide Sportler benötigen ein gemeinsames Massepotential, damit die 
Elektronik funktionieren kann.

Mit 2 Funksendern, die jeweils ihr eigenes Massepotential haben, kannst 
du nicht feststellen, ob Fechter A die Masse von Fechter B berührt hat.

En garde.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Joe F. schrieb:
> Auch ich habe früher mal gefochten und deine Beschreibung hört sich
> stark nach diesem Anwendungsfall an...

Wenn man nach "Fechten 350ms" googelt, findet man tatsächlich etwas. 
Allerdings scheinen die 350ms seit 2004 überholt zu sein. Zitat aus 
erstem Google-Treffer:

----
"Beim Säbelfechten wird das Zeitintervall, innerhalb dessen ein Treffer 
von Fechter B nach einem bereits erfolgen Treffer von A noch angezeigt 
wird (Doppeltrefferzeit) von 350ms auf 120ms reduziert.

Beim Florettfechten wird die Doppeltrefferzeit von 750ms auf 300ms 
reduziert und die Kontaktzeit für die Anzeige eines Treffers (d.h. die 
Zeit die die gedrückte Spitze auf der Trefffläche verweilen muss) von 4 
auf 15ms erhöht."
----

Von der Mindest-Verweildauer von 4 bzw. 15ms des "Tasters" beim 
Florettfechten hat der TO allerdings noch gar nichts erzählt. 
Wahrscheinlich wird da noch etwas an Infos salamischeibchenweise 
hinterhergeschoben...

: Bearbeitet durch Moderator
von Dieter S. (Gast)


Lesenswert?

Ich hätte durchaus Interesse, allerdings ist mir noch einiges unklar. 
Hier mal ein paar Fragen, die mir so auf Anhieb einfallen:

Ist die Hardware schon vorhanden?
Was ist der konkrete Anwendungsfall?
Gibt es dafür evtl. schon Lösungen zu kaufen?
Muss es wirklich Funk sein?
Was ist der preisliche Rahmen?
Was ist der zeitliche Rahmen?
Reicht die Differenz der Zeiten oder muss es eine absolute Zeitangabe 
sein (aktuell klingt es danach, als ob eine relative Zeit ausreichend 
wäre)?
Wie weit sind Transmitter und Reciever maximal auseinander?
Wie lange muss der Akku halten?

Gruß

von Dieter S. (Gast)


Lesenswert?

Stefanus F. schrieb:
> Der Falk B. macht Dir das bestimmt ganz schnell für kleines Geld.
> Wenn du Geduldig bist, macht er auch gerne mal was kostenlos, sobald
> alle Infos zusammen getragen sind.

Bist du wirklich immer noch angefressen, weil Falk die 
Programmänderungen gratis gemacht hat, die du eigentlich machen 
wolltest?

von Stephan B. (exinger)


Lesenswert?

Vielen Dank für die Kritiken. Ich bin ehrlich gesagt nicht davon 
ausgegangen, dass es tatsächlich so dermaßen umständlich ist. Daher 
specke ich das ganze einfach ab und beschreibe die Vorraussetzungen neu:


Vorhanden sind 3 ESP LOLIN32, davon sollen 2 Transmitter sein und einer
Receiver. Der Transmitter überwacht einen Taster. Wenn der Taster
betätigt wird, wird ein Signal an den Receiver übertragen.

Fall 1: Wird Transmitter A betätigt, sendet ein Signal an den
Receiver. Der Receiver lässt LED A leuchten.

Fall 2: Wird Transmitter B betätigt, sendet der ein Signal an den
Receiver. Der Receiver lässt LED B leuchten.

Fall 3: Wird Transmitter A und Transmitter B betätigt, werden die 
Signale
an den Receiver gesendet. Der Receiver lässt LED A und LED B leuchten.

Die Leuchtdauer beträgt 4 Sekunden. Während eine der beiden, oder beide
LEDs leuchten, darf kein weiteres Signal signalisiert werden.

(Transmitter A = LED A, Transmitter B = LED B) Die LEDs befinden sich am
Receiver, nicht am Transmitter.


Viele Grüße,
Stephan

von Stefan F. (Gast)


Lesenswert?

Ist das Timing jetzt völlig egal?

Warum hast du dich auf diese WLAN Module eingeschossen? Was haben die 
wichtiges zu bieten, was andere nicht können?

Ich frage weil diese Module meine letzte Wahl wären. Ich sehe zahlreiche 
Nachteile gegenüber anderen Alternativen.

Ich befürchte, dass ich dir auf Basis dieser Hardware keine 
zufriedenstellende Lösung bieten kann. Da musst du mir schon etwas 
bieten um mich zu ködern.

von Joe F. (easylife)


Lesenswert?

Und was ist jetzt mit dem gegenseitigen Massekontakt?
Rausgefallen aus dem Konzept?
Sag doch mal, wofür das ganz ist, dann kann man sich eher vorstellen, 
wie man das sinnvoll umsetzen kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.