====== Semestrální práce ======
V rámci předmětu mikrokontrolérů každý student vypracuje semestrální práci podle jeho zájmu. Je možné si vybrat některé z nabízených projektů nebo přijít s vlastním, který bude zapadat do konceptu mikrokontrolérů.
Pokud si vybere více studentů stejné téma a nebude k dispozici už potřebný hardware, bude třeba si vybrat jiné téma. Proto s výběrem tématu neváhejte.
====== Pravidla odevzdání práce ======
Pokud si nejste jisti, zda váš návrh splňuje požadavky, konzultujte téma s cvičícím nebo garantem předmětu. Pro odevzdání platí následující pravidla:
* Pokud je součástí práce zdrojový kód, odevzdejte ho BRUTE do záložky SEM, případně nahrajte kód na fakultní gitlab a dejte do BRUTE link do repozitáře. (Repozitář musí být buď veřejný nebo je třeba přidat tomu, kdo bude práci hodnotit, roli developer.)
* Práce by měla být prezentována ve funkčním stavu cvičícímu/garantovi. Pokud je dost času, tak na cvičení, nebo na konzultačních hodinách ve zkouškovém období, které oznámíme co nejdříve. Ev. je možné se domluvit na individuálním odevzdání.
* Práci je možné odevzdat i v rámci ústní zkoušky, pokud jste na zkoušku zapsáni.
* Preferujeme, pokud je sem. práce odevzdána před zkouškou, ale po domluvě je možné odevzdat práci i později.
* Součástí práce je stručná dokumentace, kterou přiložíte ke zdrojovému kódu.
===== Dostupný HW =====
* Shieldy
* [[https://gitlab.fel.cvut.cz/B201_B2M37MAM/mam-shield|MAM Shield]]
* [[https://www.edushield.cz/cs/|EDU Shield]]
* [[courses:b2m37mam:tutorials:dev_kits:funduino|Funduino]]
* [[https://arduino-shop.cz/arduino/917-arduino-ethernet-shield-w5100-r3-1420993161.html|Arduino Ethernet shield]]
* Kity
* [[https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=218&No=1021&PartNo=1#contents|FPGA DE10-Lite]]
* [[https://eu.mouser.com/new/stmicroelectronics/stmicro-stm32-lora-extension-board/|LoRA - I-NUCLEO-LRWAN1]]
* Displaye
* [[https://arduino-shop.cz/arduino/1568-shield-lcd-tft-2-4-displej-dotykovy-pro-arduino-uno-1487762760.html|TFT displej]] + [[https://lvgl.io/|LVGL]]
* [[https://arduino-shop.cz/arduino/990-arduino-display-zluty-16x2-znaku-1427786498.html|Znakový LCD displej 1602]]
* [[https://www.laskakit.cz/arduino-1602-lcd-klavesnice-shield/|Shield LCD displeje 16x2 s tlačítky]]
* Senzory
* Teploměr+Vlhkoměr DHT11
* Teploměr+Vlhkoměr DHT22
* Teploměr+Vlhkoměr SHT21
* [[https://www.waveshare.com/10-dof-imu-sensor-d.htm|10 DOF IMU]] (akcelerometr, gyroskop, magnetometr, tlakoměr), ICM20948 + BMP280
* Maticové LED displaye
* [[https://dratek.cz/arduino/850-led-matice.html |8×8 LED Matice]]
* [[https://dratek.cz/arduino/5009-led-matice-4x64-s-kontrolerem-max7219.html|32×8 LED Matice]]
* Motory a aktuátory
* [[https://arduino-shop.cz/arduino/897-arduino-servo-motor-1420669476.html|Servo motor]]
* [[https://www.instructables.com/id/How-to-Use-the-CNC-V4-Board-despite-Its-quirks/|Krokový motor + H-můstek]]
* I2C DA převodník
* [[http://web.archive.org/web/20191012062128/http://www.elecfreaks.com/wiki/index.php?title=2.4G_Wireless_nRF24L01p_with_PA_and_LNA| 2.4 GHz bezdrátový modul (nRF24L01+)]]
* Převodník USB <-> USART, RS232, RS485
===== FPGA =====
- Paddle war přes VGA
- Vykreslování dat, útvarů, ... přes VGA
- Čítač (měření frekvence, periody)
- Miniprocesor Nios II + periferie
- Osciloskop s pamětí
* Zařízení bude ukládat naměřená data do DRAM paměti
* Jako vstup dat můžete využít interního akcelerometru nebo externího AD převodníku
* Data můžete posílat po sériové lince nebo je kreslit na VGA výstup
===== Funduino =====
- Sériový terminál s pamětí
* na UART může přijít větší množství dat
* data jsou uložena v paměti mikrokontroléru
* s využitím displeje s tlačítky je možné historii procházet
- Ovládání Edushieldu, Funduina
* ovládání jednotlivých prvků Edushieldu pomocí příkazů po UART
===== MAM-Shield =====
- Kalkulačka s MAM shieldem (využijte návod z [[courses:b2m37mam:projekty:06|Maticová klávesnice]])
- Vytvoření terminálu, který bude obsluhovat jednotlivé periferie (přes VCP nebo UART)
- Jednoduchá hra s použitím joysticku
- Řízení otáček větráčku podle teploty se zpětnou vazbou
- Použití bargraph a měření teploty
- Zobrazení hodin s RTC
- Komunikace se 2 a více deskami mezi sebou po RS485
- Zápis na SD kartu
- [[courses:b2m37mam:projekty:06|Maticová klávesnice]]
- Piškvorky
- Tetris na LED Display
===== Jiné periferie =====
- Rolující display s 64x8 LED Maticový zobrazovačem (jako v MHD)
- Hardware Security Module (HSM)
- Komunikace pomocí LoRa
- Využití I2C DAC
- Ovládání servomotoru
* pomocí příkazů na UART rozhraní ovládejte servomotor připojený k výstupní bráně mikrokontroléru
- Ovládání TFT displeje
* driver TFT displeje
* definice základních grafických primitiv (bod, čára, n-úhelník)