Samostatné práce

Z MAM wiki

Přejít na: navigace, hledání

Samostatné práce budou poměrně náročné. Může vám s nimi ale pomoci úplně kdokoli, budou totiž vypracovány přímo zde na wiki. Představujeme si je spíše jako zajímavé, stále se rozvíjející opensource projekty než jako kryptické úlohy, ke kterým ti štastnější najdou osvědčená řešení od kolegů z předchozích let.

Opisovat je tedy povoleno, ba dokonce může většinu vaší práce napsat někdo úplně jiný než vy. Když ovšem promyslíte skutečné důsledky tohoto ďábelského plánu pedagogů, zjistíte, že jediný skutečný rozdíl oproti jiným předmětům je v tom, že zde na wiki je průběžně dokumentováno, kdo kdy co udělal, a podle toho bude také vaše práce hodnocena :-)

Využití veškerých dostupných zdrojů je tedy vítáno, je ovšem slušné všechny zdroje citovat. Stejně tak je vítána jakákoli spolupráce.

Každá samostatná práce začne jako stránka zde na wiki, na které se budou postupně shromažďovat odkazy na zdroje, nápady, rady kolegů, odkazy na souběžné související projekty atd., až nakonec tu bude fungující a dobře dokumentovaný program...


Návrhy na témata

Toto je zatím pracovní text, který obsahuje návrhy témat na samostatné práce.

  • Návod pro úplného začátečníka, jak vytvořit program v céčku pro ATmega168. Výsledkem by měla být šablona zdrojového kódu main.c, kterou lze použít při založení jakéhokoliv nového projektu. Kód by měl obsahovat konfigurační část, kde si programátor nadefinuje různé konstanty, např. frekvenci mikrokontroléru, vstupy/výstupy, obsluhu přerušení a časovačů atd., a inicializační část, např. funkce init(), která konfiguraci provede.
  • Desky plošných spojů pro připojení ATmega168 a ATtiny15 k programátoru AVR Dragon. Na desce by mělo být vyřešeno napájení včetně blokování a filtrace pro analogovou část mikrokontroléru, dále připojení programovacích signálů a možnost využití programovacích vývodů i pro jiné účely. Celá deska o šířce 40-pinového pouzdra DIL (délka může být menší) by umožňovala zasunutí do nepájivého kontaktního pole pro připojení dalších obvodů. Výsledkem by mělo být schéma a návrh desky v programu Eagle. Ačkoliv se tato úloha zdá velmi jednoduchá, vyžaduje určité zkušenosti s návrhem desek plošných spojů.
  • Třída funkcí pro ovládání LED displeje. Součástí konfigurace by byla volba, zda je displej statický, nebo dynamický (multiplexovaný). V případě statického displeje lze použít např. posuvné registry 74HCT595. Počet sedmisegmentovek by byl obecný. Do budoucna by bylo možné projekt rozšířit také na alfanumerické znaky (např. 14-segmentovky), funkce pro blikání, rotaci textu atd.
  • Třída funkcí pro ovládání znakového LCD displeje. Počet řádků a sloupců by byl konfigurovatelný, i když třeba ne úplně obecný - podle vyráběných typů.
  • Třída funkcí pro ovládání grafického LCD displeje. Můžete vymyslet funkce pro kreslení čar, oblouků a následně pěkných okének s textem, výpisy znaků různých velikostí fontů, řezů, s diakritikou, ...
  • Třída funkcí pro ovládání krokových motorů. Cílem by mělo být vytvoření třídy funkcí, přičemž každý připojený motor by byl jednou z "instancí" třídy jako datová struktura. Bylo by možné nastavit cílovou polohu, rychlost pohybu a směr. Dále by bylo možné tuto třídu rozšířit o zpracování zpětných vazeb (motor dostal příkaz k pohybu, ale musí se zkontrolovat, zda se skutečně pohnul) a krajních poloh. Krokové motory v rozumném množství můžeme pro testovací účely poskytnout.
  • Opensource projekt MIDI slučovače s obecným počtem vstupů a jedním výstupem. Další informace pro případné zájemce může podat cvičící Robert Krejčí.
  • Opensource projekt hardwarového řešení CNC frézky, která komunikuje s programem Mach3 (zdarma k vyzkoušení). Komunikace probíhá přes paralelní port počítače a vůbec to není tak složité, jak by se mohlo zdát. Lze využít výše zmíněných projektů, např. ovládání krokových motorů. Další informace pro případné zájemce může podat cvičící Robert Krejčí.

Pokud by vás nějaké téma zaujalo, můžete v něm pokračovat v rámci diplomky.

Osobní nástroje