====== WSxx_PrjXX Tolle Projektidee ====== FIXME {{:study_aigledore_cc-by-2.0jpg.jpg?200|study_aigledore_cc-by-2.0jpg.jpg}}\\ Dummy-Bild\\ FIXME Source: [[https://commons.wikimedia.org/wiki/File:Study_(16840395246).jpg|Moyan Brenn @ Wikimedia.org]]\\ ([[https://creativecommons.org/licenses/by/2.0/deed.en|CC BY 2.0 Lizenz]]) ^Ersteller| ??? | ^letzte Änderung|Sommersemester 2019| ^Kurzbeschreibung|FIXME In der Kurzbeschreibung soll die wesentliche Funktion des Projekts in einem Satz zusammengefasst werden| ^ Verwendete MEXLE(-Module) | | DELETEME **ACHTUNG!** Für die Niederschrift bietet sich folgendes Vorgehen an: - erst Bilder, Diagramme und Tabellen erstellen und den Kapiteln zuordnen - dann mit dem Text beginnen! - Auch Fehler dürfen beschrieben werden - Es sollte soviel beschrieben werden, dass nachfolgende Studierende ohne Rückfragen Ihren Weg und Ziel nachvollziehen können. - Keine Ich-Form, Emotionen vermeiden! - Mit DELETEME ist Text gekennzeichnet, der in der finalen Doku nicht mehr vorhanden sein sollte - Mit FIXME ist Text gekennzeichnet, der für die finale Doku ergänzt werden muss - Tipps zur Wikisyntax finden sich im [[:DokuWiki CheatSheet]] DELETEME Leider hat der "CKG Editor" (WYSIWYG-Editor) einen Bug, welcher beim Öffnen und Speichern die Überschriften verdoppelt. Es wird empfohlen den DW Edit (mit wiki-syntax) zu nutzen. Falls sie versehentlich den Button CKG Editor drücken, kommen sie folgendermaßen wieder zurück: - Button "DW Edit" drücken (Seite wird dann mit doppelten Überschriften angezeigt) - in der Menüleiste rechts auf "{{mdi>history}} ältere Versionen" klicken - links zur vorletzte Version anklicken (Vorversion der aktuellen Version) - in der Menüleiste rechts auf die "{{mdi>restore}} Wiederherstellen" klicken In ähnlicher Form kann auch vorgegangen werden, wenn versehentlich "Speichern" gedrückt wurde. Ebenso können Sie auch im CKG Editor eingefügten Text zunächst erst im DW Edit kopieren und dann erst die vorherige Version wiederherstellen. ~~CLEARFIX~~ ---- ====== Projektübersicht ====== ===== Aufgabenstellung/Problemstellung ===== FIXME Die Aufgabenstellung war eine kompakte Controllerplatine zu erstellen, welche als Basis für unterschiedlichste Projekte genutzt werden kann. Dabei sollte Wert auf Kompatibilität und größtmögliche Ausnutzung des verwendeten Microcontrollers werden. ===== Lösungsansatz ===== DELETEME - Wie wurde das Problem angegangen? - Wieso wurden die genutzten Bauteile und Platinen (z.B. MMC_328PB) verwendet? ===== Erstellung der Hardware ===== DELETEME - hier **nicht** Schaltplan / Board darstellen, sondern in den Unterseiten. - Auf was wurde bei der Systemauswahl Wert gelegt? \\ Welche Hürden wurden genommen? ===== Erstellung der Software ===== DELETEME - Auf was wurde Wert gelegt? \\ Welche Hürden wurden genommen? - hier sollte auch der Code beschrieben werden, welcher nicht explizit für die genutzte Hardware notwendig ist. Also zum Beispiel bei Spielen, die [[https://de.wikipedia.org/wiki/Spielmechanik|Spielmechanik]] oder bei einer Wetterstation die Aufteilung auf dem Display. In beiden Beispielen wäre die Beschreibung der Bibliothek der Anzeige nicht hier, sondern im Software-Kapitel der Anzeigehardware zu beschreiben. ===== Überprüfung/Test ===== DELETEME - Gab es Zwischenschritte / Zwischenergebnisse? - Wurden Testplatinen und/oder Testkonzepte erstellt? {signal: [ {name: 'clk', wave: 'n.....|...'}, {name: 'dat', wave: 'x.x345|=x=', data: ['head', 'body', 'tail', 'data']}, {name: 'req', wave: '0.1..0|1.0'}, {}, {name: 'test', wave: 'HNNLPP|zdu'} ]} {{url>https://wavedrom.com/editor.html}} Kurzanleitung zu WaveDrom: [[https://observablehq.com/@drom/wavedrom-ark?collection=@drom/wavedrom]] ===== Offene Punkte ===== FIXME Bitte verfolgend sie die in Ihrem finalen Stand offenen Punkte (Bugs, fehlende Features, nicht vorgenommene Tests) in der [[https://wiki.mexle.org/doku.php?id=mexle:mexle-modul_template#bekannte_bugs_verbessungsvorschlaege|jeweiligen Seite der einzelnen Platine]]. Im Ausnahmefall (z.B. Architektur-Fehler wie fehlende Platinen) kann auch hier die Liste aus der Platine kopiert und gefüllt werden ===== Resumee ===== DELETEME - Fazit für das gesamte System - Verbesserungsvorschläge (Ausblick): Was könnte im Gesamtsystem noch umgesetzt werden? ---- ====== Hardwareübersicht ====== Die Hardwareübersicht soll einen Überblick über die verwendete Elektronik (und ggf. mechanische Hardware) geben. .-------. .-------. |Sensor | |DRV8835| |Platine| | | '-+-+---' '--+----' ^ | ^ | | : | : v | v | .---+--. .---+-. .------. | MMC | | MMC | |Power | | 32U4 | |328PB| |Supply| '-+-+--' '--+--' '-+----' ^ | ^ | | | : | : : v | v | | .---+-------+------+--. |[BB] Modulträger 3×2 | '---------------------' [BB]: {"a2s:link":"[[:start|The start page]]", "fill":"#88d","a2s:delref":true} ===== Neu erstellte Module ===== DELETEME Falls es von Ihnen neu erstellte Elektronik-Module gab, so sind diese hier kurz zu beschreiben. Für eine ausführliche Beschreibung wird eine neue Seite für jedes Modul angelegt. ---- ====== Softwareübersicht ====== DELETEME Beschreiben Sie kurz, auf welchem Chip / Board die Software läuft. z.B.: In diesem Projekt wurde die Platine [[mexle2020:mmc_1x1_328pb]] verwendet und programmiert. ==== Blockbilder ==== FIXME --> Modulblockbild # [*] -right-> main state "void main(void)" as main { state "Initialisierung" as main_Init main_Init -right-> Programmschleife : Wenn kein Fehler, dann state "Programmschleife" as Programmschleife { 10ms : springe zu input 100ms : springe zu calculate\nspringe zu was anderem 10ms -down-> input 100ms -down-> calculate } } state "void input(void)" as input { state "ADC initialisieren" as input1 state "irgendwas einlesen" as input2 input1 --> input2 input1 -left-> ADC_init } state "void ADC_init(void)" as ADC_init { } state "void calculate(void)" as calculate { } state "void init_calculate(void)" as init_calculate { } calculate-->init_calculate state "ISR(TWI_vect)" as TWI_Interrupt { state "I2C Status auslesen" as TWI1 state "Abhängig vom Status Dinge tun" as TWI2 TWI1 --> TWI2 } Tipps zum Chart-Plugin: [[http://plantuml.com/de/]] <-- --> Statemachine # [*] --> Init Init --> [*] State1 : this is a string State1 : this is another string State1 --> State2 State2 --> [*] Tipps zum Chart-Plugin: [[http://plantuml.com/de/]] <-- void main () { printf ("Hello World!"); exit 0; } Erklärung zum Code: * ''%%exit 0;%%'' kann weggelassen werden. \\ \\ \\ \\ ---- ====== Anhang ====== ===== A1. Pflichtenheft ===== FIXME Das Pflichtenheft in diesem Projekten ist zweigeteilt: - Einerseits das tatsächliche Pflichtenheft, bei dem die Projektziele als kurze Aussage mit Beschreibung angegeben werden (erste Tabelle unten) - Andererseits eine Beschreibung der einzelnen Platinen und Softwarekomponenten, welche Sie neu entwickeln. Dabei sind die [[elektronik_labor:est_projekt_leitplanken]] zu beachten. Das Pflichtenheft ist zwar für die Durchführung und {{tablelayout?colwidth="73px,165px,-,75px"&rowsHeaderSource=1&rowsVisible=10&tableSearch=1&tableSort=1}} ^ Nr. ^ Projektziel ^ Beschreibung ^ Status ^ Priorität ^ ^ PH-01 | Motor wird angesteuert | Code implementiert, Elektronik funktionsfähig | erledigt | muss | ^ PH-02 | Joystick wird eingelesen | Layout | offen | soll | ^ PH-03 | Bewegungsablauf wird abgerufen | statt Joystick soll ein gespeicherter Bewegungsablauf auswählbar sein | erledigt | muss | ^ PH-04 | Kamera erzeugt Bilder | Kamera auslösen | offen | kann | ^ PH-05 | Speicherung der Bilder | Slot mit SD-Karte | nicht mehr relevant | ausgenommen | PH ... Pflichtenheft {{tablelayout?rowsHeaderSource=1&rowsVisible=10&colwidth=",106px,254px,322px,87px"&tableSort=1&tableSearch=1}} ^ Nr. ^ neuentwickelt ^ Komponente ^ Beschreibung ^ Zielformat ^ ^ HW-01 | ja | Spannungswandler-Platine | Diese Platine enthält den Spannungswandler, welcher die Eingangsspannung auf die Motorspannung hochsetzt. Die Platine beinhaltet einen DCDC-Chip, sowie entsprechende Buchsen | MEXLE 1x1 | ^ HW-02 | ja | Motortreiber-Platine | Diese Platine wandelt die Motorspannung in eine Wechselspannung. | MEXLE 1x1 | ^ HW-03 | ja | Joystick-Platine | Joystick mit Mikrocontroller, um die Eingabewerte in I2C Daten umzuwandeln | eigenes Format | | - | nein | MmC1x1 328_2.x ATmega328 Platine | Mikrocontroller-Platine für Motor | MEXLE 1x1 | ^ SW-01 | ja | Motoransteuerung | Ansteuern des Motortreibers, Einlesen und Ausgeben über I2C | C | ^ SW-02 | ja | Menuführung | Auswahl zwischen manueller Steuerung | C | ^ SW-03 | ja | Joystick-Auswertung | Software, welche die Joystickeingabe in I2C umwandelt | C | SW ... Software, HW ... (Elektronik)Hardware ===== A2. Projektberichte ===== {{tablelayout?rowsHeaderSource=Auto&colwidth="387px"}} ^ Status ^ | Punkt 1. (Zeilenumbruch mit +) | | Punkt 2. (Zeilenumbruch mit +) | | Punkt 3. (Zeilenumbruch mit +) |