Elektronik/Software-Bastelprojekt

Systemübergreifende Themen, z.B. zur Elektronik, Zeitmessung etc.
Antworten
meise21
Beiträge: 9
Registriert: Mo 17. Jun 2013, 10:50

Elektronik/Software-Bastelprojekt

Beitrag von meise21 »

Hallo,
ich bin noch ganz neu hier (siehe mein erstes Posting mit Newbie-Fragen zu den verschiedenen Auto-Varianten) wollte euch aber mein aktuelles Software-/Elektronik Bastelprojekt vorstellen (konstruktives und destruktives Feedback erwünscht:-))

Angefangen hats eigentlich damit dass ich in den Weiten des I-Nets einen Mikrocontroller entdeckt habe der Mittels USB-Kabel bzw. Bluetooth mit einem Android Handy oder Tablet gesteuert werden kann (https://www.sparkfun.com/products/11343, ca. 40 USD). Auf der Suche nach einem mehr oder weniger sinnvollen Bastelprojekt hatte ich die Idee das Ding mit der Carrera zu verbinden.
Als Features hatte ich folgendes im Sinn:
1. Startampel
2. Rundenzeitmessung
3. Sprachausgabe über Handy/Tablet
4. Turbo-Funktion
5. Abtasten der Reglerposition und Erstellen eines Diagramms zum Vergleichen von unterschiedlichen Runden, Fahrstilen,...
6. Parametriesierbare Hindernisfahrzeuge (so wie ein Ghost-Fahrzeug bei einem Rennspiel am Computer)

Die ersten 3 Features waren schnell erledigt da keine Elektronik-Kenntnisse erforderlich waren (ich bin gelernter Software-Entwickler sprich der Software-Teil liegt mir eher).
An der Turbo-Taste habe ich schon etwas länger herumüberlegt und bin mittlerweile bei einer Variante gelandet bei der ich je Fahrzeug ein Schaltrelais habe das ich über den IOIO schalten kann. Am Schaltrelais habe ich 2 Spannungen hängen und kann so die Spannung auf der Bahn zumindest 2-stufig regeln. Am Fahrtregler haben wir ein Druckknopf angebracht mit dem man den Turbo aktivieren kann. Softwareseitig kann man die verfügbare Turbozeit je Runde auf die jeweilige Strecke anpassen. Es gibt auch einen Modus in dem nur das Auto das zurückliegt den Turbo verwenden kann (so in der Art von DRS in der F1).

Ich habe mir auch schon überlegt das ganze mittels PWM als eine "echte" Steuerung aufzubauen hab das aber noch nicht ausprobiert da mir von Elektronik-kundigen davon abgeraten wurde (siehe auch http://www.mikrocontroller.net/topic/306775).

Die Reglerabtastung funktioniert derzeit noch nicht zufriedenstellend da ich aus irgendeinem mir unerfindlichen Grund nur sehr stark schwankende Spannungen an der Bahn messe. Wenn ich mit meinem Multimeter messe habe ich den Effekt nicht. Wenn ich mit dem Mikrokontroller andere Spannungsquellen messe funktionierts auch da stehe ich irgendwie an. Ausserdem habe ich noch keine Ahnung wie ich mit dem Vertauschen der Polarität beim Spurwechsel umgehen soll. Das Multimeter kann auch "negative" Spannungen anzeigen, der Mikrokontroller leider nicht.

An parametrisierbaren Ghostfahrzeuge habe ich mich noch überhaupt nicht herangetraut, wäre mieiner Meinung nach aber eine coole Sache um das Ganze auch für Solo-Spieler interessanter zu gestalten.

So ein paar Bilder von der ganzen Höllenmaschine habe ich auch noch (derzeit leider nur mit vollkommen chaotischer Verkabelung auf einem Steckboard da ich komplett Löt-unfähig bin).

Was mich unter anderem interessieren würde wären eure Tipps wie ich das Kabelchaos etwas in den Griff bekommen kann bzw. wie man sowas auf eine Platine bzw. in ein Gehäuse einbauen kann.
Ich bin durch das Forum auch auf die STZ Schienen aufmerksam geworden. Habe aber nicht ganz verstanden wie die Schiene eigentlich funktioniert. Könnte man so eine Schiene als Impulsgeber für meinen Mikrokontroller verwenden (dann könnte man z.B. mit mehreren solchen Schienen auch Sektor-Zeiten ala F1 realisieren).
Falls jemand von euch Interesse hat das Ding nachzubauen kann euch natürlich den Sourcecode, etc. zur Verfügung stellen.

Ciao,
Markus
Dateianhänge
DSC_0700_small.jpg
DSC_0679_small.jpg
DSC_0678_small.jpg
DSC_0677_small.jpg

Benutzeravatar
oerk
Administrator
Beiträge: 5484
Registriert: Di 23. Apr 2013, 23:36
Wohnort: Fürstenzell
Kontaktdaten:

Re: Elektronik/Software-Bastelprojekt

Beitrag von oerk »

Hallo Markus,

ich bin auch Software-Entwickler und bin mir nicht sicher ob ich's verstanden habe ;)

Stark find ich das Ding auf jeden Fall.

Schließ dich doch mal mit Helmut (Servospeedway) kurz, der kann dir die Frage mit der STZ-Schiene sicher beantworten, oder ihr heckt gleich was gemeinsam aus :)

Deine starken Spannungsschwankungen werden wohl aufgrund unsicherer Stromabnahme der Autos in Verbindung mit dem nicht stabilisierten Trafo kommen. Vermute ich.

Zeich mal deine Software.

Gruß,
Stefan
Der Zigarettenanzünder ist kaputt.

Benutzeravatar
endeavour
Beiträge: 182
Registriert: Sa 11. Mai 2013, 22:00
Wohnort: Bad Rothenfelde

Re: Elektronik/Software-Bastelprojekt

Beitrag von endeavour »

Hallo Markus,
Dein Projekt klingt spannend. Mit der Regelspannung wirst Du aber größere Probleme kriegen.
Aus dem Trafo kommt eine pulsierende Gleichspannung und keine richtige Gleichspannung. Die Fahrzeuge haben nur zeitweise Kontakt zur Bahn und damit zur Regelspannung. An der Bahn liegt also entweder die maximale mögliche Ausgangsspannung des Trafos (kein Kontakt zwischen Auto und Bahn) oder die eingestellte Regelspannung an. D. h. die pulsierende Gleichspannung wird von einer völlig zufällig verteilten Rechteckspannung überlagert. Dazu kommen noch die Spannungsspitzen die die 3 Motorwicklungen. Wenn Du dann noch den Hindernisadapter mit seiner völlig instabilen Frequenz anschaltest...
Dein vermutlich digitales Multimeter misst immer nur irgendeinen Momentwert. Mit einem alten Analogmultimeter könntest Du Dir den wirksamen Mittelwert anzeigen lassen.
Sieb-Elkos hinter dem Trafo oder dem Regler sind auch keine Lösung, wenn Du Hindernisfahrzeuge verwenden willst (Kurzschluss für die Wechselspannung der Hindernisfahrzeuge).
Ich würde versuchen, den Strom in den Regler als Meßwert zu nehmen. Damit bist Du zumindest das Thema mit der Umpolung los.
Wenn ich Deine Anwendung richtig verstanden habe, brauchst Du aber auch durch den Controller steuerbare Hindernisadapter und Fahrtregler. Dann führt an relativ aufwendiger Hardware kein Weg vorbei.
Gruss Endeavour

meise21
Beiträge: 9
Registriert: Mo 17. Jun 2013, 10:50

Re: Elektronik/Software-Bastelprojekt

Beitrag von meise21 »

Hallo Endeavour,
danke für deine Antwort und gleichmal sorry für meine späte Antwort hab grad einiges um die Ohren. Da ich wirklich ein Elektronik-Total-Laie bin hab ich glaub ich nicht alle Puntke verstanden.
Dass die Hindernis-Fahrzeuge einen eigenen Adapter haben war mir gar nicht bewusst - heisst das, das Hindernis-Fahrzeug fährt als 3. Fahrzeug auf der Bahn? So weit habe ich ja noch gar nicht gedacht mir war eher so was wie ein Ghost beim Computerspielen vorgeschwebt. Man kann eine Runde fahren und der Computer fährt mit einem Auto dann die Runde nach und man kann sozusagen gegen sich selbst fahren und versuchen das zu überbieten - das war mal die Idee auch wenns wie du schreibst vermutlich nicht funktionieren wird.

Interessanterweise sehe ich bei mir auf dem digitalen Multimeter relativ konstante Werte - meine Vermutung war, dass das Ding die tatsächlichen gemessenen Werte noch irgendwie ausmittelt. Dieses Verhalten wollte ich mal in der Software nachbauen - bin ich aber noch nicht dazu gekommen. Würde der Effekt eigentlich durch Verwendung eines geregelten Netzteils anstelle des Trafos anders?

Was ich leider überhaupt nicht verstanden habe war dein Punkt bezüglich messen des Stroms anstelle der Spannung. Auf meinem Mikrocontroller habe ich analoge Eingänge an denen ich eine Spannung zwischen 0 und 3 Volt messen kann aber wie komme ich von dem Messwert auf den Strom? Und was ich eigentlich auch überhaupt nicht verstehe ist wie sich der Strom abhängig von der Reglerstellung ändert. Ich dachte immer es ändert sich die Spanung aber deinen Vorschlag verstehe ich so dass sich sowohl Spannung als auch Strom ändert. Kannst du mir das vielleicht nochmal erklären?
endeavour hat geschrieben:Wenn ich Deine Anwendung richtig verstanden habe, brauchst Du aber auch durch den Controller steuerbare Hindernisadapter und Fahrtregler. Dann führt an relativ aufwendiger Hardware kein Weg vorbei.
Für die "Steuerung" der beiden Fahrzeuge habe ich an eine PWM-Motorsteuerung gedacht - so was wie z.b. hier beschrieben wird:

http://www.mikrocontroller.net/articles ... tensteller

In diesem Thread http://www.mikrocontroller.net/topic/306775 wurde mir zwar davon abgeraten mich würde aber eure Meinung dazu interessieren.

Ciao,
Markus

meise21
Beiträge: 9
Registriert: Mo 17. Jun 2013, 10:50

Re: Elektronik/Software-Bastelprojekt

Beitrag von meise21 »

Hallo,
oerk hat geschrieben: Zeich mal deine Software.
Ich habe in der Zwischenzeit ein Open-Source Projekt bei Sourceforge angelegt. Da gibts den ganzen Quellcode und ein paar Screenshots. Ich hoffe ich komme in nächster Zeit noch dazu das Hardware-Setup zu beschreiben.

Den aktuellen Stand (inkl. Source-Code) gibts unter:
https://sourceforge.net/projects/servotimer/

Würde mich sehr freuen wenn du dir den Source anschauen oder selbst daran herumbauen möchtest. Alle anderen sind natürlich auch herzlich eingeladen!

Die Steuer-Software ist eigentlich eine relativ simple, in Java programmierte Android-App. Die App besteht im wesentlichen aus der Anzeige und aus folgenden parallel laufenden Threads:
- Rundenzähler-Thread (1x je Fahrzeug)
- Turbo-Steuerung (1x je Fahrzeug)
- Messen der Reglerstellung (1x je Fahrzeug) - funktioniert noch nicht wirklich

Auf dem Hauptschirm kann man entweder ein neues Rennen starten oder die Einstellung verändern.

Wenn das Rennen gestartet wird schaltet der Mikrocontroller die LED's der Reihe nach ein und zum Start wieder aus und dann gehts los (bei Frühstart wird die erste Runde nicht gezählt). Falls die Sprachausgabe aktiviert ist gibt die App jedesmal wenn eine Runde gefahren wird die Zeit per Sprachausgabe aus. Die Runden werden auch noch in einer Liste angezeigt. Zusätzlich gibts auch noch die schnellste Runde und die Durchschnittszeit je Spieler.

Wenn der Turbo in den Einstellungen aktiviert ist gibts einen Balken auf dem angezeigt wird wieviel Turbo-Zeit für die aktuelle Runde noch verfübar ist. Hab auch schon überlegt ob man das irgendwie akustisch darstellen kann hab's dann aber sein gelassen. Wenn ein Spieler noch Turbo-Zeit verfügbar hat und auf den Turbo-Knopf am Regler drückt dann schaltet der Controller ein Relais um auf dem dann eine andere/höhere Spannung anliegt. Sobald man den Knopf los lässt (oder die Zeit verbaucht ist) schaltet der Controller wieder zurück. Das Relais schaltet so schnell, dass man zumindest mit meinen höchstens mittelmässigen Autos keinerlei Schaltverzögerung bemerkt.

Derzeit gibts bei den Einstellungen folgende Punkte die man je Rennen festlegen kann:
- Spielernamen für die Sprachausgabe
- Anzahl der Runden
- Turbo Modus und Turbo-Dauer pro Runde. Den Turbo kann man entweder deaktivieren, unbegrenzt verfügbar schalten, pro Runde für eine begrenzte Zeit aktivieren (ähnlich KERS) oder nur für das zurückliegende Fahrzeug aktivieren (ähnlich DRS).
oerk hat geschrieben: Schließ dich doch mal mit Helmut (Servospeedway) kurz, der kann dir die Frage mit der STZ-Schiene sicher beantworten, oder ihr heckt gleich was gemeinsam aus :)
Danke für den Tip!

