Forum: Mikrocontroller und Digitale Elektronik Projekt Tachoansteuerung über Pc und ATMEGA8 Hilfe!


von Kevin E. (emuth)


Lesenswert?

Hallo zusammen,

Projekt : Tachoansteuerung über Pc und Microcontroller.
Tacho : Ford Mondeo Mk II
M.C: ATMEGA8

Ich Habe ein Paar Fragen Bezüglich der Tachoansteuerung.
1. Gibt es eine Möglichkeit die Daten die Vom PC- Spiel ausgehen 
irgendwie anzeigen zu lassen ? Oder kennt sich einer damit aus?!


2. Zurzeit läuft Das RPM Tacho über PWM mit ICR und OCR1A und das KM/H 
Tacho über Delay. Kann man den OCR1B oder OCR2 auch mit einer 
Veränderbaren Freqzuenz betreiben (ICR2 geht nicht) oder ist das gar 
nicht möglich?
 hier ein Kleiner Ausschnitt (Zurzeit Stell ich Die Werte Selbst zur 
Verfügung das soll halt dann über eine Variable geschehen):

  do
  {
  ICR1=50000; // Frequenz wird vom RPM geändert
  _delay_ms(5000);

  ICR1=10000;  // Frequenz wird vom RPM geändert
  _delay_ms(2000);

  PORTD |= (1<<PD5);
  _delay_us(8000); // Frequenz wird vom KMH Tacho geändert
  PORTD &=~ (1<<PD5);
  _delay_us(8000); // Frequenz wird vom KMH Tacho geändert

  _delay_ms(5000);


  }while(1);

3. wie verknüpfe ich den ATMEGA8 mit dem Pc spiel (Software)?



vielen Dank im Vorraus
MfG
Emuth

: Bearbeitet durch User
von Frank S. (_frank_s_)


Lesenswert?

Hallo Kevin,

Kevin E. schrieb:
> 1. Gibt es eine Möglichkeit die Daten die Vom PC- Spiel ausgehen
> irgendwie anzeigen zu lassen ?

Zum Glück gibt es nur ein PC-Spiel oder habe ich was überlesen ?

MfG von der Spree
Frank

von Kevin E. (emuth)


Lesenswert?

Als Spiel wollten wir DIRT3 verwenden.
Zum Auslesen der Daten für Geschwindigkeit, Drehzahl etc. wollten wir 
das Freeware-Programm X-Sim verwenden, welches die Daten über eine 
serielle Schnittstelle zur Verfügung stellt. Mir geht es aber um die 
Werte die das Spiel abgibt (0011   0110 ... Bitblöcke).

: Bearbeitet durch User
von Draco (Gast)


Lesenswert?

Ja X-Sim gibt ja nicht nur RPM aus, es gibt ja so ziemlich alles aus was 
es gibt, ich habe da auch mal programmiert in die gleiche Richtung.

Bei X-Sim gibt es da aber genug Dokumentation die das Protokoll 
beschreibt. Im übrigen, eine sehr schöne Idee.

von Frank G. (frank_g53)


Lesenswert?

Das Projekt aufteilen in kleinere Abschnitte:
a) 
PWM-Grundlagen:https://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM

b) Daten über serielle Schnittstelle 
einlesen:https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART

c) oder Tacho mit Servos ausstatten und diese Variante ausprobieren:
http://www.x-sim.de/manual/hardware.html

Viel Erfolg, ist jedenfalls machbar: 
https://www.youtube.com/watch?v=-KFoktBKnLk

: Bearbeitet durch User
von emuth (Gast)


Lesenswert?

Ja das haben wir auch schon versucht aber das alles im Zusammenhang zu 
bringen fällt uns extrem schwer da wir theoretisch neu auf dem Gebiet 
Microcontroller sind. hat eventuell einer so ein Projekt oder ähnliches 
programmiert ?
MfG
Emuth

von Kevin E. (emuth)


Lesenswert?

Draco schrieb:
> Ja X-Sim gibt ja nicht nur RPM aus, es gibt ja so ziemlich alles aus was
> es gibt, ich habe da auch mal programmiert in die gleiche Richtung.
>
> Bei X-Sim gibt es da aber genug Dokumentation die das Protokoll
> beschreibt. Im übrigen, eine sehr schöne Idee.

Könntest du dich mal per mail melden?
k.emuth@live.de

Danke
MfG

von Draco (Gast)


Lesenswert?

So schwer ist das doch nicht, mach dir einfach einen FlowChart nach 
welchem ihr arbeitet, lasst euch Zeit und nicht stressen und lernt mit 
Misserfolg umzugehen.

Meine Gedanken und Arbeitswege würden wie folgt aussehen:

Daten im PC verarbeiten -> Daten über USART ausgeben -> Daten in den µC 
einlesen -> im µC die Daten verarbeiten -> Daten als PWM ausgeben.

Einfach so nach und nach abarbeiten und schon sollte das gehen, ein 
Problem nach dem anderen lösen. Das Ziel vor Augen halten aber nie alles 
immer im Überblick behalten wollen. Eins nach dem anderen.

Ist nen schönes Projekt übrigens.

