Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Semestrální práce

Zadání, úkoly práce

Úloha je určená pro dvojice studentů, ale může ji řešit také samostatně.

Na plný počet bodů je nutné práci odevzdat na reálném hardware, MZ_APO nebo jiný vestavný systém. Část práce s periferií lze odladit i simulátoru QtRVSim a je možné práci i odevzdat ve verzi pouze pro QtRVSim, ale s bodovým hodnocením sníženým o 10 bodů.

Odevzdání úlohy je možné až do jednoho týdne po zápočtovém týdnu. Za každý další započatý týden -10 bodů. Začněte ale na práci pracovat co nejdříve. Pokud se pustíte naopak do většího projektu, předvedete dosažení dílčích cílů včas, tak se můžete se cvičícími dohodnout na termínu i individuálně.

Možná zadání pro inspiraci

  • Řízení stejnosměrného motoru (pokročilejší verze zadání)
  • klasická hra hadi (viz Wikipedie EN, CZ) - QtRvSim nebo MZ_APO, ve standardní variantě dva hadi, směr jedné hlavy ovládaný červeným voličem a znaky 'a' a 's' ve vstupu sériového portu, druhé hlavy modrým voličem a znaky 'k' a 'l'. Délka hada a čas bude zobrazeny ve formě výpisu textu (návěští + číslo) , levá a pravá RGB led informují o dobré kondici příslušného prvního a druhého hada, zelená, polknutí modrá a nárazu s důsledkem smrti červené. Na plný počet bodů i grafické menu s volbou parametrů - rychlosti atd.
  • zvětšovací lupa (xmag − magnify parts of the screen) - na display je vypsaný delší text na několik řádek (ideálně zadávaný ze souboru, i QtRvSim syscally umí, i když bez úpravy C knihovny je bude asi nutné volat ručně), dvěma voliči se bude nastavovat poloha okénka na obrazovce, jehož obsah se zvětší, buď nad vybraným místem nebo na pevné pozici, na MZ_APO v případě distanční formy bude vybíraná pozice postupně po řádcích odshora dolů přecházet tak, aby i na videu byl text alespoň trochu čitelný, LED diody budou například indikovat přecházení mezi řádky, v případě volitelného zvětšení pak například míru zvětšení
  • elektronická verze Grafo - povinný textový výpis polohy a vybrané barvy, volba barvy z nabídky, vybraná barva i na jedné z RGB LED.
  • řízení a monitoring výrobní linky
  • řízení pohonu robota atd…
  • vlastní fantazie a nápady vítané.

Rámcové hodnocení práce

Kategorie Body Poznámka
Specifikace zadání 1b V BRUTE semassign.
- včasné zadání/založení týmu 1b
Splnění specifikace 2b
Komplexnost zadání 3b Komplexnost zadání bude ohodnocena ohodnocena předem, podle specifikace zadání. Po ohodnocení je možno dohodnout možnosti rozšíření práce za více bodů.
Práce s HW 3b Alespoň tři různé periferie. RGB diody, řádka LED, sériový port, otočné voliče, standardní vstup (např. přes SSH) bez čekání na novou řádku (raw), četní polohy a nastavení PWM pro DC motor, zpracování externí události v přerušení (QtRvSim), implementace systémového volání (obsluha/zpracování výjimky)…
Výstup na grafický display 3b
- výpis fontu 1b
- výpis s proměnnou šířkou znaku 1b
- čárová grafika nebo menu 1b
Kvalita provedení (kódu) 5b
- formátování kódu konzistentní odsazování, mezery
- dekompozice do funkcí, souborů a “modulů” Maximální délka funkce by neměla přesáhnout desítky řádek - “jedna funkce dělá jednu věc” (a podle toho se jmenuje). C soubor by typicky neměl mít více než 150/200 řádek
- obecně si zvolit coding style a ten pak držet Inspirovat se PEP20 a např. Linux kernel coding style
Ergonomie a grafické zpracování 3b
- víceúrovňové menu, využití bitmapové nebo vektorové grafiky
- vhodné využití vstupních ovladačů
- preciznost a ošetření zákmitu při snímaní vstupu (deadband, ošetření zákmitů, reakce na hranu)
Dokumentace 4b Povinná, bez ní nelze práci hodnotit jako splněnou.
- uživatelský manuál 1b Umožní plně použít i bez zaškolení. Examples
- popis kompilace, instalace, spuštění 1b Ideálně jako součást zdrojového kódu (např. Doxygen formát).
- architektura aplikace 1b Schéma fungování aplikace, dokumentace struktury projektu (kde jsou jednotlivé hlavní komponenty).
- programátorská dokumentace 1b Dokumentace použití funkcí a struktur.
*Git +3bBonusové body za správné vedení projektu. Návod
- vedení projektu ve verzovacím systému git +1b Repozitář existuje a nejsou v něm generované soubory, když projekt odevzdává dvojice, tak commity od obou.
- smysluplně pojmenované commity +1b Commit message odpovídá provedeným změnám. Každý commit by také měl ideálně upravovat/přidávat pouze jednu ucelenou funkcionalitu.
- merge request +1b Vývoj je veden v samostatné větvi (např. “dev”) a ještě před odevzdáním úlohy do brute je vytvořen v gitlabu (nebo githubu) Merge request pro zamergování vývojové větve to větve “master” a je přiřazen na review cvičícímu.

V případě individuálního zadání, které nezapadá do těchto kategorií, může cvičící rozložení bodů upravit.

Počáteční šablona pro tvorbu aplikace

Odevzdání

  • Zdrojové kódy v archivu (zip) nahrajte na https://cw.felk.cvut.cz/brute/ (úkol SEMCODE)
  • Dokumentaci (uživatelský manuál a technickou zprávu) v archivu do SEMDOC na Brute.

Pro odevzdání je potřeba založit tým a bude to platit i pro jednotlivce. Vytváření týmu je nastavené pro umožnění práce ve dvojicích. V případě nesprávného založení týmu kontaktujte svého cvičícího, který tým odstraní.

Archiv odevzdaný do systému by neměl obsahovat objektové a zálohové soubory. Finální spustitelný soubor obsahovat může, ale použitý bude jen ve výjimečných případech. Program musí být možné přeložit. Instrukce by mely být specifikované v technické části dokumentace. Preferované je použití sestavovacího programu “make”. Kontrolovat bude program cvičící za účasti studenta (v případě práce ve dvojici obou studentů) kód odevzdaný do systému. Především při kontrole po termínu odevzdání bude testování zaměřené na verzi nahranou do systému. Nutné úpravy na místě budou znamenat snížení hodnocení podle pravidel odevzdání v čase odpovídajícím testování. Kromě kontroly funkce můžete očekávat dotazy na implementaci a koncepci odevzdaného kódu. V případě odevzdání v týmu budou otázky směrované libovolně na členy týmu a nedostatky znalosti funkce kódu mohou snížit hodnocení projektu pro oba členy.

Před odevzdáním si zkontrolujte, že program lze kompletně sestavit z připraveného archivu.
Odevzdání projektu, který generuje spustitelný soubor se jménem change_me bude u zákazníka/cvičícího vyvolávat zásadní nedůvěru v kvalitu projektu.

I hlavní soubor aplikace by měl být přejmenovaný.

Zároveň by v záhlaví vámi vytvářených souborů měla být vyplněna jména skutečných autorů a licence díla. Soubor change_me.c berte jako vzor a hlavičku přepište.

courses/b35apo/semestral/start.txt · Last modified: 2023/06/07 08:36 by dupakjak