Ciao,
Markus

meise21
Beiträge: 9
Registriert: Mo 17. Jun 2013, 10:50

Re: Elektronik/Software-Bastelprojekt

Beitrag von meise21 »

Hallo,
ich habe zwischenzeitlich eine Beschreibung und einen Schaltplan der Elektronik auf sourceforge hinterlegt. Würde mich über Feedback / Verbesserungsvorschläge und vor allem über den einen oder anderen Nachbauwilligen natürlich sehr freuen :-)

https://sourceforge.net/p/servotimer/wiki/Home/

Ciao,
Markus

Benutzeravatar
oerk
Administrator
Beiträge: 5484
Registriert: Di 23. Apr 2013, 23:36
Wohnort: Fürstenzell
Kontaktdaten:

Re: Elektronik/Software-Bastelprojekt

Beitrag von oerk »

Hallo Markus,

sehr schön beschrieben das Ganze, aber ich habe meine Zweifel, ob sich so viele Nachbauwillige finden. Diejenigen, die sich an eine komplexere Lösung herantrauen, haben meistens schon eine STZ. Und die Turbofunktion ist zwar nett, aber m.E. überflüssig.

Sehe ich richtig, dass du zur Zeitnahme den umgebauten mechanischen Rundenzähler verwendest? Den hatte ich ja auch mal, und der ist auch am unkritischsten, hat aber den Nachteil dass alle Fahrzeuge den Rundenzählerstift brauchen.

