Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mexle:template_fuer_die_projektbeschreibung [2019/11/19 13:38]
tfischer
mexle:template_fuer_die_projektbeschreibung [2021/09/14 13:14] (aktuell)
tfischer
Zeile 1: Zeile 1:
-====== WSxx_PrjXX Tolle Projektidee ======+====== WSxx_PrjXX Tolle Projektidee ======  
 +FIXME 
  
-FIXME +<WRAP right>  
- +{{:study_aigledore_cc-by-2.0jpg.jpg?200|study_aigledore_cc-by-2.0jpg.jpg}}\\ 
-<WRAP right> {{:study_aigledore_cc-by-2.0jpg.jpg?200|study_aigledore_cc-by-2.0jpg.jpg}}\\ +<fs 70%> 
-<fs 70%> Dummy-Bild\\+Dummy-Bild\\
 FIXME Source: [[https://commons.wikimedia.org/wiki/File:Study_(16840395246).jpg|Moyan Brenn @ Wikimedia.org]]\\ 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]]) </fs> </WRAP>+([[https://creativecommons.org/licenses/by/2.0/deed.en|CC BY 2.0 Lizenz]]) 
 +</fs>  
 +</WRAP>
  
-^Ersteller|???|+^Ersteller| ??? |
 ^letzte Änderung|Sommersemester 2019| ^letzte Änderung|Sommersemester 2019|
-^Kurzbeschreibung|FIXME In der Kurzbeschreibung soll die wesentliche Funktion des Projekts in einem Satz zusammengefasst werden|+^Kurzbeschreibung|FIXME In der Kurzbeschreibung soll die wesentliche Funktion des Projekts in  einem Satz zusammengefasst werden
 +^ Verwendete MEXLE(-Module)  |                             |
  
-<WRAP center round important 60%> DELETEME **ACHTUNG!** Für die Niederschrift bietet sich folgendes Vorgehen an: 
  
-   - erst Bilder, Diagramme und Tabellen erstellen und den Kapiteln zuordnen +<WRAP left round important 60%> 
-  - dann mit dem Text beginnen!+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   - Auch Fehler dürfen beschrieben werden
   - Es sollte soviel beschrieben werden, dass nachfolgende Studierende ohne Rückfragen Ihren Weg und Ziel nachvollziehen können.   - Es sollte soviel beschrieben werden, dass nachfolgende Studierende ohne Rückfragen Ihren Weg und Ziel nachvollziehen können.
Zeile 21: Zeile 28:
   - Mit DELETEME ist Text gekennzeichnet, der in der finalen Doku nicht mehr vorhanden sein sollte   - 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   - Mit FIXME ist Text gekennzeichnet, der für die finale Doku ergänzt werden muss
 +  - Tipps zur Wikisyntax finden sich im [[:DokuWiki CheatSheet]]
 +</WRAP>
  
 +<WRAP left round important 60%>
 +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.  
 </WRAP> </WRAP>
  
-----+~~CLEARFIX~~
  
-====== Hardwareübersicht ======+ ----
  
-Die Hardwareübersicht soll einen Überblick über die verwendete Elektronik (und ggf. mechanische Hardware) geben.+====== Projektübersicht ======
  
-<a2s> .——-. .——-.+===== Aufgabenstellung/Problemstellung =====
  
-|Sensor| |DRV8835| +FIXME 
-|Platine| |   |+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. 
  
-'-+-+—' '–+—-'<code> 
-^     | 
-| :      | : 
-v |      v | 
-</code> 
  
-.—+–. .—+-. .——.+===== Lösungsansatz =====
  
-|MMC  | |MMC| |Power| +DELETEME 
-|32U4| |328PB| |Supply|+  - Wie wurde das Problem angegangen? 
 +  - Wieso wurden die genutzten Bauteile und Platinen (z.B. MMC_328PB) verwendet?
  
-'-+-+–' '–+–' '-+—-'<code> +===== Erstellung der Hardware ===== 
-^     | +DELETEME 
-| :     | :      : +  - hier **nicht** Schaltplan / Board darstellen, sondern in den Unterseiten. 
-v |     v |   | +  - Auf was wurde bei der Systemauswahl Wert gelegt? \\ Welche Hürden wurden genommen?
-</code>+
  
-.—+——-+——+-.+===== 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.
  
-|[BB]Basisboard 3×2  |+===== Überprüfung/Test ===== 
 +DELETEME 
 +  - Gab es Zwischenschritte / Zwischenergebnisse? 
 +  - Wurden Testplatinen und/oder Testkonzepte erstellt?
  
-'——————–'+<wavedrom> 
 +{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'
 +]} 
 +</wavedrom> 
 + 
 +{{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. 
 + 
 +<a2s> 
 +.-------. .-------. 
 +|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} </a2s> [BB]: {"a2s:link":"[[:start|The start page]]", "fill":"#88d","a2s:delref":true} </a2s>
Zeile 65: Zeile 134:
  
 ---- ----
- 
 ====== Softwareübersicht ====== ====== Softwareübersicht ======
  
-DELETEME Beschreiben Sie kurz, auf welchem Chip / Board die Software läuft. z.B.: In diesem Projekt wurde die Platine [[:mexle:mmc_1x1_328pb|]] verwendet und programmiert.+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 ==== ==== Blockbilder ====
  
-FIXME+FIXME 
  
-> Modulblockbild # <uml> [*] -right→ main+--> Modulblockbild # 
 +<uml> 
 +[*] -right-> main
  
-state "void main(void)" as main {<code> +state "void main(void)" as main { 
-state "Initialisierung" as main_Init +  state "Initialisierung" as main_Init 
-main_Init -right-> Programmschleife : Wenn kein Fehler, dann +  main_Init -right-> Programmschleife : Wenn kein Fehler, dann 
-state "Programmschleife" as Programmschleife { +  state "Programmschleife" as Programmschleife { 
-  10ms : springe zu input +    10ms : springe zu input 
-  100ms : springe zu calculate\nspringe zu was anderem +    100ms : springe zu calculate\nspringe zu was anderem 
-  10ms -down-> input +    10ms -down-> input 
-  100ms -down-> calculate+    100ms -down-> calculate 
 +  }
 } }
-</code> 
  
 +state "void input(void)" as input {
 +  state "ADC initialisieren" as input1
 +  state "irgendwas einlesen" as input2
 +  input1 --> input2 
 +  input1 -left-> ADC_init 
 } }
  
-state "void input(void)" as input {+state "void ADC_init(void)" as ADC_init { 
 +}
  
-<code> +state "void calculate(void)" as calculate { 
-state "ADC initialisieren" as input1 +}
-state "irgendwas einlesen" as input2 +
-input1 --> input2 +
-input1 -left-> ADC_init +
-</code>+
  
 +state "void init_calculate(void)" as init_calculate {
 } }
- +calculate-->init_calculate  
-state "void ADC_init(void)" as ADC_init { } +</uml> 
- +<uml>
-state "void calculate(void)" as calculate { } +
- +
-state "void init_calculate(void)" as init_calculate { } calculate>init_calculate </uml> <uml>+
  
 state "ISR(TWI_vect)" as TWI_Interrupt { state "ISR(TWI_vect)" as TWI_Interrupt {
- +  state "I2C Status auslesen" as TWI1 
-<code> +  state "Abhängig vom Status Dinge tun" as TWI2 
-state "I2C Status auslesen" as TWI1 +  TWI1 --> TWI2 
-state "Abhängig vom Status Dinge tun" as TWI2 +
-TWI1 --> TWI2 +
-</code> +
 } }
  
 </uml> </uml>
  
-Tipps zum Chart-Plugin: [[http://plantuml.com/de/|http://plantuml.com/de/]] <+Tipps zum Chart-Plugin: [[http://plantuml.com/de/]] 
 +<--
  
-–> Statemachine # 
  
-<uml[*] –> Init Init –> [*] State1 : this is a string State1 : this is another string+--Statemachine #
  
-State1 –> State2 State2 –> [*] </uml>+<uml> 
 +[*] --Init 
 +Init --> [*] 
 +State1 : this is a string 
 +State1 : this is another string
  
-Tipps zum Chart-Plugin: [[http://plantuml.com/de/|http://plantuml.com/de/]] <+State1 --> State2 
 +State2 --> [*] 
 +</uml>
  
-<WRAP> <WRAP half column> +Tipps zum Chart-Plugin: [[http://plantuml.com/de/]] 
- +<--
-<code C> +
- +
-</code> +
-  - +
- +
-voidmain (){ +
- +
-  - +
- +
-[[http://www.opengroup.org/onlinepubs/009695399/functions/printf.html|printf]] ("Hello World!"); +
- +
-  - +
- +
-[[http://www.opengroup.org/onlinepubs/009695399/functions/exit.html|exit]] 0; +
- +
-  - +
- +
-+
- +
-</WRAP> <WRAP half column> Erklärung zum Code: +
- +
-  * ''<nowiki>exit 0;</nowiki>''  kann weggelassen werden. +
-</WRAP> </WRAP>+
  
 +<WRAP> 
 +<WRAP half column> 
 +<code C [enable_line_numbers=1, start_line_numbers_at=42]> 
 +  void main () {
 +  printf ("Hello World!");
 +  exit 0;
 +} </code> 
 +</WRAP> 
 +<WRAP half column> 
 +Erklärung zum Code: 
 +  * ''%%exit 0;%%'' kann weggelassen werden. 
 +</WRAP> 
 +</WRAP>
 +\\ \\ \\ \\
 ---- ----
  
-====== Projektübersicht ======+====== Anhang ======
  
-===== Aufgabenstellung/Problemstellung =====+===== A1. Pflichtenheft ===== 
 +FIXME
  
-Die Aufgabenstellung war eine kompakte Controllerplatine zu erstellenwelche als Basis für unterschiedlichste Projekte genutzt werden kann. Dabei sollte Wert auf Kompatibilität und größtmögliche Ausnutzung des verwendeten Microcontrollers werden.+Das Pflichtenheft in diesem Projekten ist zweigeteilt:  
 +  - Einerseits das tatsächliche Pflichtenheftbei 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.
  
-===== Pflichtenheft =====+Das Pflichtenheft ist zwar für die Durchführung und 
  
-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 [[:est_projekt_leitplanken|]] zu beachten. 
 {{tablelayout?colwidth="73px,165px,-,75px"&rowsHeaderSource=1&rowsVisible=10&tableSearch=1&tableSort=1}} {{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  |
  
-^Nr ^Projektziel  ^Beschreibung  ^Status  ^Priorität +PH ... Pflichtenheft
-^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}} {{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               |
  
-^Nr ^neuentwickelt  ^Komponente  ^Beschreibung  ^Zielformat +SW ... Software, HW ... (Elektronik)Hardware
-^HW-01  |ja  |Spannungswandler-Platine  |Diese Platine enthält den Spannungswandler, welcher die Eingangsspannung auf die Motorspannung hochsetztDie Platine beinhaltet einen DCDC-Chipsowie entsprechende Buchsen  |MEXLE 1×1  | +
-^HW-02  |ja  |Motortreiber-Platine  |Diese Platine wandelt die Motorspannung in eine Wechselspannung |MEXLE 1×1  | +
-^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 1×1  | +
-^SW-01  |ja  |Motoransteuerung  |Ansteuern des Motortreibers, Einlesen und Ausgeben über I2C  |C / Cpp  | +
-^SW-02  |ja  |Menuführung  |Auswahl zwischen manueller Steuerung  |C / Cpp  | +
-^SW-03  |ja  |Joystick-Auswertung  |Software, welche die Joystickeingabe in I2C umwandelt  |C  |+
  
-SW … Software, HW … (Elektronik)Hardware +===== A2Projektberichte =====
- +
-===== 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? +
- +
-<wavedrom> {signal: [<code> +
-{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'+
-</code> +
- +
-]} </wavedrom> +
- +
-Kurzanleitung zu WaveDrom: [[https://observablehq.com/@drom/wavedrom-ark?collection=@drom/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.hs-heilbronn.de/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? +
- +
-\\+
  
 +<WRAP group><WRAP column half>
 +{{tablelayout?rowsHeaderSource=Auto&colwidth="387px"}}
 +^ Status                                            ^
 +| Punkt 1. (Zeilenumbruch mit <Umschalt>+<Return> |
 +| Punkt 2. (Zeilenumbruch mit <Umschalt>+<Return> |
 +| Punkt 3. (Zeilenumbruch mit <Umschalt>+<Return> |
  
 +</WRAP><WRAP column half>
 +</WRAP>