Forum: Mikrocontroller und Digitale Elektronik ATmega16 + Blackbox


von RoY (Gast)


Lesenswert?

Also ich soll für mein Abschluss Projekt eine Blackbox für PKW's bauen.


Projekt Beschreibung:
Es muss ein Betriebsprogramm für den Mikrokontroller geschrieben
werden, das alle Messungen vornehmen, die Daten des GPS-Moduls
entgegennehmen, alle Daten speichern und die Verbindung zu einem PC
aufnehmen kann. Die Software des Kontrollers ist vollständig in
Assembler zu schreiben.

Die Verbindung zum PC und zum GPS-Modul erfolg jeweils seriell.
Auchnoch soll die Geschwindigkeit des PKW's immer auf einem LC-Display
angezeigt werden.

Jetzt wollte ich wissen wie ich Serielle Daten per Assembler,
entgegennehme, verarbeite, speicher und wie ich sie an den Rechner
sende. Arbeiten sollen wir mit AVR Studio 4 von Atmel...

Ich habe bisher nur wenig erfahrung mit Atmel und habe bisher nur ein
Lauflicht in Assembler hinbekommen, und weiss deshalb nicht wie ich
soetwas realisieren soll...

von Läubi (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Das ist keine Projektbeschreibung, sondern Quatsch mit Soße.

Was sind "alle Messungen" ?
Reifenluftzusammensetzung, Sitztemperatur oder was.

Was ist "des GPS-Moduls" ?
Es gibt nicht nur eines sondern viele verschiedene. Also ne genaue
Hersteller- und Typangabe ist das mindeste.

Was sind "alle Daten" ?
Lenkzeit, welcher Radiosender, ...


Was ist "seriell" ?
Es gibt USB, IEEE-1394, CAN, RS-485 und noch viele andere serielle
Standards.


Und was ist der Sinn in der Beschränkung der Programmiersprache ?

Für Assembler scheint mir das Projekt ne Nummer zu groß, es sollte
schon C sein oder wenigstens Basic.
Eh Du Dir in Assembler ne ordentliche Programmstruktur,
Variablenkonventionen, Parameterpassing usw. ausgearbeitet hast, ist
der Abgabetermin schon 10-mal vorbei.


Werd Dir erstmal klar, was Du alles messen willst und dann such Dir die
entsprechenden Sensoren raus.
An den CAN-Bus des PKW zu gehen, kannste knicken, Du kriegst nie die
Protokolle freigegeben.
Und beim Speichern, welche Datenrate fällt an pro Zeiteinheit und wie
lange und ob auch bei Stromausfall.


Ohne ne ordentliche Projektbeschreibung kann man nicht anfangen zu
programmieren.

Ne ausreichende Projektbeschreibung kann durchaus 20..33% der gesamten
Projektzeit ausmachen.


Peter

von RoY (Gast)


Lesenswert?

AAAAAAALLLLLLLLSSSSSOOOOOO

Die programsprache habe ich nicht gewählt sondern die Projekt juri auch
die "Beschreibung" steht so wort für wort auf meinem Blatt...

Messungen sind im Sinne von Geschwindigkeit, Zeit, Position,
Fahrtrichtung... Und diese Daten (Messungen) werden zyklich vum
GPS-Modul an den Controller gesendet und zwar seriell im normalen
serielles standart wie jeder rechner beim COM-port macht... Das
GPS-Modul bekommen wir vom Lehrer der unser Projekt leitet, welches
dies ist weiss ich also auch noch nicht...

Gespeichert werden die Daten auf einen noch nicht gewählten speicher,
alles das sollen wir selbst herausfinden, wie gross, welche art usw...
jedenfalls sollen die daten 1 minute gespeichert werden also muss der
speicher nicht sonderlich gross sein...

von Hauke Radtki (Gast)


Lesenswert?

Schau dir am besten mal den
http://www.mikrocontroller.net/forum/read-4-354990.html thread an, der
sollte dir schon mal helfen

von Peter D. (peda)


Lesenswert?

Na das sieht nun aber völlig anders aus.

Mit Messen ist also überhaupt nichts dabei, dann hats in der
Spezifikation auch nichts zu suchen, ist die reine Irreführung.
Die erste Beschreibung ist ja wirklich absoluter Quatsch mit Soße
gewesen.


Hätte ganz anders heißen müssen:

Loggen Sie die Zeit- und Positionsdaten vom GPS-Modul und versuchen Sie
aus jeweils 2 Logs die Geschwindigkeit und Richtung zu schätzen.


Du solltest den ATMega162 nehmen, der hat 2 UARTs.
Das Empfangen vom GPS-Modul sollte man puffern (FIFO im Interrupt
Handler), damit kein Byte verloren geht.
Senden zum PC muß man nicht puffern, da zeitlich unkritisch.


Peter

von RoY (Gast)


Lesenswert?

jo also da gibt es wieder na angabe die basagt das ich ein atmega16
nehmen muss... jedoch weiss ich nicht wie ich das angehn soll. es ist
halt kind ins wasser technik, einfach reinschmeissen und wenns
schwimmen lernt ok und wenn nicht dass wars das... weil von der note
dieses projektes hängt es ab ob ich zum abschluss examen zugelassen bin
oder nicht ...

von Peter D. (peda)


Lesenswert?

"jo also da gibt es wieder na angabe die basagt das ich ein atmega16
nehmen muss..."


Mit nur einer UART geht es, wenn das GPS-Modul nicht initialisiert
werden muß und die Baudrate zum PC die gleiche ist. Dann reicht RXD zum
GPS und TXD zum PC.

Ich finde sowas immer super, wenn unnütze Einschränkungen vorgegeben
werden, statt den Entwickler selber das Sinnvollste raussuchen zu
lassen :-(


Peter

von Karl H. (kbuchegg)


Lesenswert?

Ach komm Peter.
Du hast doch sicher in deinem Fundus noch irgendwo eine
Software UART.

Nur so aus Neugier: Wieviel Zeit hast du denn für dieses Projekt?

von inoffizieller WM-Rahul (Gast)


Lesenswert?

>Du hast doch sicher in deinem Fundus noch irgendwo eine
>Software UART.

Sowas liefert Atmel mit einer (oder mehr) Application Note(s).
Standar_d_-Protokoll von GPS-Geräten ist NMEA.
Der Rest ist recht simpel (wie Peter schon schrieb): Entfernung
zwischen zwei Logs und deren zeitlichen Abstand feststellen =>
Geschwindigkeit. Über den Tanges sollte man dann noch die Richtung
feststellen können...(Könnte man dafür nicht sogar den
Bresenham-Algorithmus missbrauchen?)

Das einfachste ist, in regelmässigen Abständen (sekündlich? per Timer)
die akutelle Position zu loggen. Wenn man noch einen vernünftigen
Speicher benutzt (Flash-Karten sind momentan ziemlich billig), dann
kann man auch Strecken aufzeichnen...

Ein Problem wird es aber geben: GPS hat nur eine begrenzte Auflösung
(~10m). Das kann u.a. dazu führen, dass sich das Fahrzeug angeblich
bewegt, obwohl es steht...

von Hauke Radtki (Gast)


Lesenswert?

Die meisten GPS geräte senden im 1s takt also kann man sich das mit dem
timer in den meisten fällen auch sparen.

Gegen die scheinbewegung kann man jedoch leider nicht viel machen,
passiert besonders, wenn die empfangenen Sateligen sich ändern (also
andere empfangen werden und andere nicht mehr)

Ich hab mal bei mir auf dem balkon einen nachmittag geloggt und ich hab
mich um ca 20 Meter im kreis bewegt

von Karl H. (kbuchegg)


Lesenswert?

> Ich hab mal bei mir auf dem balkon einen nachmittag geloggt und ich
> hab mich um ca 20 Meter im kreis bewegt

Zuviel Alohol? :-)

von RoY (Gast)


Lesenswert?

>> Nur so aus Neugier: Wieviel Zeit hast du denn für dieses Projekt?

Bis Ende Februar ungefähr...

von RoY (Gast)


Lesenswert?

>> Das kann u.a. dazu führen, dass sich das Fahrzeug angeblich
bewegt, obwohl es steht...

Das ist kP da es ja "nur" ein Projekt ist... Es soll also nur in
einem Raum forgeführt werden und kommt nie in einem Auto zum einsatz...
In meiner Schule sind von 5 Projekten immer nur 1-2 brauchbar und die
anderen sind entweder zu "einfach" oder funktionieren nicht. Mit
einfach meine ich dass diese Blackbox nie in iergendeinem
Fortbewegungsmittel zum einsatz kommt, weil sie sws nur 1 minute
speichern soll. Da kommen dann Faktoren auf wie beim standzustand des
autos, da darf nichts mehr eufgezechnet werden usw...

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.