Die Messung per Schiene ist bei weitem nicht so unkritisch. Die originale Schiene hat einen Deadstrip, auf dem Hindis stehen bleiben können, und der für die Messung zu kurz ist. Außerdem wird gerne auch mal die andere Spur mitgezählt.

Bei der STZ funktioniert das viel zuverlässiger, aber der Anschluss wird komplizierter und für eine zuverlässige Messung muss deine Software schlauer sein (z.B. Prellzeit, Mindestimpulslänge etc.).

Ich würde gerne sehen, dass deine Lösung auch mit einer Schiene läuft. Ist einfach besser :)

Gruß,
Stefan
Der Zigarettenanzünder ist kaputt.

meise21
Beiträge: 9
Registriert: Mo 17. Jun 2013, 10:50

Re: Elektronik/Software-Bastelprojekt

Beitrag von meise21 »

oerk hat geschrieben: sehr schön beschrieben das Ganze
Danke :)
oerk hat geschrieben: aber ich habe meine Zweifel, ob sich so viele Nachbauwillige finden.
Diejenigen, die sich an eine komplexere Lösung herantrauen, haben meistens schon eine STZ. Und die Turbofunktion ist zwar nett, aber m.E. überflüssig.


Den Zweifel hege ich allerdings auch :) Nein im Ernst es würde mich freuen wenn es jemand mal ausprobiert (ich stehe ich natürlich gerne mit Rat und Tat zur Seite) wenn nicht ist es auch kein Problem. Es ist aber glaube ich im Vergleich zur STZ ein wesentlich einfacheres Projekt (kann natürlich auch nicht so viel bzw. anderes). Wie man an den Fotos unschwer erkennen kann, bin ich alles andere als ein begnadeter und sauberer Bastler und ich hab's trotzdem geschafft das Ding zusammen zu bauen :) . Bis auf die Druckknöpfe im Handregler ist auch kein Lötkolben-Einsatz erforderlich (mit dem stehe ich z.B. eher auf Kriegsfuß).