von Draco (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal meine damaligen Ergebnisse, ich bin damals übrigens nicht über 
X-Sim gegangen, sondern habe den Telemetrie Datenstrom direkt abgefangen 
und umgewandelt (Ich glaube das war OutSim / OutGauge). Das Protokoll 
wird jedenfalls von vielen Fahrsimus benutzt, unter anderem Dirt, 
LfS,F1-20xx, DTM etc...

von Kevin E. (emuth)


Lesenswert?

Mega ! bei dir lief das aber rein über den PC richtig? also keine 
Ableitung an den MC oder? Würdest du mir eventuell deine Email geben für 
Fragen in bezug auf das Programmieren? über den Thread ist es sehr 
nervig :s.

von Kevin E. (emuth)


Lesenswert?

Also zurzeit ist das akuteste Problem, dass das RPM Tacho über PWM mit 
ICR und OCR1A und das KM/H
Tacho über Delay. Kann man nicht zwei PWM Ausgänge mit je 
unterschiedlichen Frequenzen ansteuern also OCR1B und OCR2?
Bitte um Hilfe
MfG
Emuth

von Draco (Gast)


Lesenswert?

Ja natürlich, du hast ja am Atmega8 insgesamt drei PWM Kanäle. OCR1A/B 
(PB1 und PB2) und OCR2 (PB3). Am cleversten wäre es, für Tacho und RPM 
nur OCR1 zu nutzen. Und dann die übergeben Werte mit OutputCompareMatch 
auf die zwei Kanäle zu legen.

von Draco (Gast)


Angehängte Dateien:

Lesenswert?

So ich hab das ganze Zeugs nochmal rausgekramt und auch Dirt3 mal 
rausgesucht. Funktioniert tadellos.

Ich weiß nun nicht welche Daten ihr draußen braucht, wie du die 
Eingangsdaten haben willst? (Über UART?!) Bekommst du eigentlich schon 
Daten aus deinem Spiel raus? Also da in X-Sim? Ich schreibe heute Abend 
mal nen SerialOut in C# und lasse sie mal durch einen Mega8 laufen. 
Jedoch kann ich, in ermangelung eines Tachos, sie nicht so schön 
ausgeben :D Aber ich müsste mal kramen, nen paar Servos müsste ich noch 
haben.

von Kevin E. (emuth)


Lesenswert?

Hey Draco,
kannst du mich mal bitte Per Email Kontaktieren?
Email: k.emuth@live.de

von Draco (Gast)


Angehängte Dateien:

Lesenswert?

Ach lass uns das hier machen :-) Hier ist die Fehlerquote wesentlich 
geringer als wenn nur zwei / drei Paar Augen drüber schauen.

Ich habe nun mal die Relevanten Daten aus dem OutSim Stream 
herrausgezogen. “Leider“ übergibt Grid3 bloß die Grunddaten für z.b. 
einen Playseat. Daten für einen Tacho direkt werden nicht unterstützt 
(Lampen für Öl, Licht etc..) Geschwindigkeit, RPM und Gang werden aber 
ausgegeben.

Bei LFS z.b. hat man zwei Streams, eine für die Sim und eine für die 
Gauge.

Desweiteren bekomme ich bei Dirt3 auch Bloß die ersten 38byte (blauer 
Strich), den Rest leider nüch.

von Kevin E. (emuth)


Angehängte Dateien:

Lesenswert?

Hey zusammen,
wollen das alles Step by Step verstehen.
zurzeit wollen wir einfach nur Dem Microcontroller ein zeichen geben und 
das
soll am Hyperterminal angezeigt werden. Leider funktioniert das nicht so 
ganz wir bekommen ein zeichen aber nicht das zeichen was wir eingeben. 
Im anhang der Quellcode / max232 verdratung und die Daten vom Hyperlink 
+ ausgegebene zeichen. (Habe auch verschiedene Baudraten vom HL probiert 
es kommt immer ein anderes zeichen aber nicht das richtige)
Findet da jemand einen Fehler?!
MfG

: Bearbeitet durch User
von Draco (Gast)


Lesenswert?

Deine Fuses hast du auch auf 10Mhz eingestellt? Normalerweise, nach 
diesem Syntax, müsste ja auch [Data] kommen. Probiere mal statt: UDR = 
('x'); ein UDR = 0x78;

von Route_66 H. (route_66)


Lesenswert?

Kevin E. schrieb:
> wir bekommen ein zeichen aber nicht das zeichen was wir eingeben.

Für saubere serielle Kommunikation über RS232 brauchst du einen Quarz am 
ATMega.

von holger (Gast)


Lesenswert?

>Probiere mal statt: UDR =
>('x'); ein UDR = 0x78;

Quark. Er sollte lieber USARTWriteChar nehmen.
So bügelt er UDR ständig platt. Und für 1MHz und 4800Baud
muss UBRR = 12 sein.

von Kevin E. (emuth)


Lesenswert?

> muss UBRR = 12 sein.
was meinst du damit? kannst du mir eventuell das mit den Frequenzen mal 
erklären? Mit dem USARTWritechar passiert bei mir nichts.

von Kevin E. (emuth)


Angehängte Dateien:

Lesenswert?

Das verstehe ich nicht, dieses Programm funktioniert jetzt und im 
Hyperterminal ist eine Baudrate von 9600 eingestellt.
Wie genau berechnet sich das ???
MfG

: Bearbeitet durch User
von Draco (Gast)


Lesenswert?

Soooo....


https://www.youtube.com/watch?v=21SYlRbjHyk


ich habe nunmal auch eins fertig gemacht :D

Hoch lebe die Pommesgabel ^^ Und hey, keine Kommentare zum 
Fahrverhalten, kostet ja sonst och 60 Mark und nen Punkt.

von emuth (Gast)


Lesenswert?

Hey , coole Sache haben es jetzt auch verstanden ,vielen dank für eure 
Hilfe !

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.