https://senzor.robotika.sk/sensorwiki/api.php?action=feedcontributions&user=Balogh&feedformat=atomSensorWiki - Príspevky používateľa [sk]2024-03-28T11:41:34ZPríspevky používateľaMediaWiki 1.29.0https://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15160MIPS Projekt2024-03-28T09:25:47Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="59"> RFID čítačka RC522<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="58"> Ladislav Nagy: ''Maticový displej 8x8 s driverom MAX7219''<br />
<li value="75"> Martin Bugár: ''Reglátor chladenia so snímačom teploty''<br />
<li value="71"> Gabriel Nagy: ''Tester obvodu 7493 (4-bitové počítadlo)''<br />
<li value="72"> Filip Viest: ''Klávesnica 2x3''<br />
<li value="10"> Peter Guľak: ''Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji''<br />
<li value="60"> Daniel Žula: ''7-segmentový displej na futbalové skóre''<br />
<li value="74"> Andrea Kuňáková: ''Autíčko na diaľkové ovládanie''<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Detekcia_farieb&diff=15159Detekcia farieb2024-03-28T07:43:56Z<p>Balogh: </p>
<hr />
<div>* '''11.3.2020''' pridané materiály na samoštúdium<br />
* '''15.3.2020''' pridané cvičenie s kamerou a detekciou farby<br />
* '''08.3.2021''' aktualizácia na 2021<br />
* '''27.3.2024''' aktualizácia na 2024<br />
<br />
[[Súbor:ColorLegoCubes.jpg|500px|center]]<br />
<br />
== '''Detekcia farieb CMOS senzorom''' ==<br />
<br />
'''Úloha:''' zdetekujte a rozlíšte aspon 6 základných druhov farieb na rozličných vzorkách. Naprogramujte aplikáciu, ktorá zdetekuje farbu predloženej vzorky (RGB) <br />
a určí, ku ktorej z naučených farieb má najbližšie. <br />
<br />
<br />
'''Teoretický úvod''' - [https://www.micro-epsilon.com/download/products/dat--Basics-of-colorimetry--en.pdf Basics of colorimetry. Guide for industrial color measurement.]<br />
<br />
<br />
'''Príklad''' priemyselných snímačov farby - [https://www.micro-epsilon.com/download/products/cat--Micro-Epsilon--products--en.pdf uE Product broschure] (str. 26-27)<br />
<br />
<br />
<br />
Na cvičeniach v škole by sme použili špeciálny senzor farby, ktorý eliminuje vplyv okolitého osvetlenia tým, že si vzorku sám nasvieti. Pozostáva, podobne<br />
ako CMOS kamera z niekoľkých (16) pixelov, ktoré majú filtre R, G a B zložky. Výstupom senzora sú hodnoty R, G, B a I - celkovej intenzity. Vyhodnotením I<br />
môžeme čiastočne vylúčiť vplyv okolitého osvetlenia. <br />
<br />
Doma senzor pravdepodobne nemáme, preto využijeme to, čo sa dá - kameru na notebooku, alebo v mobile. <br />
<br />
Program napíšeme v prostredí Processing, ktorý si [https://processing.org/ nainštalujete odtiaľto] (existuje aj vo verzii pre Linux a iOS). <br />
<br />
Potom ešte treba doinštalovať knižnicu (library) '''video'''. <br />
Z menu Sketch -> Import Library... -> Add Library... vyhľadáme a dáme nainštalovať '''Video''' | GStreamer-based library for Processing 4<br />
<br />
[[Súbor:VideoLibraryImport.png|500px]]<br />
<br />
Potom si nahráte nižšie uvedený ukážkový program. Ak máte na notebooku kameru, tak sa vyberie najjednoduchší režim 160x120px a z obrazu vezmeme<br />
stredý pixel. Hodnoty R, G a B zložiek uložíme do premenných red[0], green[0] a blue[0]. Hodnoty vypíšeme do okienka a vytvoríme obdĺžnik vo farbe, <br />
ktorú sme zdetekovali. Okrem toho sa v okienku nakreslí zameriavací bod, aby bolo zrejmé, kde určujeme farbu. Obraz z kamery samotnej môžeme<br />
zapnúť klávesou 'c' (alebo vypnúť). <br />
<br />
<br />
[[Súbor:SmallVideoWindow.png|300px]]<br />
<br />
<source lang="c"><br />
import processing.video.*;<br />
<br />
Capture cam;<br />
<br />
int[] red = new int[9]; <br />
int[] green = new int[9];<br />
int[] blue = new int[9];<br />
<br />
boolean videoOnScreen;<br />
<br />
<br />
void setup() <br />
{<br />
size(160, 120); // velkost okna prisposobime videu<br />
<br />
// tato cast tu nemusi byt, je tu len na zobrazenie vsetkych dostupnych videosluzieb<br />
String[] cameras = Capture.list();<br />
if (cameras.length == 0) <br />
{<br />
println("There are no cameras available for capture.");<br />
exit();<br />
} <br />
else <br />
{<br />
println("Available cameras:");<br />
for (int i = 0; i < cameras.length; i++) <br />
println("[" + i + "] " +cameras[i]);<br />
}<br />
// potom si vyberiem bud zo zoznamu, napr. takto<br />
// cam = new Capture(this, cameras[23]); <br />
// alebo priamo urcim rozlisenie takto: <br />
cam = new Capture(this, 160, 120); // 160x120 / 30fps<br />
<br />
// Start capturing the images from the camera<br />
cam.start(); <br />
<br />
}<br />
<br />
<br />
<br />
<br />
void draw() <br />
{<br />
if (cam.available()) <br />
{<br />
cam.read();<br />
cam.loadPixels();<br />
<br />
// pixels je jednorozmerne dlhe pole po riadkoch ulozene<br />
// stredny pixel je tento:<br />
int j = cam.height / 2;<br />
int i = cam.width / 2;<br />
int pixelColor = cam.pixels[j*cam.width + i];<br />
<br />
<br />
// farba v pixelColor je ulozena ako jeden dlhy int, <br />
// ktory rozlozime na tri RGB zlozky:<br />
red[0] = (pixelColor >> 16) & 0xff;<br />
green[0] = (pixelColor >> 8) & 0xff;<br />
blue[0] = pixelColor & 0xff;<br />
<br />
/* ***************************************************** */<br />
/* */ <br />
/* Tu zacina praca pre vas, mili studenti: */<br />
/* ja som si vybral len stredny pixel, na vas je spravit */<br />
/* okienko 3x3 a vypocitat priemernu hodnotu z tychto */<br />
/* 9 pixelov. Polia red, green a blue uz mate pripravene */<br />
/* */ <br />
/* ***************************************************** */<br />
<br />
<br />
<br />
// a tu uz len vsetko vykreslime do okna<br />
<br />
background(0); // cierne pozadie<br />
noStroke(); <br />
<br />
if (videoOnScreen) // zalezi ci stlacim klavesu 'c' <br />
{<br />
set(0, 0, cam); <br />
}<br />
<br />
noFill();<br />
stroke(255, 255, 0); // yellow<br />
ellipse(80,60,40,40); // kruzok<br />
line(80,40,80,80); // krizik v strede<br />
line(60,60,100,60);<br />
<br />
<br />
fill(red[0], green[0], blue[0]); // farebny obdlznicek vpravo hore <br />
rect(120,5,35,10);<br />
<br />
// takto sa zobrazi v obrazku text:<br />
String message = "R: " + red[0] + " G: " + green[0] + " B: " + blue[0];<br />
fill(255,255,0);<br />
text(message, 5, 15);<br />
<br />
<br />
} /* end of if */<br />
} /* end of draw() */<br />
<br />
<br />
void keyPressed() <br />
{<br />
if (key == 'c') <br />
videoOnScreen = !videoOnScreen;<br />
}<br />
</source><br />
<br />
<br />
<br />
<br />
<br />
Ak vám vzorový program funguje, nasleduje '''samostatná práca''': <br />
<br />
<br />
# namiesto málo spoľahlivého merania v jednom jedinom pixeli, spravte meranie vo štvorci 3x3 (nemusia to byť nevyhnutne tie bezprostredne vedľa seba), aby ste vylúčili to, že meranie rozličných farieb robíte napr. práve cez pixel s červeným filtrom. V programe už máte pripravené pole red[9], green[9] a blue[9]. Výsledná R, G, B trojica bude daná priemerom z tých deviatich políčok. <br />
# naučte program detekovať niekoľko základných farieb. Predložte mu napríklad červenú vzorku, zapamätajte si R,G a B súradnice a uložte si ich. Pri meraní neznámej vzorky potom vypočítajte farebnú vzdialenosť (viď domáca úloha) a ak je menšia ako nejaká rozhodovacia úroveň (''threshold''), tak ju vyhlásite tiež za červenú. Takýchto farieb by ste mali spoznať aspoň 6 (určite červená, modrá, zelená, biela a čierna). <br />
# zdokumentujte svoje riešenie: predložte niekoľko napr. červených vzoriek a ukážte, že všetky boli správne klasifikované. Nestačí ukázať jednu vzorku!<br />
<br />
<br />
Ak si trúfate, môžete riešenie vyšperkovať, napríklad učenie bude prebiehať poloautomaticky, na klasifikáciu použijete neurónovú sieť a pod. Nemusíte<br />
riešenie robiť v Processingu, použite to čo viete a čo máte doma k dispozícii.<br />
<br />
<br />
<br />
== Laboratórne cvičenie ==<br />
<br />
Tieto úlohy sa týkajú '''LEN''' merania na cvičeniach.<br />
<br />
<span class="mw-customtoggle-2020" style="background:#e0e8ff">Návod na cvičenia: (kliknutím rozbaliť / zbaliť)</span><br />
<br />
<div id="mw-customcollapsible-2020" class="mw-collapsible mw-collapsed"><br />
<br />
<br />
Úloha 1: <br />
<br />
pripojte senzor QTI k mikroprocesoru, zobrazte aktuálnu hodnotu výstupného signálu<br />
a pokúste sa pomocou senzora rozpoznať základné farby<br />
<br />
* [[Acrob008]]<br />
<br />
<br />
Úloha 2: <br />
<br />
zoznámte sa so senzorom farby ColorPAL (fotodióda TAOS TSL12T), pripojte ho k mikropočítaču<br />
a rozpoznajte základné farby<br />
<br />
* [[Acrob042]]<br />
* [https://www.parallax.com/sites/default/files/downloads/28380-ColorPAL-Documentation.pdf Datasheet]<br />
<br />
Porovnajte dosiahnuté výsledky s kvalitnejším senzorom TCS230<br />
<br />
* [[Acrob041]]<br />
* Podrobnejší opis práce so senzorom farby [https://howtomechatronics.com/tutorials/arduino/arduino-color-sensing-tutorial-tcs230-tcs3200-color-sensor/ TCS3200 Color Sensor]<br />
* Ak radšej pozeráte video ako čítate:<br />
<br />
<youtube>CPUXxuyd9xw</youtube><br />
<br />
<br />
Použite softvér uvedený v príkladoch: <br />
<br />
* [[Acrob043]]<br />
<br />
<br />
'''Odovzdať:'''<br />
<br />
* Nameranú závislosť od vzdialenosti<br />
* Nameranú závislosť farby pri konštantnej vzdialenosti<br />
* Ten kúsok programu, ktorý realizoval rozpoznanie farby<br />
<br />
</DIV><br />
<br />
<br />
<br />
== '''Doplnkové informácie''' ==<br />
<br />
=== '''Rozpoznávanie farieb''' ===<br />
<br />
Trocha hlbšia a vtipná analýza ako vnímame a rozpoznáva farby človek nájdete v článku<br />
Randall P. Munroe: ''[http://blog.xkcd.com/2010/05/03/color-survey-results/ Color survey - results].''<br />
<br />
[[Súbor:ColorNamesBoysVsGirls.png|center|200px]]<br />
<br />
Tu zasa nájdete viac ďalších informácií k téme [[Senzory na rozpoznávanie farieb]]<br />
<br />
<br />
== '''Testovací obrázok''' ==<br />
<br />
Tento obrázok si môžete vytlačiť a použiť ho pri učení farieb.<br />
<br />
[[Súbor:ColorReferenceCard.png|500px]]<br />
<br />
=== '''Externá kamera''' ===<br />
<br />
Ak nemáte na notebooku kameru, alebo sa vám s ňou zle pracuje, môžete použiť [https://www.dev47apps.com/ DroidCam] - nainštalujete appku na Android<br />
telefón, po spustení sa začne obraz z telefónu streamovať cez WiFi. Na PC nainštalujete klienta, ktorý potom vytvorí zdanie, že daná kamera je<br />
priamo na notebooku. Mne to nefungovalo veľmi spľahlivo, ale je to riešiteľné. <br />
<br />
* https://www.dev47apps.com/<br />
<br />
<br />
[[Súbor:DroidCamWindow.png|500px]]<br />
<br />
<br />
Celkom iné riešenie je v tomto návode - [[Android Capture]]. Využíva [https://github.com/onlylemi/processing-android-capture Android Caputre].<br />
<br />
<br />
=== '''Návody pre Processing''' ===<br />
<br />
* Ako funguje [https://py.processing.org/tutorials/drawing/ súradnicový systém a jednoduché objekty]<br />
* Ako fungujú v Processingu [https://processing.org/tutorials/color/ farby]<br />
* Ako funguje [https://processing.org/tutorials/video/ video library]<br />
<br />
<br />
<br />
=== '''Farebná vzdialenosť''' ===<br />
<br />
Spravte si najprv na domácu úlohu v [https://www.onlinegdb.com/classroom/S1G2KyNWd GDB Online Classroome], potom bude všetko jasnejšie.<br />
<br />
<br />
<br />
=== '''Lepšia vzdialenosť farieb''' ===<br />
<br />
Keďže farby sú dané troma súradnicami (napr. RGB), je celkom prirodzené použiť na meranie vzdialenosti medzi farbami euklidovskú vzdialenosť v 3D priestore. <br />
Lenže ukazuje sa, že vzhľadom na fyziológiu ľudského vnímania farieb nie je celkom vhodné merať to v priesotre RGB, tam to nekorešponduje s ľudskou skúsenosťou. <br />
Preto sa na tento účel používa farebný priestor [https://en.wikipedia.org/wiki/CIELAB_color_space CIE Lab] <br />
<br />
'''CIE ''L*a*b*''''' (CIELAB) je farebný priestor, ktorý zadefinovala CIE (International Commission on Illumination). Je to referenčný model, ktorý opisuje všetky ľudským okom viditeľné farby. Jeho tri súradnice reprezentujú intenzitu farby (''L*'' = 0 je čierna a ''L*'' = 100 je rozptýlené biele svetlo), jej polohu na medzi červeno/fialovou a zelenou (''a*'', záporné čísla pre zelenú, kladné pre fialovú) a jej polohu medzi žltou a modrou (''b*'', záporné čísla pre modrú, kladné pre žltú). <br />
<br />
<br />
'''Konverzia'''<br />
<br />
There is no single simple equation for this conversion; you would need to know the specific RGB primaries in question, expressed in some standard system such as (preferably) XYZ tristimulus values, along with the intended white point and transfer function(s) (“gamma” curves). From this information, you could calculate the correct XYZ values given any RGB code, and then it would be a (relatively) simple conversion from XYZ to Lab. But in many cases no RGB specification is provided, <br />
in which case many assume sRGB: [https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation sRGB - Wikipedia]. Using that transformation to CIE XYZ, then <br />
to CIE Lab: [https://en.wikipedia.org/wiki/Lab_color_space#Forward_transformation Lab color space - Wikipedia]<br />
<br />
Pre konverziu z jedného farebného modelu do iného sa používajú štandardizované CIE vzťahy. Neexistuje jednoduchý prevod medzi RGB a Lab priestormi, pretože ten prvý je závislý od zariadenia, ten druhý je ''device independent''. Preto sa používa medziprevod RGB -> sRGB -> XYZ -> Lab<br />
<br />
Prvý prevod je teda z RGB do priestoru XYZ:<br />
<br />
<br />
<math><br />
\begin{bmatrix}<br />
X_{D65}\\<br />
Y_{D65}\\<br />
Z_{D65}<br />
\end{bmatrix}<br />
=<br />
\begin{bmatrix}<br />
0.4124 & 0.3576 &0.1805 \\<br />
0.2126 & 0.7152 &0.0722 \\<br />
0.0193 & 0.1192 &0.9505<br />
\end{bmatrix}<br />
\begin{bmatrix}<br />
R_\mathrm{linear}\\ <br />
G_\mathrm{linear}\\ <br />
B_\mathrm{linear}\end{bmatrix}<br />
</math><br />
<br />
<!-- <br />
[[Súbor:ColorTransformationEq01.png]] <br />
[[Súbor:ColorTransformationEq02.png]]<br />
[[Súbor:ColorTransformationEq03.png]]<br />
[[Súbor:ColorTransformationEq04.png]]<br />
--><br />
<br />
Nasleduje prevod do Lab priestoru, <br />
<br />
<math>\begin{align}<br />
L^\star &= 116 \ f\!\left(\frac{Y}{Y_{\mathrm{n}}}\right) - 16\\<br />
a^\star &= 500 \left(f\!\left(\frac{X}{X_{\mathrm{n}}}\right) - f\!\left(\frac{Y}{Y_{\mathrm{n}}}\right)\right)\\<br />
b^\star &= 200 \left(f\!\left(\frac{Y}{Y_{\mathrm{n}}}\right) - f\!\left(\frac{Z}{Z_{\mathrm{n}}}\right)\right)<br />
\end{align}</math><br />
<br />
kde<br />
<br />
<math>\begin{align}<br />
f(t) &= \begin{cases}<br />
\sqrt[3]{t} & \text{if } t > \delta^3 \\<br />
\frac{t}{3 \delta^2} + \frac{4}{29} & \text{otherwise}<br />
\end{cases} \\<br />
\delta &= \frac{6}{29}<br />
\end{align}</math><br />
<br />
<br />
A kde ďalej ''X''<sub>n</sub>, ''Y''<sub>n</sub> a ''Z''<sub>n</sub> sú hodnoty CIE XYZ tristimulov pre referenčný biely bod, pričom index n znamená normalizovaný. <br />
Tieto hodnoty sú pre štandartné osvetlenie - Illuminant D65 s normalizáciou 1= ''Y'' = 100 nasledovné:<br />
<br />
<math>\begin{align}<br />
X_{\mathrm{n}}&=95.0489,\\<br />
Y_{\mathrm{n}}&=100,\\<br />
Z_{\mathrm{n}}&=108.8840<br />
\end{align}</math><br />
<br />
<br />
Tieto hodnoty závisia od osvetlenia, napríklad pre Illuminant D50 sú:<br />
<br />
<math>\begin{align}<br />
X_{\mathrm{n}}&=96.4212,\\<br />
Y_{\mathrm{n}}&=100,\\<br />
Z_{\mathrm{n}}&=82.5188<br />
\end{align}</math><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[MEMS inteligentné senzory a aktuátory#Cvi.C4.8Denia|Návrat na zoznam cvičení...]]<br />
<br />
[[Category:MEMS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15158MIPS Projekt2024-03-27T11:18:59Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="75"> Martin Bugár: ''Reglátor chladenia so snímačom teploty''<br />
<li value="71"> Gabriel Nagy: ''Tester obvodu 7493 (4-bitové počítadlo)''<br />
<li value="72"> Filip Viest: ''Klávesnica 2x3''<br />
<li value="10"> Peter Guľak: ''Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji''<br />
<li value="60"> Daniel Žula: ''7-segmentový displej na futbalové skóre''<br />
<li value="74"> Andrea Kuňáková: ''Autíčko na diaľkové ovládanie''<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15157MIPS Projekt2024-03-27T09:15:45Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="71"> Tester obvodu 7493 (4-bitové počítadlo)<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="72"> Filip Viest: ''Klávesnica 2x3''<br />
<li value="10"> Peter Guľak: ''Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji''<br />
<li value="60"> Daniel Žula: ''7-segmentový displej na futbalové skóre''<br />
<li value="74"> Andrea Kuňáková: ''Autíčko na diaľkové ovládanie''<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15156MIPS Projekt2024-03-25T13:28:28Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="72"> Klávesnica 2x3<br />
<li value="71"> Tester obvodu 7493 (4-bitové počítadlo)<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="10"> Peter Guľak: ''Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji''<br />
<li value="60"> Daniel Žula: ''7-segmentový displej na futbalové skóre''<br />
<li value="74"> Andrea Kuňáková: ''Autíčko na diaľkové ovládanie''<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15155MIPS Projekt2024-03-25T10:00:04Z<p>Balogh: /* Projekty MIPS 2024 */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="72"> Klávesnica 2x3<br />
<li value="71"> Tester obvodu 7493 (4-bitové počítadlo)<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="60"> Daniel Žula: ''7-segmentový displej na futbalové skóre''<br />
<li value="74"> Andrea Kuňáková: ''Autíčko na diaľkové ovládanie''<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15154MIPS Projekt2024-03-25T09:59:33Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="72"> Klávesnica 2x3<br />
<li value="71"> Tester obvodu 7493 (4-bitové počítadlo)<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="74"> Andrea Kuňáková: ''Autíčko na diaľkové ovládanie''<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15153MIPS Projekt2024-03-22T18:35:19Z<p>Balogh: /* Projekty MIPS 2024 */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="72"> Klávesnica 2x3<br />
<li value="71"> Tester obvodu 7493 (4-bitové počítadlo)<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="74"> Andrea Kuňáková: ''Autíčko na diaľkové ovládanie''<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15152MIPS Projekt2024-03-22T14:18:52Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="73"> Posuvný register 74595<br />
<li value="72"> Klávesnica 2x3<br />
<li value="71"> Tester obvodu 7493 (4-bitové počítadlo)<br />
<li value="70"> Tester obvodu 7400 (4xNAND)<br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15151MIPS Projekt2024-03-22T11:45:07Z<p>Balogh: /* Projekty MIPS 2024 */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<br />
<li value="69"> Peter Brosz a Daniel Diossy: ''Automatické autíčko''<br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15150MIPS Projekt2024-03-22T11:03:51Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="63"> Kateryna Buzko: ''Prijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)''<br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15149MIPS Projekt2024-03-21T18:16:02Z<p>Balogh: /* Projekty MIPS 2024 */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej [https://senzor.robotika.sk/mips/pdf/PDA54-11SRWA.pdf Kingbright PDA54-11SRWA]''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15148MIPS Projekt2024-03-21T13:54:54Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="44">Gabriel Nagy: ''[https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302]'' - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15147MIPS Projekt2024-03-21T08:50:35Z<p>Balogh: /* Projekty MIPS 2024 */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="64">Lea Lenka Ondrejková: ''14-segmentový LED displej''<br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15146MIPS Projekt2024-03-21T08:50:13Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15145MIPS Projekt2024-03-20T18:34:29Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="65">Kristián Pauliny: ''Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače).''<br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Mikropo%C4%8D%C3%ADta%C4%8Dov%C3%A9_syst%C3%A9my_(MIPS)&diff=15144Mikropočítačové systémy (MIPS)2024-03-20T07:18:27Z<p>Balogh: /* Cvičenia */</p>
<hr />
<div><div style="float:right">__TOC__</div><br />
<br />
'''Ročník:''' 2.Bc Mechatronika <BR><br />
'''Semester:''' letný <BR> <br />
'''Rozsah:''' 2-2 (z,s) <BR><br />
'''Prednášateľ:''' Ing. Štefan Chamraz,PhD. a Ing. Richard Balogh, PhD.<BR><br />
'''Odkaz na AIS''': B_MIPS - [https://is.stuba.sk/katalog/syllabus.pl?predmet=353564 Distribuované vnorené počítačové systémy]<br />
<br />
<br />
== Informácie a novinky ==<br />
<br />
* Na cvičeniach budeme používať komponenty v laboratóriu, ale ak chcete pracovať aj doma, v opise stavebnice [[MIPS Kit]] nájdete zoznam všetkých použitých komponentov. Ak ich nemáte, ale chcete pracovať aj doma, tak si ich môžete buď zapožičať od školy, alebo si môžete od firmy TechFun zakúpiť [https://techfun.sk/produkt/istrobot-kit-2023/ špeciálny kit], ktorý obsahuje všetky potrebné komponenty za cenu 32,-€ + poštovné.<BR><BR><br />
<br />
== Prednášky ==<br />
<br />
V stredu o 8:00 <br />
<br />
# '''Úvod.''' Architektúry procesorov, rozdiel mikroprocesor - mikropočítač, vstupy a výstupy.<BR>[https://senzor.robotika.sk/mips/pdf/01_prednaskaMIPS.pdf Slajdy z prednášky]<BR>Online: https://microchipdeveloper.com/8avr:ioports<br />
# Pamäťové priestory. Dokončenie I/O. Digitálne vtupy. Ochrana. Klávesnica. <BR>[https://senzor.robotika.sk/mips/pdf/02_prednaskaMIPS.pdf Slajdy z prednášky]<BR>On-line: https://microchipdeveloper.com/8avr:memory<br />
# Sériové komunikačné rozhranie I. - USART.<BR>[http://senzor.robotika.sk/mmp/prednaska07.pdf Slajdy z prednášky]<BR>------------------<BR><br />
# Zabudované počítadlá (čítače) a časovače<BR>[http://senzor.robotika.sk/mmp/prednaska04.pdf Slajdy z prednášky] + [http://senzor.robotika.sk/mmp/2013/prednaska04.pdf Text]<br />
# Doplnok k LCD. '''Prerušenia.''' <BR>[http://senzor.robotika.sk/mmp/prednaska05.pdf Slajdy z prednášky]<br />
# Meranie frekvencie. Počítadlá a časovače s prerušeniami.<BR>[http://senzor.robotika.sk/mmp/prednaska06.pdf Slajdy z prednášky]<br />
# Analógovo číslicový prevodník.<BR>[http://senzor.robotika.sk/mmp/prednaska08.pdf Slajdy z prednášky]<br />
# Zabudované počítadlá (čítače) a časovače II - PWM, využitie ako D/A prevodník. <BR>[http://senzor.robotika.sk/mmp/2013/prednaska05OBR.pdf Slajdy z prednášky] + [http://senzor.robotika.sk/mmp/2013/prednaska05.pdf Text]<br />
# Inteligentné periférie - LCD zobrazovač. <BR>[http://senzor.robotika.sk/mmp/prednaska02.pdf Slajdy z prednášky]<br />
# Návrh parametrov PWM signálu a spracovanie PWM signálu.<BR>[http://senzor.robotika.sk/mmp/2013/prednaska06.pdf Slajdy z prednášky], [http://senzor.robotika.sk/mmp/2013/prednaska06a.pdf + Článok], [http://senzor.robotika.sk/mmp/SMT160.pdf + SMT160 datasheet]<br />
# Zabudované periférne obvody: I2C zbernica.<BR>[http://senzor.robotika.sk/mmp/2013/prednaska09.pdf Text], [http://senzor.robotika.sk/mmp/2013/prednaska09OBR.pdf Slajdy z prednášky]<br />
# Obvody pripojiteľné na I2C. <BR> [http://senzor.robotika.sk/mmp/2013/prednaska10.pdf Slajdy z prednášky], [http://senzor.robotika.sk/mmp/2013/prednaska10RTC.pdf RTC - hodiny reálneho času].<br />
<FONT Color="grey"><BR><BR><BR></FONT><br />
<br />
== Cvičenia ==<br />
<br />
* [[MIPS Kit]] - opis komponentov na cvičenia<BR><BR><br />
<br />
# [[MIPS Úvodné cvičenie]]<br />
# [[Programovanie AVR v jazyku C]] -- LEDky a tlačítka<br />
# [[Vstupy a výstupy AVR]] -- oneskorenia a ošetrenie zákmitov<br />
# [[Sériové komunikačné rozhranie]] + [[Sériové rozhranie a Processing|Bonus pre pokročilých]]<br />
# '''Timer 1:''' [[Počítadlá a časovače AVR]], '''Timer 0:''' [[Generovanie tónov]] <br />
# [[Prerušenia]]<BR><BR><br />
# [[Číslicovo-analógový prevodník (DAC)]] - Šírkovo modulovaný signál PWM<br />
# [[A/D_prevodník|Analógovo-číslicový prevodník]]<br />
# [[LCD displej s radičom HD44780]] - inteligentné periférie <br />
# [[Meranie dĺžky impulzu 2]] -- s prerusenim, bez neho, meranie jednej periody, meranie poctu impulzov <br />
# [[Zbernica I2C]]<br />
# [[Riadenie sústavy 1. rádu]] alebo [[RC filter]]<br />
<br />
== Semestrálny projekt ==<br />
<br />
* '''[[MIPS Projekt]]'''<BR><BR><br />
<br />
== Podmienky absolvovania ==<br />
<br />
# Znalosť odprezentovanej problematiky<br />
# Získanie zápočtu z cvičení<br />
#* aktívne absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť)<br />
#* vypracovanie úloh z cvičení <br />
#* vypracovanie projektu - programu a dokumentácie k nemu<br />
# Získanie potrebného počtu bodov na skúške (min. 50% písomky)<br />
<br />
<br />
<br />
== Učitelia ==<br />
<br />
* Ing. Štefan Chamraz,PhD. (stefan.chamraz @ stuba.sk)<br />
* Ing. Richard Balogh, PhD. (richard.balogh @ elf.stuba.sk)<br />
<!--<br />
* Ing. Matej Rábek, PhD. (matej.rabek @ elf.stuba.sk)<br />
--><br />
<br />
== Literatúra a zdroje ==<br />
<br />
Katalógové listy použitých obvodov (dostupné na internete).<br />
Okrem toho je literatúra vo forme odkazov pri každom cvičení.<br />
<br />
'''Knihy'''<br />
* Elliot Williams: ''[https://www.oreilly.com/library/view/make-avr-programming/9781449356484/ Make: AVR Programming]''. Learning to Write Software for Hardware. O'Reilly Media, 250 pages, 2014.<br />
* Friedrich Plötzeneder, Andreas Plötzeneder: ''[https://www.scribd.com/book/282872103/Powerprojekte-mit-Arduino-und-C-Schluss-mit-dem-frustrierenden-Ausprobieren-von-Code-Schnipseln Powerprojekte mit Arduino und C]''. (German Edition) Franzis Verlag, 1. ed., 241 pages, 2013.<br />
* Michael Margolis, Brian Jepson, Nicholas Robert Weldin: ''[https://www.oreilly.com/library/view/arduino-cookbook-3rd/9781491903513/ Arduino Cookbook]''., 3rd Edition. O'Reilly Media, Inc., 800 pages, 2020.<br />
* Ondrej Závodský: ''[https://svetelektro.com/Download/avr_kniha.pdf Programujeme AVR v jazyku C].'' Vlastným nákladom. Dostupné online. 2012.<br />
<br />
<br />
<br />
'''Ostatné'''<br />
<br />
* Microchip on-line resources https://microchipdeveloper.com/8avr:start ku vsetkemu okolo AVR<br />
* Arduino UNO pinout diagram (svg, teda sa dá zväčšovať) https://upload.wikimedia.org/wikipedia/commons/c/c9/Pinout_of_ARDUINO_Board_and_ATMega328PU.svg<br />
* Arduino UNO V3 [http://marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.pdf Pinout diagram]<br />
* Arduino UNO [https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf Schematic diagram]<br />
* Arduino Nano http://marcusjenkins.com/wp-content/uploads/2014/06/nano.pdf<br />
* Datasheet obvodu <S>Atmel</S> Microchip [https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf ATmega328P]<br />
* Yahya Tawil: ''[https://www.allaboutcircuits.com/technical-articles/understanding-arduino-uno-hardware-design/ Understanding Arduino UNO Hardware Design]''. Technical Article, AllAboutCircuits.com. 2016<br />
<br />
'''Jazyk C pre vnorené systémy'''<br />
<br />
* Michael Barr: [https://barrgroup.com/embedded-systems/books/programming-embedded-systems Programming Embedded Systems in C and C++]. O'Reilly Media; 1999.<br />
* Michael Barr: [https://barrgroup.com/sites/default/files/barr_c_coding_standard_2018.pdf Embedded C Coding Standard]. Barr Group Inc. 2018<br />
* Jason Sachs: [https://www.embeddedrelated.com/showarticle/723.php Important Programming Concepts (Even on Embedded Systems) Part V: State Machines]. Embedded Related web, 2015.<br />
<br />
<br />
=== Utilitky a užitočnosti ===<br />
<br />
* AVR Calculator by Kevin Rosenberg http://radio-hobby.org/modules/tdmdownloads/singlefile.php?cid=8&lid=97 alebo http://web.archive.org/web/20130713104554/http://www.b9.com/elect/avr/kavrcalc/index.html<br />
* AVR Calc by Brandon Roberts https://sourceforge.net/projects/avrcalc/<br />
* AVRCalc by Jack Tidwell https://www.avrfreaks.net/forum/avrcalc-update<br />
* Obrázky by Alberto Piganti (phigixxx) https://github.com/bqlabs/ABC/tree/master/Images<br />
<br />
<br />
=== Obsadenie pinov Arduino UNO ===<br />
<br />
{| class="wikitable" <br />
|- style="font-weight:bold; text-align:center; font-family:Arial, Helvetica, sans-serif !important;;"<br />
! colspan="3" style="background-color:#96fffb;" | Port B<br />
! style="font-weight:normal; text-align:left;" | <br />
! colspan="3" style="background-color:#fcff2f;" | Port C<br />
! style="font-weight:normal; text-align:left;" | <br />
! colspan="3" style="background-color:#D58CE0;" | Port D<br />
|- style="font-family:Arial, Helvetica, sans-serif !important;;"<br />
| style="background-color:#CFF;" | D8<br />
| style="font-weight:bold; background-color:#96fffb;" | PB0<br />
| style="font-weight:bold;" | ICP1 / CLK0<br />
| <br />
| style="background-color:#fafad3;" | D14<br />
| style="vertical-align:middle; background-color:#fffe65;" | PC0<br />
| style="font-weight:bold;" | A0<br />
| <br />
| style="background-color:#ffccff;" | D0<br />
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD0<br />
| style="font-weight:bold;" | RxD<br />
|- style="font-family:Arial, Helvetica, sans-serif !important;;"<br />
| style="background-color:#CFF;" | D9<br />
| style="font-weight:bold; background-color:#96fffb;" | PB1<br />
| style="font-style:italic;" | lcd D0<br />
| <br />
| style="background-color:#fafad3;" | D15<br />
| style="vertical-align:middle; background-color:#fffe65;" | PC1<br />
| style="font-weight:bold;" | A1<br />
| <br />
| style="background-color:#ffccff;" | D1<br />
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD1<br />
| style="font-weight:bold;" | TxD<br />
|- style="font-family:Arial, Helvetica, sans-serif !important;;"<br />
| style="background-color:#CFF;" | D10<br />
| style="font-weight:bold; background-color:#96fffb;" | PB2<br />
| style="font-style:italic;" | lcd D1<br />
| <br />
| style="background-color:#fafad3;" | D16<br />
| style="vertical-align:middle; background-color:#fffe65;" | PC2<br />
| style="font-style:italic;" | sw03<br />
| <br />
| style="background-color:#ffccff;" | D2<br />
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD2<br />
| style="font-style:italic;" | lcd RS<br />
|- style="font-family:Arial, Helvetica, sans-serif !important;;"<br />
| style="background-color:#CFF;" | D11<br />
| style="font-weight:bold; background-color:#96fffb;" | PB3<br />
| style="font-style:italic;" | lcd D2<br />
| <br />
| style="background-color:#fafad3;" | D17<br />
| style="vertical-align:middle; background-color:#fffe65;" | PC3<br />
| style="font-style:italic;" | led02<br />
| <br />
| style="background-color:#ffccff;" | D3<br />
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD3<br />
| style="vertical-align:middle;" | lcd R/W (?)<br />
|- style="font-family:Arial, Helvetica, sans-serif !important;;"<br />
| style="background-color:#CFF;" | D12<br />
| style="font-weight:bold; background-color:#96fffb;" | PB4<br />
| style="font-style:italic;" | lcd D3<br />
| <br />
| style="background-color:#fafad3;" | D18<br />
| style="vertical-align:middle; background-color:#fffe65;" | PC4<br />
| style="font-weight:bold;" | SDA<br />
| <br />
| style="background-color:#ffccff;" | D4<br />
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD4<br />
| style="font-style:italic;" | lcd E<br />
|- style="font-family:Arial, Helvetica, sans-serif !important;;"<br />
| style="background-color:#CFF;" | D13<br />
| style="font-weight:bold; background-color:#96fffb;" | PB5<br />
| style="font-weight:bold;" | LED<br />
| <br />
| style="background-color:#fafad3;" | D19<br />
| style="vertical-align:middle; background-color:#fffe65;" | PC5<br />
| style="font-weight:bold;" | SCL<br />
| <br />
| style="background-color:#ffccff;" | D5<br />
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD5<br />
| style="font-weight:bold;" | T1 / PWM<br />
|-<br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;; background-color:#ffccff;" | D6<br />
| style="vertical-align:middle; font-weight:bold; font-family:Arial, Helvetica, sans-serif !important;; background-color:#d58ce0;" | PD6<br />
| style="font-style:italic; font-family:Arial, Helvetica, sans-serif !important;;" | sw01<br />
|-<br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;;" | <br />
| style="font-family:Arial, Helvetica, sans-serif !important;; background-color:#ffccff;" | D7<br />
| style="vertical-align:middle; font-weight:bold; font-family:Arial, Helvetica, sans-serif !important;; background-color:#d58ce0;" | PD7<br />
| style="font-style:italic; font-family:Arial, Helvetica, sans-serif !important;;" | sw02<br />
|}<br />
<br />
<br />
<br />
<br />
=== Predchodcovia predmetu ===<br />
<br />
* MMP [[Monolitické mikropočítače]] (1998-2010) pozri všetky stránky k predmetu [[:Category: MMP]]<br />
* DVPS - [[Distribuované vnorené počítačové systémy]] (2010-2014) pozri všetky stránky k predmetu [[:Category: DVPS]]<br />
* Všetky nové stránky k predmetu [[:Category: MIPS]]<br />
<br />
=== Poznamky a ToDo's ===<br />
<br />
* Ako funguje napájanie Arduina: https://www.programmingelectronics.com/power-arduino/<br />
* Podrobnosti o AD prevodniku a jeho testovanie <br />
** http://www.gammon.com.au/adc<br />
<br />
<br />
[[Category: AVR]][[Category: MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15143MIPS Projekt2024-03-18T20:24:16Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="65"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="67">Marián Sušina: ''Senzor teploty a vlhkosti SHT31''<br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15142MIPS Projekt2024-03-18T20:21:32Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="65"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="57">Jozef Csabi: ''Meranie vzdialenosti UZ snímačom HC-SR04''<br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_so_z%C3%A1znamom&diff=15141Datalogger so záznamom2024-03-18T18:41:49Z<p>Balogh: </p>
<hr />
<div><br />
<br />
<br />
S novým Extension balíkom, ktorý sa volá príhodne Datalogger, je možné namerané dáta zaznamenávať do flash pamäte mikropočítača, ktorá sa sprístupní po pripojení micro:bitu ako flash disk, na ktorom nájdeme namerané dáta ako .html súbor s ktorým potom vieme ďalej pracovať. <br />
<br />
Základné informácie nájdete aj tu:<br />
* [https://microbit.org/get-started/user-guide/data-logging/ Sprievodca záznamom dát]<br />
* [https://www.computingatschool.org.uk/resources/2022/october/datalogging-with-the-microbit Nejaké ďalšie informácie]<br />
* [https://senzor.robotika.sk/sensorwiki/index.php/Senzory_na_mikropo%C4%8D%C3%ADta%C4%8Di_micro:bit Základné info o senzoroch na micro:bite]<br />
<br />
<br />
<gallery heights=400px mode="packed"> <!-- slideshow? --><br />
Image:microbit-Datalogger.png|''Program v blokovom jazyku''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
let logging = false<br />
datalogger.setColumnTitles("ms","x")<br />
<br />
<br />
<br />
loops.everyInterval(100, function () <br />
{<br />
if (logging) <br />
{<br />
datalogger.log(<br />
datalogger.createCV("ms", control.millis()),<br />
datalogger.createCV("x", input.acceleration(Dimension.X))<br />
)<br />
}<br />
})<br />
<br />
<br />
input.onButtonPressed(Button.A, function () {<br />
logging = !(logging)<br />
if (logging) {<br />
basic.showIcon(IconNames.Yes)<br />
} else {<br />
basic.clearScreen()<br />
}<br />
})<br />
<br />
<br />
<br />
<br />
<br />
datalogger.onLogFull(function () <br />
{<br />
logging = false<br />
basic.showIcon(IconNames.No)<br />
})<br />
<br />
<br />
<br />
<br />
input.onButtonPressed(Button.AB, function () {<br />
if (input.logoIsPressed()) {<br />
basic.showIcon(IconNames.Angry)<br />
datalogger.deleteLog()<br />
logging = false<br />
datalogger.setColumnTitles(<br />
"ms",<br />
"x"<br />
)<br />
}<br />
})<br />
<br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
<br />
logging = False<br />
datalogger.set_column_titles("ms", "x")<br />
<br />
<br />
def on_every_interval():<br />
if logging:<br />
datalogger.log(datalogger.create_cv("ms", control.millis()),<br />
datalogger.create_cv("x", input.acceleration(Dimension.X)))<br />
loops.every_interval(100, on_every_interval)<br />
<br />
<br />
<br />
<br />
def on_button_pressed_a():<br />
global logging<br />
logging = not (logging)<br />
if logging:<br />
basic.show_icon(IconNames.YES)<br />
else:<br />
basic.clear_screen()<br />
input.on_button_pressed(Button.A, on_button_pressed_a)<br />
<br />
<br />
<br />
<br />
def on_log_full():<br />
global logging<br />
logging = False<br />
basic.show_icon(IconNames.NO)<br />
datalogger.on_log_full(on_log_full)<br />
<br />
<br />
<br />
<br />
def on_button_pressed_ab():<br />
global logging<br />
if input.logo_is_pressed():<br />
basic.show_icon(IconNames.ANGRY)<br />
datalogger.delete_log()<br />
logging = False<br />
datalogger.set_column_titles("ms", "x")<br />
input.on_button_pressed(Button.AB, on_button_pressed_ab)<br />
<br />
<br />
<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
</source></tab><br />
</tabs><br />
<br />
<br />
Po skončení merania treba micro:bit znova pripojiť k počítaču, jeho obsah bude vyzerať asi takto - pozri: https://senzor.robotika.sk/zp/microbit/<br />
<br />
Na tomto "flash disku" si treba otvoriť súbor [https://senzor.robotika.sk/zp/microbit/MY_DATA.HTM MY_DATA.HTM] a uvidíte nielen tabuľku s nameranými dátami, ale aj jednoduchý graf. Odtiaľto sa dajú data stiahnuť vo formáte .csv (comma separated values) vhodnom pre ďalšie spracovanie napr. v Matlabe, Exceli alebo Pythone.<br />
<br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_so_z%C3%A1znamom&diff=15140Datalogger so záznamom2024-03-18T18:28:11Z<p>Balogh: </p>
<hr />
<div><br />
<br />
<br />
S novým Extension balíkom, ktorý sa volá príhodne Datalogger, je možné namerané dáta zaznamenávať do flash pamäte mikropočítača, ktorá sa sprístupní po pripojení micro:bitu ako flash disk, na ktorom nájdeme namerané dáta ako .html súbor s ktorým potom vieme ďalej pracovať. <br />
<br />
Základné informácie nájdete aj tu:<br />
* [https://microbit.org/get-started/user-guide/data-logging/ Sprievodca záznamom dát]<br />
* [https://www.computingatschool.org.uk/resources/2022/october/datalogging-with-the-microbit Nejaké ďalšie informácie]<br />
* [https://senzor.robotika.sk/sensorwiki/index.php/Senzory_na_mikropo%C4%8D%C3%ADta%C4%8Di_micro:bit Základné info o senzoroch na micro:bite]<br />
<br />
<br />
[[Súbor:microbit-Datalogger.png]]<br />
<gallery heights=400px mode="packed"> <!-- slideshow? --><br />
Image:microbit-Datalogger.png|''Program v blokovom jazyku''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
let logging = false<br />
datalogger.setColumnTitles("ms","x")<br />
<br />
<br />
<br />
loops.everyInterval(100, function () <br />
{<br />
if (logging) <br />
{<br />
datalogger.log(<br />
datalogger.createCV("ms", control.millis()),<br />
datalogger.createCV("x", input.acceleration(Dimension.X))<br />
)<br />
}<br />
})<br />
<br />
<br />
input.onButtonPressed(Button.A, function () {<br />
logging = !(logging)<br />
if (logging) {<br />
basic.showIcon(IconNames.Yes)<br />
} else {<br />
basic.clearScreen()<br />
}<br />
})<br />
<br />
<br />
<br />
<br />
<br />
datalogger.onLogFull(function () <br />
{<br />
logging = false<br />
basic.showIcon(IconNames.No)<br />
})<br />
<br />
<br />
<br />
<br />
input.onButtonPressed(Button.AB, function () {<br />
if (input.logoIsPressed()) {<br />
basic.showIcon(IconNames.Angry)<br />
datalogger.deleteLog()<br />
logging = false<br />
datalogger.setColumnTitles(<br />
"ms",<br />
"x"<br />
)<br />
}<br />
})<br />
<br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
<br />
logging = False<br />
datalogger.set_column_titles("ms", "x")<br />
<br />
<br />
def on_every_interval():<br />
if logging:<br />
datalogger.log(datalogger.create_cv("ms", control.millis()),<br />
datalogger.create_cv("x", input.acceleration(Dimension.X)))<br />
loops.every_interval(100, on_every_interval)<br />
<br />
<br />
<br />
<br />
def on_button_pressed_a():<br />
global logging<br />
logging = not (logging)<br />
if logging:<br />
basic.show_icon(IconNames.YES)<br />
else:<br />
basic.clear_screen()<br />
input.on_button_pressed(Button.A, on_button_pressed_a)<br />
<br />
<br />
<br />
<br />
def on_log_full():<br />
global logging<br />
logging = False<br />
basic.show_icon(IconNames.NO)<br />
datalogger.on_log_full(on_log_full)<br />
<br />
<br />
<br />
<br />
def on_button_pressed_ab():<br />
global logging<br />
if input.logo_is_pressed():<br />
basic.show_icon(IconNames.ANGRY)<br />
datalogger.delete_log()<br />
logging = False<br />
datalogger.set_column_titles("ms", "x")<br />
input.on_button_pressed(Button.AB, on_button_pressed_ab)<br />
<br />
<br />
<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
</source></tab><br />
</tabs><br />
<br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Datalogger.png&diff=15139Súbor:Microbit-Datalogger.png2024-03-18T18:24:57Z<p>Balogh: </p>
<hr />
<div></div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_so_z%C3%A1znamom&diff=15138Datalogger so záznamom2024-03-18T18:19:00Z<p>Balogh: </p>
<hr />
<div><br />
<br />
<br />
S novým Extension balíkom, ktorý sa volá príhodne Datalogger, je možné namerané dáta zaznamenávať do flash pamäte mikropočítača, ktorá sa sprístupní po pripojení micro:bitu ako flash disk, na ktorom nájdeme namerané dáta ako .html súbor s ktorým potom vieme ďalej pracovať. <br />
<br />
Základné informácie nájdete aj tu:<br />
* [https://microbit.org/get-started/user-guide/data-logging/ Sprievodca záznamom dát]<br />
* [https://www.computingatschool.org.uk/resources/2022/october/datalogging-with-the-microbit Nejaké ďalšie informácie]<br />
* [https://senzor.robotika.sk/sensorwiki/index.php/Senzory_na_mikropo%C4%8D%C3%ADta%C4%8Di_micro:bit Základné info o senzoroch na micro:bite]<br />
<br />
<br />
[[Súbor:microbit-Datalogger.png]]<br />
<gallery heights=400px mode="packed"> <!-- slideshow? --><br />
Image:microbit-Datalogger.png|''Program v blokovom jazyku''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
</source></tab><br />
</tabs><br />
<br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_so_z%C3%A1znamom&diff=15137Datalogger so záznamom2024-03-18T18:16:02Z<p>Balogh: </p>
<hr />
<div><br />
<br />
<br />
S novým Extension balíkom, ktorý sa volá príhodne Datalogger, je možné namerané dáta zaznamenávať do flash pamäte mikropočítača, ktorá sa sprístupní po pripojení micro:bitu ako flash disk, na ktorom nájdeme namerané dáta ako .html súbor s ktorým potom vieme ďalej pracovať. <br />
<br />
Základné informácie nájdete aj tu:<br />
* https://microbit.org/get-started/user-guide/data-logging/<br />
* https://www.computingatschool.org.uk/resources/2022/october/datalogging-with-the-microbit<br />
* https://microbit.org/get-started/user-guide/data-logging/<br />
* https://senzor.robotika.sk/sensorwiki/index.php/Senzory_na_mikropo%C4%8D%C3%ADta%C4%8Di_micro:bit<br />
<br />
<br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-WinkSmiley.png|''Program v blokovom jazyku''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
</source></tab><br />
</tabs><br />
<br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_cez_r%C3%A1diov%C3%BD_prenos&diff=15136Datalogger cez rádiový prenos2024-03-18T17:53:14Z<p>Balogh: </p>
<hr />
<div>Toto je základný príklad na bezdrôtový prenos dát. Jeden micro:bit je napájaný z batérie a vykonáva samotné merania, tie pošle cez rádiový kanál druhému micro:bitu, ktorý je pripojený k počítaču a všetky dáta, ktoré prijme hneď prepošle po sériovej linke (resp. USB) do počítača, kde ich môžeme sledovať buď priamo v MakeCode prostredí, alebo inom terminálovom programe. <br />
<br />
<br />
<gallery heights=300px mode="packed"> <!-- slideshow? --><br />
Image:microbit-serialRadioNumberTx.png|''Program v blokovom jazyku pre vysielač''<br />
Image:microbit-serialRadioNumberRx.png|''a pre prijímač''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
radio.onReceivedNumber(function on_received_number(receivedNumber: number) {<br />
serial.writeLine("" + ("" + receivedNumber))<br />
})<br />
<br />
let AccX = 0<br />
radio.setGroup(1)<br />
<br />
basic.forever(function on_forever() {<br />
radio.sendString("" + ("" + control.millis()) + "," + ("" + AccX))<br />
led.toggle(2, 2)<br />
basic.pause(100)<br />
})<br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
def on_received_number(receivedNumber):<br />
serial.write_line("" + str((receivedNumber)))<br />
radio.on_received_number(on_received_number)<br />
<br />
AccX = 0<br />
radio.set_group(1)<br />
<br />
def on_forever():<br />
global AccX<br />
AccX = input.acceleration(Dimension.X)<br />
radio.send_number(AccX)<br />
basic.pause(100)<br />
basic.forever(on_forever)<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
<br />
ToDo<br />
<br />
</source></tab><br />
</tabs><br />
<br />
<br />
Nasleduje drobná modifikácia, kde nebudeme posielať číslo, ale celý reťazec s viacerými meraniami, v tomto prípade oddelenými čiarkou. <br />
<br />
<br />
<gallery heights=300px mode="packed"> <!-- slideshow? --><br />
Image:microbit-serialRadioStringTx.png|''Program v blokovom jazyku pre vysielač''<br />
Image:microbit-serialRadioStringRx.png|''a pre prijímač''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
radio.onReceivedString(function on_received_string(receivedString: string) {<br />
serial.writeLine(receivedString)<br />
})<br />
<br />
let AccX = 0<br />
radio.setGroup(1)<br />
<br />
basic.forever(function on_forever() {<br />
<br />
AccX = input.acceleration(Dimension.X)<br />
radio.sendNumber(AccX)<br />
basic.pause(100)<br />
})<br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
<br />
def on_received_number(receivedNumber):<br />
serial.write_line("" + str((receivedNumber)))<br />
radio.on_received_number(on_received_number)<br />
<br />
def on_received_string(receivedString):<br />
serial.write_line(receivedString)<br />
radio.on_received_string(on_received_string)<br />
<br />
AccX = 0<br />
radio.set_group(1)<br />
<br />
def on_forever():<br />
radio.send_string("" + str(control.millis()) + "," + str(AccX))<br />
led.toggle(2, 2)<br />
basic.pause(100)<br />
basic.forever(on_forever)<br />
<br />
def on_forever2():<br />
global AccX<br />
AccX = input.acceleration(Dimension.X)<br />
radio.send_number(AccX)<br />
basic.pause(100)<br />
basic.forever(on_forever2)<br />
<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
<br />
ToDo<br />
<br />
</source></tab><br />
</tabs><br />
<br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-serialRadioStringRx.png&diff=15135Súbor:Microbit-serialRadioStringRx.png2024-03-18T17:51:36Z<p>Balogh: </p>
<hr />
<div></div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-serialRadioStringTx.png&diff=15134Súbor:Microbit-serialRadioStringTx.png2024-03-18T17:51:26Z<p>Balogh: </p>
<hr />
<div></div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-serialRadioNumberRx.png&diff=15133Súbor:Microbit-serialRadioNumberRx.png2024-03-18T17:51:12Z<p>Balogh: </p>
<hr />
<div></div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-serialRadioNumberTx.png&diff=15132Súbor:Microbit-serialRadioNumberTx.png2024-03-18T17:51:01Z<p>Balogh: </p>
<hr />
<div></div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_cez_r%C3%A1diov%C3%BD_prenos&diff=15131Datalogger cez rádiový prenos2024-03-18T17:50:24Z<p>Balogh: </p>
<hr />
<div>Toto je základný príklad na bezdrôtový prenos dát. Jeden micro:bit je napájaný z batérie a vykonáva samotné merania, tie pošle cez rádiový kanál druhému micro:bitu, ktorý je pripojený k počítaču a všetky dáta, ktoré prijme hneď prepošle po sériovej linke (resp. USB) do počítača, kde ich môžeme sledovať buď priamo v MakeCode prostredí, alebo inom terminálovom programe. <br />
<br />
[[Súbor:microbit-serialRadioNumberTx.png]][[Súbor:microbit-serialRadioNumberRx.png]]<br />
<br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-serialRadioNumberTx.png|''Program v blokovom jazyku pre vysielač''<br />
Image:microbit-serialRadioNumberRx.png|''a pre prijímač''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
def on_received_number(receivedNumber):<br />
serial.write_line("" + str((receivedNumber)))<br />
radio.on_received_number(on_received_number)<br />
<br />
AccX = 0<br />
radio.set_group(1)<br />
<br />
def on_forever():<br />
global AccX<br />
AccX = input.acceleration(Dimension.X)<br />
radio.send_number(AccX)<br />
basic.pause(100)<br />
basic.forever(on_forever)<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
<br />
ToDo<br />
<br />
</source></tab><br />
</tabs><br />
<br />
<br />
Nasleduje drobná modifikácia, kde nebudeme posielať číslo, ale celý reťazec s viacerými meraniami, v tomto prípade oddelenými čiarkou. <br />
<br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-serialRadioStringTx.png|''Program v blokovom jazyku pre vysielač''<br />
Image:microbit-serialRadioStringRx.png|''a pre prijímač''<br />
</gallery><br />
<br />
[[Súbor:microbit-serialRadioStringTx.png]]<br />
[[Súbor:microbit-serialRadioStringRx.png]]<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
<br />
def on_received_number(receivedNumber):<br />
serial.write_line("" + str((receivedNumber)))<br />
radio.on_received_number(on_received_number)<br />
<br />
def on_received_string(receivedString):<br />
serial.write_line(receivedString)<br />
radio.on_received_string(on_received_string)<br />
<br />
AccX = 0<br />
radio.set_group(1)<br />
<br />
def on_forever():<br />
radio.send_string("" + str(control.millis()) + "," + str(AccX))<br />
led.toggle(2, 2)<br />
basic.pause(100)<br />
basic.forever(on_forever)<br />
<br />
def on_forever2():<br />
global AccX<br />
AccX = input.acceleration(Dimension.X)<br />
radio.send_number(AccX)<br />
basic.pause(100)<br />
basic.forever(on_forever2)<br />
<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
<br />
ToDo<br />
<br />
</source></tab><br />
</tabs><br />
<br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_cez_r%C3%A1diov%C3%BD_prenos&diff=15130Datalogger cez rádiový prenos2024-03-18T17:48:11Z<p>Balogh: </p>
<hr />
<div>Toto je základný príklad na bezdrôtový prenos dát. Jeden micro:bit je napájaný z batérie a vykonáva samotné merania, tie pošle cez rádiový kanál druhému micro:bitu, ktorý je pripojený k počítaču a všetky dáta, ktoré prijme hneď prepošle po sériovej linke (resp. USB) do počítača, kde ich môžeme sledovať buď priamo v MakeCode prostredí, alebo inom terminálovom programe. <br />
<br />
<br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-serialRadioNumberTx.png|''Program v blokovom jazyku pre vysielač''<br />
Image:microbit-serialRadioNumberRx|''a pre prijímač''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
<br />
ToDo<br />
<br />
</source></tab><br />
</tabs><br />
<br />
<br />
Nasleduje drobná modifikácia, kde nebudeme posielať číslo, ale celý reťazec s viacerými meraniami, v tomto prípade oddelenými čiarkou. <br />
<br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-serialRadioStringTx.png|''Program v blokovom jazyku pre vysielač''<br />
Image:microbit-serialRadioStringRx|''a pre prijímač''<br />
</gallery><br />
<br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
<br />
ToDo<br />
<br />
</source></tab><br />
</tabs><br />
<br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_so_z%C3%A1znamom&diff=15129Datalogger so záznamom2024-03-18T17:41:08Z<p>Balogh: Vytvorená stránka „Žmurkajúci smajlík je jednoduchá animácia, v ktorej sa striedajú dva smajlíky - jeden normálny a jeden so zhasnutým očkom. Je to zároveň príklad na vytvoren…“</p>
<hr />
<div>Žmurkajúci smajlík je jednoduchá animácia, v ktorej sa striedajú dva smajlíky - jeden normálny a jeden so zhasnutým očkom. Je to zároveň príklad na vytvorenie vlastného obrázku, pretože ten jednooký sa medzi predpripravenými obrázkami nenachádza. <br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-WinkSmiley.png|''Program v blokovom jazyku''<br />
Image:microbit-WinkSmileyRun.png|''a jeho funkcia''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
basic.forever(function () {<br />
basic.showIcon(IconNames.Happy)<br />
basic.pause(100)<br />
basic.showLeds(`<br />
. . . . .<br />
. # . . .<br />
. . . . .<br />
# . . . #<br />
. # # # .<br />
`)<br />
basic.pause(100)<br />
})<br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
def on_forever():<br />
basic.show_icon(IconNames.HAPPY)<br />
basic.pause(500)<br />
basic.show_leds("""<br />
. . . . .<br />
. # . . .<br />
. . . . .<br />
# . . . #<br />
. # # # .<br />
""")<br />
basic.pause(100)<br />
<br />
basic.forever(on_forever)<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
from microbit import *<br />
<br />
while True:<br />
display.show(Image.HAPPY) <br />
sleep(1000)<br />
display.show(Image('00000:'<br />
'09000:'<br />
'00000:'<br />
'90009:'<br />
'09990'))<br />
sleep(200)<br />
<br />
</source></tab><br />
<tab name="Arduino C++"><syntaxhighlight lang=c style="background: Cornsilk"><br />
#include <Adafruit_Microbit.h><br />
<br />
Adafruit_Microbit_Matrix microbit;<br />
<br />
const uint8_t SMILE_1[] =<br />
{ B00000,<br />
B01010,<br />
B00000,<br />
B10001,<br />
B01110,<br />
};<br />
<br />
const uint8_t SMILE_2[] =<br />
{ B00000,<br />
B01000,<br />
B00000,<br />
B10001,<br />
B01110,<br />
};<br />
<br />
void setup() {<br />
microbit.begin();<br />
}<br />
<br />
void loop() {<br />
microbit.show(SMILE_1);<br />
delay(1000);<br />
microbit.show(SMILE_2);<br />
delay(200);<br />
}</syntaxhighlight></tab><br />
<tab name="mBED C++"><syntaxhighlight lang=c style="background: Cornsilk"><br />
#include "MicroBit.h"<br />
<br />
MicroBit uBit;<br />
<br />
MicroBitImage SMILEY1("0,1,0,1,0 \n"<br />
"0,1,0,1,0 \n"<br />
"0,0,0,0,0 \n"<br />
"1,0,0,0,1 \n"<br />
"0,1,1,1,0 \n");<br />
<br />
MicroBitImage SMILEY2("0,0,0,1,0 \n"<br />
"0,0,0,1,0 \n"<br />
"0,0,0,0,0 \n"<br />
"1,0,0,0,1 \n"<br />
"0,1,1,1,0 \n");<br />
<br />
int main()<br />
{<br />
uBit.init(); // setup<br />
<br />
while(1) // loop<br />
{<br />
uBit.display.print(SMILEY1);<br />
uBit.sleep(1000);<br />
uBit.display.print(SMILEY2);<br />
uBit.sleep(200); <br />
}<br />
<br />
}</syntaxhighlight></tab><br />
</tabs><br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Datalogger_cez_r%C3%A1diov%C3%BD_prenos&diff=15128Datalogger cez rádiový prenos2024-03-18T17:40:59Z<p>Balogh: Vytvorená stránka „Žmurkajúci smajlík je jednoduchá animácia, v ktorej sa striedajú dva smajlíky - jeden normálny a jeden so zhasnutým očkom. Je to zároveň príklad na vytvoren…“</p>
<hr />
<div>Žmurkajúci smajlík je jednoduchá animácia, v ktorej sa striedajú dva smajlíky - jeden normálny a jeden so zhasnutým očkom. Je to zároveň príklad na vytvorenie vlastného obrázku, pretože ten jednooký sa medzi predpripravenými obrázkami nenachádza. <br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-WinkSmiley.png|''Program v blokovom jazyku''<br />
Image:microbit-WinkSmileyRun.png|''a jeho funkcia''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
basic.forever(function () {<br />
basic.showIcon(IconNames.Happy)<br />
basic.pause(100)<br />
basic.showLeds(`<br />
. . . . .<br />
. # . . .<br />
. . . . .<br />
# . . . #<br />
. # # # .<br />
`)<br />
basic.pause(100)<br />
})<br />
<br />
</source></tab><br />
<tab name="MS Python"><source lang="python" style="background: LightBlue;"><br />
def on_forever():<br />
basic.show_icon(IconNames.HAPPY)<br />
basic.pause(500)<br />
basic.show_leds("""<br />
. . . . .<br />
. # . . .<br />
. . . . .<br />
# . . . #<br />
. # # # .<br />
""")<br />
basic.pause(100)<br />
<br />
basic.forever(on_forever)<br />
<br />
</source></tab><br />
<tab name="uPython"><source lang="python" style="background: LightBlue;"><br />
from microbit import *<br />
<br />
while True:<br />
display.show(Image.HAPPY) <br />
sleep(1000)<br />
display.show(Image('00000:'<br />
'09000:'<br />
'00000:'<br />
'90009:'<br />
'09990'))<br />
sleep(200)<br />
<br />
</source></tab><br />
<tab name="Arduino C++"><syntaxhighlight lang=c style="background: Cornsilk"><br />
#include <Adafruit_Microbit.h><br />
<br />
Adafruit_Microbit_Matrix microbit;<br />
<br />
const uint8_t SMILE_1[] =<br />
{ B00000,<br />
B01010,<br />
B00000,<br />
B10001,<br />
B01110,<br />
};<br />
<br />
const uint8_t SMILE_2[] =<br />
{ B00000,<br />
B01000,<br />
B00000,<br />
B10001,<br />
B01110,<br />
};<br />
<br />
void setup() {<br />
microbit.begin();<br />
}<br />
<br />
void loop() {<br />
microbit.show(SMILE_1);<br />
delay(1000);<br />
microbit.show(SMILE_2);<br />
delay(200);<br />
}</syntaxhighlight></tab><br />
<tab name="mBED C++"><syntaxhighlight lang=c style="background: Cornsilk"><br />
#include "MicroBit.h"<br />
<br />
MicroBit uBit;<br />
<br />
MicroBitImage SMILEY1("0,1,0,1,0 \n"<br />
"0,1,0,1,0 \n"<br />
"0,0,0,0,0 \n"<br />
"1,0,0,0,1 \n"<br />
"0,1,1,1,0 \n");<br />
<br />
MicroBitImage SMILEY2("0,0,0,1,0 \n"<br />
"0,0,0,1,0 \n"<br />
"0,0,0,0,0 \n"<br />
"1,0,0,0,1 \n"<br />
"0,1,1,1,0 \n");<br />
<br />
int main()<br />
{<br />
uBit.init(); // setup<br />
<br />
while(1) // loop<br />
{<br />
uBit.display.print(SMILEY1);<br />
uBit.sleep(1000);<br />
uBit.display.print(SMILEY2);<br />
uBit.sleep(200); <br />
}<br />
<br />
}</syntaxhighlight></tab><br />
</tabs><br />
<br />
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
[[Category:Príklady micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Kurz_micro:bit&diff=15127Kurz micro:bit2024-03-18T17:40:32Z<p>Balogh: /* Zbierka príkladov */</p>
<hr />
<div>[[Súbor:MikroBitKolaz.jpg|thumb|center|600px|[https://makecode.microbit.org/projects Pozrite sa, čo všetko sa dá robiť s mikrobitmi...] ]]<br />
<br />
<!--<br />
Obrázky projektov:<br />
<br />
Kvet: https://www.kitronik.co.uk/5619-bbc-microbit-with-mipower-board-and-cable.html<br />
Chlapec http://www.bbc.com/news/technology-35824446<br />
Lego http://www.castlerock.leics.sch.uk/gallery/?pid=6&gcatid=3&albumid=19<br />
<br />
Ovocie http://microbitgadgets.co.uk/microbit-projects/microbit-music/fruit-keyboard-project<br />
Komunikacia http://senzor.robotika.sk/sensorwiki/index.php/Komunik%C3%A1cia_a_micro:bit<br />
Labyrint https://seelio.com/w/2fqv/3d-printing-project-5-designing-for-the-bbc-microbit-initiative<br />
<br />
--><br />
<br />
<br />
== Obsah ==<br />
<br />
# Čo je to physical computing? Interaktivita v umení, priemysle, vzdelávaní.<br />
# Zoznámte sa s BBC micro:bit - Tour de Board.<br />
## Displej a tlačidlá<br />
## Napájanie a konektory<br />
## Senzory<br />
## Komunikačné možnosti<br />
# Začíname. Prvý program.<br />
# Možnosti programovania: Microsoft Blocks, Javascript, Python, C++<br />
# Vstupy a výstupy<br />
## Displej, LED diódy<br />
## Tlačidlá, jednoduché senzory<br />
## Externé zariadenia<br />
# Senzory<br />
## Snímač tlaku<br />
## Snímač zrýchlenia<br />
## Kompas<br />
## Snímač teploty<br />
## Snímač osvetlenia<br />
# Komunikácia<br />
## Sériová linka a USB<br />
## Rádio<br />
## Bluetooth<br />
# Vlastný projekt<br />
<br />
__TOC__<br />
<br />
<br />
<br />
Toto je zatial len priebezne robena zbierka prikladov<br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit01.png|''Prvý program...''<br />
Image:microbit01Run.png|''...bude vyzerať v simulátore takto.''<br />
</gallery><br />
<br />
<br />
<tabs><br />
<tab name="1: Javascript"><source lang="javascript"><br />
<br />
basic.showIcon(IconNames.Heart)<br />
<br />
</source></tab><br />
<tab name="1: Python"><source lang="python" style="background: LightBlue;"><br />
<br />
from microbit import *<br />
<br />
display.show(Image.HEART)<br />
<br />
</source></tab><br />
<tab name="1: C++"><syntaxhighlight lang=c style="background: Cornsilk"><br />
#include "MicroBit.h"<br />
<br />
MicroBit uBit;<br />
MicroBitImage Heart("0,1,0,1,0\n<br />
1,0,1,0,1\n<br />
0,1,0,1,0\n<br />
1,0,1,0,1\n<br />
0,1,0,1,0\n"); // 5x5 image <br />
<br />
int main()<br />
{<br />
uBit.init();<br />
uBit.display.print(Heart);<br />
release_fiber();<br />
}<br />
</syntaxhighlight></tab><br />
</tabs><br />
<br />
=='''Zbierka príkladov''' ==<br />
<br />
<br />
# [[Žmurkajúci smajlík]]<br />
# [[Rozličné výpisy]]<br />
# [[Visačka na diskotéku]]<br />
# [[Počítadlo návštevníkov]]<br />
# [[Kuchynské minútky]]<br />
<br />
<br />
Pre pokročilých<br />
<br />
# [[Datalogger cez rádiový prenos]]<br />
# [[Datalogger so záznamom]]<br />
<br />
<br />
'''Robotika'''<br />
<br />
# [[Kitronik :MOVE mini MK2]]<br />
# [[DF Robot Maqueen Lite]]<br />
# [[Elecfreaks_ring:bit_Car]]<br />
# [[Elecfreaks wukong board]]<br />
<br />
<!-- **************************************************************************** --><br />
<br />
<br />
<!-- **************************************************************************** --><br />
<br />
[[Súbor:microbit-XXX.png]][[Súbor:microbit-XXXRun.png]]<br />
<br />
<gallery heights=200px mode="packed"> <!-- slideshow? --><br />
Image:microbit-XXX.png|''Prvý program...''<br />
Image:microbit-XXXRun.png|''...bude vyzerať v simulátore takto.''<br />
</gallery><br />
<br />
Prazdny <br />
<br />
<tabs><br />
<tab name="Javascript"><source lang="javascript"><br />
<br />
<br />
</source></tab><br />
<tab name="Python"><source lang="python" style="background: LightBlue;"><br />
<br />
# ******* <br />
<br />
<br />
</source></tab><br />
<tab name="Arduino C++"><syntaxhighlight lang=c style="background: Cornsilk"><br />
<br />
/* */ <br />
<br />
</syntaxhighlight></tab><br />
</tabs><br />
<br />
<tab name="mBED C++"><syntaxhighlight lang=c style="background: Cornsilk"><br />
<br />
/* */ <br />
</syntaxhighlight></tab><br />
</tabs><br />
<br />
<br />
<br />
👉 Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]<br />
<br />
<br />
<br />
[[Category:micro:bit]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Preru%C5%A1enia&diff=15126Prerušenia2024-03-18T08:03:28Z<p>Balogh: </p>
<hr />
<div><br />
<br />
=== Prerušenia v AVR-GCC ===<br />
<br />
Kompilátor AVR-GCC má obsluhu prerušení vyriešenú tak, že tabuľka s vektormi jednotlivých prerušení ukazuje na obslužné rutiny s preddefinovanými názvami. Pri výskyte niektorého z povolených prerušení sa vykoná rutina so zodpovedajúcim názvom.<br />
<br />
Vo vašom kóde použijete obslužné funkcie pre prerušenie napr. takto (obsluha prerušenia z AD prevodníka):<br />
<source lang="c"><br />
#include <avr/interrupt.h><br />
ISR(ADC_vect)<br />
{<br />
// user code here<br />
} <br />
</source><br />
<br />
Takáto obsluha prerušenia sa potom spustí so globálnym zákazom prerušení (jednoúrovňové), ktoré sa po skončení prípadne zasa obnovia. Obsluha sa skončí špeciálnou inštrukciiou <TT>RETI</TT>, preto sa nedá zavolať z programu ako bežná funkcia.<br />
<br />
Niektoré názvy vektorov:<br />
<br />
ADC Conversion Complete ADC_vect<br />
External Interrupt Request 0 INT0_vect<br />
External Interrupt Request 1 INT1_vect<br />
External Interrupt Request 2 INT2_vect<br />
Pin Change Group 0 Interrupt PCINT0_vect<br />
Pin Change Group 1 Interrupt PCINT1_vect<br />
Pin Change Group 2 Interrupt PCINT2_vect<br />
Timer/Counter1 Overflow TIMER1_OVF_vect<br />
USART, Rx Complete USART_RXC_vect<br />
USART, Tx Complete USART_TXC_vect<br />
<br />
Ak potrebujete prerušenia povoliť, resp. zakázať, máte k dispozícii funkcie<br />
<source lang="c"><br />
void sei(void); // Enables interrupts by setting the global interrupt mask. <br />
void cli(void); // Disables all interrupts by clearing the global interrupt mask.<br />
</source><br />
Obe funkcie sa preložia do jedinej asm inštrukcie, bez zbytočného pridaného kódu.<br />
<br />
== Prerušenie pri zmene stavu niektorého pinu procesora ==<br />
<br />
<!-- Prerušenie INT0/1 vyvolané priamo na vstupoch PD2/PD3 žiaľ nemôžeme použiť, pretože sme ich obsadili LCD displejom. --><br />
Na cvičení použijeme prerušenie vyvolané zmenou (log.0 -> 1 aj log. 1 -> 0) na vstupe PD5. Tomuto vstupu je priradené prerušenie PCINT21, ktoré patrí do skupiny 2. Na povolenie tohto prerušenia musíme okrem globálneho bitu <code>SREG: I</code> nastaviť aj bity <code>PCICR: PCIE2</code> a <code>PCMSK2: PCINT21</code>. <br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_PreruseniePCINT.png]]<BR><br />
''Schéma prerušovacieho systému externých prerušení.''<br />
</div><br />
<br />
<br />
Nižšie máte uvedený ako príklad program pre ovládanie LED diódy na výstupe PD7 tlačidlom na PD5. Podobný program sme už robili na druhom cvičení. Upravený program nastaví stav LED diódy poľa tlačidla v obsluhe prerušenia, takže v hlavnej programovej slučke už nič neostalo.<br />
<br />
<tabs><br />
<tab name="a) bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
<br />
<tab name="b) s prerušením"><source lang="c++" style="background: LightYellow;" highlight="2,13-19,34-39,45" line><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
ISR (PCINT2_vect)<br />
{<br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
/* ******* Konfiguracia prerusovacieho systemu **************** */<br />
<br />
PCMSK2 |= (1<<PCINT21);<br />
PCICR |= (1<<PCIE2);<br />
<br />
sei(); // t.j. SREG |= (1<<I);<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
asm("nop");<br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
</tabs><br />
<br />
<br />
<br />
<br />
<br />
=== Časovač T1 ===<br />
<br />
S časovačom T1 sme pracovali na minulom cvičení. Príznak pretečenia počítadla TOV1 sme testovali ''"ručne"'', metódou tzv. ''pooling'' - dopytovania. Je to neefektívny spôsob, pretože procesor využívame len na otrocké testovanie jedného bitu stále dookola. Preto je vašou úlohou doplniť vzorový (avšak nekompletný) program tak, aby sa pri pretečení T1 po jednej sekunde vyvolalo prerušenie a zmena stavu LED diódy bude tiež vykonaná v obsluhe prerušenia.<br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1.png|700px]]<BR><br />
''Pri povolení prerušenia nezabudnite okrem samotného prerušenia povoliť aj globálny príznak...''<br />
</div><br />
<br />
<br />
<tabs><br />
<tab name="bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
#define SW1 PD5<br />
#define LED1 PB5<br />
<br />
<br />
int main(void)<br />
{<br />
DDRB = (1<<LED1); // PORTB: LED1 on PB5 is output<br />
<br />
TCNT1 = 0x????; // initialize (CLEAR)counter <br />
TCCR1B = 0x05; // T1 clk = internal clock source + prescaler 1:1024<br />
TIFR1 = (1<<TOV1); // clear Timer 1 Overflow Flag (yes, writing 1 will clear it)<br />
<br />
<br />
while(1) // do forever this:<br />
{<br />
if ( TIFR1 & (1<<TOV1) ) // if Timer 1 Overflow Flag is set, then<br />
{<br />
PORTB = ????; // toggle LED1<br />
TCNT1 = ????; // re-initialize counter <br />
TIFR1 = (1<<TOV1); // Clear Timer Overflow Flag<br />
} <br />
}<br />
<br />
return(0); // this will never happen<br />
}<br />
</source></tab><br />
<tab name="s prerušením"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
<br />
// if ( (TIFR1 & 0x01) == 0x01) // If the overflow flag is set<br />
// ... then following Interrupt routine is called<br />
<br />
ISR (TIMER1_OVF_vect) <br />
{ <br />
PORTB = PORTB ^ 0b????????; // Toggle the LED<br />
TCNT1 = 0x????; // Restart T/C1 - reload<br />
// Following is not necessary as it is cleared automatically<br />
// TIFR1 = 0x01; // Clear the overflow flag<br />
}<br />
<br />
int main( void )<br />
{<br />
/* *********************** Init device ************************************ */<br />
<br />
...<br />
<br />
// Enable interrupts:<br />
<br />
TIMSK1 = (1<<TOIE1); // Timer 1 overflow interrupt enable<br />
sei(); // Assembler macro for global int. enable<br />
<br />
<br />
/* *********************** Main Loop ************************************** */<br />
<br />
do {<br />
<br />
asm("nop"); // Do nothing<br />
<br />
} while(1); // And do this forever<br />
<br />
<br />
return(0);<br />
}<br />
</source></tab></tabs><br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1-registre.png]]<BR><br />
''Prehľad registrov pre počítadlo T1.''<br />
</div><br />
<br />
<br />
'''Úloha'''<br />
<!--<br />
# Program doplňte podľa pokynov asistenta a odsimulujte.<BR>Pozn.: Treba vypnúť optimalizáciu! (Project/Project options [[Médiá:AVRstudioOptimize0.png|Pozri obr.]])<br />
--><br />
# Doplňte chýbajúce časti programu s časovačom T1 tak, aby LED bola ovládaná cez prerušenie a blikala s frekvenciou 1 s. Ak to zvládnete, pridajte si do programu nejakú premennú, ktorej hodnotu budete raz za sekundu inkrementovať, najlepšie tiež v obsluhe prerušenia. V termináli potom zobrazíte nejaký text a čas od zapnutia procesora v sekundách, popritom bude prehrávať nejakú melódiu a blikať LED diódou v 1 sekundovom intervale. Výsledkom bude program, ktorý dokáže realizovať tri veci "paralelne". <br />
<br />
<br />
<br />
{| style="padding:0 0.5em;"|<br />
| style="width:70%; vertical-align:top; border:1px solid #fad67d; background:#f3f0c6;"|<br />
<div style="border-bottom:1px solid #fad67d; background:#faecc8; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">'''Poznámka'''</div><br />
<div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 1em;"><br />
Ak chcete používať v obsluhe premenné, ktorých obsah chcete uchovať napr. až do ďalšieho prerušenia, musia byť deklarované ako <code>static</code>. Ak chcete mať v obsluhe prerušenia prístup aj k nejakej premennej v hlavnom programe, musí byť deklarovaná ako globálna. Navyše, ak kompilátor pri preklade nenájde miesto, kde sa premenná mení, vyhodí ju z programu úplne. Nie je taký múdry, <br />
aby zistil, že s ňou manipulujete v ISR nezistí, preto použite pri deklarácii <code>volatile</code>.<br />
<br />
|}<br />
<br />
<br />
'''Literatúra:'''<br />
<br />
2021<br />
* [https://microchipdeveloper.com/8avr:int AVR Interrupts] Microchip Developer Help <br />
* [https://microchipdeveloper.com/8avr:pin-change-interrupts AVR: Using Pin Change Interrupts] Microchip Developer Help<br />
* [http://ww1.microchip.com/downloads/en/Appnotes/Atmel-8468-Using-External-Interrupts-for-megaAVR-Devices_ApplicationNote_AVR1200.pdf AVR 8-bit Microcontroller AVR1200: Using External Interrupts for megaAVRDevices] Atmel Corporation, 2016.<br />
<br />
2016<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 Newbie's Guide to AVR Timers]<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=55347 The traps when using interrupts]<br />
* [http://www.senzor.robotika.sk/mmp/pdf/AVR-C-Timers.pdf Ako používať časovače v AVR C]<br />
* [http://www.senzor.robotika.sk/predmety/mmp/pdf/PreruseniaAVR.pdf Prednáška o prerušeniach] (Ing. Chamraz)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Mikropo%C4%8D%C3%ADta%C4%8Dov%C3%A9_syst%C3%A9my_(MIPS)#Cvi.C4.8Denia|Návrat na zoznam cvičení...]]<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Preru%C5%A1enia&diff=15125Prerušenia2024-03-18T08:00:54Z<p>Balogh: /* Prerušenie pri zmene stavu niektorého pinu procesora */</p>
<hr />
<div><br />
<br />
=== Prerušenia v AVR-GCC ===<br />
<br />
Kompilátor AVR-GCC má obsluhu prerušení vyriešenú tak, že tabuľka s vektormi jednotlivých prerušení ukazuje na obslužné rutiny s preddefinovanými názvami. Pri výskyte niektorého z povolených prerušení sa vykoná rutina so zodpovedajúcim názvom.<br />
<br />
Vo vašom kóde použijete obslužné funkcie pre prerušenie napr. takto (obsluha prerušenia z AD prevodníka):<br />
<source lang="c"><br />
#include <avr/interrupt.h><br />
ISR(ADC_vect)<br />
{<br />
// user code here<br />
} <br />
</source><br />
<br />
Takáto obsluha prerušenia sa potom spustí so globálnym zákazom prerušení (jednoúrovňové), ktoré sa po skončení prípadne zasa obnovia. Obsluha sa skončí špeciálnou inštrukciiou <TT>RETI</TT>, preto sa nedá zavolať z programu ako bežná funkcia.<br />
<br />
Niektoré názvy vektorov:<br />
<br />
ADC Conversion Complete ADC_vect<br />
External Interrupt Request 0 INT0_vect<br />
External Interrupt Request 1 INT1_vect<br />
External Interrupt Request 2 INT2_vect<br />
Pin Change Group 0 Interrupt PCINT0_vect<br />
Pin Change Group 1 Interrupt PCINT1_vect<br />
Pin Change Group 2 Interrupt PCINT2_vect<br />
Timer/Counter1 Overflow TIMER1_OVF_vect<br />
USART, Rx Complete USART_RXC_vect<br />
USART, Tx Complete USART_TXC_vect<br />
<br />
Ak potrebujete prerušenia povoliť, resp. zakázať, máte k dispozícii funkcie<br />
<source lang="c"><br />
void sei(void); // Enables interrupts by setting the global interrupt mask. <br />
void cli(void); // Disables all interrupts by clearing the global interrupt mask.<br />
</source><br />
Obe funkcie sa preložia do jedinej asm inštrukcie, bez zbytočného pridaného kódu.<br />
<br />
== Prerušenie pri zmene stavu niektorého pinu procesora ==<br />
<br />
<!-- Prerušenie INT0/1 vyvolané priamo na vstupoch PD2/PD3 žiaľ nemôžeme použiť, pretože sme ich obsadili LCD displejom. --><br />
Na cvičení použijeme prerušenie vyvolané zmenou (log.0 -> 1 aj log. 1 -> 0) na vstupe PD5. Tomuto vstupu je priradené prerušenie PCINT21, ktoré patrí do skupiny 2. Na povolenie tohto prerušenia musíme okrem globálneho bitu <code>SREG: I</code> nastaviť aj bity <code>PCICR: PCIE2</code> a <code>PCMSK2: PCINT21</code>. <br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_PreruseniePCINT.png]]<BR><br />
''Schéma prerušovacieho systému externých prerušení.''<br />
</div><br />
<br />
<br />
Nižšie máte uvedený ako príklad program pre ovládanie LED diódy na výstupe PD7 tlačidlom na PD5. Podobný program sme už robili na druhom cvičení. Upravený program nastaví stav LED diódy poľa tlačidla v obsluhe prerušenia, takže v hlavnej programovej slučke už nič neostalo.<br />
<br />
<tabs><br />
<tab name="a) bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
<br />
<tab name="b) s prerušením"><source lang="c++" style="background: LightYellow;" highlight="2,13-19,34-39,45" line><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
ISR (PCINT2_vect)<br />
{<br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
/* ******* Konfiguracia prerusovacieho systemu **************** */<br />
<br />
PCMSK2 |= (1<<PCINT21);<br />
PCICR |= (1<<PCIE2);<br />
<br />
sei(); // t.j. SREG |= (1<<I);<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
asm("nop");<br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
</tabs><br />
<br />
<br />
<br />
<br />
<br />
=== Časovač T1 ===<br />
<br />
S časovačom T1 sme pracovali na minulom cvičení. Príznak pretečenia počítadla TOV1 sme testovali ''"ručne"'', metódou tzv. ''pooling'' - dopytovania. Je to neefektívny spôsob, pretože procesor využívame len na otrocké testovanie jedného bitu stále dookola. Preto je vašou úlohou doplniť vzorový (avšak nekompletný) program tak, aby sa pri pretečení T1 po jednej sekunde vyvolalo prerušenie a zmena stavu LED diódy bude tiež vykonaná v obsluhe prerušenia.<br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1.png|700px]]<BR><br />
''Pri povolení prerušenia nezabudnite okrem samotného prerušenia povoliť aj globálny príznak...''<br />
</div><br />
<br />
<br />
<tabs><br />
<tab name="bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
#define SW1 PD5<br />
#define LED1 PB5<br />
<br />
<br />
int main(void)<br />
{<br />
DDRB = (1<<LED1); // PORTB: LED1 on PB5 is output<br />
<br />
TCNT1 = 0x????; // initialize (CLEAR)counter <br />
TCCR1B = 0x05; // T1 clk = internal clock source + prescaler 1:1024<br />
TIFR1 = (1<<TOV1); // clear Timer 1 Overflow Flag (yes, writing 1 will clear it)<br />
<br />
<br />
while(1) // do forever this:<br />
{<br />
if ( TIFR1 & (1<<TOV1) ) // if Timer 1 Overflow Flag is set, then<br />
{<br />
PORTB = ????; // toggle LED1<br />
TCNT1 = ????; // re-initialize counter <br />
TIFR1 = (1<<TOV1); // Clear Timer Overflow Flag<br />
} <br />
}<br />
<br />
return(0); // this will never happen<br />
}<br />
</source></tab><br />
<tab name="s prerušením"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
<br />
// if ( (TIFR1 & 0x01) == 0x01) // If the overflow flag is set<br />
// ... then following Interrupt routine is called<br />
<br />
ISR (TIMER1_OVF_vect) <br />
{ <br />
PORTB = PORTB ^ 0b????????; // Toggle the LED<br />
TCNT1 = 0x????; // Restart T/C1 - reload<br />
// Following is not necessary as it is cleared automatically<br />
// TIFR1 = 0x01; // Clear the overflow flag<br />
}<br />
<br />
int main( void )<br />
{<br />
/* *********************** Init device ************************************ */<br />
<br />
...<br />
<br />
// Enable interrupts:<br />
<br />
TIMSK1 = (1<<TOIE1); // Timer 1 overflow interrupt enable<br />
sei(); // Assembler macro for global int. enable<br />
<br />
<br />
/* *********************** Main Loop ************************************** */<br />
<br />
do {<br />
<br />
asm("nop"); // Do nothing<br />
<br />
} while(1); // And do this forever<br />
<br />
<br />
return(0);<br />
}<br />
</source></tab></tabs><br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1-registre.png]]<BR><br />
''Prehľad registrov pre počítadlo T1.''<br />
</div><br />
<br />
<br />
'''Úloha'''<br />
<!--<br />
# Program doplňte podľa pokynov asistenta a odsimulujte.<BR>Pozn.: Treba vypnúť optimalizáciu! (Project/Project options [[Médiá:AVRstudioOptimize0.png|Pozri obr.]])<br />
--><br />
# Doplňte chýbajúce časti programu s časovačom T1 tak, aby LED bola ovládaná cez prerušenie a blikala s frekvenciou 1 s. Ak to zvládnete, pridajte si do programu nejakú premennú, ktorej hodnotu budete raz za sekundu inkrementovať, najlepšie tiež v obsluhe prerušenia. Na displeji potom zobrazíte nejaký text a čas od zapnutia procesora v sekundách, popritom bude prehrávať nejakú melódiu a blikať LED diódou v 1 sekundovom intervale. Výsledkom bude program, ktorý dokáže realizovať tri veci "paralelne". <br />
<br />
<br />
<br />
{| style="padding:0 0.5em;"|<br />
| style="width:70%; vertical-align:top; border:1px solid #fad67d; background:#f3f0c6;"|<br />
<div style="border-bottom:1px solid #fad67d; background:#faecc8; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">'''Poznámka'''</div><br />
<div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 1em;"><br />
Ak chcete používať v obsluhe premenné, ktorých obsah chcete uchovať napr. až do ďalšieho prerušenia, musia byť deklarované ako <code>static</code>. Ak chcete mať v obsluhe prerušenia prístup aj k nejakej premennej v hlavnom programe, musí byť deklarovaná ako globálna. Navyše, ak kompilátor pri preklade nenájde miesto, kde sa premenná mení, vyhodí ju z programu úplne. Nie je taký múdry, <br />
aby zistil, že s ňou manipulujete v ISR nezistí, preto použite pri deklarácii <code>volatile</code>.<br />
<br />
|}<br />
<br />
<br />
'''Literatúra:'''<br />
<br />
2021<br />
* [https://microchipdeveloper.com/8avr:int AVR Interrupts] Microchip Developer Help <br />
* [https://microchipdeveloper.com/8avr:pin-change-interrupts AVR: Using Pin Change Interrupts] Microchip Developer Help<br />
* [http://ww1.microchip.com/downloads/en/Appnotes/Atmel-8468-Using-External-Interrupts-for-megaAVR-Devices_ApplicationNote_AVR1200.pdf AVR 8-bit Microcontroller AVR1200: Using External Interrupts for megaAVRDevices] Atmel Corporation, 2016.<br />
<br />
2016<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 Newbie's Guide to AVR Timers]<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=55347 The traps when using interrupts]<br />
* [http://www.senzor.robotika.sk/mmp/pdf/AVR-C-Timers.pdf Ako používať časovače v AVR C]<br />
* [http://www.senzor.robotika.sk/predmety/mmp/pdf/PreruseniaAVR.pdf Prednáška o prerušeniach] (Ing. Chamraz)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Mikropo%C4%8D%C3%ADta%C4%8Dov%C3%A9_syst%C3%A9my_(MIPS)#Cvi.C4.8Denia|Návrat na zoznam cvičení...]]<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Preru%C5%A1enia&diff=15124Prerušenia2024-03-18T07:59:11Z<p>Balogh: </p>
<hr />
<div><br />
<br />
=== Prerušenia v AVR-GCC ===<br />
<br />
Kompilátor AVR-GCC má obsluhu prerušení vyriešenú tak, že tabuľka s vektormi jednotlivých prerušení ukazuje na obslužné rutiny s preddefinovanými názvami. Pri výskyte niektorého z povolených prerušení sa vykoná rutina so zodpovedajúcim názvom.<br />
<br />
Vo vašom kóde použijete obslužné funkcie pre prerušenie napr. takto (obsluha prerušenia z AD prevodníka):<br />
<source lang="c"><br />
#include <avr/interrupt.h><br />
ISR(ADC_vect)<br />
{<br />
// user code here<br />
} <br />
</source><br />
<br />
Takáto obsluha prerušenia sa potom spustí so globálnym zákazom prerušení (jednoúrovňové), ktoré sa po skončení prípadne zasa obnovia. Obsluha sa skončí špeciálnou inštrukciiou <TT>RETI</TT>, preto sa nedá zavolať z programu ako bežná funkcia.<br />
<br />
Niektoré názvy vektorov:<br />
<br />
ADC Conversion Complete ADC_vect<br />
External Interrupt Request 0 INT0_vect<br />
External Interrupt Request 1 INT1_vect<br />
External Interrupt Request 2 INT2_vect<br />
Pin Change Group 0 Interrupt PCINT0_vect<br />
Pin Change Group 1 Interrupt PCINT1_vect<br />
Pin Change Group 2 Interrupt PCINT2_vect<br />
Timer/Counter1 Overflow TIMER1_OVF_vect<br />
USART, Rx Complete USART_RXC_vect<br />
USART, Tx Complete USART_TXC_vect<br />
<br />
Ak potrebujete prerušenia povoliť, resp. zakázať, máte k dispozícii funkcie<br />
<source lang="c"><br />
void sei(void); // Enables interrupts by setting the global interrupt mask. <br />
void cli(void); // Disables all interrupts by clearing the global interrupt mask.<br />
</source><br />
Obe funkcie sa preložia do jedinej asm inštrukcie, bez zbytočného pridaného kódu.<br />
<br />
== Prerušenie pri zmene stavu niektorého pinu procesora ==<br />
<br />
<!-- Prerušenie INT0/1 vyvolané priamo na vstupoch PD2/PD3 žiaľ nemôžeme použiť, pretože sme ich obsadili LCD displejom. --><br />
Na cvičení použijeme prerušenie vyvolané zmenou (log.0 -> 1 aj log. 1 -> 0) na vstupe PD5. Tomuto vstupu je priradené prerušenie PCINT21, ktoré patrí do skupiny 2. Na povolenie tohto prerušenia musíme okrem globálneho bitu <code>SREG: I</code> nastaviť aj bity <code>PCICR: PCIE2</code> a <code>PCMSK2: PCINT21</code>. <br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_PreruseniePCINT.png]]<BR><br />
''Schéma prerušovacieho systému externých prerušení.''<br />
</div><br />
<br />
<br />
Nižšie máte uvedený ako príklad program pre ovládanie LED diódy na výstupe PD7 tlačidlom na PD5. Podobný program sme už robili na druhom cvičení. Upravený program nastaví stav LED diódy poľa tlačidla v obsluhe prerušenia, takže v hlavnej programovej slučke už nič neostalo.<br />
<br />
<tabs><br />
<tab name="a) bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
<br />
<tab name="b) s prerušením"><source lang="c++" style="background: LightYellow;" highlight="2,13-20,37-40,46" line><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
ISR (PCINT2_vect)<br />
{<br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
/* ******* Konfiguracia prerusovacieho systemu **************** */<br />
<br />
PCMSK2 |= (1<<PCINT21);<br />
PCICR |= (1<<PCIE2);<br />
<br />
sei(); // t.j. SREG |= (1<<I);<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
asm("nop");<br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
</tabs><br />
<br />
<br />
<br />
<br />
<br />
=== Časovač T1 ===<br />
<br />
S časovačom T1 sme pracovali na minulom cvičení. Príznak pretečenia počítadla TOV1 sme testovali ''"ručne"'', metódou tzv. ''pooling'' - dopytovania. Je to neefektívny spôsob, pretože procesor využívame len na otrocké testovanie jedného bitu stále dookola. Preto je vašou úlohou doplniť vzorový (avšak nekompletný) program tak, aby sa pri pretečení T1 po jednej sekunde vyvolalo prerušenie a zmena stavu LED diódy bude tiež vykonaná v obsluhe prerušenia.<br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1.png|700px]]<BR><br />
''Pri povolení prerušenia nezabudnite okrem samotného prerušenia povoliť aj globálny príznak...''<br />
</div><br />
<br />
<br />
<tabs><br />
<tab name="bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
#define SW1 PD5<br />
#define LED1 PB5<br />
<br />
<br />
int main(void)<br />
{<br />
DDRB = (1<<LED1); // PORTB: LED1 on PB5 is output<br />
<br />
TCNT1 = 0x????; // initialize (CLEAR)counter <br />
TCCR1B = 0x05; // T1 clk = internal clock source + prescaler 1:1024<br />
TIFR1 = (1<<TOV1); // clear Timer 1 Overflow Flag (yes, writing 1 will clear it)<br />
<br />
<br />
while(1) // do forever this:<br />
{<br />
if ( TIFR1 & (1<<TOV1) ) // if Timer 1 Overflow Flag is set, then<br />
{<br />
PORTB = ????; // toggle LED1<br />
TCNT1 = ????; // re-initialize counter <br />
TIFR1 = (1<<TOV1); // Clear Timer Overflow Flag<br />
} <br />
}<br />
<br />
return(0); // this will never happen<br />
}<br />
</source></tab><br />
<tab name="s prerušením"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
<br />
// if ( (TIFR1 & 0x01) == 0x01) // If the overflow flag is set<br />
// ... then following Interrupt routine is called<br />
<br />
ISR (TIMER1_OVF_vect) <br />
{ <br />
PORTB = PORTB ^ 0b????????; // Toggle the LED<br />
TCNT1 = 0x????; // Restart T/C1 - reload<br />
// Following is not necessary as it is cleared automatically<br />
// TIFR1 = 0x01; // Clear the overflow flag<br />
}<br />
<br />
int main( void )<br />
{<br />
/* *********************** Init device ************************************ */<br />
<br />
...<br />
<br />
// Enable interrupts:<br />
<br />
TIMSK1 = (1<<TOIE1); // Timer 1 overflow interrupt enable<br />
sei(); // Assembler macro for global int. enable<br />
<br />
<br />
/* *********************** Main Loop ************************************** */<br />
<br />
do {<br />
<br />
asm("nop"); // Do nothing<br />
<br />
} while(1); // And do this forever<br />
<br />
<br />
return(0);<br />
}<br />
</source></tab></tabs><br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1-registre.png]]<BR><br />
''Prehľad registrov pre počítadlo T1.''<br />
</div><br />
<br />
<br />
'''Úloha'''<br />
<!--<br />
# Program doplňte podľa pokynov asistenta a odsimulujte.<BR>Pozn.: Treba vypnúť optimalizáciu! (Project/Project options [[Médiá:AVRstudioOptimize0.png|Pozri obr.]])<br />
--><br />
# Doplňte chýbajúce časti programu s časovačom T1 tak, aby LED bola ovládaná cez prerušenie a blikala s frekvenciou 1 s. Ak to zvládnete, pridajte si do programu nejakú premennú, ktorej hodnotu budete raz za sekundu inkrementovať, najlepšie tiež v obsluhe prerušenia. Na displeji potom zobrazíte nejaký text a čas od zapnutia procesora v sekundách, popritom bude prehrávať nejakú melódiu a blikať LED diódou v 1 sekundovom intervale. Výsledkom bude program, ktorý dokáže realizovať tri veci "paralelne". <br />
<br />
<br />
<br />
{| style="padding:0 0.5em;"|<br />
| style="width:70%; vertical-align:top; border:1px solid #fad67d; background:#f3f0c6;"|<br />
<div style="border-bottom:1px solid #fad67d; background:#faecc8; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">'''Poznámka'''</div><br />
<div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 1em;"><br />
Ak chcete používať v obsluhe premenné, ktorých obsah chcete uchovať napr. až do ďalšieho prerušenia, musia byť deklarované ako <code>static</code>. Ak chcete mať v obsluhe prerušenia prístup aj k nejakej premennej v hlavnom programe, musí byť deklarovaná ako globálna. Navyše, ak kompilátor pri preklade nenájde miesto, kde sa premenná mení, vyhodí ju z programu úplne. Nie je taký múdry, <br />
aby zistil, že s ňou manipulujete v ISR nezistí, preto použite pri deklarácii <code>volatile</code>.<br />
<br />
|}<br />
<br />
<br />
'''Literatúra:'''<br />
<br />
2021<br />
* [https://microchipdeveloper.com/8avr:int AVR Interrupts] Microchip Developer Help <br />
* [https://microchipdeveloper.com/8avr:pin-change-interrupts AVR: Using Pin Change Interrupts] Microchip Developer Help<br />
* [http://ww1.microchip.com/downloads/en/Appnotes/Atmel-8468-Using-External-Interrupts-for-megaAVR-Devices_ApplicationNote_AVR1200.pdf AVR 8-bit Microcontroller AVR1200: Using External Interrupts for megaAVRDevices] Atmel Corporation, 2016.<br />
<br />
2016<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 Newbie's Guide to AVR Timers]<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=55347 The traps when using interrupts]<br />
* [http://www.senzor.robotika.sk/mmp/pdf/AVR-C-Timers.pdf Ako používať časovače v AVR C]<br />
* [http://www.senzor.robotika.sk/predmety/mmp/pdf/PreruseniaAVR.pdf Prednáška o prerušeniach] (Ing. Chamraz)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Mikropo%C4%8D%C3%ADta%C4%8Dov%C3%A9_syst%C3%A9my_(MIPS)#Cvi.C4.8Denia|Návrat na zoznam cvičení...]]<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Preru%C5%A1enia&diff=15123Prerušenia2024-03-18T07:56:51Z<p>Balogh: </p>
<hr />
<div><br />
<br />
=== Prerušenia v AVR-GCC ===<br />
<br />
Kompilátor AVR-GCC má obsluhu prerušení vyriešenú tak, že tabuľka s vektormi jednotlivých prerušení ukazuje na obslužné rutiny s preddefinovanými názvami. Pri výskyte niektorého z povolených prerušení sa vykoná rutina so zodpovedajúcim názvom.<br />
<br />
Vo vašom kóde použijete obslužné funkcie pre prerušenie napr. takto (obsluha prerušenia z AD prevodníka):<br />
<source lang="c"><br />
#include <avr/interrupt.h><br />
ISR(ADC_vect)<br />
{<br />
// user code here<br />
} <br />
</source><br />
<br />
Takáto obsluha prerušenia sa potom spustí so globálnym zákazom prerušení (jednoúrovňové), ktoré sa po skončení prípadne zasa obnovia. Obsluha sa skončí špeciálnou inštrukciiou <TT>RETI</TT>, preto sa nedá zavolať z programu ako bežná funkcia.<br />
<br />
Niektoré názvy vektorov:<br />
<br />
ADC Conversion Complete ADC_vect<br />
External Interrupt Request 0 INT0_vect<br />
External Interrupt Request 1 INT1_vect<br />
External Interrupt Request 2 INT2_vect<br />
Pin Change Group 0 Interrupt PCINT0_vect<br />
Pin Change Group 1 Interrupt PCINT1_vect<br />
Pin Change Group 2 Interrupt PCINT2_vect<br />
Timer/Counter1 Overflow TIMER1_OVF_vect<br />
USART, Rx Complete USART_RXC_vect<br />
USART, Tx Complete USART_TXC_vect<br />
<br />
Ak potrebujete prerušenia povoliť, resp. zakázať, máte k dispozícii funkcie<br />
<source lang="c"><br />
void sei(void); // Enables interrupts by setting the global interrupt mask. <br />
void cli(void); // Disables all interrupts by clearing the global interrupt mask.<br />
</source><br />
Obe funkcie sa preložia do jedinej asm inštrukcie, bez zbytočného pridaného kódu.<br />
<br />
== Prerušenie pri zmene stavu niektorého pinu procesora ==<br />
<br />
<!-- Prerušenie INT0/1 vyvolané priamo na vstupoch PD2/PD3 žiaľ nemôžeme použiť, pretože sme ich obsadili LCD displejom. --><br />
Na cvičení použijeme prerušenie vyvolané zmenou (log.0 -> 1 aj log. 1 -> 0) na vstupe PD5. Tomuto vstupu je priradené prerušenie PCINT21, ktoré patrí do skupiny 2. Na povolenie tohto prerušenia musíme okrem globálneho bitu <code>SREG: I</code> nastaviť aj bity <code>PCICR: PCIE2</code> a <code>PCMSK2: PCINT21</code>. <br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_PreruseniePCINT.png]]<BR><br />
''Schéma prerušovacieho systému externých prerušení.''<br />
</div><br />
<br />
<br />
Nižšie máte uvedený ako príklad program pre ovládanie LED diódy na výstupe PD7 tlačidlom na PD5. Podobný program sme už robili na druhom cvičení. Upravený program nastaví stav LED diódy poľa tlačidla v obsluhe prerušenia, takže v hlavnej programovej slučke už nič neostalo.<br />
<br />
<tabs><br />
<tab name="a) bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define set_bit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))<br />
#define clear_bit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))<br />
#define toggle_bit(ADDRESS,BIT)<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
<br />
<tab name="b) s prerušením"><source lang="c++" style="background: LightYellow;" highlight="2,17-23,40-43,49" line><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
/* Pripojenie periferii k vyvojovej doske Arduino: */<br />
<br />
#define LED2 PD7 // externa LED dioda <br />
#define SW2 PD5 // externe tlacitko<br />
<br />
#define set_bit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))<br />
#define clear_bit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))<br />
#define toggle_bit(ADDRESS,BIT)<br />
<br />
#define SW2_ON bit_is_clear(PIND, SW2) <br />
#define LED2_ON set_bit(PORTD,LED2)<br />
#define LED2_OFF clear_bit(PORTD,LED2)<br />
<br />
ISR (PCINT2_vect)<br />
{<br />
if ( SW2_ON ) <br />
LED2_ON;<br />
else <br />
LED2_OFF; <br />
}<br />
<br />
<br />
<br />
int main(void)<br />
{<br />
<br />
/* SETUP */ <br />
<br />
/* Konfiguracia I/O: portD.7 je vystupny (LED2) a portD.5 je vstup (SW2) *<br />
* naviac je PortD.5 so zapnutym pull-up rezistorom cez reg. PORTD */ <br />
<br />
DDRD = 0b11011111; // PORTD: LED2 na PD7 je output, SW2 (PD5) input<br />
PORTD = 0b00100000; // LED Active low, LED off, pull-up ON<br />
<br />
/* ******* Konfiguracia prerusovacieho systemu **************** */<br />
<br />
PCMSK2 |= (1<<PCINT21);<br />
PCICR |= (1<<PCIE2);<br />
<br />
sei(); // t.j. SREG |= (1<<I);<br />
<br />
/* LOOP */ <br />
<br />
while(1)<br />
{ <br />
asm("nop");<br />
}<br />
<br />
return(0);<br />
}<br />
</source><br />
</tab><br />
</tabs><br />
<br />
<br />
<br />
<br />
<br />
=== Časovač T1 ===<br />
<br />
S časovačom T1 sme pracovali na minulom cvičení. Príznak pretečenia počítadla TOV1 sme testovali ''"ručne"'', metódou tzv. ''pooling'' - dopytovania. Je to neefektívny spôsob, pretože procesor využívame len na otrocké testovanie jedného bitu stále dookola. Preto je vašou úlohou doplniť vzorový (avšak nekompletný) program tak, aby sa pri pretečení T1 po jednej sekunde vyvolalo prerušenie a zmena stavu LED diódy bude tiež vykonaná v obsluhe prerušenia.<br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1.png|700px]]<BR><br />
''Pri povolení prerušenia nezabudnite okrem samotného prerušenia povoliť aj globálny príznak...''<br />
</div><br />
<br />
<br />
<tabs><br />
<tab name="bez prerušenia"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
<br />
#define SW1 PD5<br />
#define LED1 PB5<br />
<br />
<br />
int main(void)<br />
{<br />
DDRB = (1<<LED1); // PORTB: LED1 on PB5 is output<br />
<br />
TCNT1 = 0x????; // initialize (CLEAR)counter <br />
TCCR1B = 0x05; // T1 clk = internal clock source + prescaler 1:1024<br />
TIFR1 = (1<<TOV1); // clear Timer 1 Overflow Flag (yes, writing 1 will clear it)<br />
<br />
<br />
while(1) // do forever this:<br />
{<br />
if ( TIFR1 & (1<<TOV1) ) // if Timer 1 Overflow Flag is set, then<br />
{<br />
PORTB = ????; // toggle LED1<br />
TCNT1 = ????; // re-initialize counter <br />
TIFR1 = (1<<TOV1); // Clear Timer Overflow Flag<br />
} <br />
}<br />
<br />
return(0); // this will never happen<br />
}<br />
</source></tab><br />
<tab name="s prerušením"><source lang="c++" style="background: LightYellow;"><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
<br />
<br />
// if ( (TIFR1 & 0x01) == 0x01) // If the overflow flag is set<br />
// ... then following Interrupt routine is called<br />
<br />
ISR (TIMER1_OVF_vect) <br />
{ <br />
PORTB = PORTB ^ 0b????????; // Toggle the LED<br />
TCNT1 = 0x????; // Restart T/C1 - reload<br />
// Following is not necessary as it is cleared automatically<br />
// TIFR1 = 0x01; // Clear the overflow flag<br />
}<br />
<br />
int main( void )<br />
{<br />
/* *********************** Init device ************************************ */<br />
<br />
...<br />
<br />
// Enable interrupts:<br />
<br />
TIMSK1 = (1<<TOIE1); // Timer 1 overflow interrupt enable<br />
sei(); // Assembler macro for global int. enable<br />
<br />
<br />
/* *********************** Main Loop ************************************** */<br />
<br />
do {<br />
<br />
asm("nop"); // Do nothing<br />
<br />
} while(1); // And do this forever<br />
<br />
<br />
return(0);<br />
}<br />
</source></tab></tabs><br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_InterruptT1-registre.png]]<BR><br />
''Prehľad registrov pre počítadlo T1.''<br />
</div><br />
<br />
<br />
'''Úloha'''<br />
<!--<br />
# Program doplňte podľa pokynov asistenta a odsimulujte.<BR>Pozn.: Treba vypnúť optimalizáciu! (Project/Project options [[Médiá:AVRstudioOptimize0.png|Pozri obr.]])<br />
--><br />
# Doplňte chýbajúce časti programu s časovačom T1 tak, aby LED bola ovládaná cez prerušenie a blikala s frekvenciou 1 s. Ak to zvládnete, pridajte si do programu nejakú premennú, ktorej hodnotu budete raz za sekundu inkrementovať, najlepšie tiež v obsluhe prerušenia. Na displeji potom zobrazíte nejaký text a čas od zapnutia procesora v sekundách, popritom bude prehrávať nejakú melódiu a blikať LED diódou v 1 sekundovom intervale. Výsledkom bude program, ktorý dokáže realizovať tri veci "paralelne". <br />
<br />
<br />
<br />
{| style="padding:0 0.5em;"|<br />
| style="width:70%; vertical-align:top; border:1px solid #fad67d; background:#f3f0c6;"|<br />
<div style="border-bottom:1px solid #fad67d; background:#faecc8; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">'''Poznámka'''</div><br />
<div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 1em;"><br />
Ak chcete používať v obsluhe premenné, ktorých obsah chcete uchovať napr. až do ďalšieho prerušenia, musia byť deklarované ako <code>static</code>. Ak chcete mať v obsluhe prerušenia prístup aj k nejakej premennej v hlavnom programe, musí byť deklarovaná ako globálna. Navyše, ak kompilátor pri preklade nenájde miesto, kde sa premenná mení, vyhodí ju z programu úplne. Nie je taký múdry, <br />
aby zistil, že s ňou manipulujete v ISR nezistí, preto použite pri deklarácii <code>volatile</code>.<br />
<br />
|}<br />
<br />
<br />
'''Literatúra:'''<br />
<br />
2021<br />
* [https://microchipdeveloper.com/8avr:int AVR Interrupts] Microchip Developer Help <br />
* [https://microchipdeveloper.com/8avr:pin-change-interrupts AVR: Using Pin Change Interrupts] Microchip Developer Help<br />
* [http://ww1.microchip.com/downloads/en/Appnotes/Atmel-8468-Using-External-Interrupts-for-megaAVR-Devices_ApplicationNote_AVR1200.pdf AVR 8-bit Microcontroller AVR1200: Using External Interrupts for megaAVRDevices] Atmel Corporation, 2016.<br />
<br />
2016<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 Newbie's Guide to AVR Timers]<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=55347 The traps when using interrupts]<br />
* [http://www.senzor.robotika.sk/mmp/pdf/AVR-C-Timers.pdf Ako používať časovače v AVR C]<br />
* [http://www.senzor.robotika.sk/predmety/mmp/pdf/PreruseniaAVR.pdf Prednáška o prerušeniach] (Ing. Chamraz)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Mikropo%C4%8D%C3%ADta%C4%8Dov%C3%A9_syst%C3%A9my_(MIPS)#Cvi.C4.8Denia|Návrat na zoznam cvičení...]]<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Po%C4%8D%C3%ADtadl%C3%A1_a_%C4%8Dasova%C4%8De_AVR&diff=15122Počítadlá a časovače AVR2024-03-14T11:45:50Z<p>Balogh: /* Časovač T1 */</p>
<hr />
<div>[[Súbor:MechanicalCounter.jpg|250px|right]]<br />
<br />
<br />
'''Pozn:.''' Tu si môžete stiahnuť novú verziu LCD knižnice http://senzor.robotika.sk/mmp/src/<br />
<br />
<br />
<br />
== 16-bitové počítadlo a časovač T1 s prerušením ==<br />
<br />
Máte k dispozícii vývojovú dosku '''Arduino''' s procesorom ATmega328P ([http://senzor.robotika.sk/mmp/ATmega328.pdf datasheet]).<br />
<br />
V tejto úlohe sa predpokladá znalosť funkcie časovača T1 z prednášky (datasheet, str.114 -- 141). <br />
Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 16,000 MHz.<br />
<br />
<br />
<div style='text-align: center;'><br />
<HTML><br />
<IFRAME Src="https://senzor.robotika.sk/mmp/anim/counter1.html" width="750" height="450" style="border:none;"></IFRAME><br />
<!-- A HREF="http://senzor.robotika.sk/mmp/counter/index.html">Simulátor počítadla</A --><br />
<BR><A HREF="https://senzor.robotika.sk/mmp/anim/counter1.html">Simulátor počítadla</A><br />
<br />
</HTML><br />
</div><br />
<br />
<br />
=== Počítadlo T1 ===<br />
<br />
<br />
K vývojovej doske pripojíme tlačítko na vstup PD5 (Arduino D5). Schémy zapojenia tu nebudeme opakovať, použijete tie z minulého cvičenia. <br />
<br />
Ukážeme si, ako treba nakonfigurovať počítadlo T1, aby registrovalo počet stlačení tohoto tlačítka. Okrem tlačítka (čo nemá veľký praktický význam) môžeme počítať napr. počet impulzov z nejakého snímača za pevnú periódu a tým zistiť frekvenciu, alebo počítať kroky z inkrementálneho snímača a zistiť tak polohu pohonu, alebo počítať napr. počet výrobkov, ktoré prepadli cez optickú závoru. <br />
Zároveň budeme tlačítkom ovládať zabudovanú LED diódu aby ste videli, že vstupy sú skutočne multifunkčné. <br />
<br />
Okrem toho si zobrazíme aktuálny stav tlačítka (0/1) a stav počítadla TCNT1 v hexadecimálnom tvare.<br />
<br />
Na prvom obrázku je časť vnútornej štruktúry počítadla a časovača T1. Ako vidno, konfigurácia do režimu počítania impulzov z externého vstupu spočíva len v nastavení príslušných bitov v registri TCCR1B. Ostatné bity a konfiguračné registre si zatiaľ nebudeme všímať. <br />
<br />
[[Obrázok:AVR Timer T1 Counter.png|center]]<br />
<br />
<br />
Na druhom obrázku vidno, že nastavenie sa vykoná spodnými troma bitmi registra TCCR1B. Žiadne ďalšie nastavenie v tejto chvíli nie je potrebné. Môžeme však pre istotu vynulovať aj register počítadla TCNT1.<br />
<br />
[[Obrázok:AVR Timer TCNT1 Counter.png|center]]<br />
<br />
<tabs><br />
<tab name="Verzia LCD"><source lang="c"><br />
#define F_CPU 16000000UL<br />
<br />
#include <avr/io.h><br />
#include <util/delay.h><br />
#include "lcd_ch.h" // using our LCD library<br />
<br />
#define LED1 PB5 // internal LED<br />
#define SW1 PD5 // pushbutton on PD5 (Arduino D5)<br />
<br />
int main(void)<br />
{<br />
char riadok[]= {" "}; <br />
int value = 0;<br />
<br />
DDRB |= (1<<LED1); // PORTB: LED1 na PB5 je output<br />
<br />
DDRD &= ~(1<<SW1); // PORTD: SW2 (PD5) input<br />
PORTD |= (1<<SW1); // pull-up ON<br />
TCNT1 = 0x0000; // initialize (CLEAR) counter <br />
TCCR1B = 0b00000111; // T1 clk = external clock source on pin T1, rising edge<br />
<br />
/* initialize LCD display */<br />
ini_ports();<br />
lcd_init();<br />
<br />
lcd_puts("-Button counter-"); <br />
<br />
while(1)<br />
{<br />
/* test the switch first */<br />
<br />
if ( PIND&(1<<SW1) )<br />
{ value = 1; <br />
PORTB &= !(1<<LED1); }<br />
else <br />
{ value = 0;<br />
PORTB |= (1<<LED1); }<br />
<br />
lcd_command(0xC0 + 0); // a vrátime kurzor na začiatok 2. riadku (0b1000 0000 + 40 + 0) <br />
sprintf(riadok,"D5: %d TCNT: %04X",value,TCNT1); // vytvoríme kombinovaný text<br />
lcd_puts(riadok); // zobrazíme ho na displeji<br />
<br />
<br />
}<br />
<br />
return(0);<br />
<br />
}<br />
<br />
</source></tab><br />
<tab name="Verzia UART"><source lang="c"><br />
#define BAUD 9600<br />
<br />
#include <avr/io.h><br />
#include <stdio.h><br />
#include "uart.h"<br />
<br />
#define LED1 PB5 // internal LED<br />
#define SW1 PD5 // pushbutton on PD5 (Arduino D5)<br />
<br />
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);<br />
<br />
int main(void)<br />
{<br />
int value = 0;<br />
<br />
DDRB |= (1<<LED1); // PORTB: LED1 na PB5 je output<br />
<br />
DDRD &= ~(1<<SW1); // PORTD: SW2 (PD5) input<br />
PORTD |= (1<<SW1); // pull-up ON<br />
TCNT1 = 0x0000; // initialize (CLEAR) counter <br />
TCCR1B = 0b00000111; // T1 clk = external clock source on pin T1, rising edge <br />
<br />
uart_init(); // Inicializacia seriovej linky<br />
stdout = &mystdout; // Odteraz funguje printf();<br />
<br />
printf("\n-Button counter-\n\n");<br />
<br />
while(1)<br />
{<br />
/* test the switch first */<br />
<br />
if ( PIND&(1<<SW1) )<br />
{ value = 1; <br />
PORTB &= !(1<<LED1); }<br />
else <br />
{ value = 0;<br />
PORTB |= (1<<LED1); }<br />
<br />
printf("D5: %d TCNT: %04X\r",value,TCNT1); // vytvoríme kombinovaný text<br />
<br />
}<br />
<br />
return(0);<br />
}<br />
</source></tab><br />
</tabs><br />
<br />
<br />
'''Úloha:''' pripočíta počítadlo naozaj vždy len jeden impulz pri stlačení tlačítka? Ak áno, prečo? Ak nie, prečo?<br />
<br />
== Overflow / pretečenie ==<br />
<br />
Aby sme nemuseli stlačiť tlačidlo 65 535 krát, trocha si to uľahčíme. Nasledovný výsek programu nastaví počítadlo na 5 impulzov pred pretečení, t.j. (0xFFFF - 5) a potom sleduje v hlavnej slučke, kedy nastane pretečenie. Počítadlo stále počíta impulzy, ktoré mu dávame externým signálom na T1, čiže tlačítkom.<br />
<br />
<br />
Pokúsime sa program zmeniť tak, aby namiesto zobrazenia stavu pinu <code>D5</code> zobrazoval stav príznaku pretečenia počítadla <code>TOV1</code> (Timer1 Overflow) v registri <code>TIFR1</code>.<br />
<br />
<tabs><br />
<tab name="AVR-GCC"><source lang="c"><br />
<br />
/* tento riadok treba pridať do inicializačnej časti programu */<br />
<br />
TCNT1 = 0xFFFA; // initialize (CLEAR) counter <br />
<br />
<br />
/* a tento kus programu zaradiť do hlavnej slučky while(1) */<br />
<br />
<br />
/* test the overflow bit */<br />
<br />
if ( (TIFR1 & 0x01) == 0x01) // If the overflow flag is set<br />
{ <br />
TCNT1 = 0x????; // Restart T/C1 - reload<br />
TIFR1 = 0x01; // Clear the overflow flag<br />
}<br />
<br />
<br />
/* a napokon vymeniť riadok s výpisom za nasledovný */<br />
<br />
printf("TO: %d TCNT: %04X\r",TIFR1,TCNT1); // zobrazíme TOF a TCNT<br />
<br />
<br />
</source></tab><br />
</tabs><br />
<br />
'''Úloha:''' Čo sa stane, ak príznak pretečenia nevynulujete? Prečo?<br />
<br />
<br />
<br />
=== Časovač T1 ===<br />
<br />
Zdroj hodín a preddelička je nakreslená na nasledovnom obrázku<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:AVR_Timer_ClockSource.png]]<BR><br />
''Voľba vstupov pre počítadlo.''<br />
</div><br />
<br />
<br />
Ako vidno z obrázku s vnútornou štruktúrou časovača, prechod z režimu počítania do časovania je opäť možný jednoduchou zmenou posledných troch bitov v registri TCCR1B.<br />
Skúste zmeniť nasledovný riadok v predošlom programe tak, aby zdrojom hodín časovača bol oscilátor procesora. Ak chceme sledovať zmeny voľným okom, musíme frekvenciu <br />
oscilátora 16 MHz znížiť preddeličkou na čo najnižšiu hodnotu. <br />
<br />
<source lang="c"><br />
TCCR1B = 0b00000101; // T1 clk = internal clock source, prescaler 1:1024<br />
</source><br />
<br />
Overte, že tlačidlo aj naďalej bude fungovať, ale už nemá žiaden vplyv na stav počítadla TCNT1.<br />
<br />
<br />
<br />
<br />
Teraz už máme pripravené všetko potrebné na to, aby sme vedeli riadiť frekvenciu blikania LED diódy pomocou časovača T1.<br />
V hlavnej programovej slučke budeme testovať príznak pretečenia TOV1 a v prípade, že časovač pretečie, tak zmeníme stav<br />
LED diódy. Aby sa to opakovalo a táto situácia nenastala len raz, znova naplníme register TCNT1 inicializačnou hodnotou a vynulujeme príznak pretečenia (ten sa nevynuluje sám od seba, ale robí sa to pomerne neintuitívne tak, že do registra TIFR1 zapíšeme na pozíciu TOV1 log. 1 - čiže ako by sme ten príznak prepísaním jednotkou vymazali).<br />
<br />
<source lang="C"><br />
if ( (TIFR1 & (1<<TOV1)) == 0x01 )<br />
{<br />
PORTB = PORTB ^ (1<<LED1); // toggle LED1 <br />
TCNT1 = 0x8000; // initialize counter napr. 8000 hex<br />
TIFR1 = (1<<TOV1); // zapisom jednotky vynulujem priznak Timer Overflow <br />
} <br />
<br />
/* znova si zobrazime aktualne hodnoty */<br />
<br />
printf("TF: %d TCNT: %04X\r",(TIFR1 & (1<<TOV1)),TCNT1); <br />
<br />
</source><br />
<br />
Čo sa zmení, ak príznak pretečenia nevynulujete? Ak sa vám nezobrazí správna hodnota príznaku, upravte program tak, aby to fungovalo správne.<br />
<br />
<br />
'''Úlohy'''<br />
<!--<br />
# Program doplňte podľa pokynov asistenta a odsimulujte.<BR>Pozn.: Treba vypnúť optimalizáciu! (Project/Project options [[Médiá:AVRstudioOptimize0.png|Pozri obr.]])<br />
--><br />
# Vypočítajte správnu hodnotu TCNT1 tak, aby LED blikala s frekvenciou 1 s. Overte!<br />
<br />
<br />
<FONT Size="+2">Cvičenie pokračuje [[Generovanie tónov|druhou časťou...]]<BR><BR><BR></FONT><br />
<br />
== Informácie ==<br />
<br />
<br />
'''Literatúra'''<br />
<br />
* [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-2505-Setup-and-Use-of-AVR-Timers_ApplicationNote_AVR130.pdf AVR130: Setup and Use of AVR Timers] Atmel Application Note. 2016<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 Newbie's Guide to AVR Timers]<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=55347 The traps when using interrupts]<br />
* [http://senzor.robotika.sk/mmp/AVR-C-Timers.pdf Ako používať časovače v AVR C]<br />
* [http://senzor.robotika.sk/mmp/PreruseniaAVR.pdf Prednáška o prerušeniach] (Ing. Chamraz)<br />
<br />
<br />
'''Odkazy'''<br />
<br />
* Knižnica pre Arduino: http://www.arduino.cc/playground/Code/Timer1<br />
<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Po%C4%8D%C3%ADtadl%C3%A1_a_%C4%8Dasova%C4%8De_AVR&diff=15121Počítadlá a časovače AVR2024-03-14T11:42:40Z<p>Balogh: /* Počítadlo T1 */</p>
<hr />
<div>[[Súbor:MechanicalCounter.jpg|250px|right]]<br />
<br />
<br />
'''Pozn:.''' Tu si môžete stiahnuť novú verziu LCD knižnice http://senzor.robotika.sk/mmp/src/<br />
<br />
<br />
<br />
== 16-bitové počítadlo a časovač T1 s prerušením ==<br />
<br />
Máte k dispozícii vývojovú dosku '''Arduino''' s procesorom ATmega328P ([http://senzor.robotika.sk/mmp/ATmega328.pdf datasheet]).<br />
<br />
V tejto úlohe sa predpokladá znalosť funkcie časovača T1 z prednášky (datasheet, str.114 -- 141). <br />
Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 16,000 MHz.<br />
<br />
<br />
<div style='text-align: center;'><br />
<HTML><br />
<IFRAME Src="https://senzor.robotika.sk/mmp/anim/counter1.html" width="750" height="450" style="border:none;"></IFRAME><br />
<!-- A HREF="http://senzor.robotika.sk/mmp/counter/index.html">Simulátor počítadla</A --><br />
<BR><A HREF="https://senzor.robotika.sk/mmp/anim/counter1.html">Simulátor počítadla</A><br />
<br />
</HTML><br />
</div><br />
<br />
<br />
=== Počítadlo T1 ===<br />
<br />
<br />
K vývojovej doske pripojíme tlačítko na vstup PD5 (Arduino D5). Schémy zapojenia tu nebudeme opakovať, použijete tie z minulého cvičenia. <br />
<br />
Ukážeme si, ako treba nakonfigurovať počítadlo T1, aby registrovalo počet stlačení tohoto tlačítka. Okrem tlačítka (čo nemá veľký praktický význam) môžeme počítať napr. počet impulzov z nejakého snímača za pevnú periódu a tým zistiť frekvenciu, alebo počítať kroky z inkrementálneho snímača a zistiť tak polohu pohonu, alebo počítať napr. počet výrobkov, ktoré prepadli cez optickú závoru. <br />
Zároveň budeme tlačítkom ovládať zabudovanú LED diódu aby ste videli, že vstupy sú skutočne multifunkčné. <br />
<br />
Okrem toho si zobrazíme aktuálny stav tlačítka (0/1) a stav počítadla TCNT1 v hexadecimálnom tvare.<br />
<br />
Na prvom obrázku je časť vnútornej štruktúry počítadla a časovača T1. Ako vidno, konfigurácia do režimu počítania impulzov z externého vstupu spočíva len v nastavení príslušných bitov v registri TCCR1B. Ostatné bity a konfiguračné registre si zatiaľ nebudeme všímať. <br />
<br />
[[Obrázok:AVR Timer T1 Counter.png|center]]<br />
<br />
<br />
Na druhom obrázku vidno, že nastavenie sa vykoná spodnými troma bitmi registra TCCR1B. Žiadne ďalšie nastavenie v tejto chvíli nie je potrebné. Môžeme však pre istotu vynulovať aj register počítadla TCNT1.<br />
<br />
[[Obrázok:AVR Timer TCNT1 Counter.png|center]]<br />
<br />
<tabs><br />
<tab name="Verzia LCD"><source lang="c"><br />
#define F_CPU 16000000UL<br />
<br />
#include <avr/io.h><br />
#include <util/delay.h><br />
#include "lcd_ch.h" // using our LCD library<br />
<br />
#define LED1 PB5 // internal LED<br />
#define SW1 PD5 // pushbutton on PD5 (Arduino D5)<br />
<br />
int main(void)<br />
{<br />
char riadok[]= {" "}; <br />
int value = 0;<br />
<br />
DDRB |= (1<<LED1); // PORTB: LED1 na PB5 je output<br />
<br />
DDRD &= ~(1<<SW1); // PORTD: SW2 (PD5) input<br />
PORTD |= (1<<SW1); // pull-up ON<br />
TCNT1 = 0x0000; // initialize (CLEAR) counter <br />
TCCR1B = 0b00000111; // T1 clk = external clock source on pin T1, rising edge<br />
<br />
/* initialize LCD display */<br />
ini_ports();<br />
lcd_init();<br />
<br />
lcd_puts("-Button counter-"); <br />
<br />
while(1)<br />
{<br />
/* test the switch first */<br />
<br />
if ( PIND&(1<<SW1) )<br />
{ value = 1; <br />
PORTB &= !(1<<LED1); }<br />
else <br />
{ value = 0;<br />
PORTB |= (1<<LED1); }<br />
<br />
lcd_command(0xC0 + 0); // a vrátime kurzor na začiatok 2. riadku (0b1000 0000 + 40 + 0) <br />
sprintf(riadok,"D5: %d TCNT: %04X",value,TCNT1); // vytvoríme kombinovaný text<br />
lcd_puts(riadok); // zobrazíme ho na displeji<br />
<br />
<br />
}<br />
<br />
return(0);<br />
<br />
}<br />
<br />
</source></tab><br />
<tab name="Verzia UART"><source lang="c"><br />
#define BAUD 9600<br />
<br />
#include <avr/io.h><br />
#include <stdio.h><br />
#include "uart.h"<br />
<br />
#define LED1 PB5 // internal LED<br />
#define SW1 PD5 // pushbutton on PD5 (Arduino D5)<br />
<br />
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);<br />
<br />
int main(void)<br />
{<br />
int value = 0;<br />
<br />
DDRB |= (1<<LED1); // PORTB: LED1 na PB5 je output<br />
<br />
DDRD &= ~(1<<SW1); // PORTD: SW2 (PD5) input<br />
PORTD |= (1<<SW1); // pull-up ON<br />
TCNT1 = 0x0000; // initialize (CLEAR) counter <br />
TCCR1B = 0b00000111; // T1 clk = external clock source on pin T1, rising edge <br />
<br />
uart_init(); // Inicializacia seriovej linky<br />
stdout = &mystdout; // Odteraz funguje printf();<br />
<br />
printf("\n-Button counter-\n\n");<br />
<br />
while(1)<br />
{<br />
/* test the switch first */<br />
<br />
if ( PIND&(1<<SW1) )<br />
{ value = 1; <br />
PORTB &= !(1<<LED1); }<br />
else <br />
{ value = 0;<br />
PORTB |= (1<<LED1); }<br />
<br />
printf("D5: %d TCNT: %04X\r",value,TCNT1); // vytvoríme kombinovaný text<br />
<br />
}<br />
<br />
return(0);<br />
}<br />
</source></tab><br />
</tabs><br />
<br />
<br />
'''Úloha:''' pripočíta počítadlo naozaj vždy len jeden impulz pri stlačení tlačítka? Ak áno, prečo? Ak nie, prečo?<br />
<br />
== Overflow / pretečenie ==<br />
<br />
Aby sme nemuseli stlačiť tlačidlo 65 535 krát, trocha si to uľahčíme. Nasledovný výsek programu nastaví počítadlo na 5 impulzov pred pretečení, t.j. (0xFFFF - 5) a potom sleduje v hlavnej slučke, kedy nastane pretečenie. Počítadlo stále počíta impulzy, ktoré mu dávame externým signálom na T1, čiže tlačítkom.<br />
<br />
<br />
Pokúsime sa program zmeniť tak, aby namiesto zobrazenia stavu pinu <code>D5</code> zobrazoval stav príznaku pretečenia počítadla <code>TOV1</code> (Timer1 Overflow) v registri <code>TIFR1</code>.<br />
<br />
<tabs><br />
<tab name="AVR-GCC"><source lang="c"><br />
<br />
/* tento riadok treba pridať do inicializačnej časti programu */<br />
<br />
TCNT1 = 0xFFFA; // initialize (CLEAR) counter <br />
<br />
<br />
/* a tento kus programu zaradiť do hlavnej slučky while(1) */<br />
<br />
<br />
/* test the overflow bit */<br />
<br />
if ( (TIFR1 & 0x01) == 0x01) // If the overflow flag is set<br />
{ <br />
TCNT1 = 0x????; // Restart T/C1 - reload<br />
TIFR1 = 0x01; // Clear the overflow flag<br />
}<br />
<br />
<br />
/* a napokon vymeniť riadok s výpisom za nasledovný */<br />
<br />
printf("TO: %d TCNT: %04X\r",TIFR1,TCNT1); // zobrazíme TOF a TCNT<br />
<br />
<br />
</source></tab><br />
</tabs><br />
<br />
'''Úloha:''' Čo sa stane, ak príznak pretečenia nevynulujete? Prečo?<br />
<br />
<br />
<br />
=== Časovač T1 ===<br />
<br />
Zdroj hodín a preddelička je nakreslená na nasledovnom obrázku<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:AVR_Timer_ClockSource.png]]<BR><br />
''Voľba vstupov pre počítadlo.''<br />
</div><br />
<br />
<br />
Ako vidno z obrázku s vnútornou štruktúrou časovača, prechod z režimu počítania do časovania je opäť možný jednoduchou zmenou posledných troch bitov v registri TCCR1B.<br />
Skúste zmeniť nasledovný riadok v predošlom programe tak, aby zdrojom hodín časovača bol oscilátor procesora. Ak chceme sledovať zmeny voľným okom, musíme frekvenciu <br />
oscilátora 16 MHz znížiť preddeličkou na čo najnižšiu hodnotu. <br />
<br />
<source lang="c"><br />
TCCR1B = 0b00000101; // T1 clk = internal clock source, prescaler 1:1024<br />
</source><br />
<br />
Overte, že tlačidlo aj naďalej bude fungovať, ale už nemá žiaden vplyv na stav počítadla TCNT1.<br />
<br />
<br />
<br />
<br />
Teraz už máme pripravené všetko potrebné na to, aby sme vedeli riadiť frekvenciu blikania LED diódy pomocou časovača T1.<br />
V hlavnej programovej slučke budeme testovať príznak pretečenia TOV1 a v prípade, že časovač pretečie, tak zmeníme stav<br />
LED diódy. Aby sa to opakovalo a táto situácia nenastala len raz, znova naplníme register TCNT1 inicializačnou hodnotou a vynulujeme príznak pretečenia (ten sa nevynuluje sám od seba, ale robí sa to pomerne neintuitívne tak, že do registra TIFR1 zapíšeme na pozíciu TOV1 log. 1 - čiže ako by sme ten príznak prepísaním jednotkou vymazali).<br />
<br />
<source lang="C"><br />
if ( (TIFR1 & (1<<TOV1)) == 0x01 )<br />
{<br />
PORTB = PORTB ^ (1<<LED1); // toggle LED1 <br />
TCNT1 = 0x8000; // initialize counter napr. 8000 hex<br />
TIFR1 = (1<<TOV1); // zapisom jednotky vynulujem priznak Timer Overflow <br />
} <br />
<br />
/* znova si zobrazime aktualne hodnoty */<br />
<br />
printf("TF: %d TCNT: %04X\r",(TIFR1 & (1<<TOV1)),TCNT1); <br />
<br />
</source><br />
<br />
Čo sa zmení, ak príznak pretečenia nevynulujete?<br />
<br />
<br />
'''Úlohy'''<br />
<!--<br />
# Program doplňte podľa pokynov asistenta a odsimulujte.<BR>Pozn.: Treba vypnúť optimalizáciu! (Project/Project options [[Médiá:AVRstudioOptimize0.png|Pozri obr.]])<br />
--><br />
# Vypočítajte správnu hodnotu TCNT1 tak, aby LED blikala s frekvenciou 1 s. Overte!<br />
<br />
<br />
<FONT Size="+2">Cvičenie pokračuje [[Generovanie tónov|druhou časťou...]]<BR><BR><BR></FONT><br />
<br />
== Informácie ==<br />
<br />
<br />
'''Literatúra'''<br />
<br />
* [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-2505-Setup-and-Use-of-AVR-Timers_ApplicationNote_AVR130.pdf AVR130: Setup and Use of AVR Timers] Atmel Application Note. 2016<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 Newbie's Guide to AVR Timers]<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=55347 The traps when using interrupts]<br />
* [http://senzor.robotika.sk/mmp/AVR-C-Timers.pdf Ako používať časovače v AVR C]<br />
* [http://senzor.robotika.sk/mmp/PreruseniaAVR.pdf Prednáška o prerušeniach] (Ing. Chamraz)<br />
<br />
<br />
'''Odkazy'''<br />
<br />
* Knižnica pre Arduino: http://www.arduino.cc/playground/Code/Timer1<br />
<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Po%C4%8D%C3%ADtadl%C3%A1_a_%C4%8Dasova%C4%8De_AVR&diff=15120Počítadlá a časovače AVR2024-03-14T11:41:54Z<p>Balogh: /* Overflow / pretečenie */</p>
<hr />
<div>[[Súbor:MechanicalCounter.jpg|250px|right]]<br />
<br />
<br />
'''Pozn:.''' Tu si môžete stiahnuť novú verziu LCD knižnice http://senzor.robotika.sk/mmp/src/<br />
<br />
<br />
<br />
== 16-bitové počítadlo a časovač T1 s prerušením ==<br />
<br />
Máte k dispozícii vývojovú dosku '''Arduino''' s procesorom ATmega328P ([http://senzor.robotika.sk/mmp/ATmega328.pdf datasheet]).<br />
<br />
V tejto úlohe sa predpokladá znalosť funkcie časovača T1 z prednášky (datasheet, str.114 -- 141). <br />
Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 16,000 MHz.<br />
<br />
<br />
<div style='text-align: center;'><br />
<HTML><br />
<IFRAME Src="https://senzor.robotika.sk/mmp/anim/counter1.html" width="750" height="450" style="border:none;"></IFRAME><br />
<!-- A HREF="http://senzor.robotika.sk/mmp/counter/index.html">Simulátor počítadla</A --><br />
<BR><A HREF="https://senzor.robotika.sk/mmp/anim/counter1.html">Simulátor počítadla</A><br />
<br />
</HTML><br />
</div><br />
<br />
<br />
=== Počítadlo T1 ===<br />
<br />
<br />
K vývojovej doske budeme mať pripojený LCD displej ako na minulom cvičení a pripojíme aj tlačítko na vstup PD5 (Arduino D5). Schémy zapojenia tu nebudeme opakovať, použijete tie z minulého cvičenia. <br />
<br />
Ukážeme si, ako treba nakonfigurovať počítadlo T1, aby registrovalo počet stlačení tohoto tlačítka. Okrem tlačítka (čo nemá veľký praktický význam) môžeme počítať napr. počet impulzov z nejakého snímača za pevnú periódu a tým zistiť frekvenciu, alebo počítať kroky z inkrementálneho snímača a zistiť tak polohu pohonu, alebo počítať napr. počet výrobkov, ktoré prepadli cez optickú závoru. <br />
Zároveň budeme tlačítkom ovládať zabudovanú LED diódu aby ste videli, že vstupy sú skutočne multifunkčné. <br />
<br />
Na pripojenom LCD displeji si zobrazíme aktuálny stav tlačítka (0/1) a stav počítadla TCNT1 v hexadecimálnom tvare.<br />
<br />
Na prvom obrázku je časť vnútornej štruktúry počítadla a časovača T1. Ako vidno, konfigurácia do režimu počítania impulzov z externého vstupu spočíva len v nastavení príslušných bitov v registri TCCR1B. Ostatné bity a konfiguračné registre si zatiaľ nebudeme všímať. <br />
<br />
[[Obrázok:AVR Timer T1 Counter.png|center]]<br />
<br />
<br />
Na druhom obrázku vidno, že nastavenie sa vykoná spodnými troma bitmi registra TCCR1B. Žiadne ďalšie nastavenie v tejto chvíli nie je potrebné. Môžeme však pre istotu vynulovať aj register počítadla TCNT1.<br />
<br />
[[Obrázok:AVR Timer TCNT1 Counter.png|center]]<br />
<br />
<tabs><br />
<tab name="Verzia LCD"><source lang="c"><br />
#define F_CPU 16000000UL<br />
<br />
#include <avr/io.h><br />
#include <util/delay.h><br />
#include "lcd_ch.h" // using our LCD library<br />
<br />
#define LED1 PB5 // internal LED<br />
#define SW1 PD5 // pushbutton on PD5 (Arduino D5)<br />
<br />
int main(void)<br />
{<br />
char riadok[]= {" "}; <br />
int value = 0;<br />
<br />
DDRB |= (1<<LED1); // PORTB: LED1 na PB5 je output<br />
<br />
DDRD &= ~(1<<SW1); // PORTD: SW2 (PD5) input<br />
PORTD |= (1<<SW1); // pull-up ON<br />
TCNT1 = 0x0000; // initialize (CLEAR) counter <br />
TCCR1B = 0b00000111; // T1 clk = external clock source on pin T1, rising edge<br />
<br />
/* initialize LCD display */<br />
ini_ports();<br />
lcd_init();<br />
<br />
lcd_puts("-Button counter-"); <br />
<br />
while(1)<br />
{<br />
/* test the switch first */<br />
<br />
if ( PIND&(1<<SW1) )<br />
{ value = 1; <br />
PORTB &= !(1<<LED1); }<br />
else <br />
{ value = 0;<br />
PORTB |= (1<<LED1); }<br />
<br />
lcd_command(0xC0 + 0); // a vrátime kurzor na začiatok 2. riadku (0b1000 0000 + 40 + 0) <br />
sprintf(riadok,"D5: %d TCNT: %04X",value,TCNT1); // vytvoríme kombinovaný text<br />
lcd_puts(riadok); // zobrazíme ho na displeji<br />
<br />
<br />
}<br />
<br />
return(0);<br />
<br />
}<br />
<br />
</source></tab><br />
<tab name="Verzia UART"><source lang="c"><br />
#define BAUD 9600<br />
<br />
#include <avr/io.h><br />
#include <stdio.h><br />
#include "uart.h"<br />
<br />
#define LED1 PB5 // internal LED<br />
#define SW1 PD5 // pushbutton on PD5 (Arduino D5)<br />
<br />
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);<br />
<br />
int main(void)<br />
{<br />
int value = 0;<br />
<br />
DDRB |= (1<<LED1); // PORTB: LED1 na PB5 je output<br />
<br />
DDRD &= ~(1<<SW1); // PORTD: SW2 (PD5) input<br />
PORTD |= (1<<SW1); // pull-up ON<br />
TCNT1 = 0x0000; // initialize (CLEAR) counter <br />
TCCR1B = 0b00000111; // T1 clk = external clock source on pin T1, rising edge <br />
<br />
uart_init(); // Inicializacia seriovej linky<br />
stdout = &mystdout; // Odteraz funguje printf();<br />
<br />
printf("\n-Button counter-\n\n");<br />
<br />
while(1)<br />
{<br />
/* test the switch first */<br />
<br />
if ( PIND&(1<<SW1) )<br />
{ value = 1; <br />
PORTB &= !(1<<LED1); }<br />
else <br />
{ value = 0;<br />
PORTB |= (1<<LED1); }<br />
<br />
printf("D5: %d TCNT: %04X\r",value,TCNT1); // vytvoríme kombinovaný text<br />
<br />
}<br />
<br />
return(0);<br />
}<br />
</source></tab><br />
</tabs><br />
<br />
<br />
'''Úloha:''' pripočíta počítadlo naozaj vždy len jeden impulz pri stlačení tlačítka? Ak áno, prečo? Ak nie, prečo?<br />
<br />
== Overflow / pretečenie ==<br />
<br />
Aby sme nemuseli stlačiť tlačidlo 65 535 krát, trocha si to uľahčíme. Nasledovný výsek programu nastaví počítadlo na 5 impulzov pred pretečení, t.j. (0xFFFF - 5) a potom sleduje v hlavnej slučke, kedy nastane pretečenie. Počítadlo stále počíta impulzy, ktoré mu dávame externým signálom na T1, čiže tlačítkom.<br />
<br />
<br />
Pokúsime sa program zmeniť tak, aby namiesto zobrazenia stavu pinu <code>D5</code> zobrazoval stav príznaku pretečenia počítadla <code>TOV1</code> (Timer1 Overflow) v registri <code>TIFR1</code>.<br />
<br />
<tabs><br />
<tab name="AVR-GCC"><source lang="c"><br />
<br />
/* tento riadok treba pridať do inicializačnej časti programu */<br />
<br />
TCNT1 = 0xFFFA; // initialize (CLEAR) counter <br />
<br />
<br />
/* a tento kus programu zaradiť do hlavnej slučky while(1) */<br />
<br />
<br />
/* test the overflow bit */<br />
<br />
if ( (TIFR1 & 0x01) == 0x01) // If the overflow flag is set<br />
{ <br />
TCNT1 = 0x????; // Restart T/C1 - reload<br />
TIFR1 = 0x01; // Clear the overflow flag<br />
}<br />
<br />
<br />
/* a napokon vymeniť riadok s výpisom za nasledovný */<br />
<br />
printf("TO: %d TCNT: %04X\r",TIFR1,TCNT1); // zobrazíme TOF a TCNT<br />
<br />
<br />
</source></tab><br />
</tabs><br />
<br />
'''Úloha:''' Čo sa stane, ak príznak pretečenia nevynulujete? Prečo?<br />
<br />
<br />
<br />
=== Časovač T1 ===<br />
<br />
Zdroj hodín a preddelička je nakreslená na nasledovnom obrázku<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:AVR_Timer_ClockSource.png]]<BR><br />
''Voľba vstupov pre počítadlo.''<br />
</div><br />
<br />
<br />
Ako vidno z obrázku s vnútornou štruktúrou časovača, prechod z režimu počítania do časovania je opäť možný jednoduchou zmenou posledných troch bitov v registri TCCR1B.<br />
Skúste zmeniť nasledovný riadok v predošlom programe tak, aby zdrojom hodín časovača bol oscilátor procesora. Ak chceme sledovať zmeny voľným okom, musíme frekvenciu <br />
oscilátora 16 MHz znížiť preddeličkou na čo najnižšiu hodnotu. <br />
<br />
<source lang="c"><br />
TCCR1B = 0b00000101; // T1 clk = internal clock source, prescaler 1:1024<br />
</source><br />
<br />
Overte, že tlačidlo aj naďalej bude fungovať, ale už nemá žiaden vplyv na stav počítadla TCNT1.<br />
<br />
<br />
<br />
<br />
Teraz už máme pripravené všetko potrebné na to, aby sme vedeli riadiť frekvenciu blikania LED diódy pomocou časovača T1.<br />
V hlavnej programovej slučke budeme testovať príznak pretečenia TOV1 a v prípade, že časovač pretečie, tak zmeníme stav<br />
LED diódy. Aby sa to opakovalo a táto situácia nenastala len raz, znova naplníme register TCNT1 inicializačnou hodnotou a vynulujeme príznak pretečenia (ten sa nevynuluje sám od seba, ale robí sa to pomerne neintuitívne tak, že do registra TIFR1 zapíšeme na pozíciu TOV1 log. 1 - čiže ako by sme ten príznak prepísaním jednotkou vymazali).<br />
<br />
<source lang="C"><br />
if ( (TIFR1 & (1<<TOV1)) == 0x01 )<br />
{<br />
PORTB = PORTB ^ (1<<LED1); // toggle LED1 <br />
TCNT1 = 0x8000; // initialize counter napr. 8000 hex<br />
TIFR1 = (1<<TOV1); // zapisom jednotky vynulujem priznak Timer Overflow <br />
} <br />
<br />
/* znova si zobrazime aktualne hodnoty */<br />
<br />
printf("TF: %d TCNT: %04X\r",(TIFR1 & (1<<TOV1)),TCNT1); <br />
<br />
</source><br />
<br />
Čo sa zmení, ak príznak pretečenia nevynulujete?<br />
<br />
<br />
'''Úlohy'''<br />
<!--<br />
# Program doplňte podľa pokynov asistenta a odsimulujte.<BR>Pozn.: Treba vypnúť optimalizáciu! (Project/Project options [[Médiá:AVRstudioOptimize0.png|Pozri obr.]])<br />
--><br />
# Vypočítajte správnu hodnotu TCNT1 tak, aby LED blikala s frekvenciou 1 s. Overte!<br />
<br />
<br />
<FONT Size="+2">Cvičenie pokračuje [[Generovanie tónov|druhou časťou...]]<BR><BR><BR></FONT><br />
<br />
== Informácie ==<br />
<br />
<br />
'''Literatúra'''<br />
<br />
* [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-2505-Setup-and-Use-of-AVR-Timers_ApplicationNote_AVR130.pdf AVR130: Setup and Use of AVR Timers] Atmel Application Note. 2016<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 Newbie's Guide to AVR Timers]<br />
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=55347 The traps when using interrupts]<br />
* [http://senzor.robotika.sk/mmp/AVR-C-Timers.pdf Ako používať časovače v AVR C]<br />
* [http://senzor.robotika.sk/mmp/PreruseniaAVR.pdf Prednáška o prerušeniach] (Ing. Chamraz)<br />
<br />
<br />
'''Odkazy'''<br />
<br />
* Knižnica pre Arduino: http://www.arduino.cc/playground/Code/Timer1<br />
<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15119MIPS Projekt2024-03-14T06:58:26Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="65"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
<li value="56">David Majba: ''Vysielač morzeovky'' (po sériovej linke prijme písmená a odpípa ich)<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15118MIPS Projekt2024-03-13T14:37:39Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="66"> Vstupná jednotka s palcovým prepínačom [https://www.radiotechna.cz/net/vindet.php?noba=&ur=0&token=&id=6116 TS211]<br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="65"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="56"> Vysielač morzeovky (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15117MIPS Projekt2024-03-13T14:14:44Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="65"> Klávesnica 4x4 s radičom [https://elparts.mekweb.eu/ds/MH1KK1.pdf MH1KK1]<br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="65"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="56"> Vysielač morzeovky (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15116MIPS Projekt2024-03-13T14:10:15Z<p>Balogh: /* Archív projektov z predošlých rokov */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="65"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="56"> Vysielač morzeovky (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="54">Tomáš Reismüller: ''Inteligentný šatník''<br />
</ol><br />
<br />
<br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15115MIPS Projekt2024-03-13T14:09:54Z<p>Balogh: </p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="65"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="56"> Vysielač morzeovky (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
=== Projekty MIPS 2024 ===<br />
<br />
<ol><br />
<li value="54">Tomáš Reismüller: Inteligentný šatník<br />
</ol><br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15114MIPS Projekt2024-03-13T13:56:02Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="64"> 14-segmentový LED displej<br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="54"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="56"> Vysielač morzeovky (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15113MIPS Projekt2024-03-13T13:55:07Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="63"> PRijímač diaľkového IR ovládania (RGB LED mení farbu na diaľku)<br />
<li value="62"> Diaľkové ovládanie spotrebiča pomocou infračerveného signálu<br />
<li value="61"> Jednoduché menu ovládané rotačným enkodérom s výberom možností<br />
<li value="54"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="56"> Vysielač morzeovky (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&diff=15112MIPS Projekt2024-03-13T13:48:25Z<p>Balogh: /* Voľné projekty */</p>
<hr />
<div>Cieľom semestrálneho projektu je ukázať, že ste sa na našom predmete skutočne niečo naučili a že ste schopní samostatne vyriešiť a naprogramovať jednoduchšiu úlohu s mikropočítačom. <br />
<br />
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:<br />
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.<br />
* Zdrojový kód (prípadne aj použité knižnice ak sú iné ako štandartne použité lcd.h, uart.h a i2c.h) aj s bohatými vlastnými komentármi<br />
* Video, malo by obsahovať aj nejaký komentár, kde bude opisovať čo vidíme, čo sa deje a prečo sa to tam deje. Malo by zdokumentovať všetky funkcie, ktoré ste naprogramovali.<br />
<br />
<br />
<br />
{{cbox|text='''Upozornenie:''' programy vypracujete v avr-gcc, '''nie''' v Arduino IDE prostredí.<BR> Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}<br />
<br />
<br />
<FONT Color="red" Size="+1"><br />
'''Vlastné:'''<br />
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.<br />
</FONT><br />
<br />
Mnoho projektových tipov napr. tu https://www.engineersgarage.com/avr-microcontroller/page/2/<br />
<br />
<br />
== Voľné projekty ==<br />
<br />
<ol> <br />
<li value="54"> Naprogramujte nejakú pesničku aj s akordmi (využite skutočnosť, že procesor má až tri nezávislé časovače). <br />
<li value="55"> Riadenie polohy klapky klimatizácie Mahle<br />
<li value="56"> Vysielač morzeovky (po sériovej linke prijme písmená a odpípa ich)<br />
<li value="57"> Meranie vzdialenosti UZ snímačom HC-SR04<br />
<li value="58"> Maticový displej 8x8 s driverom MAX7219<br />
<li value="59"> RFID čítačka RC522<br />
<li value="60"> 7-segmentový displej na futbalové skóre<br />
<li value="10"> Piškvorky (Tic-Tac-Toe) na 8x8 maticovom displeji<br />
<li value="12"> Generátor signálov: obdlžnik, trojuholník, sinus. Parametre amplituda, frekvencia, posunutie, .. a vykresliť na plotter. Ak je to zložite, možno rozdeliť na časti. <br />
<li value="13"> Cez sériovú linku pracujte s i2c EEPROM - výpis celého obsahu v DEC/HEx/BIn, výpis konkrétnej adresy a modifikácia obsahu s verifikáciou<br />
<li value="15"> Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="16"> Tester Arduina (ovládanie cez terminál, príkazy In - stav na pine n, I* stav na vsetkych, Ln - Low na pin n, Hn - high na pin n, ? - help...)<br />
<li value="27"> Integrátor. Potenciometer zadá veľkosť vstupu integrátora. Vytvorí sa zdroj reálneho času, prírastku času, napr. 5ms. A s nastavenou integračnou časovou konštantou sa bude meniť v reálnom čase, výstup, ktorý sa bude zobrazovať na serial, plot. <br />
<li value="28"> Jednoduchý P regulátor. (Nepotrebuje periódu vzorkovania). Bude daná rýchlosťou merania napätia na potenciometre. Keďže je daný 10b prevodník, je daný aj rozsah w (želaná hodnota), y (meraná hodnota) a e (regulačná odchýlka). E sa prenásobí zosilnením, napr. pevná rádová čiarka a pošle sa von na PWM výstup napr. 8b. Treba len vhodne nastaviť periódu opakovania. Opäť možno zobrazovať na serial plot. meranú hodnotu a tomu odpovedajúce plnenie ako funkcia w., atď. <br />
<li value="44"> [https://techfun.sk/produkt/hodinovy-modul-ds1302/ Hodinový modul DS1302] - napíšte rutiny na nastavenie a prečítanie aktuálneho času a dátumu. Predvedenie si vymyslite, napr. zobrazenie aktuálneho času na LCD displeji.<br />
</ol><br />
<br />
<br />
<!-- nove pridavaj uz sem, lebo cislovanie --><br />
<br />
== Archív projektov z predošlých rokov == <br />
<br />
* Balogh: ''[[MIPS Template|Vzorová šablóna na projekty.]]'' 2023.<br />
<BR><br />
<br />
<br />
=== Projekty MIPS 2023 ===<br />
<br />
<ol><br />
<li value="45">Matej Haratim*: ''[[Zbernica i2c: PCF8574]] - IO expandér.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="51">Erik Szegi*: ''[[Tester logických obvodov]]''<br />
<li value="50">✓ Tomáš Bečvarov: ''[[Senzor farieb TCS230]].'' 2023<br />
<li value="47">✓ Martin Cíbik: ''[[Riadenie krokového motorčeka I.]]'' 2023<br />
<li value="46">✓ Viktor Fos*: ''[[Rotačný enkodér]]''. 2023<br />
<li value="53">✓ Kristián Greif: ''[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.'' Jednoduchý driver a knižnica pre tento obvod. 2023<br />
<li value="8" >✓ Ivan Hílek: ''[[Postrehová hra]]'' <br />
<li value="48">✓ Ivan Jagoš: ''[[Dekodér infračerveného ovládača]]''. 2023<br />
<li value="49">✓ Mykyta Sabadash: ''[[Hlukomer]]''. 2023<br />
<li value="52">✓ Lukáš Savčak: ''[[Snímač teploty TMP36]]''. 2023<br />
<li value="43">✓ Juraj Štefánik: ''[[Segmentový display TM1637]]''. 2023<br />
<li value="41">✓ Samuel Tomáš: ''[[Miniatúrny analógový joystick]]''. 2023<br />
<li value="42">✓ Hortenzia Wollentová: ''[[Ovládač maticovej klávesnice]]''. 2023<br />
<li value="11">✓ Jozef Záhora: ''[[Jednoduchá terminálová kalkulačka]]''. 2023<br />
<br />
</ol><br />
<br />
=== Projekty MIPS 2022 ===<br />
<br />
<ol><br />
<li value="1"> Martin Drgala: <!-- Lipták, Kristián: --> Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej<br />
<li value="2"> Veronika Remeňová: <!-- Turčan, Maroš: --> Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej<br />
<li value="3"> František Kapsz: <!-- Buday, Bálint: --> Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)<br />
<li value="5"> Roderik Bako: <!-- Belokostolský, Alex Kristóf --> [https://www.mathsisfun.com/games/simon-says.html Simon's Game] 4x LED, 1x tlačítko, LCD displej na skore<br />
<li value="6"> Mário Babinský: Hra - vyhýbanie sa prekážkam na LCD displeji, ovládanie jedným tlačidlom, hráč (auto) ide vpred a prepína jazdné pruhy (riadky displeja)<br />
<li value="7"> Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="7"> Dávid Červenka: Modifikovaný simulátor hollywood pyrotechnika - displej odrátava čas ako stĺpcový diagram a pípanei sa zrýchluje, pričom študent má na výber dva káble ktoré môže "prestrihnúť" (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo "vybuchne" bombu<br />
<li value="14"> Alexander Lazorík: <!-- Goljer, Ivan: --> Hudobný nástroj ovládaný cez klávesnicu, sériovou linkou posiela tóny a Arduino ich hrá. Zapamätá si melódiu a vie ju zopakovať<br />
<li value="15"> Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).<br />
<li value="17"> Marek Porubský: <!-- Berta, Kristof: --> ''Meranie teploty pomocou interného snímača procesora.'' (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])<br />
<li value="18"> Andrii Sikomas: <!-- Bilčík, Martin: --> ''Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).''<br />
<li value="19"> Adam Sližka: <!-- Oboril, Oliver:--> LED ako senzor intenzity svetla<br />
<li value="20"> Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.<br />
<li value="21"> Jakub Červenka: <!-- Skachová, Zuzana:--> Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)<br />
<li value="22"> Sabina Ovčiariková: <!-- Görözdös, Gergely: --> Binárne hodiny/stopky alebo počítadlo, rozsvietená LED-ky by ukazovali počet sekúnd/počet kliknutí tlačidla, mohlo by to byť sprevádzané pípnutím každých 10 stlačení alebo každú minútu.<br />
<li value="23"> Oleksandr Shyp: <!-- Hajda, Jaroslav: --> ''Posúvanie bodky na 8x8 led displayi pomocou joysticku.''<br />
<li value="29"> Martin Vdovják: <!-- Mosej, Samuel: -->Digitálny alarm - treba zadať správnu sekvenciu tlačidiel, keď sa vloží správna sekvencia rozsvieti sa tlačidlo, nesprávna sekvencia zabzučí alarm (možno aj pridať možnosť vkladať nové kódy)<br />
<li value="36"> Attila Hriňa: <!-- Papcun, Miroslav: --> Hra na trénovanie hudobného sluchu - reproduktor zahrá 2 (náhodné) tóny a hráč musí povedať, či bol vyšší prvá alebo druhý (dve tlačidlá).<br />
<li value="37"> Korytova, Taisiia: Svetelná križovatka s nočným režimom. <!-- Fabian, Maroš --><br />
<li value="38"> Ákos Keszegh: Reaction Timer<br />
<li value="39"> Marek Trúchly: Atmel2586 s MEMS akcelerometerom<br />
<li value="40"> Oskar Bálint: Automatické otváranie dverí s PIR senzorom<br />
<li value="41"> Adam Kašička: Model a signalizácia sekvenčnej prevodovky<br />
<li value="42"> Ing. Ján Šefčík: Riadenie modelu Ball&Beam<br />
<br />
</ol><br />
<br />
<BR><BR><BR><br />
<br />
=== Zadania semestrálnych projektov v minulosti ===<br />
<br />
<!--<br />
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. <br />
<br />
Zadanie pozostáva z dvoch častí:<br />
<br />
1. teoretická časť - v tejto časti máte popísať v rozsahu max. 10 strán čo a ako ste použili. Typicky tu býva uvedený popis periférnych obvodov, ktoré ste pripojili k mikroprocesoru, použité periférie mikropočítača dôležité registre s popisom jednotlivých bitov atď. (max. 20b.)<br />
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. <br />
Na prvé zoznámenie so systémom môžete použiť [[Testing Page|testovaciu stránku]] a [[Projekt: vzorová šablóna|vzorový projekt - šablónu]].<br />
<br />
2. program - okrem predvedenia programu cvičiacemu je poterbné napísať k nemu tiež krátky popis, alebo vývojový diagram. Môže byť súčasťou prvej časti zadania. (max. 20 b.)<br />
<br />
Termín na odovzdanie je na dohode s cvičiacim, najneskôr do skúšky. Na zadaní môžete pracovať priebežne, alebo sa dohodnite s cvičiacim na súvislej práci v laboratóriu (napr. jeden celý deň). POZOR: niektoré zadania vyžadujú prípravu aj od cvičiaceho, nečakajte preto, že prídete a budete mať všetko na prácu nachystané -- treba sa vopred dohodnúť.<br />
--><br />
<br />
<br />
'''Projekty 2014'''<br />
<br />
* Lechvár, Slaminka: ''[[Meranie pulzovej frekvencie.]]'' 2014.<br />
* Jankovič, Lukáč: ''[[Zbernica i2c: hodiny RTC.]]'' 2014.<br />
* Bača, Galovič: ''[[Bezdrôtová komunikácia v pásme 433 MHz.]]'' 2014.<br />
* Katona, Nehánszki: ''[[Hodiny RTC s kalendárom pomocou PCF8583]]''. 2014.<br />
* Benedek, Cintula, Gahér: ''[[Trojosí gyroskopický modul L3G4200D]]''. 2014.<br />
* Šandal, Vincze: ''[[Trojosí akcelerometer MMA7455]]''. 2014.<br />
* Kocian, Švančara: ''[[RFID čítačka]]''. 2014<br />
* Martinkovič, Valach: ''[[RFID čítačka II]]''. 2014<br />
* Jakubička, Vyletel: ''[[Inkrementálny snímač]]''. 2014<br />
* Bohuš, Vargic, Gašparová: ''[[MEMS mikrofón ADMP401]]''. 2014<br />
<br />
<br />
<br />
'''Projekty 2013'''<br />
<br />
* Godál, R. a Šimončič, M.: ''[[Meranie reakčnej doby]].'' 2013.<br />
* Leško, D. a Biath, V.: ''[[MiniMEXLE Hodiny na orientačný beh]].'' 2013.<br />
* Paulen, J. a Vojvoda, R.: ''[[Meranie krátkych intervalov]].'' 2013.<br />
* Jurák, M. a Vlahi, L.: ''[[Meranie časového intervalu]].'' 2013.<br />
* Rybárik, M. a Lukáč, M.: ''[[Odpočítavacie hodiny na riadenie diskusie]].'' 2013.<br />
<br />
<br />
'''Projekty 2012'''<br />
<br />
* Cebák, Darvaši: ''[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]'' 2012.<br />
* Pecho, Lacko: ''[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]'' 2012.<br />
* Rekšák, Mrva: ''[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]'' 2012.<br />
* Boráros, Gál: ''[[Zbernica i2c: FM rádio]].'' 2012.<br />
* Berčák, Harmata: ''[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]'' 2012.<br />
* Géczy, Kamenský: ''[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]'' 2012.<br />
<br />
* Szolik, Šnyr: ''[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]'' 2012.<br />
* Gálik, Gogola: ''[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]'' 2012.<br />
* Virág, Topoli: ''[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]'' 2012.<br />
* Statečný: ''[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]'' 2012.<br />
* Vincze, Rozsár: ''[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]'' 2012.<br />
* Baláž, Kupčiha: ''[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]'' 2012.<br />
* Mazúch, Lovaš, Oravec: ''[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]'' 2012.<br />
* Špitálová: [[Parkovací senzor]] 2012.<br />
<br />
<br />
[[Category:AVR]] [[Category:MIPS]]</div>Baloghhttps://senzor.robotika.sk/sensorwiki/index.php?title=Generovanie_t%C3%B3nov&diff=15111Generovanie tónov2024-03-12T14:04:50Z<p>Balogh: </p>
<hr />
<div>Generovanie tónov prostredníctvom pripojeného miniatúrneho reproduktora je veľmi obľúbené a využíva sa aj ako akustická signalizácia pri prekročení hraničných stavov, alebo ako alarm. <br />
<br />
Pri použití miniatúrnych piezoreproduktorov si treba dať pozor na správny typ. V praxi sa veľmi často vyskytujú aj samobudené signazlizačné prvky - sirénky, ku ktorým stačí priviesť správne napájacie napätie a zvuk začnú generovať automaticky, pomocou zabudovaného oscilátora, najčastejšie naladeného na mechanickú rezonančnú frekvenciu meniča, takže obvykle aj účinnosť je výborná a hlasitosť ľahko presiahne desiatky dB.<br />
<br />
My sa však v ďalšom budeme zaoberať len pasívnym meničom, čo je vlastne miniatúrny reproduktor, ktorý musíme vybudiť vhodnou frekvenciou, aby sme z neho dostali nejaký zvuk. Na prvý pohľad je to nevýhoda, ale takto môžeme generovať oveľa širšiu škálu zvukov. Nepočítajte však s nejakou hi-fi kvalitou, piezomeniče sú určené najmä na signalizáciu a nie na prehrávanie Carminy Burana. <br />
<br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:MIPS_buzzerDemoSchema02.png|500px]]<BR><br />
''Schéma pripojenia piezomeniča k procesoru. Ak vám nepomôže, použite [[Media:MIPS_buzzerDemoSchema01.png|zapojovací diagram]]''<br />
<br />
<br />
<HTML><br />
<IFRAME Src="https://senzor.robotika.sk/mmp/anim/counter2.html" width="700" height="450" style="border:none;"></IFRAME><BR><br />
<I><A HREF="https://senzor.robotika.sk/mmp/anim/counter2.html">Simulácia počítadla 0 v režime CTC</A></I><br />
</HTML><br />
<br />
</div><br />
<br />
== Najjednoduchší program ==<br />
<br />
Frekvečný signál môžeme na výstupoch procesora generovať dvoma spôsobmi<br />
# priamo ovládať daný výstup (v takom prípade však procesor nerobí nič iné), alebo<br />
# využiť vstavané periférie, v tomto prípade počítadlo <code>Timer0</code> v režime generátora frekvencie <code>CTC</code>. <br />
Ďalej sa budeme zaoberať len druhým spôsobom. To nám obmedzí možné výstupy - môžu to byť len tie, na ktoré sú pripojené interné počítadlá, t.j. 3,5,6,9,10 alebo 11. Na doske Arduino UNO majú tieto výstupy pri čísle aj vlnovku. <br />
<br />
'''Poznámka:''' výstupný frekvenčný signál bude mať síce správnu frekvenciu, ale tvar bude obdĺžnikový. Jednoduchými prostriedkami nedokážeme na výstupe generovať spojitý harmonický signál (sínusovku).<br />
<br />
<br />
<tabs><br />
<tab name="AVR C-code"><source lang="c++" style="background: LightYellow;"><br />
#define F_CPU 16000000UL // toto je lepsie vlozit do parametrov pre kompilator<br />
<br />
#include <avr/io.h><br />
#include <util/delay.h><br />
<br />
void delay(int delay) // vlastna funkcia, lebo inak je max 16ms<br />
{<br />
for (int i=1; i<=delay; i++)<br />
_delay_ms(1);<br />
} <br />
<br />
<br />
int main(void)<br />
{<br />
DDRD |= (1 << PD6); // port D.6 pin ako vystup<br />
<br />
TCCR0A = (1 << COM0A0) // toggle pin on match<br />
| (1 << WGM01); // timer 0 in CTC mode<br />
<br />
TCCR0B = (1 << CS02); // set prescaler 256<br />
<br />
OCR0A = 70; // initialize timer0<br />
<br />
<br />
while(1)<br />
{<br />
delay(250); // 50ms delay<br />
OCR0A = 70; // for 440 Hz #A4<br />
delay(250); // 50ms delay<br />
OCR0A = 35; // for 880 Hz #A5<br />
}<br />
}<br />
</source></tab><br />
<tab name="Arduino code"><source lang="arduino" style="background: #9dd1e1;"><br />
/* ************************************************* <br />
*<br />
* Arduino code for Passive buzzer / Piezo Speaker<br />
*<br />
* ************************************************** */<br />
<br />
const int buzzer = 6; // connect buzzer to Arduino pin 6<br />
<br />
void setup(){<br />
pinMode(buzzer, OUTPUT); // set the buzzer pin as an output<br />
}<br />
<br />
void loop(){ <br />
tone(buzzer, 440); // send 440 Hz wave to the output<br />
delay(250); // and do it for 1 sec<br />
noTone(buzzer); // stop frequency output<br />
delay(250); // again for 1 sec<br />
tone(buzzer, 880, 500); // third parameter is length in ms<br />
delay(250); // in reality 1000 - 500<br />
}<br />
</source><br />
<br />
Obmedzenia pre Arduino<REF>Referenčná príručka Arduino, dostupná na adrese https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/</REF>:<br />
* Ak použijete funkciu tone(), tak nemôžete zároveň použiť analogWrite() na pinoch 3 alebo 11, pretože obe používajú ten istý časovač.<br />
* Funkcia tone() nevie generovať tón s frekvenciou menšou ako 31 Hz. <br />
* Funkcia tone() sa nedá použiť súčasne na dvoch rôznych výstupoch.<br />
</tab><br />
</tabs><br />
<br />
<br />
<br />
<br />
<br />
'''Úloha:''' Naprogramujte vlastnú funkciu <code lang="c">void tone (int TONE, int DURATION);</code> s dvoma parametrami - <code>TONE</code> je výška tónu, <br />
pričom odporúčame zadefinovať jednotlivé tóny napr. takto<br />
<source lang="c"><br />
#define A4 70 <br />
// tone __| |__ value for OCR is 70<br />
<br />
</source><br />
Druhý parameter, <CODE>DURATION</CODE> je dĺžka trvania v ms.<br />
<br />
<br />
<br />
'''Poznámky k programu pre AVR-GCC'''<br />
<br />
Podla https://balau82.wordpress.com/2014/10/15/using-a-buzzer-with-arduino-in-pure-c/<br />
<br />
V horeuvedenom príklade využívame <syntaxhighlight inline>Timer0</syntaxhighlight> a jeho výstup <syntaxhighlight inline>OC0A</syntaxhighlight>, ktorý je mapovaný na pin '''6''' portu '''D''' procesora ATmega328P, (na Arduino doske označený ako D6). <br />
Počítadlo a časovač <syntaxhighlight inline>Timer0</syntaxhighlight> má niekoľko režimov činnsotí, my sme využili režim ''Clear Timer on Compare Match'' (CTC). V tomto režime sa dá výstup pinu <syntaxhighlight inline>OC0A</syntaxhighlight> ovládať frekvenciou, ktorú vieme<br />
nastaviť pomerne presne aj s potrebnou striedou 50% (pripomínam, že výstup je obdĺžnikový, nie harmonický). Vzťah pre nastavenie frekvencie je podľa datasheetu:<br />
<br />
<math><br />
f_{OCnx}=\frac{f_{clkIO}}{2\cdot N\cdot (1+OCRnx)}<br />
</math><br />
<br />
Kde <math>f_{OCnx}</math> je frekvencia generovaného signálu, <math>f_{clkIO}</math> je frekvencia oscilátora (pre Arduino UNO je to 16 MHz), <math>N</math> je preddelič a <syntaxhighlight inline>OCRnx</syntaxhighlight> je príslušný Output Compare Register, v našom prípade <syntaxhighlight inline>OCR0A</syntaxhighlight>, ktorý prislúcha k pinu <syntaxhighlight inline>OC0A</syntaxhighlight>.<br />
Ako príklad uvedieme výpočet hodnôt pre komorné A, teda tón s frekvenciou 440Hz. Preddelič môžeme nastaviť len na hodnoty z množiny {1; 8; 64; 256; 1024}, tak vyberieme napríklad N = 256 a k tomu dopočítame hodnotu pre register OCR0A = 70. Pre iné hodnoty nám nevyjde hodnota, ktorá by sa vošla do 8-bitového registra.<br />
<br />
<br />
<br />
<div style='text-align: center;'><br />
[[Súbor:timer0avrCalc.png]]<BR><br />
''Pre výpočet sa dá použiť aj niektorá z utilitiek na internete, napríklad<br />
[https://sourceforge.net/projects/avrcalc/ AVR Calc] od Brandona Robertsa''<br />
</div><br />
<br />
<div style='text-align: center;'><br />
[[Súbor:timer0scopeSignal.png]]<BR><br />
''Takto vyzerá priebeh na výstupe zmeraný osciloskopom. V ľavej časti je priebeh 880 Hz signálu, v pravej je 440 Hz. Hodnoty namerané kurzormi sú v dolnej časti obrázku.''<br />
</div><br />
<br />
<br />
<br />
'''Poznámky k <syntaxhighlight inline>_delay_ms()</syntaxhighlight>''' pozri -> [[Oneskorenia s AVR]]<br />
<br />
<br />
'''Úloha:'''<br />
Naprogramujte melódiu niektorej slovenskej pesničky s minimálnym počtom 15 tónov. <br />
<br />
<br />
<br />
== Komplexnejšie melódie ==<br />
<br />
Ak sa nám bude chcieť, tak sem dáme aj zložitejšie programíky...<br />
<br />
Napríklad tento odtialto https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-11-using-a-piezo-buzzer<br />
<br />
<tabs><br />
<tab name="Arduino code"><source lang="arduino" style="background: LightBlue;"><br />
/*<br />
Connect the positive pin to Arduino digital pin 9.<br />
Connect the negative pin to GND.<br />
<br />
This sketch was written by SparkFun Electronics,<br />
with lots of help from the Arduino community.<br />
(This sketch was originally developed by D. Cuartielles for K3)<br />
<br />
Version 2.0 6/2012 MDG */<br />
<br />
const int buzzerPin = 6;<br />
<br />
// We'll set up an array with the notes we want to play<br />
// change these values to make different songs!<br />
<br />
// Length must equal the total number of notes and spaces <br />
<br />
const int songLength = 18;<br />
<br />
// Notes is an array of text characters corresponding to the notes<br />
// in your song. A space represents a rest (no tone)<br />
<br />
char notes[] = "cdfda ag cdfdg gf "; // a space represents a rest<br />
<br />
// Beats is an array of values for each note and rest.<br />
// A "1" represents a quarter-note, 2 a half-note, etc.<br />
// Don't forget that the rests (spaces) need a length as well.<br />
<br />
int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};<br />
<br />
// The tempo is how fast to play the song.<br />
// To make the song play faster, decrease this value.<br />
<br />
int tempo = 113;<br />
<br />
<br />
void setup() <br />
{<br />
pinMode(buzzerPin, OUTPUT);<br />
}<br />
<br />
<br />
void loop() <br />
{<br />
int i, duration;<br />
<br />
for (i = 0; i < songLength; i++) // step through the song arrays<br />
{<br />
duration = beats[i] * tempo; // length of note/rest in ms<br />
<br />
if (notes[i] == ' ') // is this a rest? <br />
{<br />
delay(duration); // then pause for a moment<br />
}<br />
else // otherwise, play the note<br />
{<br />
tone(buzzerPin, frequency(notes[i]), duration);<br />
delay(duration); // wait for tone to finish<br />
}<br />
delay(tempo/10); // brief pause between notes<br />
}<br />
<br />
while(true){} // stop here<br />
}<br />
<br />
<br />
int frequency(char note) <br />
{<br />
// This function takes a note character (a-g), and returns the<br />
// corresponding frequency in Hz for the tone() function.<br />
<br />
int i;<br />
const int numNotes = 8; // number of notes we're storing<br />
<br />
// The following arrays hold the note characters and their<br />
// corresponding frequencies. The last "C" note is uppercase<br />
// to separate it from the first lowercase "c". If you want to<br />
// add more notes, you'll need to use unique characters.<br />
<br />
// For the "char" (character) type, we put single characters<br />
// in single quotes.<br />
<br />
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };<br />
int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};<br />
<br />
// Now we'll search through the letters in the array, and if<br />
// we find it, we'll return the frequency for that note.<br />
<br />
for (i = 0; i < numNotes; i++) // Step through the notes<br />
{<br />
if (names[i] == note) // Is this the one?<br />
{<br />
return(frequencies[i]); // Yes! Return the frequency<br />
}<br />
}<br />
return(0); // We looked through everything and didn't find it,<br />
// but we still need to return a value, so return 0.<br />
}<br />
</source></tab></tabs><br />
<br />
<br />
'''Literatúra'''<br />
<br />
* Katalógový list [http://senzor.robotika.sk/mmp/AL-60P01-Datasheet.pdf piezomeniča AL-60P01] <br />
* Príklady aj s niekoľkými už predpripravenými melódiami:<br />
** https://dragaosemchama.com/en/2019/02/songs-for-arduino/<br />
** https://github.com/robsoncouto/arduino-songs<br />
* A tu je to aj s hudobnou teóriou:<br />
** https://www.meccanismocomplesso.org/en/generate-musical-tones-at-440hz-and-432hz-with-arduino/<br />
* Podrobnejšie vysvetlenie časovačov https://www.avrfreaks.net/forum/tut-c-newbies-guide-avr-timers?page=all<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Mikropočítačové systémy (MIPS)#Cvičenia|Návrat na zoznam cvičení...]]<br />
<br />
[[Category:AVR]][[Category:MIPS]]</div>Balogh