Bezgl. Turbo-Funktion: Bei uns ist die Bahn als Spielzeug für meinen kleinen Sohnemann im Einsatz (und ich darf halt ein bischen basteln) und der ist von dem Feature natürlich schwer begeistert. Ob's im quasi "professionellen" Einsatz Sinn macht weiss ich natürlich nicht. Wie ist das: Wenn ihr sozusagen ernsthafte Rennen macht gibts da häufig Überholmanöver? oder passiert das nur wenn ein Fahrzeug rausfliegt?
oerk hat geschrieben: Sehe ich richtig, dass du zur Zeitnahme den umgebauten mechanischen Rundenzähler verwendest? Den hatte ich ja auch mal, und der ist auch am unkritischsten, hat aber den Nachteil dass alle Fahrzeuge den Rundenzählerstift brauchen.
Ja das war mal für den Anfang die einfachste Variante. Ausserdem hatte ich noch so einen Zähler herumliegen. Wenn man einfach von außen wie beschrieben die Kontaktdrähte mit Klebeband draufklebt, muss man am Zähler selbst auch gar herumbohren, etc. Verschlechtert der Stift die Fahreigenschaften der Autos oder ist das eher ein optisches Problem?

oerk hat geschrieben: Bei der STZ funktioniert das viel zuverlässiger, aber der Anschluss wird komplizierter und für eine zuverlässige Messung muss deine Software schlauer sein (z.B. Prellzeit, Mindestimpulslänge etc.).
Also die Software hat eine Prellzeit-Logik d.h. nach dem Auslösen gibts eine Zeitspanne die bis zum nächsten Auslösen mindestens Vergehen muss. Zusätzlich checkt das Ding auch das der Kontakt mindestens einmal unterbrochen worden ist. Man kann also das Auto nicht einfach so parken dass der Stift den Kontakt hochdrückt und warten wie die Runden nach oben rattern :-)

