Auswertung eines Bewegungssensors



  • Hallo zusammen. Ich habe ein Problem. Ich bin nicht im µController-programmieren bewandert. Es geht um einen ATmega128. Und mein Praktikumspartner ist abgesprungen... Und asl würde das nicht reichen muss ich das Ding nächste Woche abgeben. Kann mir jemand helfen?

    Hier die Aufgabenstellunng:
    Auswertung eines Bewegungssensors
    Thema: Erstellung einer komplexen Echtzeitapplikation auf Basis von uC/OS-II
    Die Firma „Zerberus AG“ ist auf Sicherheitssysteme spezialisiert. Sie entwickelt momentan
    ein autonomes Überwachungssystem, welches sich während der Schließzeiten eines
    Bürokomplexes selbständig durch dessen Räume bewegen und die Einhaltung der Sicherheit
    kontrollieren soll. Das System ist als ein Fahrzeug konzipiert und verfügt über ein autonomes
    Navigationssystem.
    Das System verfügt über einen Bewegungssensor entsprechend Arbeitsprobe 1. Die dort
    genannten Parameter für Koordinaten, Maßeinheiten und Aufbau des Datenpaketes sind hier
    anzuwenden. Die Daten werden in unregelmäßigen zeitlichen Abständen 0,01..0,1 s gemessen
    und über eine serielle Schnittstelle mit 9600 Baud ausgegeben.
    Aufgabe: Die Bewegungsdaten des Sensors sind lückenlos zu erfassen und möglichst online
    auszuwerten. Die erfassten Daten sollen auf einem LCD-Display in geeignetem
    Format dargestellt werden.
    Bedienung:
    Taste 1 Rückstellen der Messdaten auf den Nullpunkt (Referenzpunkt)
    (X = 0, Y = 0, Richtung = positive X-Achse, Zeit = 0s).
    Taste 2 Umschaltung zwischen verschiedenen Anzeigeformaten (soll auch
    während der Messung möglich sein).
    Anzeigeformate:
    Zwischen folgenden Anzeigeformaten soll durch Betätigen der Taste 2 zyklisch umgeschalten
    werden können.
    1. Aktuelle Position als X- und Y-Koordinate (in mm)
    2. Abstand vom Nullpunkt R und Richtung relativ zur Ursprungsrichtung 
    3. Gefahrene Gesamtstrecke
    4. Zeit ab Rückstellen in Sekunden
    Zur Kontrolle ob alle Datenpakete erfasst wurden, ist jederzeit die aktuelle Anzahl
    eingetroffener Positionspakete (seit dem letzten Rücksetzen) anzuzeigen.
    Anforderungen an die Lösung:
    1. Die seriellen Daten sind mittels Interrupt-Service-Routine zu erfassen.
    2. Es sind mindestens zwei Task und geeignete Kommunikations- bzw.
    Synchronisationsmittel einzusetzen.
    3. Zur Synchronisation zwischen ISR und Task sind Semaphore, Mailboxen o.ä. einzusetzen.
    4. Das LCD-Display ist aller 200 ms zu aktualisieren.
    5. Eine Reaktion auf einen Tastendruck darf höchstens 250 ms dauern.
    Über die Versuche ist ein Protokoll zu erstellen und bis zum 10. November einzureichen. Es
    sollte enthalten:
    1. Ein Strukturdiagramm, welches die verwendeten Task, Ihre Aufgaben und
    Kommunikationsbeziehungen darstellt.
    2. Benutze Datenstrukturen, deren Übergabe zwischen den Task sowie bei Bedarf benötigte
    Mittel zur Ressourcenverwaltung.
    3. Diskussion der Priorisierung der Task auf Basis DMS-Algorithmus.
    4. Eine geeignete Dokumentation der einzelnen Routinen und Datenwerte.
    5. Der kommentierte Quelltext.
    6. Testergebnisse
    Beachte:
    • Die in SW-Technik diskutierten Richtlinien zur Quelltextgestaltung sind
    anzuwenden!
    • Die Bearbeitung sollte in Zweiergruppen erfolgen.


  • Mod

    Das hat nicht allzuviel mit OS-development zu schaffen. In welcher Sprache wird hier programmiert? BASIC, Assembler oder C?

    Besseres Forum:
    http://www.roboternetz.de/

    Hier eine Programmierung von ATmega128 am Beispiel "NIBO":
    http://www.henkessoft.de/Roboter/Nibo.htm



  • @abbo: Du hast Glück, eine interessante Aufgabe und dazu noch uC/OS als Betriebsystem. uC/OS ist meiner Meinung nach das am besten durchdachte Echtzeit-Betriebssystem 👍 Es gibt ein gutes Buch dazu, direkt vom Entwickler dieses Betriebssystems (Labrosse o.ä.), lesenswert und empfehlenswert. Privat zu kaufen, finde ich aber zu teuer, frage am Besten in der Firma nach, ob sie eins da haben (sie werden höchstwahrscheinlich eins odere mehrere da haben).
    Wegen der Aufgabe: Da musst du leider selbst durch...


  • Mod

    Wegen der Aufgabe: Da musst du leider selbst durch...

    Also den Anfang solltest Du selbst unternehmen, sonst lernst Du nicht, solche Aufgaben kraftvoll anzupacken. 😉
    Wir helfen aber gerne bei Engpässen und Denkknoten.


Anmelden zum Antworten