Was die Mindestimpulslänge betrifft habe ich echt keine Ahnung. Ich habe ein wenig im Internet und auf der IOIO Entwickler Liste gestöbert und da war von einigen Mikrosekunden Mindestimpulslänge die Rede. Wenn das stimmt sollte es aus der Ecke eigentlich keine Probleme geben aber da hilft vermutlich nur ausprobieren.
oerk hat geschrieben: Ich würde gerne sehen, dass deine Lösung auch mit einer Schiene läuft. Ist einfach besser :)
Helmut hat mir schon seine Nummer zukommen lassen ich bin nur derzeit ein wenig im Stress deshalb habe ich mich an das Thema Schiene noch nicht heran gewagt. Aber ich hoffe, dass ich in nächster Zeit wieder ein wenig mehr Zeit haben werde um mich um das Thema zu kümmern. Wäre bestimmt cool wenn das funktionieren würde! Ein Feature-Wunsch von mir, den ich noch nicht realisiert habe, wären ja noch Sektor-Zeiten dafür braucht es aber natürlich auch eine zuverlässige Kontaktlösung.

Ciao,
Markus

Benutzeravatar
oerk
Administrator
Beiträge: 5484
Registriert: Di 23. Apr 2013, 23:36
Wohnort: Fürstenzell
Kontaktdaten:

Re: Elektronik/Software-Bastelprojekt

Beitrag von oerk »

Hallo Markus,

wenn es nur ums Spielen geht, macht die Turbofunktion natürlich Sinn.

Bei meiner 160er habe ich eine Mindestimpulslänge von 5ms eingestellt (der Impulsstreifen ist fast eine Doppelgerade lang). Sonst passiert's gelegentlich dass Auto B für Auto A mitzählt. Damit werden immer noch alle Autos erfasst, Fehlerquote ist aber deutlich unter 1%. Also nix mit Mikrosekunden, bei einer STZ kriegst du einen deutlich längeren Impuls.

Gruß,
Stefan
Der Zigarettenanzünder ist kaputt.

meise21
Beiträge: 9
Registriert: Mo 17. Jun 2013, 10:50

Re: Elektronik/Software-Bastelprojekt

Beitrag von meise21 »

Hallo,
die ServoTimer App gibt es mittlerweile als reguläre Android App im Google Play Store (natürlich kostenlos). Einfach am Handy/Tablet den PlayStore öffnen, nach ServoTimer suchen und installieren. Damit ist zumindest Software-seitig alles in ein paar Sekunden startklar. Dann muss nur noch gebastelt werden :-)

https://play.google.com/store/apps/deta ... ServoTimer

Die App benötigt derzeit mindestens Android 3. Falls es jemand auf einem Handy mit älterem Android verwenden möchte bitte um Info. Da müsste ich noch ein paar Kleinigkeiten ändern - lässt sich aber sicher machen.

Für die STZ-Schienen Anbindung hatte ich leider noch keine Zeit da mich derzeit mein Keller-Ausbauprojekt mehr als auslastet:-) Aufgehoben ist aber hoffentlich nicht aufgeschoben.

lG,
Markus

Antworten