<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>https://senzor.robotika.sk/sensorwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Balogh</id>
	<title>SensorWiki - Príspevky používateľa [sk]</title>
	<link rel="self" type="application/atom+xml" href="https://senzor.robotika.sk/sensorwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Balogh"/>
	<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php/%C5%A0peci%C3%A1lne:Pr%C3%ADspevky/Balogh"/>
	<updated>2026-10-04T11:21:07Z</updated>
	<subtitle>Príspevky používateľa</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19714</id>
		<title>Základy počítačov</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19714"/>
		<updated>2026-09-29T15:59:50Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Cvičenie 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
{{Predmet&lt;br /&gt;
| Stupeň štúdia = Bakalárske štúdium&lt;br /&gt;
| Voliteľnosť = Povinný&lt;br /&gt;
| Kreditov = 6.00  &lt;br /&gt;
| Ukoncenie = Skúška &lt;br /&gt;
| Semester   =  Zimný semester&lt;br /&gt;
| Prednaska = 2,00 hod./týždeň  &lt;br /&gt;
| Cvicenie = 2,00 hod./týždeň  &lt;br /&gt;
| Procesor = Atmel AT89S8252, &lt;br /&gt;
| Garant  = doc. Ing. Katarína Žáková, PhD.&lt;br /&gt;
| StrankaAIS = [http://is.stuba.sk/katalog/syllabus.pl?predmet=323630 ZPOC]&lt;br /&gt;
| Cieľ = Získať znalosti o základnej koncepcii číslicových počítačov a počítačových systémov. Pochopiť princípy hlavných podsystémov číslicových počítačov - procesor, vstupný a výstupný podsystém a pamäťový podsystém. Vedieť popísať štruktúry hlavných podsystémov číslicových počítačov a pracovať s nimi.&lt;br /&gt;
}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-1&amp;quot; style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Novinky&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 14. 9. Aktualizácia na ZS 2026&lt;br /&gt;
&lt;br /&gt;
=== Opakovanci: uznavanie predmetu ===&lt;br /&gt;
&lt;br /&gt;
Ak ste tento predmet už absolvovali minulý rok, môžete požiadať o jeho uznanie a nemusíte tak&lt;br /&gt;
navštevovať cvičenia znova. Prosím, vyplňte si &lt;br /&gt;
[https://www.fei.stuba.sk/buxus/docs/studium_od_2024/zapis_2425/ziadost_-_uznanie_predmetov.pdf takúto žiadosť], &lt;br /&gt;
kde uvediete, že žiadate o uznanie predmetu (prípadne aj všetky, z ktorých máte &lt;br /&gt;
A, B alebo C) a zanesiete to na PgO. Takéto žiadosti pán prodekan potom bez problémov schvaľuje &lt;br /&gt;
a je to úplne v poriadku aj z hľadiska účasti na výučbe a pod. Nemusíte potom už nič ďalšie &lt;br /&gt;
riešiť, rovno máte zapísanú známku v indexe.  V prípade, že vám predmet nebol uznaný, musíte riadne navštevovať&lt;br /&gt;
prednášky aj cvičenia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 25.11. 21:00 Všetky bonusové úlohy sú vyriešené (to bola fakt bleskovka!).&lt;br /&gt;
&lt;br /&gt;
* Exkurzia: Múzeum počítačov a návšteva superpočítača Devana na Slovenskej akadémii vied (SAV) &lt;br /&gt;
bude v piatok 12. 12. od 10:30. Do 4. 12 sa môžete prihlásiť tu: https://docs.google.com/spreadsheets/d/118-26-UxM_SshVW7laI3fxEfMN1JJAgCwafhXrweeIk/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* 27.10. Ak si myslíte, že logické obvody už chápete, zahrajte si [https://systemic-games.itch.io/bomb-squad-academy Bomb Squad Academy] - stačí demo, ktoré je zadarmo :)  Alebo si môžete zahrať trocha nudnejšiu [http://nandgame.com/ NANDgame].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 21.12. Po skúške prosím vyplňte aj [https://forms.gle/8vxxw82bFhP3ezQU8 Dotazník kvality predmetu]&lt;br /&gt;
* 21. 12. Program: &lt;br /&gt;
** 9:30 Náhradné cvičenie v D-208&lt;br /&gt;
** 11:00 Skúška A-J v CPU &lt;br /&gt;
** 12:30 Skúška K-Ž v CPU&lt;br /&gt;
** 14:00 Odchod na exkurziu SAV&lt;br /&gt;
** 14:30 Exkurzia SAV&lt;br /&gt;
* 28. 11. Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
** Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
* A tu nájdete doplnkový študijný materiál k téme [[Meranie výkonu počítačov]]&lt;br /&gt;
* 11. 10. Server znova funguje&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://forms.gle/pMc7mnW56f79GZhZ9 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, ale nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* Nezabudnite na domáce štúdium 2. kapitoly z knihy [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. &lt;br /&gt;
&lt;br /&gt;
*  3. 12. 20:00  Pribudli ďalšie bonusové [[#Domáce úlohy]], za ktorých vyriešenie môžete získať body navyše.&lt;br /&gt;
&lt;br /&gt;
* V poslednom týždni semestra nebudeme cvičiť nič nové, ale môžete si prísť docvičiť, alebo dopísať testy v nasledovných termínoch:&lt;br /&gt;
** Pondelok 16. 12. od 15:00 do 16:00 (Valocký)&lt;br /&gt;
** Utorok 17. 12.   od 8:00 do  10:00 (Chamraz)&lt;br /&gt;
** Streda 18. 12.   od 9:00 do  12:00 (Balogh), pozor, toto cvičenie bude v CPU (blok D, 1. posch)&lt;br /&gt;
&lt;br /&gt;
* 10. 12. 2019 bude posledná prednáška v tomto semestri. Privítame na nej hosťa - Williama Carbone z IBM, prednášať bude o počítačovej budúcnosti a technológiach IBM pre takéto počítače. Prednáška bude v angličtine.&lt;br /&gt;
&lt;br /&gt;
* Predtermín (len pre zapísaných) bude v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Priezvisko A-L o 10:00, M-Z o 11:00&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Skúška:&#039;&#039;&#039; riadny termín bude v pondelok, 20. januára 2020  v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Študenti prídu rozdelení podľa priezviska nasledovne: A-L o 9:00, M-Z o 11:00.&lt;br /&gt;
&lt;br /&gt;
* Opravný termín bude vo štvrtok, 6. februára 2020 o 9:00 v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:vianoce.png|center|250px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Všetkým prvákom prajem príjemné prežitie vianočných sviatkov,&amp;lt;BR&amp;gt;pevné zdravie  v novom roku a úspešne zakončené skúškové obdobie.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Richard Balogh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://goo.gl/forms/HIrZVDfC3rx4PNfS2 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, avšak nie je časovo limitovaný a nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* [[Meranie výkonu počítačov]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Náhrada za vymeškané cvičenia ===&lt;br /&gt;
&lt;br /&gt;
Jedno vymeškané cvičenie z ktorého vám chýbajú potrebné body je možné nahradiť tak, že &lt;br /&gt;
po dohode s prednášajúcim spracujete na 2 strany formátu A4 niektorú z nasledovných tém:&lt;br /&gt;
&lt;br /&gt;
A.) Alpha GO&lt;br /&gt;
* [1] https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/alphago-zero-goes-from-blank-slate-to-grandmaster-in-three-dayswithout-any-help-at-all&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/why-alphago-is-not-ai&lt;br /&gt;
&lt;br /&gt;
B.) Biopocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/biomedical/devices/biocomputer-and-memory-built-inside-living-bacteria&lt;br /&gt;
* [2] https://spectrum.ieee.org/the-human-os/biomedical/devices/biological-computer-commands-living-cells-to-light-up&lt;br /&gt;
&lt;br /&gt;
C.) Blockchain:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world&lt;br /&gt;
* [2] https://spectrum.ieee.org/computing/networks/how-blockchains-work&lt;br /&gt;
&lt;br /&gt;
D.) Kvantove pocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/nanoclast/computing/hardware/a-first-two-qubit-logic-gate-in-silicon&lt;br /&gt;
* [2] https://spectrum.ieee.org/tech-talk/computing/hardware/qudits-the-real-future-of-quantum-computing&lt;br /&gt;
&lt;br /&gt;
E.) Neurocomputing:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/hardware/the-brain-as-computer-bad-at-math-good-at-everything-else&lt;br /&gt;
* [2] https://spectrum.ieee.org/semiconductors/design/neuromorphic-chips-are-destined-for-deep-learningor-obscurity&lt;br /&gt;
&lt;br /&gt;
F.) Autonomous car:&lt;br /&gt;
* [1] https://spectrum.ieee.org/cars-that-think/transportation/self-driving/nvidia-or-nxpwhose-robocar-brain-will-win&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/how-google-self-driving-car-works&lt;br /&gt;
&lt;br /&gt;
Pri vypracovani musite pouzit vzdy aspon tie dva linky ktore su tam, samozrejme si mozete najst aj dalsiu literaturu k teme.&lt;br /&gt;
Na kazdu z tem sa moze prihlasit len jeden jediny student!&lt;br /&gt;
&lt;br /&gt;
Vysledny dokument potom pridame ako studijny material na stranku ZPOC.&lt;br /&gt;
Termin by mohol byt do 17.12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2026&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;15. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  &lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2025&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;16. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  ([https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyA.pdf slajdy 1], [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyB.pdf slajdy 2] a [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;23. 09.&#039;&#039;&#039; 2️⃣ &#039;&#039;&#039;Ukladanie informácií v počítači.&#039;&#039;&#039; Kódy ASCII a Unicode, Big Endian, Little Endian. Reálne čísla s pohyblivou rádovou čiarkou, IEEE-754.  ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyA.pdf slajdy 1]) a ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyB.pdf slajdy 2])&lt;br /&gt;
** Film [https://youtu.be/zZuqLLdx2YQ The Imitation Game]&lt;br /&gt;
** Angela Watercutter &#039;&#039;[https://www.wired.com/2014/11/imitation-game-building-christopher/ How Designers Recreated Alan Turing&#039;s Code-Breaking Computer for Imitation Game]&#039;&#039;. Wired, 2104.&lt;br /&gt;
** Doplnok k formátom [https://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/ s plávajúcou desatinnou čiarkou]&lt;br /&gt;
** Pentium [https://en.wikipedia.org/wiki/Pentium_FDIV_bug fdiv bug]&lt;br /&gt;
** Ariane 5 - [http://sunnyday.mit.edu/nasa-class/Ariane5-report.html opis nehody] ([https://youtu.be/gp_D8r-2hwk video 1], [https://youtu.be/5tJPXYA0Nec video 2])&lt;br /&gt;
** Patriot [https://msquair.files.wordpress.com/2015/05/patriot-timing-error.pdf system timing error]&lt;br /&gt;
** Google Colab Notebook: https://colab.research.google.com/drive/1RMyuumEOuH13smF9_WIdbbqy109Wh0MC?usp=sharing&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;30. 09.&#039;&#039;&#039; 3️⃣ &#039;&#039;&#039;Kombinačné logické obvody.&#039;&#039;&#039; Boolova algebra, DeMorganove pravidlá. Pravdivostná tabuľka, logická schéma, úplný systém logických funkcií. Analýza logických obvodov. ([https://senzor.robotika.sk/zp/Prednasky/03prednaskaZPOC-slajdyA.pdf slajdy])&amp;lt;BR&amp;gt;Úvod do programovania mikropočítača BBC micro:bit ([https://senzor.robotika.sk/zp/Prednasky/microbit-Uvod.pdf slajdy]) &lt;br /&gt;
** Stránka [https://microbit.org/ micro:bit]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;07. 10.&#039;&#039;&#039; 4️⃣ &#039;&#039;&#039;Kombinačné logické obvody II.&#039;&#039;&#039; Analýza a syntéza logických obvodov. Polovičná a úplná sčítačka. ([https://senzor.robotika.sk/zp/Prednasky/04prednaskaZPOC-slajdyA.pdf slajdy])&lt;br /&gt;
** Robert Keim: &#039;&#039;[https://www.allaboutcircuits.com/technical-articles/what-is-an-fpga-introduction-to-programmable-logic-fpga-vs-microcontroller/ What Is an FPGA? An Introduction to Programmable Logic]&#039;&#039;. 2018&lt;br /&gt;
** Film [https://youtu.be/KPeHFDxKUP4 Back to the Future] a [https://youtu.be/afwYMdN43Mc scéna so zosilňovačom]&lt;br /&gt;
** [https://madformath.com/calculators/digital-systems/karnaugh-maps/karnaugh-map-solver Karnaugh map solver 1] a [https://karnaughmapsolver.com/ solver 2]&lt;br /&gt;
** Simulátor [https://simulator.io/ simulator.io]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;14. 10.&#039;&#039;&#039; 5️⃣ &#039;&#039;&#039;Spínacie obvody.&#039;&#039;&#039; Relé, elektrónka, tranzistor, integrovaný obvod. Moorov zákon. Časové diagramy. ([https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-slajdyA.pdf slajdy] a [https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Datasheet obvodu [http://senzor.robotika.sk/zp/DM74LS00.pdf 7400]&lt;br /&gt;
** Moorov zákon: [https://www.intel.com/content/www/us/en/silicon-innovations/moores-law-technology.html video]&lt;br /&gt;
** Robert Ross: &#039;&#039;[https://robbreport.com/gear/audio/vacuum-tube-amps-remerging-1234797622/ ‘It Sounds Human’: Audiophiles Are Embracing the Lush Sounds of Old-School Tube Amps]&#039;&#039;&lt;br /&gt;
** Video: [https://youtu.be/_9_AEVQ_p74?si=ySTOy212WNOeJTBh Claude Shannon demonstrates &amp;quot;Theseus&amp;quot; Machine Learning]&lt;br /&gt;
** Film: [https://youtu.be/AxQ9GG6hUDM?si=BbLnkbjNTGnUPalw Forbidden Planet Official Trailer] - Leslie Nielsen Movie (1956) &lt;br /&gt;
** [https://micro.magnet.fsu.edu/electromag/java/transistor/ Výroba tranzistora] (animácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/5747025316151296/cmos-nand Hradlo NAND technológiou CMOS] (simulácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/4806663265714176/ttl-standard-nand-logic-gate Hradlo NAND technológiou TTL] (simulácia)&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;21.10.&#039;&#039;&#039; 6️⃣ &#039;&#039;&#039;Sekvenčné obvody.&#039;&#039;&#039; Oneskorenie. Spätná väzba, oscilátor. Kybernetika. ([http://senzor.robotika.sk/zp/Prednasky/prednaska05.pdf slajdy])&lt;br /&gt;
** [https://cw.fel.cvut.cz/wiki/_media/courses/a3m33iro/vysoky50letkybernetiky1998_v626-632.pdf Z histórie kybernetiky u nás]&lt;br /&gt;
** [http://www.ieeevic.org/video-interview-norbert-wiener-inventor-of-cybernetics/ Norbert Wiener] - video&lt;br /&gt;
** [https://youtu.be/nS0luYZd4fs Shannon: Theseus demo] - video &amp;lt;!--&lt;br /&gt;
** Simulator.IO&lt;br /&gt;
*** R-S preklápací obvod https://simulator.io/board/Gv2ZlMW8SZ/3&lt;br /&gt;
*** Pamäťový register https://simulator.io/board/Ec8FMQOuMx/2&lt;br /&gt;
*** Posuvný register https://simulator.io/board/Da9uTzXj5o/1&lt;br /&gt;
*** Delička frekvencie https://simulator.io/board/VTJCoRBS5o/1&lt;br /&gt;
*** Binárne počítadlo https://simulator.io/board/ix1nHMxe7w/1 --&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;28. 10.&#039;&#039;&#039; 7️⃣ &#039;&#039;&#039;Pamäte.&#039;&#039;&#039; Rýchlosť, cena, kapacita. Typy pamätí RWM, ROM, EPROM, EEPROM, FLASH. Adresovanie, dynamická a statická pamäť. ([http://senzor.robotika.sk/zp/Prednasky/prednaska06a.pdf slajdy])&amp;lt;BR&amp;gt;Stavové diagramy a BBC micro:bit ([http://senzor.robotika.sk/zp/Prednasky/prednaska06b.pdf slajdy])&lt;br /&gt;
** [http://www.computerhistory.org/timeline/memory-storage/ Timeline of computer memory]&lt;br /&gt;
** Static RAM 2114 1kB [http://www.science.smith.edu/dftwiki/images/a/ab/2114_datasheet.pdf datasheet]&lt;br /&gt;
** [https://www.ibm.com/history/dram Dynamic random-access memory (DRAM)] history by IBM&lt;br /&gt;
** [https://www.ibm.com/think/topics/flash-storage FLASH memory]] history by IBM&lt;br /&gt;
** EEPROM 2708 1kB [http://www.jrok.com/datasheet/TMS2708.pdf datasheet]&lt;br /&gt;
** Film [https://www.youtube.com/watch?v=hMT8tRrEMC4 TRON] (1982) a remake [https://www.youtube.com/watch?v=SqSuRdkglxM TRON Legacy] (2010)&lt;br /&gt;
** Men In Black 3 | [https://www.youtube.com/watch?v=nQmkkryDp0Y Retro Neuralyzer Scene]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 4. 11.&#039;&#039;&#039; 8️⃣  &#039;&#039;&#039;Mikroprocesor&#039;&#039;&#039; Základná stavebné prvky procesora. Operačná a riadiaca časť procesora. Inštrukčný súbor. Typy inštrukcií. ([http://senzor.robotika.sk/zp/Prednasky/prednaska08.pdf slajdy])&lt;br /&gt;
** Frederico Faggin: &#039;&#039;[http://ieeexplore.ieee.org/document/4776530/ Making of the First Microprocessor]&#039;&#039;.&lt;br /&gt;
** [https://youtu.be/Knd-U-avG0c Zoom Into a Microchip] - National Informal STEM Education Network (NISE Net)&lt;br /&gt;
** Papierový [https://cs.wikipedia.org/wiki/Pap%C3%ADrov%C3%BD_po%C4%8D%C3%ADta%C4%8D_CGS počítač CGS]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;11. 11.&#039;&#039;&#039; 9️⃣ &#039;&#039;&#039;Mikroprocesor II.&#039;&#039;&#039; Matematický koprocesor. Inštrukčný súbor. Typy inštrukcií. Formát inštrukcie. Inštrukcie - práca s pamäťovým systémom počítača. Spôsoby adresácie. Procesory s architektúrou RISC a CISC. Asembler, jazyk symbolických adries, simulátor a emulátor. ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy])&lt;br /&gt;
** Jednodoskový počítač [https://sk.wikipedia.org/wiki/PMI-80 PMI-80] &amp;lt;!-- http://www.nostalcomp.cz/pmi80.php --&amp;gt;&lt;br /&gt;
** Osobný počítač [https://pmd85.borik.net/wiki/Intro PMD-85]&lt;br /&gt;
** Školský robot [http://www.avir.sk/robotika/historia_kar/roboti/KOLKA025.html KOLKA]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Intel_8087 Aritmetický koprocesor i8087]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/8080instructions.pdf Ťahák na cvičenia s výberom inštrukcií]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 25. 11.&#039;&#039;&#039; 🔟 Mikroprocesor III. Zásobník, prerušenie, podprogramy. Hierarchia počítačov, mainframe, workstation, embedded. [[Meranie výkonu počítačov]].([http://senzor.robotika.sk/zp/Prednasky/prednaska10.pdf slajdy])&lt;br /&gt;
** [https://www.top500.org/ Zoznam 500 najvýkonnejších počítačov na svete]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Cray-2 Superpočítač CRAY-2]&lt;br /&gt;
** [https://waitbutwhy.com/2014/11/from-1-to-1000000.html Milión bodiek]&lt;br /&gt;
** [[Meranie výkonu počítačov]]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 2. 12.&#039;&#039;&#039; Umelá inteligencia a strojové učenie&lt;br /&gt;
* &#039;&#039;&#039; 9. 12.&#039;&#039;&#039; Kvantové počítače&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;FONT COlor=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;Prednášky z minulého roka&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;20. 11.&#039;&#039;&#039; 🔟 Georg Jaggle, TU Wien: &#039;&#039;&#039;Inputs and outputs&#039;&#039;&#039; (([http://senzor.robotika.sk/zp/Prednasky/prednaska07a.pdf Lecture in english]). &#039;&#039;&#039;Vstupy a výstupy.&#039;&#039;&#039; Digitálny vstup, výstup, displej, klávesnica, multiplexovanie. (([http://senzor.robotika.sk/zp/Prednasky/prednaska07b.pdf slajdy]))&lt;br /&gt;
** Úvodné video [https://www.youtube.com/watch?v=LDPVwI3KULk Matrix - computer interface]&lt;br /&gt;
** Video z prezentácie [https://youtu.be/tIIJME8-au8 Timo Boll vs. robot]&lt;br /&gt;
** Romeo [https://youtu.be/kz1Ob0Ks554 humanoid robot grasping demonstration]&lt;br /&gt;
** Blue Danube [https://youtu.be/-sHcQcFd7-A Airskin collaborative robotics]&lt;br /&gt;
** Paro [https://youtu.be/2ZUn9qtG8ow therapeutic robot]&lt;br /&gt;
** Thymio [https://www.thymio.org/ educational robot]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;10.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Towards Augmented Intelligence.&#039;&#039;&#039; &#039;&#039;Tools and Skills for the Cognitive Era.&#039;&#039; Invited lecture. &lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska11-IBM.pdf slajdy]&lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.youtube.com/watch?v=MSc5I550jlY Smart Wildlife project]&lt;br /&gt;
** Use The Force - [https://youtu.be/K-4mp_e5v4A Move a BB-8 with Your Mind]&lt;br /&gt;
** [https://qiskit.org/ Quantum computing]&lt;br /&gt;
** [https://www.youtube.com/watch?v=3WrVUb7ej0o Tanmay Bakshi] video&lt;br /&gt;
*** Tanmay Bakshi: [https://www.amazon.com/s?k=tanmay+bakshi books]&lt;br /&gt;
** [https://tone-analyzer-demo.ng.bluemix.net/ Text analyzer demo]&lt;br /&gt;
** Free [https://cognitiveclass.ai/ Cognitive Courses and Lessons]&lt;br /&gt;
** IBM Centennial Film [https://www.youtube.com/watch?eWxUWJgfzk 100 X 100 A century of achievements that have changed the world]&lt;br /&gt;
* &#039;&#039;&#039;.11.&#039;&#039;&#039; Vstupno-výstupných podsystém. I/O karty. Paralelný port. Vstup a výstup logických a číslicových hodnôt ([http://senzor.robotika.sk/zp/Prednasky/prednaska11.pdf slajdy]).&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039; Prenos údajov. Zbernicová architektúra počítača. Zbernice. Sériové rozhranie a UART.  Jednoprocesorové a viacprocesorové zbernice, arbitrácia prístupu. Multiplexovaná zbernica. Príklady štandardných zberníc ([http://senzor.robotika.sk/zp/Prednasky/prednaska11a.pdf slajdy]).&lt;br /&gt;
&lt;br /&gt;
* Prednáška o AI ToDo: pretriedit odkazy!&lt;br /&gt;
** [https://youtu.be/JA472HOifoA?si=uqtaykqgagVi5RM4 Top 10 AI Movies WARNING Us For Our Future]&lt;br /&gt;
** [https://youtu.be/iyKt7bK--uo?si=BXPm6SX308N0gNDM Top 10 AI Movies With HIDDEN Messages For Humans]&lt;br /&gt;
** [https://youtu.be/HLl47qX6-UM?si=I5jETjAq7004AoMb Top 10 AI TV Shows WARNING Us For Our Future]&lt;br /&gt;
** https://www.minedu.sk/ai-dni-priniesli-umelu-inteligenciu-do-100-slovenskych-skol/&lt;br /&gt;
** https://ai.iedu.sk/nastroje-ai/&lt;br /&gt;
** https://bratislavaiforum.com/global-forum/&lt;br /&gt;
** https://www.dny.ai/#program&lt;br /&gt;
** https://www.slovensko.ai/&lt;br /&gt;
** https://www.stuba.sk/sk/diani-na-stu/prehlad-aktualit/stu-ma-pravidla-pouzivania-umelej-inteligencie.html?page_id=17202&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Computing: vision for the Future.&#039;&#039;&#039; Invited lecture. History and status now. Limits and beyonds. Computers as a service.     Future challenges: blokchain, quantum computing, cognitive computing, clouds and services, internet of things. [[Základy počítačov - pozvaná prednáška|More information...]]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska12-IBM.pdf slajdy]&lt;br /&gt;
** [https://www.youtube.com/watch?v=pBiVyEfZVUU History of computers - partI.] &lt;br /&gt;
** [https://www.youtube.com/watch?v=HRi1BHjID3o History of computers - partII.] &lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.evaaugustyn.com/ibm-watson-x-music AI Music by IBM Watson]&lt;br /&gt;
** Video Johna Cohna, ktoré sme nevideli:&lt;br /&gt;
*** https://youtu.be/I-NT1-BdOvI&lt;br /&gt;
*** https://www.youtube.com/watch?v=qxRM99LlcVc&lt;br /&gt;
&lt;br /&gt;
2017&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Carbone-Lecture2018.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson, IBM: &#039;&#039;&#039;The Computer of (near) Future.&#039;&#039;&#039; Invited lecture. Cloud (Saas, Paas, Iaas). Cognitive computing - Whats that all about. Quantum Computing.&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson is a multi-skilled Senior IT Professional with extensive Cloud, DevOps, Development, technical architecture, release management and project management experience gained within a broad range of organisations operating across multiple business sectors across the globe. Thorough and detailed Cloud architecture knowledge built over many years, a true advocate of “Cloud First” thinking and a practitioner of best practices, seeing the TCO and cost saving opportunities of moving to the cloud.   Outstanding experience of designing and directing the implementation of Continuous Integration and Delivery Pipelines. Leading DevOps, environment support, technology architecture and infrastructure design activities and advising team members and management on the principles and benefits of Continuous Delivery and DevOps. A proven ability to lead both local and remote technical / development teams and to successfully deliver agreed solutions of the highest quality, often within complex and challenging environments.  A leader who has successfully built DevOps practices for multiple organisations, hiring the right candidates for the job and helping existing members of staff transform into a DevOps role and instilling the core principals.  A developer who will turn his hand to most languages, most recently GOLANG building a modern web app using micro-service architecture and docker based containers for responsive auto scaling(simple, blisteringly fast, small footprint, docker integration builtin)  and also systems tooling, docker, Terraform etc.&lt;br /&gt;
* Nestihli sme: &lt;br /&gt;
* Pamäte II. Externé pamäte, pevné a optické disky. Polia RAID ([http://senzor.robotika.sk/zp/Prednasky/prednaska06.pdf slajdy 31-63]). ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy]).&lt;br /&gt;
* Počítačové siete - charakteristika a ich rozdelenie. Sieťové médiá. Správa, rámec, paket.  Generácie počítačov.&lt;br /&gt;
* A/D a D/A prevodníky. Riadiace počítače. Elektromagnetická kompatibilita. Počítadlá a časovače. RTC&lt;br /&gt;
Číslicový počítač s von Neumannovou a Harvardskou architektúrou. Klasifikácia počítačov.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [http://senzor.robotika.sk/zp/Prednasky/ --&amp;gt; Slajdy z prednášok.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zoznam odporúčanej študijnej literatúry:&lt;br /&gt;
&lt;br /&gt;
* Sarah L. Harris and David M. Harris: &#039;&#039;&#039;[https://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244 Digital Design and Computer Architecture]&#039;&#039;&#039;. Morgan Kaufman, 3rd ed., 2016. ISBN: 9789382291527&lt;br /&gt;
* David Patterson and John Hennessy: &#039;&#039;[https://www.elsevier.com/books/computer-organization-and-design-arm-edition/patterson/978-0-12-801733-3 Computer Organization and Design ARM Edition]&#039;&#039;. 1st Ed. Morgan Kaufmann, 2016. ISBN: 9780128017333&lt;br /&gt;
* Tibor Krajčovič: &#039;&#039;[http://www2.fiit.stuba.sk/~tkraj/pocitace.pdf Počítače].&#039;&#039; Vydavateľstvo STU, Bratislava, 2000. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
* Richard Balogh: &#039;&#039;[https://www.fei.stuba.sk/sk/kniznica-fei/aktuality-kniznica/vybrane-kapitoly-z-mikropocitacov.html?page_id=6102 Vybrané kapitoly z mikropočítačov: I. časť: Hardware].&#039;&#039; Bratislava: Vydavateľstvo Spektrum STU, 2023. ISBN 978-80-227-5285-5. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
&lt;br /&gt;
Internetové zdroje:&lt;br /&gt;
* https://www.root.cz/serialy/co-se-deje-v-pocitaci/&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Cvičenia&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cvičenia prebiehajú prezenčne v učebni CPU (blok D, 1. posch.) podľa rozvrhu. V prípade choroby&lt;br /&gt;
alebo inej opodstatnenej neprítomnosti si môžete cvičenie nahradiť v ľubovoľnom inom termíne v danom týždni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 1 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# &#039;&#039;&#039;Riešime príklady na prevody DEC-BIN-HEX-ASCII: [[Prevody medzi číselnými sústavami]]&#039;&#039;&#039;&lt;br /&gt;
# prihlásiť sa na PC dočasným heslom a nové heslo si ZAPAMATAŤ&lt;br /&gt;
# prihlásiť sa do Google Classroom svojim stuba.sk menom a heslom&lt;br /&gt;
# prihlásiť sa do AISu&lt;br /&gt;
# nájdite si v AISe vstupný testík a vyplňte ho&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Číselné sústavy]] Príklady: [[Prevody medzi číselnými sústavami]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 2 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# počítame jednoduché príklady [[Aritmetika v dvojkovej sústave]]&lt;br /&gt;
# počítame príklady [[Kódy a kódovanie]]&lt;br /&gt;
# počítame príklady [[Zobrazenie čísel v počítači]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Aritmetické operácie v dvojkovej sústave]] alebo aj  [https://www.khanacademy.org/math/algebra-home/alg-intro-to-algebra/algebra-alternate-number-bases/v/number-systems-introduction Khan Academy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 3 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Návody: [[Rýchlokurz micro:bit‎]].&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Programy pre micro:bit&lt;br /&gt;
## naprogramujte jednoduchú animáciu&lt;br /&gt;
## naprogramujte jednoduché minutky počítajúce smerom nadol&lt;br /&gt;
## naprogramujte hraciu kocku &lt;br /&gt;
## vyskúšajte, ako funguje [[Matematika a micro:bit‎‎]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 4 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
&lt;br /&gt;
# [[Kombinačné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória: [http://www2.fiit.stuba.sk/~kvasnicka/Logika/Lecture09/09.prezentacia.pdf Logické obvody]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 5 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy:&lt;br /&gt;
&lt;br /&gt;
#  [[Kombinačné logické obvody s micro:bitom]]&lt;br /&gt;
#   15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 6 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Sekvenčné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: &lt;br /&gt;
* [http://www.dnp.fmph.uniba.sk/~kollar/dg_w/index_d.htm Sekvenčné obvody] alebo [https://www.electronics-tutorials.ws/sequential/seq_1.html Sequential Logic Circuits]&lt;br /&gt;
* https://technobyte.org/flip-flops-latches-designing-truth-tables/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 7 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania - Sekvenčné obvody a stavové automaty s micro:bitom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Návod na cvičenie [[Stavové diagramy s micro:bit]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zadané problémy riešte v prostredí [https://makecode.microbit.org/ &amp;amp;#8594; MakeCode]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 8 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laboratórne cvičenie.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zapojte a odmerajte vlastnosti kombinačných a sekvenčných obvodov podľa návodu [[Meranie s logickými obvodmi‎]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ToDo 2023: ak nestihnete zmerať všetky úlohy na cvičení, môžete si ich prísť domerať do D-219 vo vymedzenom čase.&lt;br /&gt;
&lt;br /&gt;
# Keď to zvládnete, stačí k dvom obvodom z cvičenia pridať ešte 32 a máte hotový celý 8-bitový mikropočítač... Kliknutím na obrázok získate kompletný návod :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:TTLcomputer.jpg|500px|center|link=https://hackaday.io/project/20781-8-bit-color-computer-from-ttl]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 9 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mikroprocesor.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[ZPOC 9: Základy programovania v strojovom kóde]] (&amp;lt;S&amp;gt;[[ASM80 programy|old version]]&amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&#039;&#039;&#039;Zabudnuté inštrukcie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ižinieri v Silicon Valley našli v archívoch dokument, z ktorého vyplýva, že&lt;br /&gt;
niektoré assemblerovské inštrukcie, ktoré autori procesorov vytvorili sa napokon&lt;br /&gt;
do procesorov nedostali. Ktovie prečo? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
    BPDI    Be Polite, Don&#039;t Interrupt&lt;br /&gt;
    CLD     Call a Doctor&lt;br /&gt;
    CRB     Crash and Burn&lt;br /&gt;
    CRN     Convert to Roman Numerals&lt;br /&gt;
    DAC     Divide And Conquer&lt;br /&gt;
    DMNS    Do what I Mean, Not what I Say&lt;br /&gt;
    EPI     Execute Programmer Immediately&lt;br /&gt;
    GE      Generate  Error&lt;br /&gt;
    IBP     Insert Bug and Proceed&lt;br /&gt;
    IAN     Illogical AND&lt;br /&gt;
    IOR     Illogical OR&lt;br /&gt;
    JBW     Jump Both Ways&lt;br /&gt;
    JPO     Jump on Power Off&lt;br /&gt;
    JRA     Jump to Random Address&lt;br /&gt;
    LLI     Lose Last Instruction&lt;br /&gt;
    RNR     Rather Not Run&lt;br /&gt;
    RPM     Read Programmer&#039;s Mind&lt;br /&gt;
    SWOM    Store in Write Only Memory&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 10 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzory na micro:bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Senzory na mikropočítači micro:bit]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 11 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komunikácia s micro:bitmi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Komunikácia a micro:bit 2023]]  (staré verzie: &amp;lt;S&amp;gt;[[Komunikácia a micro:bit‎‎]] alebo [[Bezdrôtová komunikácia a micro:bit‎‎]] &amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
# Okrem toho môžete vypracovať všetky testy, ktoré ste zameškali v priebehu semestra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 12 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy strojového učenia&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Cvičenie základov strojového učenia]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test (prípadne si doplňte všetky, ktoré vám chýbajú)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 13 (bonus) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Robotický simulátor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Robotický simulátor PRIA IDE]]&lt;br /&gt;
# [https://ide.pria.at/projects/vysavac Link do programovacieho prostredia]&lt;br /&gt;
# Toto cvičenie je náhradné pre tých, ktorí z niektorého chýbali a nestihli si ho nahradiť. Dá sa vyriešiť aj doma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Domáce úlohy&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
* Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bonusové príklady&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Za vyriešenie týchto úloh môžete získať okrem dobrého pocitu aj bonusové body. Nezíska ich každý, &lt;br /&gt;
ale ten, kto ako prvý pošle ich riešenie na adresu balogh@elf.stuba.sk&lt;br /&gt;
Ak budú riešenia aj s postupom a tie budú dostatočne odlišné, môžu bonusové body získať aj viacerí. &lt;br /&gt;
Prečiarknuté body znamenajú, že úlohu môžete stále ešte riešiť sebe pre radosť, ale body, žiaľ, už nedostanete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Podmienky absolvovania predmetu ==&lt;br /&gt;
&lt;br /&gt;
# Znalosť odprezentovanej problematiky,&lt;br /&gt;
# absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť),&lt;br /&gt;
# vypracovanie všetkých testíkov &amp;lt;S&amp;gt;aspoň na polovicu&amp;lt;/S&amp;gt; na primeraný počet bodov,&lt;br /&gt;
# a získanie potrebného počtu bodov na skúške (min. 50% písomky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prácu študenta kontroluje a body udeľuje cvičiaci daného krúžku.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Kontakty&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Za menom je uvedené pracovisko a miestnosť. Zamestnanci STU majú e-mailové adresy v tvare meno.priezvisko@stuba.sk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vyučujúci:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* doc. Ing. Richard Balogh, PhD. (UAMT, D-110, streda 11:00)&lt;br /&gt;
&amp;lt;!-- * Ing. Belai (D-126, streda 10:00), Ing. Hlavatý, Ing. Michalovič (D-212, streda 10:00) a Ing. Račkay (D-215, stvrtok 14:00) - doktorandi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RozvrhHodin.png|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Základy počítačov]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19713</id>
		<title>Základy počítačov</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19713"/>
		<updated>2026-09-29T15:59:42Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Cvičenie 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
{{Predmet&lt;br /&gt;
| Stupeň štúdia = Bakalárske štúdium&lt;br /&gt;
| Voliteľnosť = Povinný&lt;br /&gt;
| Kreditov = 6.00  &lt;br /&gt;
| Ukoncenie = Skúška &lt;br /&gt;
| Semester   =  Zimný semester&lt;br /&gt;
| Prednaska = 2,00 hod./týždeň  &lt;br /&gt;
| Cvicenie = 2,00 hod./týždeň  &lt;br /&gt;
| Procesor = Atmel AT89S8252, &lt;br /&gt;
| Garant  = doc. Ing. Katarína Žáková, PhD.&lt;br /&gt;
| StrankaAIS = [http://is.stuba.sk/katalog/syllabus.pl?predmet=323630 ZPOC]&lt;br /&gt;
| Cieľ = Získať znalosti o základnej koncepcii číslicových počítačov a počítačových systémov. Pochopiť princípy hlavných podsystémov číslicových počítačov - procesor, vstupný a výstupný podsystém a pamäťový podsystém. Vedieť popísať štruktúry hlavných podsystémov číslicových počítačov a pracovať s nimi.&lt;br /&gt;
}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-1&amp;quot; style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Novinky&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 14. 9. Aktualizácia na ZS 2026&lt;br /&gt;
&lt;br /&gt;
=== Opakovanci: uznavanie predmetu ===&lt;br /&gt;
&lt;br /&gt;
Ak ste tento predmet už absolvovali minulý rok, môžete požiadať o jeho uznanie a nemusíte tak&lt;br /&gt;
navštevovať cvičenia znova. Prosím, vyplňte si &lt;br /&gt;
[https://www.fei.stuba.sk/buxus/docs/studium_od_2024/zapis_2425/ziadost_-_uznanie_predmetov.pdf takúto žiadosť], &lt;br /&gt;
kde uvediete, že žiadate o uznanie predmetu (prípadne aj všetky, z ktorých máte &lt;br /&gt;
A, B alebo C) a zanesiete to na PgO. Takéto žiadosti pán prodekan potom bez problémov schvaľuje &lt;br /&gt;
a je to úplne v poriadku aj z hľadiska účasti na výučbe a pod. Nemusíte potom už nič ďalšie &lt;br /&gt;
riešiť, rovno máte zapísanú známku v indexe.  V prípade, že vám predmet nebol uznaný, musíte riadne navštevovať&lt;br /&gt;
prednášky aj cvičenia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 25.11. 21:00 Všetky bonusové úlohy sú vyriešené (to bola fakt bleskovka!).&lt;br /&gt;
&lt;br /&gt;
* Exkurzia: Múzeum počítačov a návšteva superpočítača Devana na Slovenskej akadémii vied (SAV) &lt;br /&gt;
bude v piatok 12. 12. od 10:30. Do 4. 12 sa môžete prihlásiť tu: https://docs.google.com/spreadsheets/d/118-26-UxM_SshVW7laI3fxEfMN1JJAgCwafhXrweeIk/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* 27.10. Ak si myslíte, že logické obvody už chápete, zahrajte si [https://systemic-games.itch.io/bomb-squad-academy Bomb Squad Academy] - stačí demo, ktoré je zadarmo :)  Alebo si môžete zahrať trocha nudnejšiu [http://nandgame.com/ NANDgame].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 21.12. Po skúške prosím vyplňte aj [https://forms.gle/8vxxw82bFhP3ezQU8 Dotazník kvality predmetu]&lt;br /&gt;
* 21. 12. Program: &lt;br /&gt;
** 9:30 Náhradné cvičenie v D-208&lt;br /&gt;
** 11:00 Skúška A-J v CPU &lt;br /&gt;
** 12:30 Skúška K-Ž v CPU&lt;br /&gt;
** 14:00 Odchod na exkurziu SAV&lt;br /&gt;
** 14:30 Exkurzia SAV&lt;br /&gt;
* 28. 11. Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
** Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
* A tu nájdete doplnkový študijný materiál k téme [[Meranie výkonu počítačov]]&lt;br /&gt;
* 11. 10. Server znova funguje&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://forms.gle/pMc7mnW56f79GZhZ9 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, ale nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* Nezabudnite na domáce štúdium 2. kapitoly z knihy [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. &lt;br /&gt;
&lt;br /&gt;
*  3. 12. 20:00  Pribudli ďalšie bonusové [[#Domáce úlohy]], za ktorých vyriešenie môžete získať body navyše.&lt;br /&gt;
&lt;br /&gt;
* V poslednom týždni semestra nebudeme cvičiť nič nové, ale môžete si prísť docvičiť, alebo dopísať testy v nasledovných termínoch:&lt;br /&gt;
** Pondelok 16. 12. od 15:00 do 16:00 (Valocký)&lt;br /&gt;
** Utorok 17. 12.   od 8:00 do  10:00 (Chamraz)&lt;br /&gt;
** Streda 18. 12.   od 9:00 do  12:00 (Balogh), pozor, toto cvičenie bude v CPU (blok D, 1. posch)&lt;br /&gt;
&lt;br /&gt;
* 10. 12. 2019 bude posledná prednáška v tomto semestri. Privítame na nej hosťa - Williama Carbone z IBM, prednášať bude o počítačovej budúcnosti a technológiach IBM pre takéto počítače. Prednáška bude v angličtine.&lt;br /&gt;
&lt;br /&gt;
* Predtermín (len pre zapísaných) bude v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Priezvisko A-L o 10:00, M-Z o 11:00&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Skúška:&#039;&#039;&#039; riadny termín bude v pondelok, 20. januára 2020  v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Študenti prídu rozdelení podľa priezviska nasledovne: A-L o 9:00, M-Z o 11:00.&lt;br /&gt;
&lt;br /&gt;
* Opravný termín bude vo štvrtok, 6. februára 2020 o 9:00 v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:vianoce.png|center|250px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Všetkým prvákom prajem príjemné prežitie vianočných sviatkov,&amp;lt;BR&amp;gt;pevné zdravie  v novom roku a úspešne zakončené skúškové obdobie.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Richard Balogh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://goo.gl/forms/HIrZVDfC3rx4PNfS2 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, avšak nie je časovo limitovaný a nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* [[Meranie výkonu počítačov]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Náhrada za vymeškané cvičenia ===&lt;br /&gt;
&lt;br /&gt;
Jedno vymeškané cvičenie z ktorého vám chýbajú potrebné body je možné nahradiť tak, že &lt;br /&gt;
po dohode s prednášajúcim spracujete na 2 strany formátu A4 niektorú z nasledovných tém:&lt;br /&gt;
&lt;br /&gt;
A.) Alpha GO&lt;br /&gt;
* [1] https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/alphago-zero-goes-from-blank-slate-to-grandmaster-in-three-dayswithout-any-help-at-all&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/why-alphago-is-not-ai&lt;br /&gt;
&lt;br /&gt;
B.) Biopocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/biomedical/devices/biocomputer-and-memory-built-inside-living-bacteria&lt;br /&gt;
* [2] https://spectrum.ieee.org/the-human-os/biomedical/devices/biological-computer-commands-living-cells-to-light-up&lt;br /&gt;
&lt;br /&gt;
C.) Blockchain:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world&lt;br /&gt;
* [2] https://spectrum.ieee.org/computing/networks/how-blockchains-work&lt;br /&gt;
&lt;br /&gt;
D.) Kvantove pocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/nanoclast/computing/hardware/a-first-two-qubit-logic-gate-in-silicon&lt;br /&gt;
* [2] https://spectrum.ieee.org/tech-talk/computing/hardware/qudits-the-real-future-of-quantum-computing&lt;br /&gt;
&lt;br /&gt;
E.) Neurocomputing:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/hardware/the-brain-as-computer-bad-at-math-good-at-everything-else&lt;br /&gt;
* [2] https://spectrum.ieee.org/semiconductors/design/neuromorphic-chips-are-destined-for-deep-learningor-obscurity&lt;br /&gt;
&lt;br /&gt;
F.) Autonomous car:&lt;br /&gt;
* [1] https://spectrum.ieee.org/cars-that-think/transportation/self-driving/nvidia-or-nxpwhose-robocar-brain-will-win&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/how-google-self-driving-car-works&lt;br /&gt;
&lt;br /&gt;
Pri vypracovani musite pouzit vzdy aspon tie dva linky ktore su tam, samozrejme si mozete najst aj dalsiu literaturu k teme.&lt;br /&gt;
Na kazdu z tem sa moze prihlasit len jeden jediny student!&lt;br /&gt;
&lt;br /&gt;
Vysledny dokument potom pridame ako studijny material na stranku ZPOC.&lt;br /&gt;
Termin by mohol byt do 17.12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2026&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;15. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  &lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2025&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;16. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  ([https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyA.pdf slajdy 1], [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyB.pdf slajdy 2] a [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;23. 09.&#039;&#039;&#039; 2️⃣ &#039;&#039;&#039;Ukladanie informácií v počítači.&#039;&#039;&#039; Kódy ASCII a Unicode, Big Endian, Little Endian. Reálne čísla s pohyblivou rádovou čiarkou, IEEE-754.  ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyA.pdf slajdy 1]) a ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyB.pdf slajdy 2])&lt;br /&gt;
** Film [https://youtu.be/zZuqLLdx2YQ The Imitation Game]&lt;br /&gt;
** Angela Watercutter &#039;&#039;[https://www.wired.com/2014/11/imitation-game-building-christopher/ How Designers Recreated Alan Turing&#039;s Code-Breaking Computer for Imitation Game]&#039;&#039;. Wired, 2104.&lt;br /&gt;
** Doplnok k formátom [https://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/ s plávajúcou desatinnou čiarkou]&lt;br /&gt;
** Pentium [https://en.wikipedia.org/wiki/Pentium_FDIV_bug fdiv bug]&lt;br /&gt;
** Ariane 5 - [http://sunnyday.mit.edu/nasa-class/Ariane5-report.html opis nehody] ([https://youtu.be/gp_D8r-2hwk video 1], [https://youtu.be/5tJPXYA0Nec video 2])&lt;br /&gt;
** Patriot [https://msquair.files.wordpress.com/2015/05/patriot-timing-error.pdf system timing error]&lt;br /&gt;
** Google Colab Notebook: https://colab.research.google.com/drive/1RMyuumEOuH13smF9_WIdbbqy109Wh0MC?usp=sharing&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;30. 09.&#039;&#039;&#039; 3️⃣ &#039;&#039;&#039;Kombinačné logické obvody.&#039;&#039;&#039; Boolova algebra, DeMorganove pravidlá. Pravdivostná tabuľka, logická schéma, úplný systém logických funkcií. Analýza logických obvodov. ([https://senzor.robotika.sk/zp/Prednasky/03prednaskaZPOC-slajdyA.pdf slajdy])&amp;lt;BR&amp;gt;Úvod do programovania mikropočítača BBC micro:bit ([https://senzor.robotika.sk/zp/Prednasky/microbit-Uvod.pdf slajdy]) &lt;br /&gt;
** Stránka [https://microbit.org/ micro:bit]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;07. 10.&#039;&#039;&#039; 4️⃣ &#039;&#039;&#039;Kombinačné logické obvody II.&#039;&#039;&#039; Analýza a syntéza logických obvodov. Polovičná a úplná sčítačka. ([https://senzor.robotika.sk/zp/Prednasky/04prednaskaZPOC-slajdyA.pdf slajdy])&lt;br /&gt;
** Robert Keim: &#039;&#039;[https://www.allaboutcircuits.com/technical-articles/what-is-an-fpga-introduction-to-programmable-logic-fpga-vs-microcontroller/ What Is an FPGA? An Introduction to Programmable Logic]&#039;&#039;. 2018&lt;br /&gt;
** Film [https://youtu.be/KPeHFDxKUP4 Back to the Future] a [https://youtu.be/afwYMdN43Mc scéna so zosilňovačom]&lt;br /&gt;
** [https://madformath.com/calculators/digital-systems/karnaugh-maps/karnaugh-map-solver Karnaugh map solver 1] a [https://karnaughmapsolver.com/ solver 2]&lt;br /&gt;
** Simulátor [https://simulator.io/ simulator.io]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;14. 10.&#039;&#039;&#039; 5️⃣ &#039;&#039;&#039;Spínacie obvody.&#039;&#039;&#039; Relé, elektrónka, tranzistor, integrovaný obvod. Moorov zákon. Časové diagramy. ([https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-slajdyA.pdf slajdy] a [https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Datasheet obvodu [http://senzor.robotika.sk/zp/DM74LS00.pdf 7400]&lt;br /&gt;
** Moorov zákon: [https://www.intel.com/content/www/us/en/silicon-innovations/moores-law-technology.html video]&lt;br /&gt;
** Robert Ross: &#039;&#039;[https://robbreport.com/gear/audio/vacuum-tube-amps-remerging-1234797622/ ‘It Sounds Human’: Audiophiles Are Embracing the Lush Sounds of Old-School Tube Amps]&#039;&#039;&lt;br /&gt;
** Video: [https://youtu.be/_9_AEVQ_p74?si=ySTOy212WNOeJTBh Claude Shannon demonstrates &amp;quot;Theseus&amp;quot; Machine Learning]&lt;br /&gt;
** Film: [https://youtu.be/AxQ9GG6hUDM?si=BbLnkbjNTGnUPalw Forbidden Planet Official Trailer] - Leslie Nielsen Movie (1956) &lt;br /&gt;
** [https://micro.magnet.fsu.edu/electromag/java/transistor/ Výroba tranzistora] (animácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/5747025316151296/cmos-nand Hradlo NAND technológiou CMOS] (simulácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/4806663265714176/ttl-standard-nand-logic-gate Hradlo NAND technológiou TTL] (simulácia)&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;21.10.&#039;&#039;&#039; 6️⃣ &#039;&#039;&#039;Sekvenčné obvody.&#039;&#039;&#039; Oneskorenie. Spätná väzba, oscilátor. Kybernetika. ([http://senzor.robotika.sk/zp/Prednasky/prednaska05.pdf slajdy])&lt;br /&gt;
** [https://cw.fel.cvut.cz/wiki/_media/courses/a3m33iro/vysoky50letkybernetiky1998_v626-632.pdf Z histórie kybernetiky u nás]&lt;br /&gt;
** [http://www.ieeevic.org/video-interview-norbert-wiener-inventor-of-cybernetics/ Norbert Wiener] - video&lt;br /&gt;
** [https://youtu.be/nS0luYZd4fs Shannon: Theseus demo] - video &amp;lt;!--&lt;br /&gt;
** Simulator.IO&lt;br /&gt;
*** R-S preklápací obvod https://simulator.io/board/Gv2ZlMW8SZ/3&lt;br /&gt;
*** Pamäťový register https://simulator.io/board/Ec8FMQOuMx/2&lt;br /&gt;
*** Posuvný register https://simulator.io/board/Da9uTzXj5o/1&lt;br /&gt;
*** Delička frekvencie https://simulator.io/board/VTJCoRBS5o/1&lt;br /&gt;
*** Binárne počítadlo https://simulator.io/board/ix1nHMxe7w/1 --&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;28. 10.&#039;&#039;&#039; 7️⃣ &#039;&#039;&#039;Pamäte.&#039;&#039;&#039; Rýchlosť, cena, kapacita. Typy pamätí RWM, ROM, EPROM, EEPROM, FLASH. Adresovanie, dynamická a statická pamäť. ([http://senzor.robotika.sk/zp/Prednasky/prednaska06a.pdf slajdy])&amp;lt;BR&amp;gt;Stavové diagramy a BBC micro:bit ([http://senzor.robotika.sk/zp/Prednasky/prednaska06b.pdf slajdy])&lt;br /&gt;
** [http://www.computerhistory.org/timeline/memory-storage/ Timeline of computer memory]&lt;br /&gt;
** Static RAM 2114 1kB [http://www.science.smith.edu/dftwiki/images/a/ab/2114_datasheet.pdf datasheet]&lt;br /&gt;
** [https://www.ibm.com/history/dram Dynamic random-access memory (DRAM)] history by IBM&lt;br /&gt;
** [https://www.ibm.com/think/topics/flash-storage FLASH memory]] history by IBM&lt;br /&gt;
** EEPROM 2708 1kB [http://www.jrok.com/datasheet/TMS2708.pdf datasheet]&lt;br /&gt;
** Film [https://www.youtube.com/watch?v=hMT8tRrEMC4 TRON] (1982) a remake [https://www.youtube.com/watch?v=SqSuRdkglxM TRON Legacy] (2010)&lt;br /&gt;
** Men In Black 3 | [https://www.youtube.com/watch?v=nQmkkryDp0Y Retro Neuralyzer Scene]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 4. 11.&#039;&#039;&#039; 8️⃣  &#039;&#039;&#039;Mikroprocesor&#039;&#039;&#039; Základná stavebné prvky procesora. Operačná a riadiaca časť procesora. Inštrukčný súbor. Typy inštrukcií. ([http://senzor.robotika.sk/zp/Prednasky/prednaska08.pdf slajdy])&lt;br /&gt;
** Frederico Faggin: &#039;&#039;[http://ieeexplore.ieee.org/document/4776530/ Making of the First Microprocessor]&#039;&#039;.&lt;br /&gt;
** [https://youtu.be/Knd-U-avG0c Zoom Into a Microchip] - National Informal STEM Education Network (NISE Net)&lt;br /&gt;
** Papierový [https://cs.wikipedia.org/wiki/Pap%C3%ADrov%C3%BD_po%C4%8D%C3%ADta%C4%8D_CGS počítač CGS]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;11. 11.&#039;&#039;&#039; 9️⃣ &#039;&#039;&#039;Mikroprocesor II.&#039;&#039;&#039; Matematický koprocesor. Inštrukčný súbor. Typy inštrukcií. Formát inštrukcie. Inštrukcie - práca s pamäťovým systémom počítača. Spôsoby adresácie. Procesory s architektúrou RISC a CISC. Asembler, jazyk symbolických adries, simulátor a emulátor. ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy])&lt;br /&gt;
** Jednodoskový počítač [https://sk.wikipedia.org/wiki/PMI-80 PMI-80] &amp;lt;!-- http://www.nostalcomp.cz/pmi80.php --&amp;gt;&lt;br /&gt;
** Osobný počítač [https://pmd85.borik.net/wiki/Intro PMD-85]&lt;br /&gt;
** Školský robot [http://www.avir.sk/robotika/historia_kar/roboti/KOLKA025.html KOLKA]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Intel_8087 Aritmetický koprocesor i8087]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/8080instructions.pdf Ťahák na cvičenia s výberom inštrukcií]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 25. 11.&#039;&#039;&#039; 🔟 Mikroprocesor III. Zásobník, prerušenie, podprogramy. Hierarchia počítačov, mainframe, workstation, embedded. [[Meranie výkonu počítačov]].([http://senzor.robotika.sk/zp/Prednasky/prednaska10.pdf slajdy])&lt;br /&gt;
** [https://www.top500.org/ Zoznam 500 najvýkonnejších počítačov na svete]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Cray-2 Superpočítač CRAY-2]&lt;br /&gt;
** [https://waitbutwhy.com/2014/11/from-1-to-1000000.html Milión bodiek]&lt;br /&gt;
** [[Meranie výkonu počítačov]]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 2. 12.&#039;&#039;&#039; Umelá inteligencia a strojové učenie&lt;br /&gt;
* &#039;&#039;&#039; 9. 12.&#039;&#039;&#039; Kvantové počítače&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;FONT COlor=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;Prednášky z minulého roka&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;20. 11.&#039;&#039;&#039; 🔟 Georg Jaggle, TU Wien: &#039;&#039;&#039;Inputs and outputs&#039;&#039;&#039; (([http://senzor.robotika.sk/zp/Prednasky/prednaska07a.pdf Lecture in english]). &#039;&#039;&#039;Vstupy a výstupy.&#039;&#039;&#039; Digitálny vstup, výstup, displej, klávesnica, multiplexovanie. (([http://senzor.robotika.sk/zp/Prednasky/prednaska07b.pdf slajdy]))&lt;br /&gt;
** Úvodné video [https://www.youtube.com/watch?v=LDPVwI3KULk Matrix - computer interface]&lt;br /&gt;
** Video z prezentácie [https://youtu.be/tIIJME8-au8 Timo Boll vs. robot]&lt;br /&gt;
** Romeo [https://youtu.be/kz1Ob0Ks554 humanoid robot grasping demonstration]&lt;br /&gt;
** Blue Danube [https://youtu.be/-sHcQcFd7-A Airskin collaborative robotics]&lt;br /&gt;
** Paro [https://youtu.be/2ZUn9qtG8ow therapeutic robot]&lt;br /&gt;
** Thymio [https://www.thymio.org/ educational robot]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;10.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Towards Augmented Intelligence.&#039;&#039;&#039; &#039;&#039;Tools and Skills for the Cognitive Era.&#039;&#039; Invited lecture. &lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska11-IBM.pdf slajdy]&lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.youtube.com/watch?v=MSc5I550jlY Smart Wildlife project]&lt;br /&gt;
** Use The Force - [https://youtu.be/K-4mp_e5v4A Move a BB-8 with Your Mind]&lt;br /&gt;
** [https://qiskit.org/ Quantum computing]&lt;br /&gt;
** [https://www.youtube.com/watch?v=3WrVUb7ej0o Tanmay Bakshi] video&lt;br /&gt;
*** Tanmay Bakshi: [https://www.amazon.com/s?k=tanmay+bakshi books]&lt;br /&gt;
** [https://tone-analyzer-demo.ng.bluemix.net/ Text analyzer demo]&lt;br /&gt;
** Free [https://cognitiveclass.ai/ Cognitive Courses and Lessons]&lt;br /&gt;
** IBM Centennial Film [https://www.youtube.com/watch?eWxUWJgfzk 100 X 100 A century of achievements that have changed the world]&lt;br /&gt;
* &#039;&#039;&#039;.11.&#039;&#039;&#039; Vstupno-výstupných podsystém. I/O karty. Paralelný port. Vstup a výstup logických a číslicových hodnôt ([http://senzor.robotika.sk/zp/Prednasky/prednaska11.pdf slajdy]).&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039; Prenos údajov. Zbernicová architektúra počítača. Zbernice. Sériové rozhranie a UART.  Jednoprocesorové a viacprocesorové zbernice, arbitrácia prístupu. Multiplexovaná zbernica. Príklady štandardných zberníc ([http://senzor.robotika.sk/zp/Prednasky/prednaska11a.pdf slajdy]).&lt;br /&gt;
&lt;br /&gt;
* Prednáška o AI ToDo: pretriedit odkazy!&lt;br /&gt;
** [https://youtu.be/JA472HOifoA?si=uqtaykqgagVi5RM4 Top 10 AI Movies WARNING Us For Our Future]&lt;br /&gt;
** [https://youtu.be/iyKt7bK--uo?si=BXPm6SX308N0gNDM Top 10 AI Movies With HIDDEN Messages For Humans]&lt;br /&gt;
** [https://youtu.be/HLl47qX6-UM?si=I5jETjAq7004AoMb Top 10 AI TV Shows WARNING Us For Our Future]&lt;br /&gt;
** https://www.minedu.sk/ai-dni-priniesli-umelu-inteligenciu-do-100-slovenskych-skol/&lt;br /&gt;
** https://ai.iedu.sk/nastroje-ai/&lt;br /&gt;
** https://bratislavaiforum.com/global-forum/&lt;br /&gt;
** https://www.dny.ai/#program&lt;br /&gt;
** https://www.slovensko.ai/&lt;br /&gt;
** https://www.stuba.sk/sk/diani-na-stu/prehlad-aktualit/stu-ma-pravidla-pouzivania-umelej-inteligencie.html?page_id=17202&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Computing: vision for the Future.&#039;&#039;&#039; Invited lecture. History and status now. Limits and beyonds. Computers as a service.     Future challenges: blokchain, quantum computing, cognitive computing, clouds and services, internet of things. [[Základy počítačov - pozvaná prednáška|More information...]]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska12-IBM.pdf slajdy]&lt;br /&gt;
** [https://www.youtube.com/watch?v=pBiVyEfZVUU History of computers - partI.] &lt;br /&gt;
** [https://www.youtube.com/watch?v=HRi1BHjID3o History of computers - partII.] &lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.evaaugustyn.com/ibm-watson-x-music AI Music by IBM Watson]&lt;br /&gt;
** Video Johna Cohna, ktoré sme nevideli:&lt;br /&gt;
*** https://youtu.be/I-NT1-BdOvI&lt;br /&gt;
*** https://www.youtube.com/watch?v=qxRM99LlcVc&lt;br /&gt;
&lt;br /&gt;
2017&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Carbone-Lecture2018.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson, IBM: &#039;&#039;&#039;The Computer of (near) Future.&#039;&#039;&#039; Invited lecture. Cloud (Saas, Paas, Iaas). Cognitive computing - Whats that all about. Quantum Computing.&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson is a multi-skilled Senior IT Professional with extensive Cloud, DevOps, Development, technical architecture, release management and project management experience gained within a broad range of organisations operating across multiple business sectors across the globe. Thorough and detailed Cloud architecture knowledge built over many years, a true advocate of “Cloud First” thinking and a practitioner of best practices, seeing the TCO and cost saving opportunities of moving to the cloud.   Outstanding experience of designing and directing the implementation of Continuous Integration and Delivery Pipelines. Leading DevOps, environment support, technology architecture and infrastructure design activities and advising team members and management on the principles and benefits of Continuous Delivery and DevOps. A proven ability to lead both local and remote technical / development teams and to successfully deliver agreed solutions of the highest quality, often within complex and challenging environments.  A leader who has successfully built DevOps practices for multiple organisations, hiring the right candidates for the job and helping existing members of staff transform into a DevOps role and instilling the core principals.  A developer who will turn his hand to most languages, most recently GOLANG building a modern web app using micro-service architecture and docker based containers for responsive auto scaling(simple, blisteringly fast, small footprint, docker integration builtin)  and also systems tooling, docker, Terraform etc.&lt;br /&gt;
* Nestihli sme: &lt;br /&gt;
* Pamäte II. Externé pamäte, pevné a optické disky. Polia RAID ([http://senzor.robotika.sk/zp/Prednasky/prednaska06.pdf slajdy 31-63]). ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy]).&lt;br /&gt;
* Počítačové siete - charakteristika a ich rozdelenie. Sieťové médiá. Správa, rámec, paket.  Generácie počítačov.&lt;br /&gt;
* A/D a D/A prevodníky. Riadiace počítače. Elektromagnetická kompatibilita. Počítadlá a časovače. RTC&lt;br /&gt;
Číslicový počítač s von Neumannovou a Harvardskou architektúrou. Klasifikácia počítačov.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [http://senzor.robotika.sk/zp/Prednasky/ --&amp;gt; Slajdy z prednášok.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zoznam odporúčanej študijnej literatúry:&lt;br /&gt;
&lt;br /&gt;
* Sarah L. Harris and David M. Harris: &#039;&#039;&#039;[https://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244 Digital Design and Computer Architecture]&#039;&#039;&#039;. Morgan Kaufman, 3rd ed., 2016. ISBN: 9789382291527&lt;br /&gt;
* David Patterson and John Hennessy: &#039;&#039;[https://www.elsevier.com/books/computer-organization-and-design-arm-edition/patterson/978-0-12-801733-3 Computer Organization and Design ARM Edition]&#039;&#039;. 1st Ed. Morgan Kaufmann, 2016. ISBN: 9780128017333&lt;br /&gt;
* Tibor Krajčovič: &#039;&#039;[http://www2.fiit.stuba.sk/~tkraj/pocitace.pdf Počítače].&#039;&#039; Vydavateľstvo STU, Bratislava, 2000. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
* Richard Balogh: &#039;&#039;[https://www.fei.stuba.sk/sk/kniznica-fei/aktuality-kniznica/vybrane-kapitoly-z-mikropocitacov.html?page_id=6102 Vybrané kapitoly z mikropočítačov: I. časť: Hardware].&#039;&#039; Bratislava: Vydavateľstvo Spektrum STU, 2023. ISBN 978-80-227-5285-5. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
&lt;br /&gt;
Internetové zdroje:&lt;br /&gt;
* https://www.root.cz/serialy/co-se-deje-v-pocitaci/&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Cvičenia&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cvičenia prebiehajú prezenčne v učebni CPU (blok D, 1. posch.) podľa rozvrhu. V prípade choroby&lt;br /&gt;
alebo inej opodstatnenej neprítomnosti si môžete cvičenie nahradiť v ľubovoľnom inom termíne v danom týždni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 1 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# &#039;&#039;&#039;Riešime príklady na prevody DEC-BIN-HEX-ASCII: [[Prevody medzi číselnými sústavami]]&#039;&#039;&#039;&lt;br /&gt;
# prihlásiť sa na PC dočasným heslom a nové heslo si ZAPAMATAŤ&lt;br /&gt;
# prihlásiť sa do Google Classroom svojim stuba.sk menom a heslom&lt;br /&gt;
# prihlásiť sa do AISu&lt;br /&gt;
# nájdite si v AISe vstupný testík a vyplňte ho&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Číselné sústavy]] Príklady: [[Prevody medzi číselnými sústavami]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 2 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# počítame jednoduché príklady [[Aritmetika v dvojkovej sústave]]&lt;br /&gt;
# počítame príklady [[Kódy a kódovanie]]&lt;br /&gt;
# počítame príklady [[Zobrazenie čísel v počítači]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Aritmetické operácie v dvojkovej sústave]] alebo aj  [https://www.khanacademy.org/math/algebra-home/alg-intro-to-algebra/algebra-alternate-number-bases/v/number-systems-introduction Khan Academy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 3 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Návody: [[ 	Rýchlokurz micro:bit‎]].&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Programy pre micro:bit&lt;br /&gt;
## naprogramujte jednoduchú animáciu&lt;br /&gt;
## naprogramujte jednoduché minutky počítajúce smerom nadol&lt;br /&gt;
## naprogramujte hraciu kocku &lt;br /&gt;
## vyskúšajte, ako funguje [[Matematika a micro:bit‎‎]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 4 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
&lt;br /&gt;
# [[Kombinačné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória: [http://www2.fiit.stuba.sk/~kvasnicka/Logika/Lecture09/09.prezentacia.pdf Logické obvody]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 5 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy:&lt;br /&gt;
&lt;br /&gt;
#  [[Kombinačné logické obvody s micro:bitom]]&lt;br /&gt;
#   15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 6 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Sekvenčné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: &lt;br /&gt;
* [http://www.dnp.fmph.uniba.sk/~kollar/dg_w/index_d.htm Sekvenčné obvody] alebo [https://www.electronics-tutorials.ws/sequential/seq_1.html Sequential Logic Circuits]&lt;br /&gt;
* https://technobyte.org/flip-flops-latches-designing-truth-tables/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 7 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania - Sekvenčné obvody a stavové automaty s micro:bitom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Návod na cvičenie [[Stavové diagramy s micro:bit]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zadané problémy riešte v prostredí [https://makecode.microbit.org/ &amp;amp;#8594; MakeCode]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 8 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laboratórne cvičenie.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zapojte a odmerajte vlastnosti kombinačných a sekvenčných obvodov podľa návodu [[Meranie s logickými obvodmi‎]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ToDo 2023: ak nestihnete zmerať všetky úlohy na cvičení, môžete si ich prísť domerať do D-219 vo vymedzenom čase.&lt;br /&gt;
&lt;br /&gt;
# Keď to zvládnete, stačí k dvom obvodom z cvičenia pridať ešte 32 a máte hotový celý 8-bitový mikropočítač... Kliknutím na obrázok získate kompletný návod :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:TTLcomputer.jpg|500px|center|link=https://hackaday.io/project/20781-8-bit-color-computer-from-ttl]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 9 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mikroprocesor.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[ZPOC 9: Základy programovania v strojovom kóde]] (&amp;lt;S&amp;gt;[[ASM80 programy|old version]]&amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&#039;&#039;&#039;Zabudnuté inštrukcie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ižinieri v Silicon Valley našli v archívoch dokument, z ktorého vyplýva, že&lt;br /&gt;
niektoré assemblerovské inštrukcie, ktoré autori procesorov vytvorili sa napokon&lt;br /&gt;
do procesorov nedostali. Ktovie prečo? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
    BPDI    Be Polite, Don&#039;t Interrupt&lt;br /&gt;
    CLD     Call a Doctor&lt;br /&gt;
    CRB     Crash and Burn&lt;br /&gt;
    CRN     Convert to Roman Numerals&lt;br /&gt;
    DAC     Divide And Conquer&lt;br /&gt;
    DMNS    Do what I Mean, Not what I Say&lt;br /&gt;
    EPI     Execute Programmer Immediately&lt;br /&gt;
    GE      Generate  Error&lt;br /&gt;
    IBP     Insert Bug and Proceed&lt;br /&gt;
    IAN     Illogical AND&lt;br /&gt;
    IOR     Illogical OR&lt;br /&gt;
    JBW     Jump Both Ways&lt;br /&gt;
    JPO     Jump on Power Off&lt;br /&gt;
    JRA     Jump to Random Address&lt;br /&gt;
    LLI     Lose Last Instruction&lt;br /&gt;
    RNR     Rather Not Run&lt;br /&gt;
    RPM     Read Programmer&#039;s Mind&lt;br /&gt;
    SWOM    Store in Write Only Memory&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 10 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzory na micro:bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Senzory na mikropočítači micro:bit]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 11 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komunikácia s micro:bitmi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Komunikácia a micro:bit 2023]]  (staré verzie: &amp;lt;S&amp;gt;[[Komunikácia a micro:bit‎‎]] alebo [[Bezdrôtová komunikácia a micro:bit‎‎]] &amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
# Okrem toho môžete vypracovať všetky testy, ktoré ste zameškali v priebehu semestra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 12 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy strojového učenia&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Cvičenie základov strojového učenia]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test (prípadne si doplňte všetky, ktoré vám chýbajú)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 13 (bonus) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Robotický simulátor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Robotický simulátor PRIA IDE]]&lt;br /&gt;
# [https://ide.pria.at/projects/vysavac Link do programovacieho prostredia]&lt;br /&gt;
# Toto cvičenie je náhradné pre tých, ktorí z niektorého chýbali a nestihli si ho nahradiť. Dá sa vyriešiť aj doma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Domáce úlohy&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
* Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bonusové príklady&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Za vyriešenie týchto úloh môžete získať okrem dobrého pocitu aj bonusové body. Nezíska ich každý, &lt;br /&gt;
ale ten, kto ako prvý pošle ich riešenie na adresu balogh@elf.stuba.sk&lt;br /&gt;
Ak budú riešenia aj s postupom a tie budú dostatočne odlišné, môžu bonusové body získať aj viacerí. &lt;br /&gt;
Prečiarknuté body znamenajú, že úlohu môžete stále ešte riešiť sebe pre radosť, ale body, žiaľ, už nedostanete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Podmienky absolvovania predmetu ==&lt;br /&gt;
&lt;br /&gt;
# Znalosť odprezentovanej problematiky,&lt;br /&gt;
# absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť),&lt;br /&gt;
# vypracovanie všetkých testíkov &amp;lt;S&amp;gt;aspoň na polovicu&amp;lt;/S&amp;gt; na primeraný počet bodov,&lt;br /&gt;
# a získanie potrebného počtu bodov na skúške (min. 50% písomky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prácu študenta kontroluje a body udeľuje cvičiaci daného krúžku.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Kontakty&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Za menom je uvedené pracovisko a miestnosť. Zamestnanci STU majú e-mailové adresy v tvare meno.priezvisko@stuba.sk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vyučujúci:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* doc. Ing. Richard Balogh, PhD. (UAMT, D-110, streda 11:00)&lt;br /&gt;
&amp;lt;!-- * Ing. Belai (D-126, streda 10:00), Ing. Hlavatý, Ing. Michalovič (D-212, streda 10:00) a Ing. Račkay (D-215, stvrtok 14:00) - doktorandi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RozvrhHodin.png|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Základy počítačov]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19712</id>
		<title>Rýchlokurz micro:bit/09 Kuchynské minútky</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19712"/>
		<updated>2026-09-29T08:30:05Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: kuchynské minútky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/09 Kuchynské minútky --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:KuchynskeMinutky.jpg|thumb|200px|Klasické kuchynské minútky]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* spojiť všetko, čo už viete, do jedného užitočného programu,&lt;br /&gt;
* navrhnúť program ešte pred tým, ako ho začnete písať,&lt;br /&gt;
* prehrať zvuk.&lt;br /&gt;
&lt;br /&gt;
Toto je záverečná lekcia kurzu. Ak jej programu úplne rozumiete a zvládnete aspoň dve úlohy na konci, máte všetko potrebné na cvičenia.&lt;br /&gt;
&lt;br /&gt;
== Návrh programu ==&lt;br /&gt;
&lt;br /&gt;
Skôr ako začnete skladať bloky, je dobré si slovami popísať, &#039;&#039;&#039;čo&#039;&#039;&#039; má program robiť. Až potom riešite, &#039;&#039;&#039;ako&#039;&#039;&#039;. Naše minútky budú fungovať takto:&lt;br /&gt;
&lt;br /&gt;
* Po zapnutí zobrazia čas 0.&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;A&#039;&#039;&#039; pridá jednu sekundu (pri skutočných minútkach by to bola minúta, ale sekundy sa lepšie testujú).&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;B&#039;&#039;&#039; spustí odpočítavanie. Ak je nastavený čas 0, nie je čo odpočítavať, preto zobrazia krížik.&lt;br /&gt;
* Po dobehnutí zaznie melódia a trikrát zabliká srdce.&lt;br /&gt;
* Tlačidlá &#039;&#039;&#039;A+B&#039;&#039;&#039; čas vynulujú.&lt;br /&gt;
&lt;br /&gt;
Z popisu už vidno, čo budeme potrebovať:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Časť popisu !! Programová konštrukcia !! Lekcia&lt;br /&gt;
|-&lt;br /&gt;
| nastavený čas si treba pamätať || premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; || [[Rýchlokurz micro:bit/03 Premenná|3]], [[Rýchlokurz micro:bit/08 Počítadlo|8]]&lt;br /&gt;
|-&lt;br /&gt;
| reakcia na tlačidlá || obsluhy udalostí || [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|6]]&lt;br /&gt;
|-&lt;br /&gt;
| „ak je čas 0, zobraz krížik, inak odpočítavaj“ || if-else || [[Rýchlokurz micro:bit/07 Podmienka if-else|7]]&lt;br /&gt;
|-&lt;br /&gt;
| odpočítavaj, &#039;&#039;&#039;kým&#039;&#039;&#039; čas neklesne na 0 || cyklus while || [[Rýchlokurz micro:bit/05 Cyklus while|5]]&lt;br /&gt;
|-&lt;br /&gt;
| srdce zabliká &#039;&#039;&#039;trikrát&#039;&#039;&#039; || cyklus for (repeat) || [[Rýchlokurz micro:bit/04 Cyklus for|4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zvuk ==&lt;br /&gt;
&lt;br /&gt;
Bloky pre zvuk sú v kategórii &#039;&#039;&#039;Music&#039;&#039;&#039;. Na verzii &#039;&#039;&#039;V2&#039;&#039;&#039; zaznie zvuk zo vstavaného reproduktora na zadnej strane dosky. Verzia &#039;&#039;&#039;V1&#039;&#039;&#039; reproduktor nemá: zvuk ide na &#039;&#039;&#039;pin 0&#039;&#039;&#039; a počuť ho je len vtedy, keď medzi piny &#039;&#039;0&#039;&#039; a &#039;&#039;GND&#039;&#039; pripojíte krokosvorkami slúchadlá alebo bzučiak. Simulátor v MakeCode prehrá zvuk cez reproduktory počítača.&lt;br /&gt;
&lt;br /&gt;
Blok &#039;&#039;play melody ... until done&#039;&#039; počká, kým melódia dohrá, a až potom pokračuje ďalším príkazom. Pri voľbe &#039;&#039;in background&#039;&#039; sa melódia spustí a program &#039;&#039;&#039;hneď&#039;&#039;&#039; pokračuje, takže zvuk a animácia bežia súčasne. My chceme, aby srdce blikalo počas hrania melódie, preto použijeme &#039;&#039;in background&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Program: kuchynské minútky ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=400px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz09.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    if (cas == 0) {&lt;br /&gt;
        basic.showIcon(IconNames.No)&lt;br /&gt;
    } else {&lt;br /&gt;
        while (cas &amp;gt; 0) {&lt;br /&gt;
            basic.showNumber(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        }&lt;br /&gt;
        music.play(music.stringPlayable(&amp;quot;E B C5 A B G A F &amp;quot;, 230), music.PlaybackMode.InBackground)&lt;br /&gt;
        // music.play(music.builtinPlayableMelody(Melodies.PowerUp), music.PlaybackMode.InBackground)&lt;br /&gt;
        for (let index = 0; index &amp;lt; 3; index++) {&lt;br /&gt;
            basic.showIcon(IconNames.Heart)&lt;br /&gt;
            basic.showIcon(IconNames.SmallHeart)&lt;br /&gt;
        }&lt;br /&gt;
        basic.showNumber(cas)&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
let cas = 0&lt;br /&gt;
basic.showNumber(cas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    global cas&lt;br /&gt;
    if cas == 0:&lt;br /&gt;
        basic.show_icon(IconNames.NO)&lt;br /&gt;
    else:&lt;br /&gt;
        while cas &amp;gt; 0:&lt;br /&gt;
            basic.show_number(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        music.play(music.string_playable(&amp;quot;E B C5 A B G A F &amp;quot;, 230),&lt;br /&gt;
            music.PlaybackMode.IN_BACKGROUND)&lt;br /&gt;
        # music.play(music.builtinPlayableMelody(Melodies.PowerUp), music.PlaybackMode.InBackground)&lt;br /&gt;
        for index in range(3):&lt;br /&gt;
            basic.show_icon(IconNames.HEART)&lt;br /&gt;
            basic.show_icon(IconNames.SMALL_HEART)&lt;br /&gt;
        basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
cas = 0&lt;br /&gt;
basic.show_number(cas)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Najzaujímavejšia je obsluha tlačidla B. Všimnite si, ako sú konštrukcie &#039;&#039;&#039;vnorené&#039;&#039;&#039; do seba: v obsluhe udalosti je podmienka, vo vetve &#039;&#039;else&#039;&#039; je cyklus while a za ním cyklus for. Presne toto vnorenie najlepšie vidno v blokoch: každá konštrukcia je „krabička“, do ktorej sa vkladajú ďalšie príkazy. V textovom zápise ho vyjadrujú úrovne odsadenia (a v JavaScripte zložené zátvorky).&lt;br /&gt;
&lt;br /&gt;
Prejdime si obsluhu tlačidla B pre nastavený čas 3 sekundy:&lt;br /&gt;
# Podmienka &amp;lt;code&amp;gt;cas == 0&amp;lt;/code&amp;gt; neplatí (cas je 3), vykoná sa vetva &#039;&#039;else&#039;&#039;.&lt;br /&gt;
# Cyklus while: 3 &amp;gt; 0 platí → zobraz 3, počkaj, cas = 2. Potom 2 &amp;gt; 0 → zobraz 2, cas = 1. Potom 1 &amp;gt; 0 → zobraz 1, cas = 0. Nakoniec 0 &amp;gt; 0 &#039;&#039;&#039;neplatí&#039;&#039;&#039;, cyklus končí.&lt;br /&gt;
# Spustí sa melódia na pozadí.&lt;br /&gt;
# Cyklus for trikrát vystrieda veľké a malé srdce (medzitým stále hrá melódia).&lt;br /&gt;
# Zobrazí sa 0 a minútky sú pripravené na ďalšie použitie.&lt;br /&gt;
&lt;br /&gt;
Takémuto „ručnému“ prechádzaniu programu s konkrétnymi hodnotami sa hovorí &#039;&#039;&#039;trasovanie&#039;&#039;&#039;. Je to najspoľahlivejší spôsob, ako pochopiť cudzí program alebo nájsť chybu vo vlastnom.&lt;br /&gt;
&lt;br /&gt;
Odpočítavanie nie je úplne presné: k pauze 1000 ms sa pripočíta čas, kým sa zobrazí číslo, a pri dvojciferných číslach je to posúvanie textu, teda aj niekoľko sekúnd. Na kuchynské minútky to stačí, na presné meranie času sa používajú iné prostriedky (blok &#039;&#039;running time&#039;&#039; v kategórii &#039;&#039;Input&#039;&#039;), ku ktorým sa dostaneme na cvičeniach.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; je vo while podmienke, ale v tele cyklu sa nemení&#039;&#039;&#039; → nekonečný cyklus, minútky nikdy nedobehnú.&lt;br /&gt;
* &#039;&#039;&#039;Podmienka &amp;lt;code&amp;gt;cas &amp;gt;= 0&amp;lt;/code&amp;gt; namiesto &amp;lt;code&amp;gt;cas &amp;gt; 0&amp;lt;/code&amp;gt;&#039;&#039;&#039; → cyklus prebehne o raz viac a čas skončí na -1. Trasovaním si overte prečo.&lt;br /&gt;
* &#039;&#039;&#039;Melódia v režime &#039;&#039;until done&#039;&#039;&#039;&#039;&#039; → srdce začne blikať až po dohraní melódie.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Trasujte program pre prípad, že stlačíte B hneď po zapnutí. Ktoré príkazy sa vykonajú?&lt;br /&gt;
# Upravte minútky tak, aby tlačidlo A pridávalo po 10 sekúnd.&lt;br /&gt;
# Nech posledné tri sekundy odpočítavania sprevádza krátke pípnutie (do tela cyklu while vložte podmienku &#039;&#039;if&#039;&#039; &amp;lt;code&amp;gt;cas &amp;lt;= 3&amp;lt;/code&amp;gt; a do nej blok &#039;&#039;play tone&#039;&#039; z kategórie &#039;&#039;Music&#039;&#039;).&lt;br /&gt;
# Pridajte tlačidlo na odoberanie času. Tlačidlo A je obsadené a B spúšťa odpočítavanie. Nájdite si v kategórii &#039;&#039;Input&#039;&#039; inú udalosť, napr. &#039;&#039;on shake&#039;&#039; alebo (V2) &#039;&#039;on logo pressed&#039;&#039;. Nezabudnite, že čas nesmie byť záporný.&lt;br /&gt;
# &#039;&#039;Náročnejšia:&#039;&#039; Upravte minútky tak, aby sa nastavovali v minútach a počas odpočítavania zobrazovali len zostávajúce minúty. Potrebujete na to vnorené cykly?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
🎓 &#039;&#039;&#039;Gratulujeme, zvládli ste základy!&#039;&#039;&#039; Na cvičeniach budeme pokračovať senzormi, komunikáciou medzi micro:bitmi a pripájaním ďalších súčiastok. Ďalšie inšpirácie nájdete v [[BBC micro:bit#Zbierka príkladov|zbierke príkladov]].&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Kateg%C3%B3ria:R%C3%BDchlokurz_micro:bit&amp;diff=19711</id>
		<title>Kategória:Rýchlokurz micro:bit</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Kateg%C3%B3ria:R%C3%BDchlokurz_micro:bit&amp;diff=19711"/>
		<updated>2026-09-28T09:37:37Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „Toto je kratky kurz programovania micro:bit vytvoreny r. 2026 pomocou Claude.AI“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Toto je kratky kurz programovania micro:bit vytvoreny r. 2026 pomocou Claude.AI&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/07_Podmienka_if-else&amp;diff=19710</id>
		<title>Rýchlokurz micro:bit/07 Podmienka if-else</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/07_Podmienka_if-else&amp;diff=19710"/>
		<updated>2026-09-28T09:36:55Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: visačka inak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/07 Podmienka if-else --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/08 Počítadlo|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* rozhodovať v programe pomocou &#039;&#039;&#039;podmieneného príkazu&#039;&#039;&#039; if-else,&lt;br /&gt;
* reťaziť viac podmienok (else if),&lt;br /&gt;
* spájať podmienky logickými operátormi &#039;&#039;and&#039;&#039;, &#039;&#039;or&#039;&#039;, &#039;&#039;not&#039;&#039;,&lt;br /&gt;
* rozdiel medzi &#039;&#039;&#039;udalosťou&#039;&#039;&#039; a &#039;&#039;&#039;stavom&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: vetvenie programu ==&lt;br /&gt;
&lt;br /&gt;
Doteraz program vykonával vždy tie isté príkazy. Skutočné programy sa však musia &#039;&#039;&#039;rozhodovať&#039;&#039;&#039;: ak je teplota nízka, zapni kúrenie, inak ho vypni. Na to slúži &#039;&#039;&#039;podmienený príkaz&#039;&#039;&#039; &#039;&#039;if&#039;&#039; (ak).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Konštrukcia !! Význam&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; &#039;&#039;podmienka&#039;&#039; || &#039;&#039;&#039;Ak&#039;&#039;&#039; podmienka platí, vykonaj telo. Inak ho preskoč.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; || Ak podmienka platí, vykonaj prvú vetvu, &#039;&#039;&#039;inak&#039;&#039;&#039; vykonaj druhú. Vykoná sa vždy práve jedna z nich.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; || Podmienky sa testujú &#039;&#039;&#039;postupne zhora&#039;&#039;&#039;. Vykoná sa vetva &#039;&#039;&#039;prvej&#039;&#039;&#039; podmienky, ktorá platí, ostatné sa preskočia. Ak neplatí žiadna, vykoná sa &#039;&#039;else&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Podmienky sú rovnaké logické výrazy ako pri cykle while. Zložitejšie podmienky vytvoríme &#039;&#039;&#039;logickými operátormi&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bloky !! JavaScript !! Python !! Platí, keď...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; || platia &#039;&#039;&#039;obe&#039;&#039;&#039; podmienky&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; || platí &#039;&#039;&#039;aspoň jedna&#039;&#039;&#039; z podmienok&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; || podmienka &#039;&#039;&#039;neplatí&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Udalosť alebo stav? ==&lt;br /&gt;
&lt;br /&gt;
V minulej lekcii sme reagovali na &#039;&#039;&#039;udalosť&#039;&#039;&#039; &#039;&#039;on button A pressed&#039;&#039;: okamih, keď bolo tlačidlo stlačené. Teraz budeme zisťovať &#039;&#039;&#039;stav&#039;&#039;&#039; &#039;&#039;button A is pressed&#039;&#039;: či je tlačidlo stlačené &#039;&#039;práve teraz&#039;&#039;. Stav musíme zisťovať opakovane, preto test umiestnime do cyklu &#039;&#039;forever&#039;&#039;. Oba prístupy sú správne a každý sa hodí na niečo iné:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;udalosť&#039;&#039;&#039; – keď treba zareagovať raz na každé stlačenie (počítanie stlačení, prepnutie režimu),&lt;br /&gt;
* &#039;&#039;&#039;stav&#039;&#039;&#039; – keď má program niečo robiť, &#039;&#039;kým&#039;&#039; je tlačidlo držané (napr. plyn v hre, pohyb robota).&lt;br /&gt;
&lt;br /&gt;
== Program: visačka inak ==&lt;br /&gt;
&lt;br /&gt;
Rovnaká visačka ako v minulej lekcii, ale riešená testovaním stavu tlačidiel. Navyše pridáme vetvu &#039;&#039;else&#039;&#039;: keď nie je stlačené žiadne tlačidlo, visačka „spí“. Blok &#039;&#039;if-else&#039;&#039; je v kategórii &#039;&#039;&#039;Logic&#039;&#039;&#039;. Ďalšiu vetvu &#039;&#039;else if&#039;&#039; pridáte kliknutím na ikonu ⊕ v spodnej časti bloku.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz07.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
basic.forever(function () {&lt;br /&gt;
    if (input.buttonIsPressed(Button.A) &amp;amp;&amp;amp; input.buttonIsPressed(Button.B)) {&lt;br /&gt;
        basic.showIcon(IconNames.Heart)&lt;br /&gt;
    } else if (input.buttonIsPressed(Button.A)) {&lt;br /&gt;
        basic.showIcon(IconNames.Happy)&lt;br /&gt;
    } else if (input.buttonIsPressed(Button.B)) {&lt;br /&gt;
        basic.showIcon(IconNames.Sad)&lt;br /&gt;
    } else {&lt;br /&gt;
        basic.showIcon(IconNames.Asleep)&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_forever():&lt;br /&gt;
    if input.button_is_pressed(Button.A) and input.button_is_pressed(Button.B):&lt;br /&gt;
        basic.show_icon(IconNames.HEART)&lt;br /&gt;
    elif input.button_is_pressed(Button.A):&lt;br /&gt;
        basic.show_icon(IconNames.HAPPY)&lt;br /&gt;
    elif input.button_is_pressed(Button.B):&lt;br /&gt;
        basic.show_icon(IconNames.SAD)&lt;br /&gt;
    else:&lt;br /&gt;
        basic.show_icon(IconNames.ASLEEP)&lt;br /&gt;
basic.forever(on_forever)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Cyklus &#039;&#039;forever&#039;&#039; neustále opakuje jedno rozhodnutie so štyrmi vetvami. Pri každom opakovaní sa podmienky testujú zhora nadol a vykoná sa vetva prvej, ktorá platí.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Na poradí podmienok záleží.&#039;&#039;&#039; Keď držíte obe tlačidlá, platí aj druhá podmienka („A je stlačené“). Keby bola prvá, zobrazil by sa veselý smajlík a k srdcu by program nikdy nedošiel. Preto musí byť najšpecifickejšia podmienka (obe tlačidlá) &#039;&#039;&#039;na začiatku&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Všimnite si rozdiel v správaní oproti minulej lekcii: keď tlačidlo pustíte, visačka zaspí. Ikona sa tu nezobrazí raz po stlačení, ale neustále podľa toho, čo je stlačené práve teraz.&lt;br /&gt;
&lt;br /&gt;
V Pythone sa &#039;&#039;else if&#039;&#039; skracuje na &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt;. V JavaScripte je telo každej vetvy v zložených zátvorkách, v Pythone opäť rozhoduje odsadenie a za každou podmienkou nasleduje dvojbodka.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Zlé poradie podmienok&#039;&#039;&#039; – všeobecnejšia podmienka „zakryje“ špecifickejšiu.&lt;br /&gt;
* &#039;&#039;&#039;Samostatné if-y namiesto reťaze else if.&#039;&#039;&#039; Tri samostatné príkazy &#039;&#039;if&#039;&#039; za sebou sa otestujú všetky tri a pri držaní oboch tlačidiel sa vykoná viac vetiev naraz. Reťaz &#039;&#039;if – else if&#039;&#039; zaručí, že sa vykoná najviac jedna.&lt;br /&gt;
* &#039;&#039;&#039;Zabudnutá dvojbodka&#039;&#039;&#039; za podmienkou v Pythone.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Vymeňte poradie podmienok tak, aby test oboch tlačidiel bol posledný. Overte v simulátore, že srdce sa už nikdy nezobrazí, a vysvetlite prečo.&lt;br /&gt;
# Pomocou operátora &#039;&#039;or&#039;&#039; upravte program tak, aby sa pri stlačení &#039;&#039;&#039;ktoréhokoľvek&#039;&#039;&#039; tlačidla zobrazila šípka a inak prázdny displej.&lt;br /&gt;
# Micro:bit meria teplotu (blok &#039;&#039;&#039;temperature (°C)&#039;&#039;&#039; v kategórii &#039;&#039;Input&#039;&#039;). Napíšte „teplomer“: ak je teplota nad 25 °C, zobrazí slnko (vlastný obrázok), ak pod 18 °C, snehovú vločku, inak fajku. V simulátore môžete teplotu meniť posuvníkom.&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Doplňte do visačky ďalšiu vetvu, ktorá pri dotyku loga (blok &#039;&#039;&#039;logo is pressed&#039;&#039;&#039;) zobrazí ikonu &#039;&#039;Surprised&#039;&#039;. Kam v reťazi podmienok ju treba umiestniť?&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/08 Počítadlo|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz07.png&amp;diff=19709</id>
		<title>Súbor:Microbit-Kurz07.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz07.png&amp;diff=19709"/>
		<updated>2026-09-28T09:36:39Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/07_Podmienka_if-else&amp;diff=19708</id>
		<title>Rýchlokurz micro:bit/07 Podmienka if-else</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/07_Podmienka_if-else&amp;diff=19708"/>
		<updated>2026-09-28T09:36:06Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/07 Podmienka if-else --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  == Čo sa naučíte == * rozhodovať v programe pomocou &amp;#039;&amp;#039;&amp;#039;podmieneného príkazu&amp;#039;&amp;#039;&amp;#039; if-else, * reťaziť viac podmienok (else if), * spájať podmienky logickými operátormi &amp;#039;&amp;#039;and&amp;#039;&amp;#039;, &amp;#039;&amp;#039;or&amp;#039;&amp;#039;, &amp;#039;&amp;#039;not&amp;#039;&amp;#039;, *…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/07 Podmienka if-else --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/08 Počítadlo|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* rozhodovať v programe pomocou &#039;&#039;&#039;podmieneného príkazu&#039;&#039;&#039; if-else,&lt;br /&gt;
* reťaziť viac podmienok (else if),&lt;br /&gt;
* spájať podmienky logickými operátormi &#039;&#039;and&#039;&#039;, &#039;&#039;or&#039;&#039;, &#039;&#039;not&#039;&#039;,&lt;br /&gt;
* rozdiel medzi &#039;&#039;&#039;udalosťou&#039;&#039;&#039; a &#039;&#039;&#039;stavom&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: vetvenie programu ==&lt;br /&gt;
&lt;br /&gt;
Doteraz program vykonával vždy tie isté príkazy. Skutočné programy sa však musia &#039;&#039;&#039;rozhodovať&#039;&#039;&#039;: ak je teplota nízka, zapni kúrenie, inak ho vypni. Na to slúži &#039;&#039;&#039;podmienený príkaz&#039;&#039;&#039; &#039;&#039;if&#039;&#039; (ak).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Konštrukcia !! Význam&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; &#039;&#039;podmienka&#039;&#039; || &#039;&#039;&#039;Ak&#039;&#039;&#039; podmienka platí, vykonaj telo. Inak ho preskoč.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; || Ak podmienka platí, vykonaj prvú vetvu, &#039;&#039;&#039;inak&#039;&#039;&#039; vykonaj druhú. Vykoná sa vždy práve jedna z nich.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; || Podmienky sa testujú &#039;&#039;&#039;postupne zhora&#039;&#039;&#039;. Vykoná sa vetva &#039;&#039;&#039;prvej&#039;&#039;&#039; podmienky, ktorá platí, ostatné sa preskočia. Ak neplatí žiadna, vykoná sa &#039;&#039;else&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Podmienky sú rovnaké logické výrazy ako pri cykle while. Zložitejšie podmienky vytvoríme &#039;&#039;&#039;logickými operátormi&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bloky !! JavaScript !! Python !! Platí, keď...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; || platia &#039;&#039;&#039;obe&#039;&#039;&#039; podmienky&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; || platí &#039;&#039;&#039;aspoň jedna&#039;&#039;&#039; z podmienok&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt; || podmienka &#039;&#039;&#039;neplatí&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Udalosť alebo stav? ==&lt;br /&gt;
&lt;br /&gt;
V minulej lekcii sme reagovali na &#039;&#039;&#039;udalosť&#039;&#039;&#039; &#039;&#039;on button A pressed&#039;&#039;: okamih, keď bolo tlačidlo stlačené. Teraz budeme zisťovať &#039;&#039;&#039;stav&#039;&#039;&#039; &#039;&#039;button A is pressed&#039;&#039;: či je tlačidlo stlačené &#039;&#039;práve teraz&#039;&#039;. Stav musíme zisťovať opakovane, preto test umiestnime do cyklu &#039;&#039;forever&#039;&#039;. Oba prístupy sú správne a každý sa hodí na niečo iné:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;udalosť&#039;&#039;&#039; – keď treba zareagovať raz na každé stlačenie (počítanie stlačení, prepnutie režimu),&lt;br /&gt;
* &#039;&#039;&#039;stav&#039;&#039;&#039; – keď má program niečo robiť, &#039;&#039;kým&#039;&#039; je tlačidlo držané (napr. plyn v hre, pohyb robota).&lt;br /&gt;
&lt;br /&gt;
== Program: visačka inak ==&lt;br /&gt;
&lt;br /&gt;
Rovnaká visačka ako v minulej lekcii, ale riešená testovaním stavu tlačidiel. Navyše pridáme vetvu &#039;&#039;else&#039;&#039;: keď nie je stlačené žiadne tlačidlo, visačka „spí“. Blok &#039;&#039;if-else&#039;&#039; je v kategórii &#039;&#039;&#039;Logic&#039;&#039;&#039;. Ďalšiu vetvu &#039;&#039;else if&#039;&#039; pridáte kliknutím na ikonu ⊕ v spodnej časti bloku.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz07.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz07Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
basic.forever(function () {&lt;br /&gt;
    if (input.buttonIsPressed(Button.A) &amp;amp;&amp;amp; input.buttonIsPressed(Button.B)) {&lt;br /&gt;
        basic.showIcon(IconNames.Heart)&lt;br /&gt;
    } else if (input.buttonIsPressed(Button.A)) {&lt;br /&gt;
        basic.showIcon(IconNames.Happy)&lt;br /&gt;
    } else if (input.buttonIsPressed(Button.B)) {&lt;br /&gt;
        basic.showIcon(IconNames.Sad)&lt;br /&gt;
    } else {&lt;br /&gt;
        basic.showIcon(IconNames.Asleep)&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_forever():&lt;br /&gt;
    if input.button_is_pressed(Button.A) and input.button_is_pressed(Button.B):&lt;br /&gt;
        basic.show_icon(IconNames.HEART)&lt;br /&gt;
    elif input.button_is_pressed(Button.A):&lt;br /&gt;
        basic.show_icon(IconNames.HAPPY)&lt;br /&gt;
    elif input.button_is_pressed(Button.B):&lt;br /&gt;
        basic.show_icon(IconNames.SAD)&lt;br /&gt;
    else:&lt;br /&gt;
        basic.show_icon(IconNames.ASLEEP)&lt;br /&gt;
basic.forever(on_forever)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Cyklus &#039;&#039;forever&#039;&#039; neustále opakuje jedno rozhodnutie so štyrmi vetvami. Pri každom opakovaní sa podmienky testujú zhora nadol a vykoná sa vetva prvej, ktorá platí.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Na poradí podmienok záleží.&#039;&#039;&#039; Keď držíte obe tlačidlá, platí aj druhá podmienka („A je stlačené“). Keby bola prvá, zobrazil by sa veselý smajlík a k srdcu by program nikdy nedošiel. Preto musí byť najšpecifickejšia podmienka (obe tlačidlá) &#039;&#039;&#039;na začiatku&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Všimnite si rozdiel v správaní oproti minulej lekcii: keď tlačidlo pustíte, visačka zaspí. Ikona sa tu nezobrazí raz po stlačení, ale neustále podľa toho, čo je stlačené práve teraz.&lt;br /&gt;
&lt;br /&gt;
V Pythone sa &#039;&#039;else if&#039;&#039; skracuje na &amp;lt;code&amp;gt;elif&amp;lt;/code&amp;gt;. V JavaScripte je telo každej vetvy v zložených zátvorkách, v Pythone opäť rozhoduje odsadenie a za každou podmienkou nasleduje dvojbodka.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Zlé poradie podmienok&#039;&#039;&#039; – všeobecnejšia podmienka „zakryje“ špecifickejšiu.&lt;br /&gt;
* &#039;&#039;&#039;Samostatné if-y namiesto reťaze else if.&#039;&#039;&#039; Tri samostatné príkazy &#039;&#039;if&#039;&#039; za sebou sa otestujú všetky tri a pri držaní oboch tlačidiel sa vykoná viac vetiev naraz. Reťaz &#039;&#039;if – else if&#039;&#039; zaručí, že sa vykoná najviac jedna.&lt;br /&gt;
* &#039;&#039;&#039;Zabudnutá dvojbodka&#039;&#039;&#039; za podmienkou v Pythone.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Vymeňte poradie podmienok tak, aby test oboch tlačidiel bol posledný. Overte v simulátore, že srdce sa už nikdy nezobrazí, a vysvetlite prečo.&lt;br /&gt;
# Pomocou operátora &#039;&#039;or&#039;&#039; upravte program tak, aby sa pri stlačení &#039;&#039;&#039;ktoréhokoľvek&#039;&#039;&#039; tlačidla zobrazila šípka a inak prázdny displej.&lt;br /&gt;
# Micro:bit meria teplotu (blok &#039;&#039;&#039;temperature (°C)&#039;&#039;&#039; v kategórii &#039;&#039;Input&#039;&#039;). Napíšte „teplomer“: ak je teplota nad 25 °C, zobrazí slnko (vlastný obrázok), ak pod 18 °C, snehovú vločku, inak fajku. V simulátore môžete teplotu meniť posuvníkom.&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Doplňte do visačky ďalšiu vetvu, ktorá pri dotyku loga (blok &#039;&#039;&#039;logo is pressed&#039;&#039;&#039;) zobrazí ikonu &#039;&#039;Surprised&#039;&#039;. Kam v reťazi podmienok ju treba umiestniť?&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/08 Počítadlo|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/06_Tla%C4%8Didl%C3%A1_a_udalosti&amp;diff=19707</id>
		<title>Rýchlokurz micro:bit/06 Tlačidlá a udalosti</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/06_Tla%C4%8Didl%C3%A1_a_udalosti&amp;diff=19707"/>
		<updated>2026-09-28T09:35:49Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: visačka na diskotéku */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/06 Tlačidlá a udalosti --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/05 Cyklus while|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/07 Podmienka if-else|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* reagovať na stlačenie tlačidla pomocou &#039;&#039;&#039;udalostí&#039;&#039;&#039;,&lt;br /&gt;
* čo je &#039;&#039;&#039;obsluha udalosti&#039;&#039;&#039; a ako súvisí s funkciami,&lt;br /&gt;
* rozlíšiť stlačenie A, B a oboch tlačidiel súčasne.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: udalosti ==&lt;br /&gt;
&lt;br /&gt;
V minulej lekcii program na stlačenie tlačidla &#039;&#039;&#039;aktívne čakal&#039;&#039;&#039;: stále dookola sa pýtal „už je stlačené?“. Takýto prístup má dve nevýhody. Počas čakania nemôže program robiť nič iné a krátke stlačenie sa môže stratiť.&lt;br /&gt;
&lt;br /&gt;
Druhý prístup je &#039;&#039;&#039;riadenie udalosťami&#039;&#039;&#039; (anglicky &#039;&#039;event-driven programming&#039;&#039;). &#039;&#039;&#039;Udalosť&#039;&#039;&#039; je niečo, čo sa stane mimo programu a na čo chceme reagovať: stlačenie tlačidla, zatrasenie micro:bitom, prijatie správy rádiom. Program vopred povie: „&#039;&#039;&#039;keď&#039;&#039;&#039; nastane táto udalosť, vykonaj tieto príkazy“. Takáto skupina príkazov sa nazýva &#039;&#039;&#039;obsluha udalosti&#039;&#039;&#039; (anglicky &#039;&#039;event handler&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Obsluha udalosti je &#039;&#039;&#039;funkcia&#039;&#039;&#039;: pomenovaná skupina príkazov, ktorá sa nevykoná hneď, ale až keď ju niekto &#039;&#039;&#039;zavolá&#039;&#039;&#039;. V tomto prípade ju volá systém micro:bitu vždy, keď zistí stlačenie tlačidla. Nemusíme teda nič stále kontrolovať, systém sa o sledovanie tlačidiel stará za nás, a to aj vtedy, keď program práve robí niečo iné.&lt;br /&gt;
&lt;br /&gt;
Podobne fungujú aj programy na počítači a mobile: tlačidlo v okne aplikácie má obsluhu udalosti „po kliknutí“.&lt;br /&gt;
&lt;br /&gt;
== Program: visačka na diskotéku ==&lt;br /&gt;
&lt;br /&gt;
Po zapnutí sa zobrazí fajka (zariadenie je pripravené). Majiteľ visačky potom tlačidlami ukazuje svoju náladu: tlačidlo A zobrazí veselý smajlík, B smutný a obe tlačidlá naraz „tajný symbol“ ❤ pre toho pravého. Blok &#039;&#039;&#039;on button A pressed&#039;&#039;&#039; je v kategórii &#039;&#039;&#039;Input&#039;&#039;&#039;, v jeho rozbaľovacom zozname vyberiete A, B alebo A+B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz06.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    basic.showIcon(IconNames.Happy)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    basic.showIcon(IconNames.Sad)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    basic.showIcon(IconNames.Heart)&lt;br /&gt;
})&lt;br /&gt;
basic.showIcon(IconNames.Yes)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    basic.show_icon(IconNames.HAPPY)&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    basic.show_icon(IconNames.SAD)&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    basic.show_icon(IconNames.HEART)&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
basic.show_icon(IconNames.YES)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Najlepšie je to vidieť v Pythone, kde je každá obsluha zapísaná v dvoch krokoch:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;def on_button_pressed_a():&amp;lt;/code&amp;gt; – &#039;&#039;&#039;definícia funkcie&#039;&#039;&#039;. Vytvorí funkciu s menom &amp;lt;code&amp;gt;on_button_pressed_a&amp;lt;/code&amp;gt; a odsadené príkazy pod ňou sú jej telo. V tejto chvíli sa ešte &#039;&#039;&#039;nič nevykoná&#039;&#039;&#039;, funkcia sa len pripraví na neskoršie použitie.&lt;br /&gt;
# &amp;lt;code&amp;gt;input.on_button_pressed(Button.A, on_button_pressed_a)&amp;lt;/code&amp;gt; – &#039;&#039;&#039;registrácia obsluhy&#039;&#039;&#039;. Systému oznámime: „keď bude stlačené tlačidlo A, zavolaj funkciu &amp;lt;code&amp;gt;on_button_pressed_a&amp;lt;/code&amp;gt;“.&lt;br /&gt;
&lt;br /&gt;
JavaScript robí oboje naraz: funkciu zapíše priamo na mieste, kde ju registruje (&amp;lt;code&amp;gt;function () { ... }&amp;lt;/code&amp;gt;), bez mena. Takej funkcii sa hovorí &#039;&#039;anonymná funkcia&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Keď program spustíte, vykoná sa v skutočnosti len registrácia troch obslúh a zobrazenie fajky. Potom program nemá čo robiť, ale &#039;&#039;neskončí&#039;&#039;: systém ďalej sleduje tlačidlá a pri každom stlačení zavolá príslušnú obsluhu. Poradie, v akom sú obsluhy v programe zapísané, preto nehrá žiadnu úlohu. V blokoch to vidno na tom, že bloky udalostí stoja samostatne na ploche a nie sú do ničoho vložené.&lt;br /&gt;
&lt;br /&gt;
Teraz už rozumiete aj bloku &#039;&#039;forever&#039;&#039; z lekcie 2: &amp;lt;code&amp;gt;basic.forever(on_forever)&amp;lt;/code&amp;gt; je tiež registrácia funkcie, ktorú bude systém volať stále dookola.&lt;br /&gt;
&lt;br /&gt;
Ikona na displeji zostane zobrazená, kým ju neprepíše iná obsluha. Visačka si teda „pamätá“ poslednú náladu.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Obsluha udalosti vložená do &#039;&#039;forever&#039;&#039; alebo &#039;&#039;on start&#039;&#039;.&#039;&#039;&#039; Bloky to ani nedovolia, ale v textovom zápise sa to stať môže. Obsluhy sa registrujú raz, samostatne.&lt;br /&gt;
* &#039;&#039;&#039;Dve obsluhy tej istej udalosti.&#039;&#039;&#039; MakeCode použije len jednu z nich. Ak má tlačidlo robiť viac vecí, dajte všetky príkazy do jednej obsluhy.&lt;br /&gt;
* &#039;&#039;&#039;Dlhé príkazy v obsluhe.&#039;&#039;&#039; Pokiaľ obsluha beží (napr. posúva dlhý text), ďalšie stlačenia sa môžu oneskoriť. Obsluhy udalostí majú byť krátke.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Doplňte ďalšiu náladu: pri zatrasení visačkou sa zobrazí zmätený smajlík (&#039;&#039;Confused&#039;&#039;). Použite blok &#039;&#039;&#039;on shake&#039;&#039;&#039; z kategórie &#039;&#039;Input&#039;&#039;. Zatrasenie je tiež udalosť, len ju zaznamená akcelerometer.&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Pri dotyku loga (blok &#039;&#039;&#039;on logo pressed&#039;&#039;&#039;) nech visačka zobrazí meno majiteľa.&lt;br /&gt;
# Upravte obsluhu tlačidla A tak, aby veselý smajlík trikrát zablikal (použite cyklus z lekcie 4) a potom zostal svietiť.&lt;br /&gt;
# Porovnajte túto visačku s programom z lekcie 5: čo sa stane, keď tlačidlo len veľmi krátko ťuknete?&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/05 Cyklus while|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/07 Podmienka if-else|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz06.png&amp;diff=19706</id>
		<title>Súbor:Microbit-Kurz06.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz06.png&amp;diff=19706"/>
		<updated>2026-09-28T09:35:40Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/06_Tla%C4%8Didl%C3%A1_a_udalosti&amp;diff=19705</id>
		<title>Rýchlokurz micro:bit/06 Tlačidlá a udalosti</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/06_Tla%C4%8Didl%C3%A1_a_udalosti&amp;diff=19705"/>
		<updated>2026-09-28T09:35:07Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/06 Tlačidlá a udalosti --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  == Čo sa naučíte == * reagovať na stlačenie tlačidla pomocou &amp;#039;&amp;#039;&amp;#039;udalostí&amp;#039;&amp;#039;&amp;#039;, * čo je &amp;#039;&amp;#039;&amp;#039;obsluha udalosti&amp;#039;&amp;#039;&amp;#039; a ako súvisí s funkciami, * rozlíšiť stlačenie A, B a oboch tlačidiel súčasne…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/06 Tlačidlá a udalosti --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/05 Cyklus while|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/07 Podmienka if-else|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* reagovať na stlačenie tlačidla pomocou &#039;&#039;&#039;udalostí&#039;&#039;&#039;,&lt;br /&gt;
* čo je &#039;&#039;&#039;obsluha udalosti&#039;&#039;&#039; a ako súvisí s funkciami,&lt;br /&gt;
* rozlíšiť stlačenie A, B a oboch tlačidiel súčasne.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: udalosti ==&lt;br /&gt;
&lt;br /&gt;
V minulej lekcii program na stlačenie tlačidla &#039;&#039;&#039;aktívne čakal&#039;&#039;&#039;: stále dookola sa pýtal „už je stlačené?“. Takýto prístup má dve nevýhody. Počas čakania nemôže program robiť nič iné a krátke stlačenie sa môže stratiť.&lt;br /&gt;
&lt;br /&gt;
Druhý prístup je &#039;&#039;&#039;riadenie udalosťami&#039;&#039;&#039; (anglicky &#039;&#039;event-driven programming&#039;&#039;). &#039;&#039;&#039;Udalosť&#039;&#039;&#039; je niečo, čo sa stane mimo programu a na čo chceme reagovať: stlačenie tlačidla, zatrasenie micro:bitom, prijatie správy rádiom. Program vopred povie: „&#039;&#039;&#039;keď&#039;&#039;&#039; nastane táto udalosť, vykonaj tieto príkazy“. Takáto skupina príkazov sa nazýva &#039;&#039;&#039;obsluha udalosti&#039;&#039;&#039; (anglicky &#039;&#039;event handler&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Obsluha udalosti je &#039;&#039;&#039;funkcia&#039;&#039;&#039;: pomenovaná skupina príkazov, ktorá sa nevykoná hneď, ale až keď ju niekto &#039;&#039;&#039;zavolá&#039;&#039;&#039;. V tomto prípade ju volá systém micro:bitu vždy, keď zistí stlačenie tlačidla. Nemusíme teda nič stále kontrolovať, systém sa o sledovanie tlačidiel stará za nás, a to aj vtedy, keď program práve robí niečo iné.&lt;br /&gt;
&lt;br /&gt;
Podobne fungujú aj programy na počítači a mobile: tlačidlo v okne aplikácie má obsluhu udalosti „po kliknutí“.&lt;br /&gt;
&lt;br /&gt;
== Program: visačka na diskotéku ==&lt;br /&gt;
&lt;br /&gt;
Po zapnutí sa zobrazí fajka (zariadenie je pripravené). Majiteľ visačky potom tlačidlami ukazuje svoju náladu: tlačidlo A zobrazí veselý smajlík, B smutný a obe tlačidlá naraz „tajný symbol“ ❤ pre toho pravého. Blok &#039;&#039;&#039;on button A pressed&#039;&#039;&#039; je v kategórii &#039;&#039;&#039;Input&#039;&#039;&#039;, v jeho rozbaľovacom zozname vyberiete A, B alebo A+B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz06.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz06Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    basic.showIcon(IconNames.Happy)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    basic.showIcon(IconNames.Sad)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    basic.showIcon(IconNames.Heart)&lt;br /&gt;
})&lt;br /&gt;
basic.showIcon(IconNames.Yes)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    basic.show_icon(IconNames.HAPPY)&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    basic.show_icon(IconNames.SAD)&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    basic.show_icon(IconNames.HEART)&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
basic.show_icon(IconNames.YES)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Najlepšie je to vidieť v Pythone, kde je každá obsluha zapísaná v dvoch krokoch:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;def on_button_pressed_a():&amp;lt;/code&amp;gt; – &#039;&#039;&#039;definícia funkcie&#039;&#039;&#039;. Vytvorí funkciu s menom &amp;lt;code&amp;gt;on_button_pressed_a&amp;lt;/code&amp;gt; a odsadené príkazy pod ňou sú jej telo. V tejto chvíli sa ešte &#039;&#039;&#039;nič nevykoná&#039;&#039;&#039;, funkcia sa len pripraví na neskoršie použitie.&lt;br /&gt;
# &amp;lt;code&amp;gt;input.on_button_pressed(Button.A, on_button_pressed_a)&amp;lt;/code&amp;gt; – &#039;&#039;&#039;registrácia obsluhy&#039;&#039;&#039;. Systému oznámime: „keď bude stlačené tlačidlo A, zavolaj funkciu &amp;lt;code&amp;gt;on_button_pressed_a&amp;lt;/code&amp;gt;“.&lt;br /&gt;
&lt;br /&gt;
JavaScript robí oboje naraz: funkciu zapíše priamo na mieste, kde ju registruje (&amp;lt;code&amp;gt;function () { ... }&amp;lt;/code&amp;gt;), bez mena. Takej funkcii sa hovorí &#039;&#039;anonymná funkcia&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Keď program spustíte, vykoná sa v skutočnosti len registrácia troch obslúh a zobrazenie fajky. Potom program nemá čo robiť, ale &#039;&#039;neskončí&#039;&#039;: systém ďalej sleduje tlačidlá a pri každom stlačení zavolá príslušnú obsluhu. Poradie, v akom sú obsluhy v programe zapísané, preto nehrá žiadnu úlohu. V blokoch to vidno na tom, že bloky udalostí stoja samostatne na ploche a nie sú do ničoho vložené.&lt;br /&gt;
&lt;br /&gt;
Teraz už rozumiete aj bloku &#039;&#039;forever&#039;&#039; z lekcie 2: &amp;lt;code&amp;gt;basic.forever(on_forever)&amp;lt;/code&amp;gt; je tiež registrácia funkcie, ktorú bude systém volať stále dookola.&lt;br /&gt;
&lt;br /&gt;
Ikona na displeji zostane zobrazená, kým ju neprepíše iná obsluha. Visačka si teda „pamätá“ poslednú náladu.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Obsluha udalosti vložená do &#039;&#039;forever&#039;&#039; alebo &#039;&#039;on start&#039;&#039;.&#039;&#039;&#039; Bloky to ani nedovolia, ale v textovom zápise sa to stať môže. Obsluhy sa registrujú raz, samostatne.&lt;br /&gt;
* &#039;&#039;&#039;Dve obsluhy tej istej udalosti.&#039;&#039;&#039; MakeCode použije len jednu z nich. Ak má tlačidlo robiť viac vecí, dajte všetky príkazy do jednej obsluhy.&lt;br /&gt;
* &#039;&#039;&#039;Dlhé príkazy v obsluhe.&#039;&#039;&#039; Pokiaľ obsluha beží (napr. posúva dlhý text), ďalšie stlačenia sa môžu oneskoriť. Obsluhy udalostí majú byť krátke.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Doplňte ďalšiu náladu: pri zatrasení visačkou sa zobrazí zmätený smajlík (&#039;&#039;Confused&#039;&#039;). Použite blok &#039;&#039;&#039;on shake&#039;&#039;&#039; z kategórie &#039;&#039;Input&#039;&#039;. Zatrasenie je tiež udalosť, len ju zaznamená akcelerometer.&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Pri dotyku loga (blok &#039;&#039;&#039;on logo pressed&#039;&#039;&#039;) nech visačka zobrazí meno majiteľa.&lt;br /&gt;
# Upravte obsluhu tlačidla A tak, aby veselý smajlík trikrát zablikal (použite cyklus z lekcie 4) a potom zostal svietiť.&lt;br /&gt;
# Porovnajte túto visačku s programom z lekcie 5: čo sa stane, keď tlačidlo len veľmi krátko ťuknete?&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/05 Cyklus while|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/07 Podmienka if-else|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/05_Cyklus_while&amp;diff=19704</id>
		<title>Rýchlokurz micro:bit/05 Cyklus while</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/05_Cyklus_while&amp;diff=19704"/>
		<updated>2026-09-28T09:34:39Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: čakanie na tlačidlo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/05 Cyklus while --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/04 Cyklus for|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* opakovať príkazy, &#039;&#039;&#039;kým platí nejaká podmienka&#039;&#039;&#039;,&lt;br /&gt;
* čo je podmienka (logický výraz) a ako sa zapisuje,&lt;br /&gt;
* kedy použiť cyklus for a kedy while.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: cyklus s podmienkou ==&lt;br /&gt;
&lt;br /&gt;
Pri cykle &#039;&#039;for&#039;&#039; vieme vopred, koľkokrát sa má telo zopakovať. Niekedy to však dopredu nevieme, napr. „bľakaj šípkou, &#039;&#039;&#039;kým&#039;&#039;&#039; používateľ nestlačí tlačidlo“. Nevieme, či to bude o sekundu alebo o hodinu. Na takéto situácie slúži cyklus &#039;&#039;&#039;while&#039;&#039;&#039; (po slovensky „kým“, „pokiaľ“).&lt;br /&gt;
&lt;br /&gt;
Cyklus while funguje takto:&lt;br /&gt;
# Vyhodnotí &#039;&#039;&#039;podmienku&#039;&#039;&#039;.&lt;br /&gt;
# Ak podmienka &#039;&#039;&#039;platí&#039;&#039;&#039;, vykoná telo cyklu a vráti sa na krok 1.&lt;br /&gt;
# Ak podmienka &#039;&#039;&#039;neplatí&#039;&#039;&#039;, cyklus skončí a program pokračuje za ním.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Podmienka&#039;&#039;&#039; (odborne &#039;&#039;logický výraz&#039;&#039;) je otázka, na ktorú existuje len odpoveď &#039;&#039;áno&#039;&#039; alebo &#039;&#039;nie&#039;&#039; (&#039;&#039;true&#039;&#039; / &#039;&#039;false&#039;&#039;). Najčastejšie vzniká porovnaním dvoch hodnôt:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Význam !! Zápis v JS aj Pythone !! Príklad&lt;br /&gt;
|-&lt;br /&gt;
| rovná sa || &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;x == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| nerovná sa || &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;x != 0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| menšie, menšie alebo rovné || &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;teplota &amp;lt; 20&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| väčšie, väčšie alebo rovné || &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;body &amp;gt;= 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Všimnite si, že porovnanie sa píše &#039;&#039;&#039;dvoma&#039;&#039;&#039; rovnítkami &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;. Jedno rovnítko &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; je priradenie (vložiť hodnotu do premennej), dve rovnítka sú otázka „rovnajú sa?“.&lt;br /&gt;
&lt;br /&gt;
Podmienku môže dodať aj senzor alebo tlačidlo. Napr. blok &#039;&#039;&#039;button A is pressed&#039;&#039;&#039; (kategória &#039;&#039;Input&#039;&#039;) má hodnotu &#039;&#039;true&#039;&#039;, keď je tlačidlo práve stlačené, inak &#039;&#039;false&#039;&#039;. Opak podmienky vytvoríme logickým operátorom &#039;&#039;&#039;not&#039;&#039;&#039; (v JS &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;, v Pythone &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Program: čakanie na tlačidlo ==&lt;br /&gt;
&lt;br /&gt;
Program po zapnutí bliká šípkou smerujúcou k tlačidlu A, kým ho používateľ nestlačí. Potom zobrazí fajku. Blok &#039;&#039;while&#039;&#039; nájdete v kategórii &#039;&#039;&#039;Loops&#039;&#039;&#039;, blok &#039;&#039;not&#039;&#039; v kategórii &#039;&#039;&#039;Logic&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz05.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
while (!(input.buttonIsPressed(Button.A))) {&lt;br /&gt;
    basic.showArrow(ArrowNames.West)&lt;br /&gt;
    basic.clearScreen()&lt;br /&gt;
    basic.pause(200)&lt;br /&gt;
}&lt;br /&gt;
basic.showIcon(IconNames.Yes)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while not (input.button_is_pressed(Button.A)):&lt;br /&gt;
    basic.show_arrow(ArrowNames.WEST)&lt;br /&gt;
    basic.clear_screen()&lt;br /&gt;
    basic.pause(200)&lt;br /&gt;
basic.show_icon(IconNames.YES)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Podmienka cyklu znie „&#039;&#039;&#039;nie je&#039;&#039;&#039; stlačené tlačidlo A“. Kým tlačidlo nestlačíte, podmienka platí a šípka bliká. Keď tlačidlo stlačíte, podmienka prestane platiť, cyklus skončí a vykoná sa príkaz za ním.&lt;br /&gt;
&lt;br /&gt;
Podmienka sa vyhodnocuje &#039;&#039;&#039;len na začiatku každého opakovania&#039;&#039;&#039;, nie nepretržite. Ak tlačidlo krátko ťuknete práve vtedy, keď sa vykonáva telo cyklu (zobrazuje sa šípka), program to nezaznamená. Tlačidlo preto treba chvíľu podržať. Ako tento problém elegantne vyriešiť, uvidíte v nasledujúcej lekcii.&lt;br /&gt;
&lt;br /&gt;
=== For alebo while? ===&lt;br /&gt;
&lt;br /&gt;
Každý cyklus for sa dá prepísať na while. Napríklad odpočítavanie z minulej lekcie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let cislo = 9&lt;br /&gt;
while (cislo &amp;gt;= 0) {&lt;br /&gt;
    basic.showNumber(cislo)&lt;br /&gt;
    cislo += -1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cislo = 9&lt;br /&gt;
while cislo &amp;gt;= 0:&lt;br /&gt;
    basic.show_number(cislo)&lt;br /&gt;
    cislo += -1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pravidlo pre výber je jednoduché: ak &#039;&#039;&#039;vopred poznáte počet opakovaní&#039;&#039;&#039;, použite &#039;&#039;for&#039;&#039; (je kratší a prehľadnejší). Ak opakovanie závisí od niečoho, čo vopred neviete (stlačenie tlačidla, hodnota senzora, výsledok výpočtu), použite &#039;&#039;while&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A čo cyklus &#039;&#039;forever&#039;&#039;? Je to vlastne while s podmienkou, ktorá platí vždy: &amp;lt;code&amp;gt;while (true)&amp;lt;/code&amp;gt; v JS, &amp;lt;code&amp;gt;while True:&amp;lt;/code&amp;gt; v Pythone.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Nekonečný cyklus.&#039;&#039;&#039; Ak sa v tele cyklu nikdy nezmení nič, od čoho podmienka závisí, cyklus nikdy neskončí. Skúste v príklade vyššie vynechať riadok &amp;lt;code&amp;gt;cislo += -1&amp;lt;/code&amp;gt;: displej bude navždy ukazovať 9.&lt;br /&gt;
* &#039;&#039;&#039;Podmienka neplatí už na začiatku.&#039;&#039;&#039; Potom sa telo cyklu nevykoná ani raz. Je to správne správanie, ale často prekvapí.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; namiesto &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;&#039;&#039;&#039; v podmienke. V blokoch sa to stať nemôže.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Upravte program tak, aby čakal na tlačidlo B a šípka ukazovala doprava.&lt;br /&gt;
# Napíšte program, ktorý zobrazuje hodnotu premennej &amp;lt;code&amp;gt;cislo&amp;lt;/code&amp;gt; začínajúcej na 1 a v každom opakovaní ju &#039;&#039;&#039;zdvojnásobí&#039;&#039;&#039;, kým neprekročí 100. Aké posledné číslo sa zobrazí? Dá sa to vyriešiť cyklom for?&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Upravte program tak, aby čakal na dotyk loga. Podmienku nájdete v kategórii &#039;&#039;Input&#039;&#039; ako blok &#039;&#039;logo is pressed&#039;&#039;.&lt;br /&gt;
# Spojte túto lekciu s lekciou 2: program najprv bliká šípkou, a keď stlačíte tlačidlo, začne donekonečna žmurkať smajlík. Kam treba umiestniť cyklus while a kam animáciu?&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/04 Cyklus for|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz05.png&amp;diff=19703</id>
		<title>Súbor:Microbit-Kurz05.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz05.png&amp;diff=19703"/>
		<updated>2026-09-28T09:34:27Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/05_Cyklus_while&amp;diff=19702</id>
		<title>Rýchlokurz micro:bit/05 Cyklus while</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/05_Cyklus_while&amp;diff=19702"/>
		<updated>2026-09-28T09:33:38Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/05 Cyklus while --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  == Čo sa naučíte == * opakovať príkazy, &amp;#039;&amp;#039;&amp;#039;kým platí nejaká podmienka&amp;#039;&amp;#039;&amp;#039;, * čo je podmienka (logický výraz) a ako sa zapisuje, * kedy použiť cyklus for a kedy while.  == Vysvetlenie: cyklus s podm…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/05 Cyklus while --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/04 Cyklus for|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* opakovať príkazy, &#039;&#039;&#039;kým platí nejaká podmienka&#039;&#039;&#039;,&lt;br /&gt;
* čo je podmienka (logický výraz) a ako sa zapisuje,&lt;br /&gt;
* kedy použiť cyklus for a kedy while.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: cyklus s podmienkou ==&lt;br /&gt;
&lt;br /&gt;
Pri cykle &#039;&#039;for&#039;&#039; vieme vopred, koľkokrát sa má telo zopakovať. Niekedy to však dopredu nevieme, napr. „bľakaj šípkou, &#039;&#039;&#039;kým&#039;&#039;&#039; používateľ nestlačí tlačidlo“. Nevieme, či to bude o sekundu alebo o hodinu. Na takéto situácie slúži cyklus &#039;&#039;&#039;while&#039;&#039;&#039; (po slovensky „kým“, „pokiaľ“).&lt;br /&gt;
&lt;br /&gt;
Cyklus while funguje takto:&lt;br /&gt;
# Vyhodnotí &#039;&#039;&#039;podmienku&#039;&#039;&#039;.&lt;br /&gt;
# Ak podmienka &#039;&#039;&#039;platí&#039;&#039;&#039;, vykoná telo cyklu a vráti sa na krok 1.&lt;br /&gt;
# Ak podmienka &#039;&#039;&#039;neplatí&#039;&#039;&#039;, cyklus skončí a program pokračuje za ním.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Podmienka&#039;&#039;&#039; (odborne &#039;&#039;logický výraz&#039;&#039;) je otázka, na ktorú existuje len odpoveď &#039;&#039;áno&#039;&#039; alebo &#039;&#039;nie&#039;&#039; (&#039;&#039;true&#039;&#039; / &#039;&#039;false&#039;&#039;). Najčastejšie vzniká porovnaním dvoch hodnôt:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Význam !! Zápis v JS aj Pythone !! Príklad&lt;br /&gt;
|-&lt;br /&gt;
| rovná sa || &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;x == 0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| nerovná sa || &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;x != 0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| menšie, menšie alebo rovné || &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;teplota &amp;lt; 20&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| väčšie, väčšie alebo rovné || &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;body &amp;gt;= 10&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Všimnite si, že porovnanie sa píše &#039;&#039;&#039;dvoma&#039;&#039;&#039; rovnítkami &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;. Jedno rovnítko &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; je priradenie (vložiť hodnotu do premennej), dve rovnítka sú otázka „rovnajú sa?“.&lt;br /&gt;
&lt;br /&gt;
Podmienku môže dodať aj senzor alebo tlačidlo. Napr. blok &#039;&#039;&#039;button A is pressed&#039;&#039;&#039; (kategória &#039;&#039;Input&#039;&#039;) má hodnotu &#039;&#039;true&#039;&#039;, keď je tlačidlo práve stlačené, inak &#039;&#039;false&#039;&#039;. Opak podmienky vytvoríme logickým operátorom &#039;&#039;&#039;not&#039;&#039;&#039; (v JS &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;, v Pythone &amp;lt;code&amp;gt;not&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Program: čakanie na tlačidlo ==&lt;br /&gt;
&lt;br /&gt;
Program po zapnutí bliká šípkou smerujúcou k tlačidlu A, kým ho používateľ nestlačí. Potom zobrazí fajku. Blok &#039;&#039;while&#039;&#039; nájdete v kategórii &#039;&#039;&#039;Loops&#039;&#039;&#039;, blok &#039;&#039;not&#039;&#039; v kategórii &#039;&#039;&#039;Logic&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz05.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz05Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
while (!(input.buttonIsPressed(Button.A))) {&lt;br /&gt;
    basic.showArrow(ArrowNames.West)&lt;br /&gt;
    basic.clearScreen()&lt;br /&gt;
    basic.pause(200)&lt;br /&gt;
}&lt;br /&gt;
basic.showIcon(IconNames.Yes)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
while not (input.button_is_pressed(Button.A)):&lt;br /&gt;
    basic.show_arrow(ArrowNames.WEST)&lt;br /&gt;
    basic.clear_screen()&lt;br /&gt;
    basic.pause(200)&lt;br /&gt;
basic.show_icon(IconNames.YES)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Podmienka cyklu znie „&#039;&#039;&#039;nie je&#039;&#039;&#039; stlačené tlačidlo A“. Kým tlačidlo nestlačíte, podmienka platí a šípka bliká. Keď tlačidlo stlačíte, podmienka prestane platiť, cyklus skončí a vykoná sa príkaz za ním.&lt;br /&gt;
&lt;br /&gt;
Podmienka sa vyhodnocuje &#039;&#039;&#039;len na začiatku každého opakovania&#039;&#039;&#039;, nie nepretržite. Ak tlačidlo krátko ťuknete práve vtedy, keď sa vykonáva telo cyklu (zobrazuje sa šípka), program to nezaznamená. Tlačidlo preto treba chvíľu podržať. Ako tento problém elegantne vyriešiť, uvidíte v nasledujúcej lekcii.&lt;br /&gt;
&lt;br /&gt;
=== For alebo while? ===&lt;br /&gt;
&lt;br /&gt;
Každý cyklus for sa dá prepísať na while. Napríklad odpočítavanie z minulej lekcie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let cislo = 9&lt;br /&gt;
while (cislo &amp;gt;= 0) {&lt;br /&gt;
    basic.showNumber(cislo)&lt;br /&gt;
    cislo += -1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cislo = 9&lt;br /&gt;
while cislo &amp;gt;= 0:&lt;br /&gt;
    basic.show_number(cislo)&lt;br /&gt;
    cislo += -1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pravidlo pre výber je jednoduché: ak &#039;&#039;&#039;vopred poznáte počet opakovaní&#039;&#039;&#039;, použite &#039;&#039;for&#039;&#039; (je kratší a prehľadnejší). Ak opakovanie závisí od niečoho, čo vopred neviete (stlačenie tlačidla, hodnota senzora, výsledok výpočtu), použite &#039;&#039;while&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A čo cyklus &#039;&#039;forever&#039;&#039;? Je to vlastne while s podmienkou, ktorá platí vždy: &amp;lt;code&amp;gt;while (true)&amp;lt;/code&amp;gt; v JS, &amp;lt;code&amp;gt;while True:&amp;lt;/code&amp;gt; v Pythone.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Nekonečný cyklus.&#039;&#039;&#039; Ak sa v tele cyklu nikdy nezmení nič, od čoho podmienka závisí, cyklus nikdy neskončí. Skúste v príklade vyššie vynechať riadok &amp;lt;code&amp;gt;cislo += -1&amp;lt;/code&amp;gt;: displej bude navždy ukazovať 9.&lt;br /&gt;
* &#039;&#039;&#039;Podmienka neplatí už na začiatku.&#039;&#039;&#039; Potom sa telo cyklu nevykoná ani raz. Je to správne správanie, ale často prekvapí.&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; namiesto &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;&#039;&#039;&#039; v podmienke. V blokoch sa to stať nemôže.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Upravte program tak, aby čakal na tlačidlo B a šípka ukazovala doprava.&lt;br /&gt;
# Napíšte program, ktorý zobrazuje hodnotu premennej &amp;lt;code&amp;gt;cislo&amp;lt;/code&amp;gt; začínajúcej na 1 a v každom opakovaní ju &#039;&#039;&#039;zdvojnásobí&#039;&#039;&#039;, kým neprekročí 100. Aké posledné číslo sa zobrazí? Dá sa to vyriešiť cyklom for?&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Upravte program tak, aby čakal na dotyk loga. Podmienku nájdete v kategórii &#039;&#039;Input&#039;&#039; ako blok &#039;&#039;logo is pressed&#039;&#039;.&lt;br /&gt;
# Spojte túto lekciu s lekciou 2: program najprv bliká šípkou, a keď stlačíte tlačidlo, začne donekonečna žmurkať smajlík. Kam treba umiestniť cyklus while a kam animáciu?&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/04 Cyklus for|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19701</id>
		<title>Rýchlokurz micro:bit/09 Kuchynské minútky</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19701"/>
		<updated>2026-09-28T09:33:11Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: kuchynské minútky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/09 Kuchynské minútky --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:KuchynskeMinutky.jpg|thumb|200px|Klasické kuchynské minútky]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* spojiť všetko, čo už viete, do jedného užitočného programu,&lt;br /&gt;
* navrhnúť program ešte pred tým, ako ho začnete písať,&lt;br /&gt;
* prehrať zvuk.&lt;br /&gt;
&lt;br /&gt;
Toto je záverečná lekcia kurzu. Ak jej programu úplne rozumiete a zvládnete aspoň dve úlohy na konci, máte všetko potrebné na cvičenia.&lt;br /&gt;
&lt;br /&gt;
== Návrh programu ==&lt;br /&gt;
&lt;br /&gt;
Skôr ako začnete skladať bloky, je dobré si slovami popísať, &#039;&#039;&#039;čo&#039;&#039;&#039; má program robiť. Až potom riešite, &#039;&#039;&#039;ako&#039;&#039;&#039;. Naše minútky budú fungovať takto:&lt;br /&gt;
&lt;br /&gt;
* Po zapnutí zobrazia čas 0.&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;A&#039;&#039;&#039; pridá jednu sekundu (pri skutočných minútkach by to bola minúta, ale sekundy sa lepšie testujú).&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;B&#039;&#039;&#039; spustí odpočítavanie. Ak je nastavený čas 0, nie je čo odpočítavať, preto zobrazia krížik.&lt;br /&gt;
* Po dobehnutí zaznie melódia a trikrát zabliká srdce.&lt;br /&gt;
* Tlačidlá &#039;&#039;&#039;A+B&#039;&#039;&#039; čas vynulujú.&lt;br /&gt;
&lt;br /&gt;
Z popisu už vidno, čo budeme potrebovať:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Časť popisu !! Programová konštrukcia !! Lekcia&lt;br /&gt;
|-&lt;br /&gt;
| nastavený čas si treba pamätať || premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; || [[Rýchlokurz micro:bit/03 Premenná|3]], [[Rýchlokurz micro:bit/08 Počítadlo|8]]&lt;br /&gt;
|-&lt;br /&gt;
| reakcia na tlačidlá || obsluhy udalostí || [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|6]]&lt;br /&gt;
|-&lt;br /&gt;
| „ak je čas 0, zobraz krížik, inak odpočítavaj“ || if-else || [[Rýchlokurz micro:bit/07 Podmienka if-else|7]]&lt;br /&gt;
|-&lt;br /&gt;
| odpočítavaj, &#039;&#039;&#039;kým&#039;&#039;&#039; čas neklesne na 0 || cyklus while || [[Rýchlokurz micro:bit/05 Cyklus while|5]]&lt;br /&gt;
|-&lt;br /&gt;
| srdce zabliká &#039;&#039;&#039;trikrát&#039;&#039;&#039; || cyklus for (repeat) || [[Rýchlokurz micro:bit/04 Cyklus for|4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zvuk ==&lt;br /&gt;
&lt;br /&gt;
Bloky pre zvuk sú v kategórii &#039;&#039;&#039;Music&#039;&#039;&#039;. Na verzii &#039;&#039;&#039;V2&#039;&#039;&#039; zaznie zvuk zo vstavaného reproduktora na zadnej strane dosky. Verzia &#039;&#039;&#039;V1&#039;&#039;&#039; reproduktor nemá: zvuk ide na &#039;&#039;&#039;pin 0&#039;&#039;&#039; a počuť ho je len vtedy, keď medzi piny &#039;&#039;0&#039;&#039; a &#039;&#039;GND&#039;&#039; pripojíte krokosvorkami slúchadlá alebo bzučiak. Simulátor v MakeCode prehrá zvuk cez reproduktory počítača.&lt;br /&gt;
&lt;br /&gt;
Blok &#039;&#039;play melody ... until done&#039;&#039; počká, kým melódia dohrá, a až potom pokračuje ďalším príkazom. Pri voľbe &#039;&#039;in background&#039;&#039; sa melódia spustí a program &#039;&#039;&#039;hneď&#039;&#039;&#039; pokračuje, takže zvuk a animácia bežia súčasne. My chceme, aby srdce blikalo počas hrania melódie, preto použijeme &#039;&#039;in background&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Program: kuchynské minútky ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz09.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    if (cas == 0) {&lt;br /&gt;
        basic.showIcon(IconNames.No)&lt;br /&gt;
    } else {&lt;br /&gt;
        while (cas &amp;gt; 0) {&lt;br /&gt;
            basic.showNumber(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        }&lt;br /&gt;
        music.play(music.stringPlayable(&amp;quot;E B C5 A B G A F &amp;quot;, 230), music.PlaybackMode.InBackground)&lt;br /&gt;
        // music.play(music.builtinPlayableMelody(Melodies.PowerUp), music.PlaybackMode.InBackground)&lt;br /&gt;
        for (let index = 0; index &amp;lt; 3; index++) {&lt;br /&gt;
            basic.showIcon(IconNames.Heart)&lt;br /&gt;
            basic.showIcon(IconNames.SmallHeart)&lt;br /&gt;
        }&lt;br /&gt;
        basic.showNumber(cas)&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
let cas = 0&lt;br /&gt;
basic.showNumber(cas)&lt;br /&gt;
/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    global cas&lt;br /&gt;
    if cas == 0:&lt;br /&gt;
        basic.show_icon(IconNames.NO)&lt;br /&gt;
    else:&lt;br /&gt;
        while cas &amp;gt; 0:&lt;br /&gt;
            basic.show_number(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        music.play(music.string_playable(&amp;quot;E B C5 A B G A F &amp;quot;, 230),&lt;br /&gt;
            music.PlaybackMode.IN_BACKGROUND)&lt;br /&gt;
        # music.play(music.builtinPlayableMelody(Melodies.PowerUp), music.PlaybackMode.InBackground)&lt;br /&gt;
        for index in range(3):&lt;br /&gt;
            basic.show_icon(IconNames.HEART)&lt;br /&gt;
            basic.show_icon(IconNames.SMALL_HEART)&lt;br /&gt;
        basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
cas = 0&lt;br /&gt;
basic.show_number(cas)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Najzaujímavejšia je obsluha tlačidla B. Všimnite si, ako sú konštrukcie &#039;&#039;&#039;vnorené&#039;&#039;&#039; do seba: v obsluhe udalosti je podmienka, vo vetve &#039;&#039;else&#039;&#039; je cyklus while a za ním cyklus for. Presne toto vnorenie najlepšie vidno v blokoch: každá konštrukcia je „krabička“, do ktorej sa vkladajú ďalšie príkazy. V textovom zápise ho vyjadrujú úrovne odsadenia (a v JavaScripte zložené zátvorky).&lt;br /&gt;
&lt;br /&gt;
Prejdime si obsluhu tlačidla B pre nastavený čas 3 sekundy:&lt;br /&gt;
# Podmienka &amp;lt;code&amp;gt;cas == 0&amp;lt;/code&amp;gt; neplatí (cas je 3), vykoná sa vetva &#039;&#039;else&#039;&#039;.&lt;br /&gt;
# Cyklus while: 3 &amp;gt; 0 platí → zobraz 3, počkaj, cas = 2. Potom 2 &amp;gt; 0 → zobraz 2, cas = 1. Potom 1 &amp;gt; 0 → zobraz 1, cas = 0. Nakoniec 0 &amp;gt; 0 &#039;&#039;&#039;neplatí&#039;&#039;&#039;, cyklus končí.&lt;br /&gt;
# Spustí sa melódia na pozadí.&lt;br /&gt;
# Cyklus for trikrát vystrieda veľké a malé srdce (medzitým stále hrá melódia).&lt;br /&gt;
# Zobrazí sa 0 a minútky sú pripravené na ďalšie použitie.&lt;br /&gt;
&lt;br /&gt;
Takémuto „ručnému“ prechádzaniu programu s konkrétnymi hodnotami sa hovorí &#039;&#039;&#039;trasovanie&#039;&#039;&#039;. Je to najspoľahlivejší spôsob, ako pochopiť cudzí program alebo nájsť chybu vo vlastnom.&lt;br /&gt;
&lt;br /&gt;
Odpočítavanie nie je úplne presné: k pauze 1000 ms sa pripočíta čas, kým sa zobrazí číslo, a pri dvojciferných číslach je to posúvanie textu, teda aj niekoľko sekúnd. Na kuchynské minútky to stačí, na presné meranie času sa používajú iné prostriedky (blok &#039;&#039;running time&#039;&#039; v kategórii &#039;&#039;Input&#039;&#039;), ku ktorým sa dostaneme na cvičeniach.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; je vo while podmienke, ale v tele cyklu sa nemení&#039;&#039;&#039; → nekonečný cyklus, minútky nikdy nedobehnú.&lt;br /&gt;
* &#039;&#039;&#039;Podmienka &amp;lt;code&amp;gt;cas &amp;gt;= 0&amp;lt;/code&amp;gt; namiesto &amp;lt;code&amp;gt;cas &amp;gt; 0&amp;lt;/code&amp;gt;&#039;&#039;&#039; → cyklus prebehne o raz viac a čas skončí na -1. Trasovaním si overte prečo.&lt;br /&gt;
* &#039;&#039;&#039;Melódia v režime &#039;&#039;until done&#039;&#039;&#039;&#039;&#039; → srdce začne blikať až po dohraní melódie.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Trasujte program pre prípad, že stlačíte B hneď po zapnutí. Ktoré príkazy sa vykonajú?&lt;br /&gt;
# Upravte minútky tak, aby tlačidlo A pridávalo po 10 sekúnd.&lt;br /&gt;
# Nech posledné tri sekundy odpočítavania sprevádza krátke pípnutie (do tela cyklu while vložte podmienku &#039;&#039;if&#039;&#039; &amp;lt;code&amp;gt;cas &amp;lt;= 3&amp;lt;/code&amp;gt; a do nej blok &#039;&#039;play tone&#039;&#039; z kategórie &#039;&#039;Music&#039;&#039;).&lt;br /&gt;
# Pridajte tlačidlo na odoberanie času. Tlačidlo A je obsadené a B spúšťa odpočítavanie. Nájdite si v kategórii &#039;&#039;Input&#039;&#039; inú udalosť, napr. &#039;&#039;on shake&#039;&#039; alebo (V2) &#039;&#039;on logo pressed&#039;&#039;. Nezabudnite, že čas nesmie byť záporný.&lt;br /&gt;
# &#039;&#039;Náročnejšia:&#039;&#039; Upravte minútky tak, aby sa nastavovali v minútach a počas odpočítavania zobrazovali len zostávajúce minúty. Potrebujete na to vnorené cykly?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
🎓 &#039;&#039;&#039;Gratulujeme, zvládli ste základy!&#039;&#039;&#039; Na cvičeniach budeme pokračovať senzormi, komunikáciou medzi micro:bitmi a pripájaním ďalších súčiastok. Ďalšie inšpirácie nájdete v [[BBC micro:bit#Zbierka príkladov|zbierke príkladov]].&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz09.png&amp;diff=19700</id>
		<title>Súbor:Microbit-Kurz09.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz09.png&amp;diff=19700"/>
		<updated>2026-09-28T09:32:54Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19699</id>
		<title>Rýchlokurz micro:bit/09 Kuchynské minútky</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19699"/>
		<updated>2026-09-28T09:32:44Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: kuchynské minútky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/09 Kuchynské minútky --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:KuchynskeMinutky.jpg|thumb|200px|Klasické kuchynské minútky]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* spojiť všetko, čo už viete, do jedného užitočného programu,&lt;br /&gt;
* navrhnúť program ešte pred tým, ako ho začnete písať,&lt;br /&gt;
* prehrať zvuk.&lt;br /&gt;
&lt;br /&gt;
Toto je záverečná lekcia kurzu. Ak jej programu úplne rozumiete a zvládnete aspoň dve úlohy na konci, máte všetko potrebné na cvičenia.&lt;br /&gt;
&lt;br /&gt;
== Návrh programu ==&lt;br /&gt;
&lt;br /&gt;
Skôr ako začnete skladať bloky, je dobré si slovami popísať, &#039;&#039;&#039;čo&#039;&#039;&#039; má program robiť. Až potom riešite, &#039;&#039;&#039;ako&#039;&#039;&#039;. Naše minútky budú fungovať takto:&lt;br /&gt;
&lt;br /&gt;
* Po zapnutí zobrazia čas 0.&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;A&#039;&#039;&#039; pridá jednu sekundu (pri skutočných minútkach by to bola minúta, ale sekundy sa lepšie testujú).&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;B&#039;&#039;&#039; spustí odpočítavanie. Ak je nastavený čas 0, nie je čo odpočítavať, preto zobrazia krížik.&lt;br /&gt;
* Po dobehnutí zaznie melódia a trikrát zabliká srdce.&lt;br /&gt;
* Tlačidlá &#039;&#039;&#039;A+B&#039;&#039;&#039; čas vynulujú.&lt;br /&gt;
&lt;br /&gt;
Z popisu už vidno, čo budeme potrebovať:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Časť popisu !! Programová konštrukcia !! Lekcia&lt;br /&gt;
|-&lt;br /&gt;
| nastavený čas si treba pamätať || premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; || [[Rýchlokurz micro:bit/03 Premenná|3]], [[Rýchlokurz micro:bit/08 Počítadlo|8]]&lt;br /&gt;
|-&lt;br /&gt;
| reakcia na tlačidlá || obsluhy udalostí || [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|6]]&lt;br /&gt;
|-&lt;br /&gt;
| „ak je čas 0, zobraz krížik, inak odpočítavaj“ || if-else || [[Rýchlokurz micro:bit/07 Podmienka if-else|7]]&lt;br /&gt;
|-&lt;br /&gt;
| odpočítavaj, &#039;&#039;&#039;kým&#039;&#039;&#039; čas neklesne na 0 || cyklus while || [[Rýchlokurz micro:bit/05 Cyklus while|5]]&lt;br /&gt;
|-&lt;br /&gt;
| srdce zabliká &#039;&#039;&#039;trikrát&#039;&#039;&#039; || cyklus for (repeat) || [[Rýchlokurz micro:bit/04 Cyklus for|4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zvuk ==&lt;br /&gt;
&lt;br /&gt;
Bloky pre zvuk sú v kategórii &#039;&#039;&#039;Music&#039;&#039;&#039;. Na verzii &#039;&#039;&#039;V2&#039;&#039;&#039; zaznie zvuk zo vstavaného reproduktora na zadnej strane dosky. Verzia &#039;&#039;&#039;V1&#039;&#039;&#039; reproduktor nemá: zvuk ide na &#039;&#039;&#039;pin 0&#039;&#039;&#039; a počuť ho je len vtedy, keď medzi piny &#039;&#039;0&#039;&#039; a &#039;&#039;GND&#039;&#039; pripojíte krokosvorkami slúchadlá alebo bzučiak. Simulátor v MakeCode prehrá zvuk cez reproduktory počítača.&lt;br /&gt;
&lt;br /&gt;
Blok &#039;&#039;play melody ... until done&#039;&#039; počká, kým melódia dohrá, a až potom pokračuje ďalším príkazom. Pri voľbe &#039;&#039;in background&#039;&#039; sa melódia spustí a program &#039;&#039;&#039;hneď&#039;&#039;&#039; pokračuje, takže zvuk a animácia bežia súčasne. My chceme, aby srdce blikalo počas hrania melódie, preto použijeme &#039;&#039;in background&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Program: kuchynské minútky ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz09.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz09Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    if (cas == 0) {&lt;br /&gt;
        basic.showIcon(IconNames.No)&lt;br /&gt;
    } else {&lt;br /&gt;
        while (cas &amp;gt; 0) {&lt;br /&gt;
            basic.showNumber(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        }&lt;br /&gt;
        music.play(music.stringPlayable(&amp;quot;E B C5 A B G A F &amp;quot;, 230), music.PlaybackMode.InBackground)&lt;br /&gt;
        // music.play(music.builtinPlayableMelody(Melodies.PowerUp), music.PlaybackMode.InBackground)&lt;br /&gt;
        for (let index = 0; index &amp;lt; 3; index++) {&lt;br /&gt;
            basic.showIcon(IconNames.Heart)&lt;br /&gt;
            basic.showIcon(IconNames.SmallHeart)&lt;br /&gt;
        }&lt;br /&gt;
        basic.showNumber(cas)&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
let cas = 0&lt;br /&gt;
basic.showNumber(cas)&lt;br /&gt;
/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    global cas&lt;br /&gt;
    if cas == 0:&lt;br /&gt;
        basic.show_icon(IconNames.NO)&lt;br /&gt;
    else:&lt;br /&gt;
        while cas &amp;gt; 0:&lt;br /&gt;
            basic.show_number(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        music.play(music.string_playable(&amp;quot;E B C5 A B G A F &amp;quot;, 230),&lt;br /&gt;
            music.PlaybackMode.IN_BACKGROUND)&lt;br /&gt;
        # music.play(music.builtinPlayableMelody(Melodies.PowerUp), music.PlaybackMode.InBackground)&lt;br /&gt;
        for index in range(3):&lt;br /&gt;
            basic.show_icon(IconNames.HEART)&lt;br /&gt;
            basic.show_icon(IconNames.SMALL_HEART)&lt;br /&gt;
        basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
cas = 0&lt;br /&gt;
basic.show_number(cas)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Najzaujímavejšia je obsluha tlačidla B. Všimnite si, ako sú konštrukcie &#039;&#039;&#039;vnorené&#039;&#039;&#039; do seba: v obsluhe udalosti je podmienka, vo vetve &#039;&#039;else&#039;&#039; je cyklus while a za ním cyklus for. Presne toto vnorenie najlepšie vidno v blokoch: každá konštrukcia je „krabička“, do ktorej sa vkladajú ďalšie príkazy. V textovom zápise ho vyjadrujú úrovne odsadenia (a v JavaScripte zložené zátvorky).&lt;br /&gt;
&lt;br /&gt;
Prejdime si obsluhu tlačidla B pre nastavený čas 3 sekundy:&lt;br /&gt;
# Podmienka &amp;lt;code&amp;gt;cas == 0&amp;lt;/code&amp;gt; neplatí (cas je 3), vykoná sa vetva &#039;&#039;else&#039;&#039;.&lt;br /&gt;
# Cyklus while: 3 &amp;gt; 0 platí → zobraz 3, počkaj, cas = 2. Potom 2 &amp;gt; 0 → zobraz 2, cas = 1. Potom 1 &amp;gt; 0 → zobraz 1, cas = 0. Nakoniec 0 &amp;gt; 0 &#039;&#039;&#039;neplatí&#039;&#039;&#039;, cyklus končí.&lt;br /&gt;
# Spustí sa melódia na pozadí.&lt;br /&gt;
# Cyklus for trikrát vystrieda veľké a malé srdce (medzitým stále hrá melódia).&lt;br /&gt;
# Zobrazí sa 0 a minútky sú pripravené na ďalšie použitie.&lt;br /&gt;
&lt;br /&gt;
Takémuto „ručnému“ prechádzaniu programu s konkrétnymi hodnotami sa hovorí &#039;&#039;&#039;trasovanie&#039;&#039;&#039;. Je to najspoľahlivejší spôsob, ako pochopiť cudzí program alebo nájsť chybu vo vlastnom.&lt;br /&gt;
&lt;br /&gt;
Odpočítavanie nie je úplne presné: k pauze 1000 ms sa pripočíta čas, kým sa zobrazí číslo, a pri dvojciferných číslach je to posúvanie textu, teda aj niekoľko sekúnd. Na kuchynské minútky to stačí, na presné meranie času sa používajú iné prostriedky (blok &#039;&#039;running time&#039;&#039; v kategórii &#039;&#039;Input&#039;&#039;), ku ktorým sa dostaneme na cvičeniach.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; je vo while podmienke, ale v tele cyklu sa nemení&#039;&#039;&#039; → nekonečný cyklus, minútky nikdy nedobehnú.&lt;br /&gt;
* &#039;&#039;&#039;Podmienka &amp;lt;code&amp;gt;cas &amp;gt;= 0&amp;lt;/code&amp;gt; namiesto &amp;lt;code&amp;gt;cas &amp;gt; 0&amp;lt;/code&amp;gt;&#039;&#039;&#039; → cyklus prebehne o raz viac a čas skončí na -1. Trasovaním si overte prečo.&lt;br /&gt;
* &#039;&#039;&#039;Melódia v režime &#039;&#039;until done&#039;&#039;&#039;&#039;&#039; → srdce začne blikať až po dohraní melódie.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Trasujte program pre prípad, že stlačíte B hneď po zapnutí. Ktoré príkazy sa vykonajú?&lt;br /&gt;
# Upravte minútky tak, aby tlačidlo A pridávalo po 10 sekúnd.&lt;br /&gt;
# Nech posledné tri sekundy odpočítavania sprevádza krátke pípnutie (do tela cyklu while vložte podmienku &#039;&#039;if&#039;&#039; &amp;lt;code&amp;gt;cas &amp;lt;= 3&amp;lt;/code&amp;gt; a do nej blok &#039;&#039;play tone&#039;&#039; z kategórie &#039;&#039;Music&#039;&#039;).&lt;br /&gt;
# Pridajte tlačidlo na odoberanie času. Tlačidlo A je obsadené a B spúšťa odpočítavanie. Nájdite si v kategórii &#039;&#039;Input&#039;&#039; inú udalosť, napr. &#039;&#039;on shake&#039;&#039; alebo (V2) &#039;&#039;on logo pressed&#039;&#039;. Nezabudnite, že čas nesmie byť záporný.&lt;br /&gt;
# &#039;&#039;Náročnejšia:&#039;&#039; Upravte minútky tak, aby sa nastavovali v minútach a počas odpočítavania zobrazovali len zostávajúce minúty. Potrebujete na to vnorené cykly?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
🎓 &#039;&#039;&#039;Gratulujeme, zvládli ste základy!&#039;&#039;&#039; Na cvičeniach budeme pokračovať senzormi, komunikáciou medzi micro:bitmi a pripájaním ďalších súčiastok. Ďalšie inšpirácie nájdete v [[BBC micro:bit#Zbierka príkladov|zbierke príkladov]].&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19698</id>
		<title>Rýchlokurz micro:bit/09 Kuchynské minútky</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/09_Kuchynsk%C3%A9_min%C3%BAtky&amp;diff=19698"/>
		<updated>2026-09-28T09:26:57Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/09 Kuchynské minútky --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039;  Klasické kuchynské minútky  == Čo sa naučíte == * spojiť všetko, čo už viete, do jedného užitočného programu, * navrhnúť program ešte pred tým, ako ho začnete písať, * prehrať zvuk.  Toto je záverečná lekcia k…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/09 Kuchynské minútky --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:KuchynskeMinutky.jpg|thumb|200px|Klasické kuchynské minútky]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* spojiť všetko, čo už viete, do jedného užitočného programu,&lt;br /&gt;
* navrhnúť program ešte pred tým, ako ho začnete písať,&lt;br /&gt;
* prehrať zvuk.&lt;br /&gt;
&lt;br /&gt;
Toto je záverečná lekcia kurzu. Ak jej programu úplne rozumiete a zvládnete aspoň dve úlohy na konci, máte všetko potrebné na cvičenia.&lt;br /&gt;
&lt;br /&gt;
== Návrh programu ==&lt;br /&gt;
&lt;br /&gt;
Skôr ako začnete skladať bloky, je dobré si slovami popísať, &#039;&#039;&#039;čo&#039;&#039;&#039; má program robiť. Až potom riešite, &#039;&#039;&#039;ako&#039;&#039;&#039;. Naše minútky budú fungovať takto:&lt;br /&gt;
&lt;br /&gt;
* Po zapnutí zobrazia čas 0.&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;A&#039;&#039;&#039; pridá jednu sekundu (pri skutočných minútkach by to bola minúta, ale sekundy sa lepšie testujú).&lt;br /&gt;
* Tlačidlo &#039;&#039;&#039;B&#039;&#039;&#039; spustí odpočítavanie. Ak je nastavený čas 0, nie je čo odpočítavať, preto zobrazia krížik.&lt;br /&gt;
* Po dobehnutí zaznie melódia a trikrát zabliká srdce.&lt;br /&gt;
* Tlačidlá &#039;&#039;&#039;A+B&#039;&#039;&#039; čas vynulujú.&lt;br /&gt;
&lt;br /&gt;
Z popisu už vidno, čo budeme potrebovať:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Časť popisu !! Programová konštrukcia !! Lekcia&lt;br /&gt;
|-&lt;br /&gt;
| nastavený čas si treba pamätať || premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; || [[Rýchlokurz micro:bit/03 Premenná|3]], [[Rýchlokurz micro:bit/08 Počítadlo|8]]&lt;br /&gt;
|-&lt;br /&gt;
| reakcia na tlačidlá || obsluhy udalostí || [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|6]]&lt;br /&gt;
|-&lt;br /&gt;
| „ak je čas 0, zobraz krížik, inak odpočítavaj“ || if-else || [[Rýchlokurz micro:bit/07 Podmienka if-else|7]]&lt;br /&gt;
|-&lt;br /&gt;
| odpočítavaj, &#039;&#039;&#039;kým&#039;&#039;&#039; čas neklesne na 0 || cyklus while || [[Rýchlokurz micro:bit/05 Cyklus while|5]]&lt;br /&gt;
|-&lt;br /&gt;
| srdce zabliká &#039;&#039;&#039;trikrát&#039;&#039;&#039; || cyklus for (repeat) || [[Rýchlokurz micro:bit/04 Cyklus for|4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zvuk ==&lt;br /&gt;
&lt;br /&gt;
Bloky pre zvuk sú v kategórii &#039;&#039;&#039;Music&#039;&#039;&#039;. Na verzii &#039;&#039;&#039;V2&#039;&#039;&#039; zaznie zvuk zo vstavaného reproduktora na zadnej strane dosky. Verzia &#039;&#039;&#039;V1&#039;&#039;&#039; reproduktor nemá: zvuk ide na &#039;&#039;&#039;pin 0&#039;&#039;&#039; a počuť ho je len vtedy, keď medzi piny &#039;&#039;0&#039;&#039; a &#039;&#039;GND&#039;&#039; pripojíte krokosvorkami slúchadlá alebo bzučiak. Simulátor v MakeCode prehrá zvuk cez reproduktory počítača.&lt;br /&gt;
&lt;br /&gt;
Blok &#039;&#039;play melody ... until done&#039;&#039; počká, kým melódia dohrá, a až potom pokračuje ďalším príkazom. Pri voľbe &#039;&#039;in background&#039;&#039; sa melódia spustí a program &#039;&#039;&#039;hneď&#039;&#039;&#039; pokračuje, takže zvuk a animácia bežia súčasne. My chceme, aby srdce blikalo počas hrania melódie, preto použijeme &#039;&#039;in background&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Program: kuchynské minútky ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz09.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz09Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let cas = 0&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    if (cas == 0) {&lt;br /&gt;
        basic.showIcon(IconNames.No)&lt;br /&gt;
    } else {&lt;br /&gt;
        while (cas &amp;gt; 0) {&lt;br /&gt;
            basic.showNumber(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        }&lt;br /&gt;
        music.play(music.builtinPlayableMelody(Melodies.PowerUp), music.PlaybackMode.InBackground)&lt;br /&gt;
        for (let index = 0; index &amp;lt; 3; index++) {&lt;br /&gt;
            basic.showIcon(IconNames.Heart)&lt;br /&gt;
            basic.showIcon(IconNames.SmallHeart)&lt;br /&gt;
        }&lt;br /&gt;
        basic.showNumber(cas)&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.showNumber(cas)&lt;br /&gt;
})&lt;br /&gt;
basic.showNumber(cas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cas = 0&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas += 1&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    global cas&lt;br /&gt;
    if cas == 0:&lt;br /&gt;
        basic.show_icon(IconNames.NO)&lt;br /&gt;
    else:&lt;br /&gt;
        while cas &amp;gt; 0:&lt;br /&gt;
            basic.show_number(cas)&lt;br /&gt;
            basic.pause(1000)&lt;br /&gt;
            cas += -1&lt;br /&gt;
        music.play(music.builtin_playable_melody(Melodies.POWER_UP), music.PlaybackMode.IN_BACKGROUND)&lt;br /&gt;
        for index in range(3):&lt;br /&gt;
            basic.show_icon(IconNames.HEART)&lt;br /&gt;
            basic.show_icon(IconNames.SMALL_HEART)&lt;br /&gt;
        basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    global cas&lt;br /&gt;
    cas = 0&lt;br /&gt;
    basic.show_number(cas)&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
basic.show_number(cas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Najzaujímavejšia je obsluha tlačidla B. Všimnite si, ako sú konštrukcie &#039;&#039;&#039;vnorené&#039;&#039;&#039; do seba: v obsluhe udalosti je podmienka, vo vetve &#039;&#039;else&#039;&#039; je cyklus while a za ním cyklus for. Presne toto vnorenie najlepšie vidno v blokoch: každá konštrukcia je „krabička“, do ktorej sa vkladajú ďalšie príkazy. V textovom zápise ho vyjadrujú úrovne odsadenia (a v JavaScripte zložené zátvorky).&lt;br /&gt;
&lt;br /&gt;
Prejdime si obsluhu tlačidla B pre nastavený čas 3 sekundy:&lt;br /&gt;
# Podmienka &amp;lt;code&amp;gt;cas == 0&amp;lt;/code&amp;gt; neplatí (cas je 3), vykoná sa vetva &#039;&#039;else&#039;&#039;.&lt;br /&gt;
# Cyklus while: 3 &amp;gt; 0 platí → zobraz 3, počkaj, cas = 2. Potom 2 &amp;gt; 0 → zobraz 2, cas = 1. Potom 1 &amp;gt; 0 → zobraz 1, cas = 0. Nakoniec 0 &amp;gt; 0 &#039;&#039;&#039;neplatí&#039;&#039;&#039;, cyklus končí.&lt;br /&gt;
# Spustí sa melódia na pozadí.&lt;br /&gt;
# Cyklus for trikrát vystrieda veľké a malé srdce (medzitým stále hrá melódia).&lt;br /&gt;
# Zobrazí sa 0 a minútky sú pripravené na ďalšie použitie.&lt;br /&gt;
&lt;br /&gt;
Takémuto „ručnému“ prechádzaniu programu s konkrétnymi hodnotami sa hovorí &#039;&#039;&#039;trasovanie&#039;&#039;&#039;. Je to najspoľahlivejší spôsob, ako pochopiť cudzí program alebo nájsť chybu vo vlastnom.&lt;br /&gt;
&lt;br /&gt;
Odpočítavanie nie je úplne presné: k pauze 1000 ms sa pripočíta čas, kým sa zobrazí číslo, a pri dvojciferných číslach je to posúvanie textu, teda aj niekoľko sekúnd. Na kuchynské minútky to stačí, na presné meranie času sa používajú iné prostriedky (blok &#039;&#039;running time&#039;&#039; v kategórii &#039;&#039;Input&#039;&#039;), ku ktorým sa dostaneme na cvičeniach.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Premenná &amp;lt;code&amp;gt;cas&amp;lt;/code&amp;gt; je vo while podmienke, ale v tele cyklu sa nemení&#039;&#039;&#039; → nekonečný cyklus, minútky nikdy nedobehnú.&lt;br /&gt;
* &#039;&#039;&#039;Podmienka &amp;lt;code&amp;gt;cas &amp;gt;= 0&amp;lt;/code&amp;gt; namiesto &amp;lt;code&amp;gt;cas &amp;gt; 0&amp;lt;/code&amp;gt;&#039;&#039;&#039; → cyklus prebehne o raz viac a čas skončí na -1. Trasovaním si overte prečo.&lt;br /&gt;
* &#039;&#039;&#039;Melódia v režime &#039;&#039;until done&#039;&#039;&#039;&#039;&#039; → srdce začne blikať až po dohraní melódie.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Trasujte program pre prípad, že stlačíte B hneď po zapnutí. Ktoré príkazy sa vykonajú?&lt;br /&gt;
# Upravte minútky tak, aby tlačidlo A pridávalo po 10 sekúnd.&lt;br /&gt;
# Nech posledné tri sekundy odpočítavania sprevádza krátke pípnutie (do tela cyklu while vložte podmienku &#039;&#039;if&#039;&#039; &amp;lt;code&amp;gt;cas &amp;lt;= 3&amp;lt;/code&amp;gt; a do nej blok &#039;&#039;play tone&#039;&#039; z kategórie &#039;&#039;Music&#039;&#039;).&lt;br /&gt;
# Pridajte tlačidlo na odoberanie času. Tlačidlo A je obsadené a B spúšťa odpočítavanie. Nájdite si v kategórii &#039;&#039;Input&#039;&#039; inú udalosť, napr. &#039;&#039;on shake&#039;&#039; alebo (V2) &#039;&#039;on logo pressed&#039;&#039;. Nezabudnite, že čas nesmie byť záporný.&lt;br /&gt;
# &#039;&#039;Náročnejšia:&#039;&#039; Upravte minútky tak, aby sa nastavovali v minútach a počas odpočítavania zobrazovali len zostávajúce minúty. Potrebujete na to vnorené cykly?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
🎓 &#039;&#039;&#039;Gratulujeme, zvládli ste základy!&#039;&#039;&#039; Na cvičeniach budeme pokračovať senzormi, komunikáciou medzi micro:bitmi a pripájaním ďalších súčiastok. Ďalšie inšpirácie nájdete v [[BBC micro:bit#Zbierka príkladov|zbierke príkladov]].&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/08 Počítadlo|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/08_Po%C4%8D%C3%ADtadlo&amp;diff=19697</id>
		<title>Rýchlokurz micro:bit/08 Počítadlo</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/08_Po%C4%8D%C3%ADtadlo&amp;diff=19697"/>
		<updated>2026-09-28T09:26:35Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: počítadlo návštevníkov */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/08 Počítadlo --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/07 Podmienka if-else|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/09 Kuchynské minútky|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Pocitadlo.jpg|thumb|200px|Mechanické počítadlo návštevníkov]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* používať premennú na uchovanie &#039;&#039;&#039;stavu&#039;&#039;&#039; programu,&lt;br /&gt;
* meniť jednu premennú z viacerých častí programu,&lt;br /&gt;
* čo sú &#039;&#039;&#039;globálne a lokálne premenné&#039;&#039;&#039; a prečo Python potrebuje slovo &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: premenná ako pamäť programu ==&lt;br /&gt;
&lt;br /&gt;
Usporiadateľ pri vchode do sály drží v ruke mechanické počítadlo a pri každom návštevníkovi stlačí tlačidlo. Naprogramujeme jeho elektronickú verziu. Tlačidlo A pripočíta návštevníka, tlačidlo B ho odpočíta (ak niekto odišiel) a obe tlačidlá naraz počítadlo vynulujú.&lt;br /&gt;
&lt;br /&gt;
Kľúčová je tu premenná &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;. Doteraz sme premenné používali hlavne na pohodlné nastavenie hodnoty. Teraz premenná slúži ako &#039;&#039;&#039;pamäť&#039;&#039;&#039;: uchováva informáciu, ktorá vzniká počas behu programu a ktorú by sme inak nemali kde uložiť. Hodnota premennej v danej chvíli sa nazýva &#039;&#039;&#039;stav&#039;&#039;&#039; programu.&lt;br /&gt;
&lt;br /&gt;
Premennú budú meniť tri rôzne obsluhy udalostí a čítať ju bude cyklus &#039;&#039;forever&#039;&#039;. Všetky štyri časti programu teda musia pracovať s &#039;&#039;&#039;tou istou&#039;&#039;&#039; premennou. Preto ju vytvoríme mimo nich, na najvyššej úrovni programu. Takáto premenná sa nazýva &#039;&#039;&#039;globálna&#039;&#039;&#039; a je dostupná z celého programu. Naopak premenná vytvorená vnútri funkcie je &#039;&#039;&#039;lokálna&#039;&#039;&#039;: existuje len počas vykonávania danej funkcie a zvonku o nej nikto nevie.&lt;br /&gt;
&lt;br /&gt;
== Program: počítadlo návštevníkov ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz08.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let pocet = 0&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    pocet += 1&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    if (pocet &amp;gt; 0) {&lt;br /&gt;
        pocet += -1&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    pocet = 0&lt;br /&gt;
})&lt;br /&gt;
basic.forever(function () {&lt;br /&gt;
    basic.showNumber(pocet)&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
pocet = 0&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    global pocet&lt;br /&gt;
    pocet += 1&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    global pocet&lt;br /&gt;
    if pocet &amp;gt; 0:&lt;br /&gt;
        pocet += -1&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    global pocet&lt;br /&gt;
    pocet = 0&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
def on_forever():&lt;br /&gt;
    basic.show_number(pocet)&lt;br /&gt;
basic.forever(on_forever)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Program má jasne rozdelené úlohy:&lt;br /&gt;
* &#039;&#039;&#039;obsluhy udalostí&#039;&#039;&#039; menia stav (hodnotu premennej &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;),&lt;br /&gt;
* &#039;&#039;&#039;cyklus &#039;&#039;forever&#039;&#039;&#039;&#039;&#039; stav neustále zobrazuje.&lt;br /&gt;
&lt;br /&gt;
Žiadna obsluha sa nemusí starať o displej a zobrazovanie sa nemusí starať o tlačidlá. Takéto rozdelenie programu na nezávislé časti, ktoré spolu komunikujú cez spoločný stav, je veľmi užitočný návyk. Aj veľké programy sa skladajú z častí, ktoré majú každá jednu jasnú úlohu.&lt;br /&gt;
&lt;br /&gt;
Obsluha tlačidla B obsahuje podmienku: počet sa zníži, &#039;&#039;&#039;len ak&#039;&#039;&#039; je väčší ako nula. Záporný počet návštevníkov nedáva zmysel. Takejto kontrole sa hovorí &#039;&#039;&#039;ošetrenie hraničného prípadu&#039;&#039;&#039; a dobrý program ju má všade, kde môže vzniknúť nezmyselný stav.&lt;br /&gt;
&lt;br /&gt;
Zápis &amp;lt;code&amp;gt;pocet += -1&amp;lt;/code&amp;gt; je to isté ako &amp;lt;code&amp;gt;pocet = pocet - 1&amp;lt;/code&amp;gt;. MakeCode takto prekladá blok &#039;&#039;change pocet by -1&#039;&#039;. Bežnejší zápis je &amp;lt;code&amp;gt;pocet -= 1&amp;lt;/code&amp;gt;, oba sú správne.&lt;br /&gt;
&lt;br /&gt;
=== Prečo je v Pythone slovo &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;? ===&lt;br /&gt;
&lt;br /&gt;
Python má pravidlo: ak funkcia do premennej niečo &#039;&#039;&#039;priraďuje&#039;&#039;&#039;, považuje ju za &#039;&#039;&#039;lokálnu&#039;&#039;&#039;, teda za novú premennú, ktorá existuje len vnútri funkcie. Bez riadku &amp;lt;code&amp;gt;global pocet&amp;lt;/code&amp;gt; by si napríklad obsluha oboch tlačidiel príkazom &amp;lt;code&amp;gt;pocet = 0&amp;lt;/code&amp;gt; vytvorila vlastnú lokálnu premennú &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;, vynulovala by ju a globálne počítadlo by zostalo nezmenené. V obsluhe tlačidla A by bez &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; vznikla chyba, pretože &amp;lt;code&amp;gt;pocet += 1&amp;lt;/code&amp;gt; sa snaží čítať lokálnu premennú, ktorá ešte nemá hodnotu. Riadok &amp;lt;code&amp;gt;global pocet&amp;lt;/code&amp;gt; hovorí: „v tejto funkcii myslím tú globálnu premennú &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;“.&lt;br /&gt;
&lt;br /&gt;
Funkcia &amp;lt;code&amp;gt;on_forever&amp;lt;/code&amp;gt; slovo &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; nepotrebuje, pretože premennú len &#039;&#039;&#039;číta&#039;&#039;&#039; a nič do nej nepriraďuje. JavaScript tento problém rieši inak: premenná deklarovaná slovom &amp;lt;code&amp;gt;let&amp;lt;/code&amp;gt; na najvyššej úrovni je automaticky dostupná vo všetkých funkciách. MakeCode pri preklade z blokov doplní &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; automaticky, ale pri písaní textom naň musíte myslieť sami.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Nastavenie &amp;lt;code&amp;gt;pocet = 0&amp;lt;/code&amp;gt; v cykle &#039;&#039;forever&#039;&#039;.&#039;&#039;&#039; Počítadlo by sa neustále nulovalo.&lt;br /&gt;
* &#039;&#039;&#039;Chýbajúci &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; v Pythone.&#039;&#039;&#039; Niekedy vznikne chyba, ale pri obyčajnom priradení (napr. &amp;lt;code&amp;gt;pocet = 0&amp;lt;/code&amp;gt;) program nič nehlási, len nefunguje správne. Takéto chyby sa hľadajú najťažšie.&lt;br /&gt;
* &#039;&#039;&#039;Pomalé zobrazenie.&#039;&#039;&#039; Viacciferné číslo sa posúva po displeji niekoľko sekúnd. Stlačenia tlačidiel sa počas toho započítajú, ale nové číslo sa ukáže až po dobehnutí predchádzajúceho.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Vyskúšajte v textovom zobrazení Pythonu zmazať riadok &amp;lt;code&amp;gt;global pocet&amp;lt;/code&amp;gt; v obsluhe oboch tlačidiel (A+B). Funguje ešte nulovanie? Vysvetlite prečo. Potom to isté skúste v obsluhe tlačidla A a porovnajte, ako sa MakeCode zachová.&lt;br /&gt;
# Sála má kapacitu 20 miest. Upravte obsluhu tlačidla A tak, aby pri plnej sále počet nezvýšila, ale zobrazila ikonu &#039;&#039;No&#039;&#039;.&lt;br /&gt;
# Doplňte do cyklu &#039;&#039;forever&#039;&#039; podmienku: ak je sála plná, zobrazí sa namiesto čísla ikona &#039;&#039;Skull&#039;&#039;, inak číslo.&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Pri každom novom návštevníkovi nech micro:bit krátko pípne. Použite blok z kategórie &#039;&#039;Music&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/07 Podmienka if-else|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/09 Kuchynské minútky|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz08.png&amp;diff=19696</id>
		<title>Súbor:Microbit-Kurz08.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz08.png&amp;diff=19696"/>
		<updated>2026-09-28T09:26:24Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/08_Po%C4%8D%C3%ADtadlo&amp;diff=19695</id>
		<title>Rýchlokurz micro:bit/08 Počítadlo</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/08_Po%C4%8D%C3%ADtadlo&amp;diff=19695"/>
		<updated>2026-09-28T09:25:39Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/08 Počítadlo --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  Mechanické počítadlo návštevníkov  == Čo sa naučíte == * používať premennú na uchovanie &amp;#039;&amp;#039;&amp;#039;stavu&amp;#039;&amp;#039;&amp;#039; programu, * meniť jednu premennú z viacerých častí…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/08 Počítadlo --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/07 Podmienka if-else|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/09 Kuchynské minútky|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Pocitadlo.jpg|thumb|200px|Mechanické počítadlo návštevníkov]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* používať premennú na uchovanie &#039;&#039;&#039;stavu&#039;&#039;&#039; programu,&lt;br /&gt;
* meniť jednu premennú z viacerých častí programu,&lt;br /&gt;
* čo sú &#039;&#039;&#039;globálne a lokálne premenné&#039;&#039;&#039; a prečo Python potrebuje slovo &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: premenná ako pamäť programu ==&lt;br /&gt;
&lt;br /&gt;
Usporiadateľ pri vchode do sály drží v ruke mechanické počítadlo a pri každom návštevníkovi stlačí tlačidlo. Naprogramujeme jeho elektronickú verziu. Tlačidlo A pripočíta návštevníka, tlačidlo B ho odpočíta (ak niekto odišiel) a obe tlačidlá naraz počítadlo vynulujú.&lt;br /&gt;
&lt;br /&gt;
Kľúčová je tu premenná &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;. Doteraz sme premenné používali hlavne na pohodlné nastavenie hodnoty. Teraz premenná slúži ako &#039;&#039;&#039;pamäť&#039;&#039;&#039;: uchováva informáciu, ktorá vzniká počas behu programu a ktorú by sme inak nemali kde uložiť. Hodnota premennej v danej chvíli sa nazýva &#039;&#039;&#039;stav&#039;&#039;&#039; programu.&lt;br /&gt;
&lt;br /&gt;
Premennú budú meniť tri rôzne obsluhy udalostí a čítať ju bude cyklus &#039;&#039;forever&#039;&#039;. Všetky štyri časti programu teda musia pracovať s &#039;&#039;&#039;tou istou&#039;&#039;&#039; premennou. Preto ju vytvoríme mimo nich, na najvyššej úrovni programu. Takáto premenná sa nazýva &#039;&#039;&#039;globálna&#039;&#039;&#039; a je dostupná z celého programu. Naopak premenná vytvorená vnútri funkcie je &#039;&#039;&#039;lokálna&#039;&#039;&#039;: existuje len počas vykonávania danej funkcie a zvonku o nej nikto nevie.&lt;br /&gt;
&lt;br /&gt;
== Program: počítadlo návštevníkov ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz08.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz08Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let pocet = 0&lt;br /&gt;
input.onButtonPressed(Button.A, function () {&lt;br /&gt;
    pocet += 1&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.B, function () {&lt;br /&gt;
    if (pocet &amp;gt; 0) {&lt;br /&gt;
        pocet += -1&lt;br /&gt;
    }&lt;br /&gt;
})&lt;br /&gt;
input.onButtonPressed(Button.AB, function () {&lt;br /&gt;
    pocet = 0&lt;br /&gt;
})&lt;br /&gt;
basic.forever(function () {&lt;br /&gt;
    basic.showNumber(pocet)&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
pocet = 0&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_a():&lt;br /&gt;
    global pocet&lt;br /&gt;
    pocet += 1&lt;br /&gt;
input.on_button_pressed(Button.A, on_button_pressed_a)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_b():&lt;br /&gt;
    global pocet&lt;br /&gt;
    if pocet &amp;gt; 0:&lt;br /&gt;
        pocet += -1&lt;br /&gt;
input.on_button_pressed(Button.B, on_button_pressed_b)&lt;br /&gt;
&lt;br /&gt;
def on_button_pressed_ab():&lt;br /&gt;
    global pocet&lt;br /&gt;
    pocet = 0&lt;br /&gt;
input.on_button_pressed(Button.AB, on_button_pressed_ab)&lt;br /&gt;
&lt;br /&gt;
def on_forever():&lt;br /&gt;
    basic.show_number(pocet)&lt;br /&gt;
basic.forever(on_forever)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Program má jasne rozdelené úlohy:&lt;br /&gt;
* &#039;&#039;&#039;obsluhy udalostí&#039;&#039;&#039; menia stav (hodnotu premennej &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;),&lt;br /&gt;
* &#039;&#039;&#039;cyklus &#039;&#039;forever&#039;&#039;&#039;&#039;&#039; stav neustále zobrazuje.&lt;br /&gt;
&lt;br /&gt;
Žiadna obsluha sa nemusí starať o displej a zobrazovanie sa nemusí starať o tlačidlá. Takéto rozdelenie programu na nezávislé časti, ktoré spolu komunikujú cez spoločný stav, je veľmi užitočný návyk. Aj veľké programy sa skladajú z častí, ktoré majú každá jednu jasnú úlohu.&lt;br /&gt;
&lt;br /&gt;
Obsluha tlačidla B obsahuje podmienku: počet sa zníži, &#039;&#039;&#039;len ak&#039;&#039;&#039; je väčší ako nula. Záporný počet návštevníkov nedáva zmysel. Takejto kontrole sa hovorí &#039;&#039;&#039;ošetrenie hraničného prípadu&#039;&#039;&#039; a dobrý program ju má všade, kde môže vzniknúť nezmyselný stav.&lt;br /&gt;
&lt;br /&gt;
Zápis &amp;lt;code&amp;gt;pocet += -1&amp;lt;/code&amp;gt; je to isté ako &amp;lt;code&amp;gt;pocet = pocet - 1&amp;lt;/code&amp;gt;. MakeCode takto prekladá blok &#039;&#039;change pocet by -1&#039;&#039;. Bežnejší zápis je &amp;lt;code&amp;gt;pocet -= 1&amp;lt;/code&amp;gt;, oba sú správne.&lt;br /&gt;
&lt;br /&gt;
=== Prečo je v Pythone slovo &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;? ===&lt;br /&gt;
&lt;br /&gt;
Python má pravidlo: ak funkcia do premennej niečo &#039;&#039;&#039;priraďuje&#039;&#039;&#039;, považuje ju za &#039;&#039;&#039;lokálnu&#039;&#039;&#039;, teda za novú premennú, ktorá existuje len vnútri funkcie. Bez riadku &amp;lt;code&amp;gt;global pocet&amp;lt;/code&amp;gt; by si napríklad obsluha oboch tlačidiel príkazom &amp;lt;code&amp;gt;pocet = 0&amp;lt;/code&amp;gt; vytvorila vlastnú lokálnu premennú &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;, vynulovala by ju a globálne počítadlo by zostalo nezmenené. V obsluhe tlačidla A by bez &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; vznikla chyba, pretože &amp;lt;code&amp;gt;pocet += 1&amp;lt;/code&amp;gt; sa snaží čítať lokálnu premennú, ktorá ešte nemá hodnotu. Riadok &amp;lt;code&amp;gt;global pocet&amp;lt;/code&amp;gt; hovorí: „v tejto funkcii myslím tú globálnu premennú &amp;lt;code&amp;gt;pocet&amp;lt;/code&amp;gt;“.&lt;br /&gt;
&lt;br /&gt;
Funkcia &amp;lt;code&amp;gt;on_forever&amp;lt;/code&amp;gt; slovo &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; nepotrebuje, pretože premennú len &#039;&#039;&#039;číta&#039;&#039;&#039; a nič do nej nepriraďuje. JavaScript tento problém rieši inak: premenná deklarovaná slovom &amp;lt;code&amp;gt;let&amp;lt;/code&amp;gt; na najvyššej úrovni je automaticky dostupná vo všetkých funkciách. MakeCode pri preklade z blokov doplní &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; automaticky, ale pri písaní textom naň musíte myslieť sami.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Nastavenie &amp;lt;code&amp;gt;pocet = 0&amp;lt;/code&amp;gt; v cykle &#039;&#039;forever&#039;&#039;.&#039;&#039;&#039; Počítadlo by sa neustále nulovalo.&lt;br /&gt;
* &#039;&#039;&#039;Chýbajúci &amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt; v Pythone.&#039;&#039;&#039; Niekedy vznikne chyba, ale pri obyčajnom priradení (napr. &amp;lt;code&amp;gt;pocet = 0&amp;lt;/code&amp;gt;) program nič nehlási, len nefunguje správne. Takéto chyby sa hľadajú najťažšie.&lt;br /&gt;
* &#039;&#039;&#039;Pomalé zobrazenie.&#039;&#039;&#039; Viacciferné číslo sa posúva po displeji niekoľko sekúnd. Stlačenia tlačidiel sa počas toho započítajú, ale nové číslo sa ukáže až po dobehnutí predchádzajúceho.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Vyskúšajte v textovom zobrazení Pythonu zmazať riadok &amp;lt;code&amp;gt;global pocet&amp;lt;/code&amp;gt; v obsluhe oboch tlačidiel (A+B). Funguje ešte nulovanie? Vysvetlite prečo. Potom to isté skúste v obsluhe tlačidla A a porovnajte, ako sa MakeCode zachová.&lt;br /&gt;
# Sála má kapacitu 20 miest. Upravte obsluhu tlačidla A tak, aby pri plnej sále počet nezvýšila, ale zobrazila ikonu &#039;&#039;No&#039;&#039;.&lt;br /&gt;
# Doplňte do cyklu &#039;&#039;forever&#039;&#039; podmienku: ak je sála plná, zobrazí sa namiesto čísla ikona &#039;&#039;Skull&#039;&#039;, inak číslo.&lt;br /&gt;
# &#039;&#039;(len V2)&#039;&#039; Pri každom novom návštevníkovi nech micro:bit krátko pípne. Použite blok z kategórie &#039;&#039;Music&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/07 Podmienka if-else|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/09 Kuchynské minútky|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/04_Cyklus_for&amp;diff=19694</id>
		<title>Rýchlokurz micro:bit/04 Cyklus for</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/04_Cyklus_for&amp;diff=19694"/>
		<updated>2026-09-28T09:25:03Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program 2: postupné rozsvietenie displeja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/04 Cyklus for --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/03 Premenná|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/05 Cyklus while|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* opakovať príkazy &#039;&#039;&#039;presne daný počet krát&#039;&#039;&#039;,&lt;br /&gt;
* používať &#039;&#039;&#039;riadiacu premennú&#039;&#039;&#039; cyklu,&lt;br /&gt;
* rozsvietiť ľubovoľnú LED podľa súradníc,&lt;br /&gt;
* vložiť jeden cyklus do druhého (vnorené cykly).&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: cyklus s počítadlom ==&lt;br /&gt;
&lt;br /&gt;
Cyklus &#039;&#039;forever&#039;&#039; opakuje príkazy donekonečna. Často však potrebujeme niečo zopakovať &#039;&#039;&#039;presne N-krát&#039;&#039;&#039;, napr. trikrát zablikať alebo odpočítať od 9 po 0. Na to slúži cyklus &#039;&#039;&#039;for&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Cyklus for má &#039;&#039;&#039;riadiacu premennú&#039;&#039;&#039; (v MakeCode sa predvolene volá &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt;), ktorá funguje ako počítadlo. Pred prvým opakovaním má počiatočnú hodnotu a po každom opakovaní sa zvýši o 1. Keď prekročí koncovú hodnotu, cyklus skončí a program pokračuje príkazom, ktorý nasleduje &#039;&#039;&#039;za&#039;&#039;&#039; cyklom. V tele cyklu sa dá riadiaca premenná čítať, takže každé opakovanie môže urobiť niečo trochu iné.&lt;br /&gt;
&lt;br /&gt;
Cyklus for poznajú všetky bežné jazyky, líši sa len zápisom:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bloky !! JavaScript !! Python !! Hodnoty premennej index&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;for index from 0 to 4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt;= 4; index++)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for index in range(5):&amp;lt;/code&amp;gt; || 0, 1, 2, 3, 4&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeat 4 times&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt; 4; index++)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for index in range(4):&amp;lt;/code&amp;gt; || 0, 1, 2, 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #d9a; background:#fff0f4; padding:0.5em 1em; margin:1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Pozor na hranice.&#039;&#039;&#039; Blok &#039;&#039;for index from 0 to 4&#039;&#039; vykoná telo &#039;&#039;&#039;päťkrát&#039;&#039;&#039; (0, 1, 2, 3, 4), koncová hodnota sa teda ešte vykoná. V JavaScripte to vyjadruje podmienka &amp;lt;code&amp;gt;index &amp;lt;= 4&amp;lt;/code&amp;gt; („kým je index menší alebo rovný 4“). V Pythone &amp;lt;code&amp;gt;range(5)&amp;lt;/code&amp;gt; znamená „čísla od 0 po 5, ale &#039;&#039;&#039;bez&#039;&#039;&#039; 5“. Programátori v praxi takmer vždy počítajú od nuly, preto si na to zvyknite hneď.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScriptový zápis &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt;= 4; index++)&amp;lt;/code&amp;gt; má tri časti oddelené bodkočiarkami: &#039;&#039;počiatočné nastavenie&#039;&#039; (&amp;lt;code&amp;gt;let index = 0&amp;lt;/code&amp;gt;), &#039;&#039;podmienka pokračovania&#039;&#039; (&amp;lt;code&amp;gt;index &amp;lt;= 4&amp;lt;/code&amp;gt;) a &#039;&#039;krok&#039;&#039; (&amp;lt;code&amp;gt;index++&amp;lt;/code&amp;gt; je skratka pre &amp;lt;code&amp;gt;index = index + 1&amp;lt;/code&amp;gt;). Rovnaký zápis používa aj jazyk C, s ktorým sa stretnete v ďalších predmetoch.&lt;br /&gt;
&lt;br /&gt;
== Program 1: odpočítavanie ==&lt;br /&gt;
&lt;br /&gt;
Bloky cyklov sú v kategórii &#039;&#039;&#039;Loops&#039;&#039;&#039;, matematické operácie v kategórii &#039;&#039;&#039;Math&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz04a.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
for (let index = 0; index &amp;lt;= 9; index++) {&lt;br /&gt;
    basic.showNumber(9 - index)&lt;br /&gt;
    basic.pause(500)&lt;br /&gt;
}&lt;br /&gt;
basic.showIcon(IconNames.Yes)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for index in range(10):&lt;br /&gt;
    basic.show_number(9 - index)&lt;br /&gt;
    basic.pause(500)&lt;br /&gt;
basic.show_icon(IconNames.YES)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ako to funguje ===&lt;br /&gt;
Riadiaca premenná &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; postupne nadobúda hodnoty 0, 1, 2, … 9. Zobrazujeme však výraz &amp;lt;code&amp;gt;9 - index&amp;lt;/code&amp;gt;, teda 9, 8, 7, … 0. Týmto jednoduchým trikom dostaneme odpočítavanie, hoci index stúpa. Po desiatom opakovaní cyklus skončí a vykoná sa príkaz za ním: zobrazí sa fajka.&lt;br /&gt;
&lt;br /&gt;
Všimnite si, že fajka sa zobrazí &#039;&#039;&#039;len raz&#039;&#039;&#039;: príkaz &amp;lt;code&amp;gt;showIcon&amp;lt;/code&amp;gt; nie je odsadený, teda nie je súčasťou tela cyklu.&lt;br /&gt;
&lt;br /&gt;
== Program 2: postupné rozsvietenie displeja ==&lt;br /&gt;
&lt;br /&gt;
Každá LED na displeji má svoje &#039;&#039;&#039;súradnice&#039;&#039;&#039; &#039;&#039;(x, y)&#039;&#039;. Súradnica &#039;&#039;x&#039;&#039; je číslo stĺpca zľava doprava, &#039;&#039;y&#039;&#039; číslo riadku zhora nadol, obe od 0 po 4. Ľavá horná LED má teda súradnice (0, 0), pravá dolná (4, 4). Blok &#039;&#039;&#039;plot x y&#039;&#039;&#039; z kategórie &#039;&#039;&#039;Led&#039;&#039;&#039; rozsvieti jednu LED, blok &#039;&#039;&#039;unplot x y&#039;&#039;&#039; ju zhasne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz04b.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
for (let y = 0; y &amp;lt;= 4; y++) {&lt;br /&gt;
    for (let x = 0; x &amp;lt;= 4; x++) {&lt;br /&gt;
        led.plot(x, y)&lt;br /&gt;
        basic.pause(100)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for y in range(5):&lt;br /&gt;
    for x in range(5):&lt;br /&gt;
        led.plot(x, y)&lt;br /&gt;
        basic.pause(100)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ako to funguje ===&lt;br /&gt;
Tu sú dva cykly &#039;&#039;&#039;vnorené&#039;&#039;&#039; do seba. Vonkajší cyklus prechádza riadky (&#039;&#039;y&#039;&#039; = 0 až 4). Pri &#039;&#039;&#039;každom&#039;&#039;&#039; jeho opakovaní prebehne celý vnútorný cyklus, ktorý prejde všetky stĺpce daného riadku (&#039;&#039;x&#039;&#039; = 0 až 4). Telo vnútorného cyklu sa teda vykoná 5 × 5 = 25-krát, raz pre každú LED. Displej sa zapĺňa ako text v knihe: riadok po riadku, v každom riadku zľava doprava.&lt;br /&gt;
&lt;br /&gt;
Riadiace premenné sme tu premenovali na &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, lebo tieto mená presne vyjadrujú ich význam. V bloku &#039;&#039;for&#039;&#039; stačí kliknúť na meno premennej a zvoliť &#039;&#039;New variable...&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;O jedno opakovanie viac alebo menej&#039;&#039;&#039; – najčastejšia chyba pri cykloch vôbec (anglicky &#039;&#039;off-by-one error&#039;&#039;). Pri každom cykle si overte, aká je prvá a posledná hodnota riadiacej premennej.&lt;br /&gt;
* &#039;&#039;&#039;Príkaz vo vnútri namiesto za cyklom&#039;&#039;&#039; (alebo naopak). V blokoch skontrolujte, do ktorých „čeľustí“ blok patrí, v Pythone odsadenie.&lt;br /&gt;
* &#039;&#039;&#039;Súradnice mimo rozsahu.&#039;&#039;&#039; LED s x = 5 neexistuje, príkaz sa jednoducho nevykoná a neohlási chybu.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Upravte odpočítavanie tak, aby počítalo od 5 po 1 a potom zobrazilo text „START“.&lt;br /&gt;
# Pomocou bloku &#039;&#039;repeat&#039;&#039; nechajte srdce trikrát zablikať a potom zobrazte smajlíka.&lt;br /&gt;
# Upravte program 2 tak, aby sa displej plnil po stĺpcoch zhora nadol (stačí vymeniť poradie cyklov). Potom pridajte ďalšiu dvojicu cyklov s blokom &#039;&#039;unplot&#039;&#039;, ktorá displej postupne zhasne.&lt;br /&gt;
# Nakreslite na displej uhlopriečku z ľavého horného do pravého dolného rohu &#039;&#039;&#039;jedným&#039;&#039;&#039; cyklom. Pomôcka: aký vzťah majú súradnice x a y pre LED na uhlopriečke?&lt;br /&gt;
# Naprogramujte „bežiace svetielko“: jedna LED v strednom riadku sa presúva zľava doprava (rozsvietiť – počkať – zhasnúť – posunúť).&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/03 Premenná|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/05 Cyklus while|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz04b.png&amp;diff=19693</id>
		<title>Súbor:Microbit-Kurz04b.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz04b.png&amp;diff=19693"/>
		<updated>2026-09-28T09:24:52Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/04_Cyklus_for&amp;diff=19692</id>
		<title>Rýchlokurz micro:bit/04 Cyklus for</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/04_Cyklus_for&amp;diff=19692"/>
		<updated>2026-09-28T09:22:54Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program 1: odpočítavanie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/04 Cyklus for --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/03 Premenná|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/05 Cyklus while|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* opakovať príkazy &#039;&#039;&#039;presne daný počet krát&#039;&#039;&#039;,&lt;br /&gt;
* používať &#039;&#039;&#039;riadiacu premennú&#039;&#039;&#039; cyklu,&lt;br /&gt;
* rozsvietiť ľubovoľnú LED podľa súradníc,&lt;br /&gt;
* vložiť jeden cyklus do druhého (vnorené cykly).&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: cyklus s počítadlom ==&lt;br /&gt;
&lt;br /&gt;
Cyklus &#039;&#039;forever&#039;&#039; opakuje príkazy donekonečna. Často však potrebujeme niečo zopakovať &#039;&#039;&#039;presne N-krát&#039;&#039;&#039;, napr. trikrát zablikať alebo odpočítať od 9 po 0. Na to slúži cyklus &#039;&#039;&#039;for&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Cyklus for má &#039;&#039;&#039;riadiacu premennú&#039;&#039;&#039; (v MakeCode sa predvolene volá &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt;), ktorá funguje ako počítadlo. Pred prvým opakovaním má počiatočnú hodnotu a po každom opakovaní sa zvýši o 1. Keď prekročí koncovú hodnotu, cyklus skončí a program pokračuje príkazom, ktorý nasleduje &#039;&#039;&#039;za&#039;&#039;&#039; cyklom. V tele cyklu sa dá riadiaca premenná čítať, takže každé opakovanie môže urobiť niečo trochu iné.&lt;br /&gt;
&lt;br /&gt;
Cyklus for poznajú všetky bežné jazyky, líši sa len zápisom:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bloky !! JavaScript !! Python !! Hodnoty premennej index&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;for index from 0 to 4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt;= 4; index++)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for index in range(5):&amp;lt;/code&amp;gt; || 0, 1, 2, 3, 4&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeat 4 times&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt; 4; index++)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for index in range(4):&amp;lt;/code&amp;gt; || 0, 1, 2, 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #d9a; background:#fff0f4; padding:0.5em 1em; margin:1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Pozor na hranice.&#039;&#039;&#039; Blok &#039;&#039;for index from 0 to 4&#039;&#039; vykoná telo &#039;&#039;&#039;päťkrát&#039;&#039;&#039; (0, 1, 2, 3, 4), koncová hodnota sa teda ešte vykoná. V JavaScripte to vyjadruje podmienka &amp;lt;code&amp;gt;index &amp;lt;= 4&amp;lt;/code&amp;gt; („kým je index menší alebo rovný 4“). V Pythone &amp;lt;code&amp;gt;range(5)&amp;lt;/code&amp;gt; znamená „čísla od 0 po 5, ale &#039;&#039;&#039;bez&#039;&#039;&#039; 5“. Programátori v praxi takmer vždy počítajú od nuly, preto si na to zvyknite hneď.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScriptový zápis &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt;= 4; index++)&amp;lt;/code&amp;gt; má tri časti oddelené bodkočiarkami: &#039;&#039;počiatočné nastavenie&#039;&#039; (&amp;lt;code&amp;gt;let index = 0&amp;lt;/code&amp;gt;), &#039;&#039;podmienka pokračovania&#039;&#039; (&amp;lt;code&amp;gt;index &amp;lt;= 4&amp;lt;/code&amp;gt;) a &#039;&#039;krok&#039;&#039; (&amp;lt;code&amp;gt;index++&amp;lt;/code&amp;gt; je skratka pre &amp;lt;code&amp;gt;index = index + 1&amp;lt;/code&amp;gt;). Rovnaký zápis používa aj jazyk C, s ktorým sa stretnete v ďalších predmetoch.&lt;br /&gt;
&lt;br /&gt;
== Program 1: odpočítavanie ==&lt;br /&gt;
&lt;br /&gt;
Bloky cyklov sú v kategórii &#039;&#039;&#039;Loops&#039;&#039;&#039;, matematické operácie v kategórii &#039;&#039;&#039;Math&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz04a.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
for (let index = 0; index &amp;lt;= 9; index++) {&lt;br /&gt;
    basic.showNumber(9 - index)&lt;br /&gt;
    basic.pause(500)&lt;br /&gt;
}&lt;br /&gt;
basic.showIcon(IconNames.Yes)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for index in range(10):&lt;br /&gt;
    basic.show_number(9 - index)&lt;br /&gt;
    basic.pause(500)&lt;br /&gt;
basic.show_icon(IconNames.YES)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ako to funguje ===&lt;br /&gt;
Riadiaca premenná &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; postupne nadobúda hodnoty 0, 1, 2, … 9. Zobrazujeme však výraz &amp;lt;code&amp;gt;9 - index&amp;lt;/code&amp;gt;, teda 9, 8, 7, … 0. Týmto jednoduchým trikom dostaneme odpočítavanie, hoci index stúpa. Po desiatom opakovaní cyklus skončí a vykoná sa príkaz za ním: zobrazí sa fajka.&lt;br /&gt;
&lt;br /&gt;
Všimnite si, že fajka sa zobrazí &#039;&#039;&#039;len raz&#039;&#039;&#039;: príkaz &amp;lt;code&amp;gt;showIcon&amp;lt;/code&amp;gt; nie je odsadený, teda nie je súčasťou tela cyklu.&lt;br /&gt;
&lt;br /&gt;
== Program 2: postupné rozsvietenie displeja ==&lt;br /&gt;
&lt;br /&gt;
Každá LED na displeji má svoje &#039;&#039;&#039;súradnice&#039;&#039;&#039; &#039;&#039;(x, y)&#039;&#039;. Súradnica &#039;&#039;x&#039;&#039; je číslo stĺpca zľava doprava, &#039;&#039;y&#039;&#039; číslo riadku zhora nadol, obe od 0 po 4. Ľavá horná LED má teda súradnice (0, 0), pravá dolná (4, 4). Blok &#039;&#039;&#039;plot x y&#039;&#039;&#039; z kategórie &#039;&#039;&#039;Led&#039;&#039;&#039; rozsvieti jednu LED, blok &#039;&#039;&#039;unplot x y&#039;&#039;&#039; ju zhasne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz04b.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz04bRun.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
for (let y = 0; y &amp;lt;= 4; y++) {&lt;br /&gt;
    for (let x = 0; x &amp;lt;= 4; x++) {&lt;br /&gt;
        led.plot(x, y)&lt;br /&gt;
        basic.pause(100)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for y in range(5):&lt;br /&gt;
    for x in range(5):&lt;br /&gt;
        led.plot(x, y)&lt;br /&gt;
        basic.pause(100)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ako to funguje ===&lt;br /&gt;
Tu sú dva cykly &#039;&#039;&#039;vnorené&#039;&#039;&#039; do seba. Vonkajší cyklus prechádza riadky (&#039;&#039;y&#039;&#039; = 0 až 4). Pri &#039;&#039;&#039;každom&#039;&#039;&#039; jeho opakovaní prebehne celý vnútorný cyklus, ktorý prejde všetky stĺpce daného riadku (&#039;&#039;x&#039;&#039; = 0 až 4). Telo vnútorného cyklu sa teda vykoná 5 × 5 = 25-krát, raz pre každú LED. Displej sa zapĺňa ako text v knihe: riadok po riadku, v každom riadku zľava doprava.&lt;br /&gt;
&lt;br /&gt;
Riadiace premenné sme tu premenovali na &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, lebo tieto mená presne vyjadrujú ich význam. V bloku &#039;&#039;for&#039;&#039; stačí kliknúť na meno premennej a zvoliť &#039;&#039;New variable...&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;O jedno opakovanie viac alebo menej&#039;&#039;&#039; – najčastejšia chyba pri cykloch vôbec (anglicky &#039;&#039;off-by-one error&#039;&#039;). Pri každom cykle si overte, aká je prvá a posledná hodnota riadiacej premennej.&lt;br /&gt;
* &#039;&#039;&#039;Príkaz vo vnútri namiesto za cyklom&#039;&#039;&#039; (alebo naopak). V blokoch skontrolujte, do ktorých „čeľustí“ blok patrí, v Pythone odsadenie.&lt;br /&gt;
* &#039;&#039;&#039;Súradnice mimo rozsahu.&#039;&#039;&#039; LED s x = 5 neexistuje, príkaz sa jednoducho nevykoná a neohlási chybu.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Upravte odpočítavanie tak, aby počítalo od 5 po 1 a potom zobrazilo text „START“.&lt;br /&gt;
# Pomocou bloku &#039;&#039;repeat&#039;&#039; nechajte srdce trikrát zablikať a potom zobrazte smajlíka.&lt;br /&gt;
# Upravte program 2 tak, aby sa displej plnil po stĺpcoch zhora nadol (stačí vymeniť poradie cyklov). Potom pridajte ďalšiu dvojicu cyklov s blokom &#039;&#039;unplot&#039;&#039;, ktorá displej postupne zhasne.&lt;br /&gt;
# Nakreslite na displej uhlopriečku z ľavého horného do pravého dolného rohu &#039;&#039;&#039;jedným&#039;&#039;&#039; cyklom. Pomôcka: aký vzťah majú súradnice x a y pre LED na uhlopriečke?&lt;br /&gt;
# Naprogramujte „bežiace svetielko“: jedna LED v strednom riadku sa presúva zľava doprava (rozsvietiť – počkať – zhasnúť – posunúť).&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/03 Premenná|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/05 Cyklus while|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz04a.png&amp;diff=19691</id>
		<title>Súbor:Microbit-Kurz04a.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz04a.png&amp;diff=19691"/>
		<updated>2026-09-28T09:22:38Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/04_Cyklus_for&amp;diff=19690</id>
		<title>Rýchlokurz micro:bit/04 Cyklus for</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/04_Cyklus_for&amp;diff=19690"/>
		<updated>2026-09-28T09:21:40Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/04 Cyklus for --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  == Čo sa naučíte == * opakovať príkazy &amp;#039;&amp;#039;&amp;#039;presne daný počet krát&amp;#039;&amp;#039;&amp;#039;, * používať &amp;#039;&amp;#039;&amp;#039;riadiacu premennú&amp;#039;&amp;#039;&amp;#039; cyklu, * rozsvietiť ľubovoľnú LED podľa súradníc, * vložiť jeden cyklus do druhého (vnorené cy…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/04 Cyklus for --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/03 Premenná|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/05 Cyklus while|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* opakovať príkazy &#039;&#039;&#039;presne daný počet krát&#039;&#039;&#039;,&lt;br /&gt;
* používať &#039;&#039;&#039;riadiacu premennú&#039;&#039;&#039; cyklu,&lt;br /&gt;
* rozsvietiť ľubovoľnú LED podľa súradníc,&lt;br /&gt;
* vložiť jeden cyklus do druhého (vnorené cykly).&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: cyklus s počítadlom ==&lt;br /&gt;
&lt;br /&gt;
Cyklus &#039;&#039;forever&#039;&#039; opakuje príkazy donekonečna. Často však potrebujeme niečo zopakovať &#039;&#039;&#039;presne N-krát&#039;&#039;&#039;, napr. trikrát zablikať alebo odpočítať od 9 po 0. Na to slúži cyklus &#039;&#039;&#039;for&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Cyklus for má &#039;&#039;&#039;riadiacu premennú&#039;&#039;&#039; (v MakeCode sa predvolene volá &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt;), ktorá funguje ako počítadlo. Pred prvým opakovaním má počiatočnú hodnotu a po každom opakovaní sa zvýši o 1. Keď prekročí koncovú hodnotu, cyklus skončí a program pokračuje príkazom, ktorý nasleduje &#039;&#039;&#039;za&#039;&#039;&#039; cyklom. V tele cyklu sa dá riadiaca premenná čítať, takže každé opakovanie môže urobiť niečo trochu iné.&lt;br /&gt;
&lt;br /&gt;
Cyklus for poznajú všetky bežné jazyky, líši sa len zápisom:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bloky !! JavaScript !! Python !! Hodnoty premennej index&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;for index from 0 to 4&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt;= 4; index++)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for index in range(5):&amp;lt;/code&amp;gt; || 0, 1, 2, 3, 4&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeat 4 times&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt; 4; index++)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;for index in range(4):&amp;lt;/code&amp;gt; || 0, 1, 2, 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #d9a; background:#fff0f4; padding:0.5em 1em; margin:1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Pozor na hranice.&#039;&#039;&#039; Blok &#039;&#039;for index from 0 to 4&#039;&#039; vykoná telo &#039;&#039;&#039;päťkrát&#039;&#039;&#039; (0, 1, 2, 3, 4), koncová hodnota sa teda ešte vykoná. V JavaScripte to vyjadruje podmienka &amp;lt;code&amp;gt;index &amp;lt;= 4&amp;lt;/code&amp;gt; („kým je index menší alebo rovný 4“). V Pythone &amp;lt;code&amp;gt;range(5)&amp;lt;/code&amp;gt; znamená „čísla od 0 po 5, ale &#039;&#039;&#039;bez&#039;&#039;&#039; 5“. Programátori v praxi takmer vždy počítajú od nuly, preto si na to zvyknite hneď.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JavaScriptový zápis &amp;lt;code&amp;gt;for (let index = 0; index &amp;lt;= 4; index++)&amp;lt;/code&amp;gt; má tri časti oddelené bodkočiarkami: &#039;&#039;počiatočné nastavenie&#039;&#039; (&amp;lt;code&amp;gt;let index = 0&amp;lt;/code&amp;gt;), &#039;&#039;podmienka pokračovania&#039;&#039; (&amp;lt;code&amp;gt;index &amp;lt;= 4&amp;lt;/code&amp;gt;) a &#039;&#039;krok&#039;&#039; (&amp;lt;code&amp;gt;index++&amp;lt;/code&amp;gt; je skratka pre &amp;lt;code&amp;gt;index = index + 1&amp;lt;/code&amp;gt;). Rovnaký zápis používa aj jazyk C, s ktorým sa stretnete v ďalších predmetoch.&lt;br /&gt;
&lt;br /&gt;
== Program 1: odpočítavanie ==&lt;br /&gt;
&lt;br /&gt;
Bloky cyklov sú v kategórii &#039;&#039;&#039;Loops&#039;&#039;&#039;, matematické operácie v kategórii &#039;&#039;&#039;Math&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz04a.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz04aRun.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
for (let index = 0; index &amp;lt;= 9; index++) {&lt;br /&gt;
    basic.showNumber(9 - index)&lt;br /&gt;
    basic.pause(500)&lt;br /&gt;
}&lt;br /&gt;
basic.showIcon(IconNames.Yes)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for index in range(10):&lt;br /&gt;
    basic.show_number(9 - index)&lt;br /&gt;
    basic.pause(500)&lt;br /&gt;
basic.show_icon(IconNames.YES)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ako to funguje ===&lt;br /&gt;
Riadiaca premenná &amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; postupne nadobúda hodnoty 0, 1, 2, … 9. Zobrazujeme však výraz &amp;lt;code&amp;gt;9 - index&amp;lt;/code&amp;gt;, teda 9, 8, 7, … 0. Týmto jednoduchým trikom dostaneme odpočítavanie, hoci index stúpa. Po desiatom opakovaní cyklus skončí a vykoná sa príkaz za ním: zobrazí sa fajka.&lt;br /&gt;
&lt;br /&gt;
Všimnite si, že fajka sa zobrazí &#039;&#039;&#039;len raz&#039;&#039;&#039;: príkaz &amp;lt;code&amp;gt;showIcon&amp;lt;/code&amp;gt; nie je odsadený, teda nie je súčasťou tela cyklu.&lt;br /&gt;
&lt;br /&gt;
== Program 2: postupné rozsvietenie displeja ==&lt;br /&gt;
&lt;br /&gt;
Každá LED na displeji má svoje &#039;&#039;&#039;súradnice&#039;&#039;&#039; &#039;&#039;(x, y)&#039;&#039;. Súradnica &#039;&#039;x&#039;&#039; je číslo stĺpca zľava doprava, &#039;&#039;y&#039;&#039; číslo riadku zhora nadol, obe od 0 po 4. Ľavá horná LED má teda súradnice (0, 0), pravá dolná (4, 4). Blok &#039;&#039;&#039;plot x y&#039;&#039;&#039; z kategórie &#039;&#039;&#039;Led&#039;&#039;&#039; rozsvieti jednu LED, blok &#039;&#039;&#039;unplot x y&#039;&#039;&#039; ju zhasne.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz04b.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz04bRun.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
for (let y = 0; y &amp;lt;= 4; y++) {&lt;br /&gt;
    for (let x = 0; x &amp;lt;= 4; x++) {&lt;br /&gt;
        led.plot(x, y)&lt;br /&gt;
        basic.pause(100)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for y in range(5):&lt;br /&gt;
    for x in range(5):&lt;br /&gt;
        led.plot(x, y)&lt;br /&gt;
        basic.pause(100)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ako to funguje ===&lt;br /&gt;
Tu sú dva cykly &#039;&#039;&#039;vnorené&#039;&#039;&#039; do seba. Vonkajší cyklus prechádza riadky (&#039;&#039;y&#039;&#039; = 0 až 4). Pri &#039;&#039;&#039;každom&#039;&#039;&#039; jeho opakovaní prebehne celý vnútorný cyklus, ktorý prejde všetky stĺpce daného riadku (&#039;&#039;x&#039;&#039; = 0 až 4). Telo vnútorného cyklu sa teda vykoná 5 × 5 = 25-krát, raz pre každú LED. Displej sa zapĺňa ako text v knihe: riadok po riadku, v každom riadku zľava doprava.&lt;br /&gt;
&lt;br /&gt;
Riadiace premenné sme tu premenovali na &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, lebo tieto mená presne vyjadrujú ich význam. V bloku &#039;&#039;for&#039;&#039; stačí kliknúť na meno premennej a zvoliť &#039;&#039;New variable...&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;O jedno opakovanie viac alebo menej&#039;&#039;&#039; – najčastejšia chyba pri cykloch vôbec (anglicky &#039;&#039;off-by-one error&#039;&#039;). Pri každom cykle si overte, aká je prvá a posledná hodnota riadiacej premennej.&lt;br /&gt;
* &#039;&#039;&#039;Príkaz vo vnútri namiesto za cyklom&#039;&#039;&#039; (alebo naopak). V blokoch skontrolujte, do ktorých „čeľustí“ blok patrí, v Pythone odsadenie.&lt;br /&gt;
* &#039;&#039;&#039;Súradnice mimo rozsahu.&#039;&#039;&#039; LED s x = 5 neexistuje, príkaz sa jednoducho nevykoná a neohlási chybu.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Upravte odpočítavanie tak, aby počítalo od 5 po 1 a potom zobrazilo text „START“.&lt;br /&gt;
# Pomocou bloku &#039;&#039;repeat&#039;&#039; nechajte srdce trikrát zablikať a potom zobrazte smajlíka.&lt;br /&gt;
# Upravte program 2 tak, aby sa displej plnil po stĺpcoch zhora nadol (stačí vymeniť poradie cyklov). Potom pridajte ďalšiu dvojicu cyklov s blokom &#039;&#039;unplot&#039;&#039;, ktorá displej postupne zhasne.&lt;br /&gt;
# Nakreslite na displej uhlopriečku z ľavého horného do pravého dolného rohu &#039;&#039;&#039;jedným&#039;&#039;&#039; cyklom. Pomôcka: aký vzťah majú súradnice x a y pre LED na uhlopriečke?&lt;br /&gt;
# Naprogramujte „bežiace svetielko“: jedna LED v strednom riadku sa presúva zľava doprava (rozsvietiť – počkať – zhasnúť – posunúť).&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/03 Premenná|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/05 Cyklus while|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/03_Premenn%C3%A1&amp;diff=19689</id>
		<title>Rýchlokurz micro:bit/03 Premenná</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/03_Premenn%C3%A1&amp;diff=19689"/>
		<updated>2026-09-28T09:20:56Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Program: srdce s nastaviteľnou rýchlosťou */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/03 Premenná --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/02 Animácia|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/04 Cyklus for|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* čo je premenná a na čo slúži,&lt;br /&gt;
* vytvoriť premennú, nastaviť jej hodnotu a použiť ju,&lt;br /&gt;
* ako premenné správne pomenovať.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: premenná ==&lt;br /&gt;
&lt;br /&gt;
Predstavte si, že máte animáciu s desiatimi obrázkami a medzi každými dvoma je pauza 200 ms. Keď chcete animáciu zrýchliť, musíte číslo prepísať na desiatich miestach, a ľahko na niektoré zabudnete. Riešením je uložiť hodnotu na jedno miesto, pomenovať ho a všade používať už len toto meno.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Premenná&#039;&#039;&#039; je pomenované miesto v pamäti, do ktorého si program uloží hodnotu. Môžete si ju predstaviť ako škatuľku s menovkou: na menovke je meno (napr. &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt;) a vnútri je hodnota (napr. &amp;lt;code&amp;gt;200&amp;lt;/code&amp;gt;). S premennou sa robia dve základné veci:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;priradenie&#039;&#039;&#039; – vloženie novej hodnoty do škatuľky (pôvodná hodnota sa tým stratí),&lt;br /&gt;
* &#039;&#039;&#039;čítanie&#039;&#039;&#039; – použitie hodnoty, ktorá je v škatuľke práve uložená.&lt;br /&gt;
&lt;br /&gt;
V textových jazykoch sa priradenie zapisuje znakom &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. Pozor, &#039;&#039;&#039;nie je to matematická rovnosť&#039;&#039;&#039;, ale príkaz „ulož hodnotu sprava do premennej vľavo“. Preto je úplne v poriadku zápis &amp;lt;code&amp;gt;x = x + 1&amp;lt;/code&amp;gt;, ktorý v matematike nedáva zmysel. Pre počítač znamená: „vezmi hodnotu x, pripočítaj k nej 1 a výsledok ulož späť do x“.&lt;br /&gt;
&lt;br /&gt;
Premenná môže obsahovať rôzne &#039;&#039;&#039;typy&#039;&#039;&#039; hodnôt, najčastejšie &#039;&#039;&#039;číslo&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; alebo &#039;&#039;&#039;logickú hodnotu&#039;&#039;&#039; (pravda/nepravda, anglicky &#039;&#039;true/false&#039;&#039;). Typ určuje, čo sa s hodnotou dá robiť: čísla sa dajú sčítať, texty spájať. Napríklad &amp;lt;code&amp;gt;1 + 2&amp;lt;/code&amp;gt; dá číslo 3, ale &amp;lt;code&amp;gt;&amp;quot;1&amp;quot; + &amp;quot;2&amp;quot;&amp;lt;/code&amp;gt; dá text &amp;lt;code&amp;gt;&amp;quot;12&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Program: srdce s nastaviteľnou rýchlosťou ==&lt;br /&gt;
&lt;br /&gt;
Premennú vytvoríte v kategórii &#039;&#039;&#039;Variables&#039;&#039;&#039; tlačidlom &#039;&#039;Make a Variable...&#039;&#039;. Potom sa v palete objavia bloky &#039;&#039;&#039;set &#039;&#039;rychlost&#039;&#039; to&#039;&#039;&#039; (priradenie), &#039;&#039;&#039;change &#039;&#039;rychlost&#039;&#039; by&#039;&#039;&#039; (zmena o hodnotu) a samotná premenná ako oválny blok, ktorý môžete vložiť všade tam, kde sa očakáva číslo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz03.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let rychlost = 200&lt;br /&gt;
basic.forever(function () {&lt;br /&gt;
    basic.showIcon(IconNames.Heart)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
    basic.showIcon(IconNames.SmallHeart)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
rychlost = 200&lt;br /&gt;
&lt;br /&gt;
def on_forever():&lt;br /&gt;
    basic.show_icon(IconNames.HEART)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
    basic.show_icon(IconNames.SMALL_HEART)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
basic.forever(on_forever)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
V časti &#039;&#039;on start&#039;&#039; sa vytvorí premenná &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt; a priradí sa do nej hodnota 200. V JavaScripte sa nová premenná &#039;&#039;&#039;deklaruje&#039;&#039;&#039; (ohlási) slovom &amp;lt;code&amp;gt;let&amp;lt;/code&amp;gt;. Python žiadne také slovo nepotrebuje, premenná vznikne pri prvom priradení.&lt;br /&gt;
&lt;br /&gt;
V tele cyklu sa na dvoch miestach namiesto čísla používa meno premennej. Počítač si pri každom vykonaní príkazu &amp;lt;code&amp;gt;pause(rychlost)&amp;lt;/code&amp;gt; pozrie, aká hodnota je v premennej práve uložená, a počká tak dlho. Keď teraz zmeníte jediné číslo v prvom riadku, zmení sa rýchlosť celej animácie.&lt;br /&gt;
&lt;br /&gt;
Premenná sa volá &#039;&#039;premenná&#039;&#039; preto, že jej hodnota sa počas behu programu môže &#039;&#039;&#039;meniť&#039;&#039;&#039;. Blok &#039;&#039;change rychlost by 50&#039;&#039; v textovom zápise vyzerá takto:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! JavaScript !! Python !! Význam&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rychlost += 50&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;rychlost += 50&amp;lt;/code&amp;gt; || skrátený zápis &amp;lt;code&amp;gt;rychlost = rychlost + 50&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pravidlá pre mená premenných ==&lt;br /&gt;
* Meno sa skladá z písmen bez diakritiky, číslic a podčiarkovníka &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;. Nesmie obsahovať medzeru a nesmie začínať číslicou.&lt;br /&gt;
* Veľké a malé písmená sa rozlišujú: &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;Rychlost&amp;lt;/code&amp;gt; sú dve rôzne premenné.&lt;br /&gt;
* Meno má vyjadrovať, &#039;&#039;&#039;čo&#039;&#039;&#039; premenná obsahuje: &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pocetBodov&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;teplota&amp;lt;/code&amp;gt; sú dobré mená, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;premenna&amp;lt;/code&amp;gt; zlé. Program čítate častejšie, ako ho píšete, a o mesiac si už nebudete pamätať, čo znamenalo &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Mená zložené z viacerých slov sa v JavaScripte zvyčajne píšu ako &amp;lt;code&amp;gt;pocetBodov&amp;lt;/code&amp;gt;, v Pythone ako &amp;lt;code&amp;gt;pocet_bodov&amp;lt;/code&amp;gt;. MakeCode však pri prekladoch necháva meno rovnaké.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Premenná sa nastavuje vo &#039;&#039;forever&#039;&#039; namiesto v &#039;&#039;on start&#039;&#039;.&#039;&#039;&#039; Ak by ste v úlohe 2 napísali &#039;&#039;set rychlost to 200&#039;&#039; na začiatok tela cyklu, pri každom opakovaní by sa hodnota vrátila na 200 a zmena by sa nikdy neprejavila.&lt;br /&gt;
* &#039;&#039;&#039;Preklep v mene.&#039;&#039;&#039; V textových jazykoch vznikne chyba, v blokoch sa to nestane, lebo premennú vyberáte zo zoznamu.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Zmeňte počiatočnú hodnotu premennej a overte, že sa zmenila rýchlosť celej animácie.&lt;br /&gt;
# Na koniec tela cyklu pridajte blok &#039;&#039;change rychlost by 50&#039;&#039;. Popíšte, čo sa bude diať s animáciou. Čo sa stane po dlhšom čase?&lt;br /&gt;
# Pridajte do tela cyklu príkaz &amp;lt;code&amp;gt;show number&amp;lt;/code&amp;gt;, ktorý zobrazí aktuálnu hodnotu premennej &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt;. Takto si môžete kedykoľvek overiť, čo je v premennej uložené. Je to jeden zo základných spôsobov hľadania chýb v programe.&lt;br /&gt;
# Vytvorte druhú premennú (napr. &amp;lt;code&amp;gt;dlzkaSvietenia&amp;lt;/code&amp;gt;) a použite ju tak, aby veľké srdce svietilo inak dlho ako malé.&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/02 Animácia|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/04 Cyklus for|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz03.png&amp;diff=19688</id>
		<title>Súbor:Microbit-Kurz03.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Microbit-Kurz03.png&amp;diff=19688"/>
		<updated>2026-09-28T09:20:38Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/03_Premenn%C3%A1&amp;diff=19687</id>
		<title>Rýchlokurz micro:bit/03 Premenná</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/03_Premenn%C3%A1&amp;diff=19687"/>
		<updated>2026-09-28T09:17:08Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/03 Premenná --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  == Čo sa naučíte == * čo je premenná a na čo slúži, * vytvoriť premennú, nastaviť jej hodnotu a použiť ju, * ako premenné správne pomenovať.  == Vysvetlenie: premenná ==  Predstavte si, že máte animáciu s…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/03 Premenná --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/02 Animácia|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/04 Cyklus for|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* čo je premenná a na čo slúži,&lt;br /&gt;
* vytvoriť premennú, nastaviť jej hodnotu a použiť ju,&lt;br /&gt;
* ako premenné správne pomenovať.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: premenná ==&lt;br /&gt;
&lt;br /&gt;
Predstavte si, že máte animáciu s desiatimi obrázkami a medzi každými dvoma je pauza 200 ms. Keď chcete animáciu zrýchliť, musíte číslo prepísať na desiatich miestach, a ľahko na niektoré zabudnete. Riešením je uložiť hodnotu na jedno miesto, pomenovať ho a všade používať už len toto meno.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Premenná&#039;&#039;&#039; je pomenované miesto v pamäti, do ktorého si program uloží hodnotu. Môžete si ju predstaviť ako škatuľku s menovkou: na menovke je meno (napr. &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt;) a vnútri je hodnota (napr. &amp;lt;code&amp;gt;200&amp;lt;/code&amp;gt;). S premennou sa robia dve základné veci:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;priradenie&#039;&#039;&#039; – vloženie novej hodnoty do škatuľky (pôvodná hodnota sa tým stratí),&lt;br /&gt;
* &#039;&#039;&#039;čítanie&#039;&#039;&#039; – použitie hodnoty, ktorá je v škatuľke práve uložená.&lt;br /&gt;
&lt;br /&gt;
V textových jazykoch sa priradenie zapisuje znakom &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. Pozor, &#039;&#039;&#039;nie je to matematická rovnosť&#039;&#039;&#039;, ale príkaz „ulož hodnotu sprava do premennej vľavo“. Preto je úplne v poriadku zápis &amp;lt;code&amp;gt;x = x + 1&amp;lt;/code&amp;gt;, ktorý v matematike nedáva zmysel. Pre počítač znamená: „vezmi hodnotu x, pripočítaj k nej 1 a výsledok ulož späť do x“.&lt;br /&gt;
&lt;br /&gt;
Premenná môže obsahovať rôzne &#039;&#039;&#039;typy&#039;&#039;&#039; hodnôt, najčastejšie &#039;&#039;&#039;číslo&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; alebo &#039;&#039;&#039;logickú hodnotu&#039;&#039;&#039; (pravda/nepravda, anglicky &#039;&#039;true/false&#039;&#039;). Typ určuje, čo sa s hodnotou dá robiť: čísla sa dajú sčítať, texty spájať. Napríklad &amp;lt;code&amp;gt;1 + 2&amp;lt;/code&amp;gt; dá číslo 3, ale &amp;lt;code&amp;gt;&amp;quot;1&amp;quot; + &amp;quot;2&amp;quot;&amp;lt;/code&amp;gt; dá text &amp;lt;code&amp;gt;&amp;quot;12&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Program: srdce s nastaviteľnou rýchlosťou ==&lt;br /&gt;
&lt;br /&gt;
Premennú vytvoríte v kategórii &#039;&#039;&#039;Variables&#039;&#039;&#039; tlačidlom &#039;&#039;Make a Variable...&#039;&#039;. Potom sa v palete objavia bloky &#039;&#039;&#039;set &#039;&#039;rychlost&#039;&#039; to&#039;&#039;&#039; (priradenie), &#039;&#039;&#039;change &#039;&#039;rychlost&#039;&#039; by&#039;&#039;&#039; (zmena o hodnotu) a samotná premenná ako oválny blok, ktorý môžete vložiť všade tam, kde sa očakáva číslo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz03.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz03Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let rychlost = 200&lt;br /&gt;
basic.forever(function () {&lt;br /&gt;
    basic.showIcon(IconNames.Heart)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
    basic.showIcon(IconNames.SmallHeart)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
rychlost = 200&lt;br /&gt;
&lt;br /&gt;
def on_forever():&lt;br /&gt;
    basic.show_icon(IconNames.HEART)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
    basic.show_icon(IconNames.SMALL_HEART)&lt;br /&gt;
    basic.pause(rychlost)&lt;br /&gt;
basic.forever(on_forever)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
V časti &#039;&#039;on start&#039;&#039; sa vytvorí premenná &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt; a priradí sa do nej hodnota 200. V JavaScripte sa nová premenná &#039;&#039;&#039;deklaruje&#039;&#039;&#039; (ohlási) slovom &amp;lt;code&amp;gt;let&amp;lt;/code&amp;gt;. Python žiadne také slovo nepotrebuje, premenná vznikne pri prvom priradení.&lt;br /&gt;
&lt;br /&gt;
V tele cyklu sa na dvoch miestach namiesto čísla používa meno premennej. Počítač si pri každom vykonaní príkazu &amp;lt;code&amp;gt;pause(rychlost)&amp;lt;/code&amp;gt; pozrie, aká hodnota je v premennej práve uložená, a počká tak dlho. Keď teraz zmeníte jediné číslo v prvom riadku, zmení sa rýchlosť celej animácie.&lt;br /&gt;
&lt;br /&gt;
Premenná sa volá &#039;&#039;premenná&#039;&#039; preto, že jej hodnota sa počas behu programu môže &#039;&#039;&#039;meniť&#039;&#039;&#039;. Blok &#039;&#039;change rychlost by 50&#039;&#039; v textovom zápise vyzerá takto:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! JavaScript !! Python !! Význam&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rychlost += 50&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;rychlost += 50&amp;lt;/code&amp;gt; || skrátený zápis &amp;lt;code&amp;gt;rychlost = rychlost + 50&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pravidlá pre mená premenných ==&lt;br /&gt;
* Meno sa skladá z písmen bez diakritiky, číslic a podčiarkovníka &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;. Nesmie obsahovať medzeru a nesmie začínať číslicou.&lt;br /&gt;
* Veľké a malé písmená sa rozlišujú: &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;Rychlost&amp;lt;/code&amp;gt; sú dve rôzne premenné.&lt;br /&gt;
* Meno má vyjadrovať, &#039;&#039;&#039;čo&#039;&#039;&#039; premenná obsahuje: &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pocetBodov&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;teplota&amp;lt;/code&amp;gt; sú dobré mená, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;premenna&amp;lt;/code&amp;gt; zlé. Program čítate častejšie, ako ho píšete, a o mesiac si už nebudete pamätať, čo znamenalo &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Mená zložené z viacerých slov sa v JavaScripte zvyčajne píšu ako &amp;lt;code&amp;gt;pocetBodov&amp;lt;/code&amp;gt;, v Pythone ako &amp;lt;code&amp;gt;pocet_bodov&amp;lt;/code&amp;gt;. MakeCode však pri prekladoch necháva meno rovnaké.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Premenná sa nastavuje vo &#039;&#039;forever&#039;&#039; namiesto v &#039;&#039;on start&#039;&#039;.&#039;&#039;&#039; Ak by ste v úlohe 2 napísali &#039;&#039;set rychlost to 200&#039;&#039; na začiatok tela cyklu, pri každom opakovaní by sa hodnota vrátila na 200 a zmena by sa nikdy neprejavila.&lt;br /&gt;
* &#039;&#039;&#039;Preklep v mene.&#039;&#039;&#039; V textových jazykoch vznikne chyba, v blokoch sa to nestane, lebo premennú vyberáte zo zoznamu.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Zmeňte počiatočnú hodnotu premennej a overte, že sa zmenila rýchlosť celej animácie.&lt;br /&gt;
# Na koniec tela cyklu pridajte blok &#039;&#039;change rychlost by 50&#039;&#039;. Popíšte, čo sa bude diať s animáciou. Čo sa stane po dlhšom čase?&lt;br /&gt;
# Pridajte do tela cyklu príkaz &amp;lt;code&amp;gt;show number&amp;lt;/code&amp;gt;, ktorý zobrazí aktuálnu hodnotu premennej &amp;lt;code&amp;gt;rychlost&amp;lt;/code&amp;gt;. Takto si môžete kedykoľvek overiť, čo je v premennej uložené. Je to jeden zo základných spôsobov hľadania chýb v programe.&lt;br /&gt;
# Vytvorte druhú premennú (napr. &amp;lt;code&amp;gt;dlzkaSvietenia&amp;lt;/code&amp;gt;) a použite ju tak, aby veľké srdce svietilo inak dlho ako malé.&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/02 Animácia|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/04 Cyklus for|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/02_Anim%C3%A1cia&amp;diff=19686</id>
		<title>Rýchlokurz micro:bit/02 Animácia</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/02_Anim%C3%A1cia&amp;diff=19686"/>
		<updated>2026-09-28T07:24:41Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/02 Animácia --&amp;gt; ← Predchádzajúca lekcia | &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  == Čo sa naučíte == * nakresliť vlastný obrázok, * vytvoriť animáciu zo striedajúcich sa obrázkov, * čo je &amp;#039;&amp;#039;&amp;#039;nekonečný cyklus&amp;#039;&amp;#039;&amp;#039; a prečo ho majú takmer všetky programy pre mikrokontroléry.  == Vysvet…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/02 Animácia --&amp;gt;&lt;br /&gt;
[[Rýchlokurz micro:bit/01 Výpis na displej|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/03 Premenná|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* nakresliť vlastný obrázok,&lt;br /&gt;
* vytvoriť animáciu zo striedajúcich sa obrázkov,&lt;br /&gt;
* čo je &#039;&#039;&#039;nekonečný cyklus&#039;&#039;&#039; a prečo ho majú takmer všetky programy pre mikrokontroléry.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: cyklus ==&lt;br /&gt;
&lt;br /&gt;
Animácia je rýchle striedanie obrázkov, presne ako vo filme. Keby sme chceli, aby smajlík žmurkal stále dookola, museli by sme príkazy &#039;&#039;zobraz – počkaj – zobraz – počkaj&#039;&#039; napísať nekonečne veľakrát. Namiesto toho použijeme &#039;&#039;&#039;cyklus&#039;&#039;&#039; (anglicky &#039;&#039;loop&#039;&#039;): konštrukciu, ktorá opakuje skupinu príkazov. Príkazy vnútri cyklu sa nazývajú &#039;&#039;&#039;telo cyklu&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Blok &#039;&#039;&#039;forever&#039;&#039;&#039; je &#039;&#039;&#039;nekonečný cyklus&#039;&#039;&#039;: jeho telo sa vykoná, a keď program príde na koniec, pokračuje znova od začiatku tela, a tak stále dookola, kým micro:bit nevypnete.&lt;br /&gt;
&lt;br /&gt;
Na počítači program po skončení práce skončí a vráti riadenie operačnému systému. Mikrokontrolér však žiadny operačný systém, ktorému by mohol „vrátiť slovo“, nemá. Jeho úlohou je väčšinou nepretržite niečo sledovať a riadiť, napr. merať teplotu a zapínať kúrenie. Preto majú takmer všetky programy pre mikrokontroléry rovnakú stavbu:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;príprava&#039;&#039;&#039; – vykoná sa raz po zapnutí (blok &#039;&#039;on start&#039;&#039;),&lt;br /&gt;
# &#039;&#039;&#039;hlavná slučka&#039;&#039;&#039; – opakuje sa donekonečna (blok &#039;&#039;forever&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Túto stavbu uvidíte aj v iných systémoch, napr. v prostredí Arduino sa tieto dve časti volajú &amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;loop()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Program: žmurkajúci smajlík ==&lt;br /&gt;
&lt;br /&gt;
Otvorený smajlík je medzi hotovými ikonami, ale žmurkajúci nie. Ten si nakreslíme sami pomocou bloku &#039;&#039;&#039;show leds&#039;&#039;&#039; (kategória &#039;&#039;Basic&#039;&#039;), v ktorom klikaním rozsvecujete a zhasínate jednotlivé LED.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz02.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz02Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
basic.forever(function () {&lt;br /&gt;
    basic.showIcon(IconNames.Happy)&lt;br /&gt;
    basic.pause(1000)&lt;br /&gt;
    basic.showLeds(`&lt;br /&gt;
        . . . . .&lt;br /&gt;
        . # . . .&lt;br /&gt;
        . . . . .&lt;br /&gt;
        # . . . #&lt;br /&gt;
        . # # # .&lt;br /&gt;
        `)&lt;br /&gt;
    basic.pause(200)&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def on_forever():&lt;br /&gt;
    basic.show_icon(IconNames.HAPPY)&lt;br /&gt;
    basic.pause(1000)&lt;br /&gt;
    basic.show_leds(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
        . . . . .&lt;br /&gt;
        . # . . .&lt;br /&gt;
        . . . . .&lt;br /&gt;
        # . . . #&lt;br /&gt;
        . # # # .&lt;br /&gt;
        &amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
    basic.pause(200)&lt;br /&gt;
basic.forever(on_forever)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
Vlastný obrázok sa v textovom zápise kreslí priamo znakmi: &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; znamená rozsvietenú LED, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; zhasnutú. Päť riadkov po päť znakov presne zodpovedá displeju.&lt;br /&gt;
&lt;br /&gt;
Smajlík svieti 1 sekundu s otvorenými očami a 0,2 sekundy žmurká. Potom sa telo cyklu začne znova. Skutočné časy sú o niečo dlhšie, pretože bloky &#039;&#039;show icon&#039;&#039; a &#039;&#039;show leds&#039;&#039; samy po zobrazení chvíľu počkajú (približne 0,4 – 0,6 s). Na presné časovanie sa preto nespoliehajte.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Odsadenie&#039;&#039;&#039; (medzery na začiatku riadkov) ukazuje, ktoré príkazy patria do tela cyklu. V JavaScripte je telo navyše uzavreté v zložených zátvorkách &amp;lt;code&amp;gt;{ }&amp;lt;/code&amp;gt; a odsadenie slúži len na lepšiu čitateľnosť. V Pythone zátvorky nie sú a &#039;&#039;&#039;odsadenie je povinné&#039;&#039;&#039;: práve ono určuje, čo je vnútri cyklu. V blokoch to isté vyjadruje to, že bloky sú vložené do „čeľustí“ bloku &#039;&#039;forever&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Možno vás zarazí, že v Pythone je &amp;lt;code&amp;gt;def on_forever():&amp;lt;/code&amp;gt; a v JavaScripte &amp;lt;code&amp;gt;function ()&amp;lt;/code&amp;gt;. Takto sa zapisuje &#039;&#039;&#039;funkcia&#039;&#039;&#039;, teda pomenovaná skupina príkazov, ktorá sa vykoná neskôr. Posledný riadok &amp;lt;code&amp;gt;basic.forever(on_forever)&amp;lt;/code&amp;gt; hovorí: „túto skupinu príkazov opakuj stále dookola“. Funkciám sa budeme podrobnejšie venovať v lekcii o tlačidlách. Zatiaľ stačí vedieť, že celý obsah funkcie tvorí telo cyklu.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Chýbajúca pauza.&#039;&#039;&#039; Bez pauzy sa obrázky striedajú tak rýchlo, že ich oko nerozlíši.&lt;br /&gt;
* &#039;&#039;&#039;Program je v &#039;&#039;on start&#039;&#039; namiesto vo &#039;&#039;forever&#039;&#039;.&#039;&#039;&#039; Animácia potom prebehne len raz.&lt;br /&gt;
* &#039;&#039;&#039;Zlé odsadenie v Pythone.&#039;&#039;&#039; Príkaz, ktorý nie je odsadený, už nepatrí do tela cyklu.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Zmeňte časy tak, aby smajlík žmurkal pomaly a „ospalo“.&lt;br /&gt;
# Nakreslite animáciu tlčúceho srdca: striedajte ikony &#039;&#039;Heart&#039;&#039; a &#039;&#039;Small Heart&#039;&#039;.&lt;br /&gt;
# Vytvorte animáciu aspoň zo štyroch vlastných obrázkov, napr. otáčajúcu sa čiaru ( | / — \ ) alebo panáčika, ktorý máva.&lt;br /&gt;
# Do bloku &#039;&#039;on start&#039;&#039; pridajte príkaz, ktorý pred začiatkom animácie raz zobrazí text „START“. Uvedomte si, prečo sa zobrazí len raz.&lt;br /&gt;
&lt;br /&gt;
[[Rýchlokurz micro:bit/01 Výpis na displej|← Predchádzajúca lekcia]] | &#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/03 Premenná|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/01_V%C3%BDpis_na_displej&amp;diff=19685</id>
		<title>Rýchlokurz micro:bit/01 Výpis na displej</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit/01_V%C3%BDpis_na_displej&amp;diff=19685"/>
		<updated>2026-09-28T07:24:12Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/01 Výpis na displej --&amp;gt; &amp;#039;&amp;#039;&amp;#039;⌂ Obsah kurzu&amp;#039;&amp;#039;&amp;#039; | Nasledujúca lekcia →  == Čo sa naučíte == * čo je program a v akom poradí sa vykonávajú príkazy, * zobraziť na displeji text, číslo a ikonu, * rozlíšiť text od čísla.  == Vysvetlenie: program ako postupnosť príkazov ==  &amp;#039;&amp;#039;&amp;#039;Program&amp;#039;&amp;#039;&amp;#039; je postupnosť príkazov, ktoré počítač vykonáva &amp;#039;&amp;#039;…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit/01 Výpis na displej --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/02 Animácia|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
== Čo sa naučíte ==&lt;br /&gt;
* čo je program a v akom poradí sa vykonávajú príkazy,&lt;br /&gt;
* zobraziť na displeji text, číslo a ikonu,&lt;br /&gt;
* rozlíšiť text od čísla.&lt;br /&gt;
&lt;br /&gt;
== Vysvetlenie: program ako postupnosť príkazov ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Program&#039;&#039;&#039; je postupnosť príkazov, ktoré počítač vykonáva &#039;&#039;&#039;jeden po druhom, zhora nadol&#039;&#039;&#039;. Ďalší príkaz sa začne až vtedy, keď sa dokončí predchádzajúci. Toto pravidlo platí takmer vo všetkých programovacích jazykoch a je dobré si ho zapamätať hneď na začiatku. Keď sa program správa inak, ako čakáte, prvý krok je vždy prejsť ho príkaz po príkaze a overiť, čo presne sa v akom poradí deje.&lt;br /&gt;
&lt;br /&gt;
Väčšina príkazov potrebuje doplňujúci údaj, napr. &#039;&#039;aký&#039;&#039; text sa má zobraziť alebo &#039;&#039;ako dlho&#039;&#039; sa má čakať. Takýto údaj sa nazýva &#039;&#039;&#039;parameter&#039;&#039;&#039; (alebo argument). V textovom zápise sa píše do okrúhlych zátvoriek za názov príkazu.&lt;br /&gt;
&lt;br /&gt;
Počítač rozlišuje &#039;&#039;&#039;text&#039;&#039;&#039; a &#039;&#039;&#039;číslo&#039;&#039;&#039;. Text (odborne &#039;&#039;reťazec&#039;&#039;, anglicky &#039;&#039;string&#039;&#039;) sa v kóde vždy píše do úvodzoviek: &amp;lt;code&amp;gt;&amp;quot;Ahoj&amp;quot;&amp;lt;/code&amp;gt;. Číslo sa píše bez úvodzoviek: &amp;lt;code&amp;gt;2026&amp;lt;/code&amp;gt;. Rozdiel je dôležitý: s číslom sa dá počítať, s textom nie. Zápis &amp;lt;code&amp;gt;&amp;quot;12&amp;quot;&amp;lt;/code&amp;gt; je text zložený zo znakov 1 a 2, nie číslo dvanásť.&lt;br /&gt;
&lt;br /&gt;
== Program ==&lt;br /&gt;
&lt;br /&gt;
Bloky nájdete v kategórii &#039;&#039;&#039;Basic&#039;&#039;&#039;. Všetky vložte do bloku &#039;&#039;&#039;on start&#039;&#039;&#039;, ktorý sa vykoná raz, hneď po zapnutí micro:bitu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=200px mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
Súbor:Microbit-Kurz01.png|&#039;&#039;Program v blokoch...&#039;&#039;&lt;br /&gt;
Súbor:Microbit-Kurz01Run.png|&#039;&#039;...a jeho beh v simulátore&#039;&#039;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;JavaScript&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
basic.showString(&amp;quot;Ahoj&amp;quot;)&lt;br /&gt;
basic.showNumber(2026)&lt;br /&gt;
basic.showIcon(IconNames.Heart)&lt;br /&gt;
basic.pause(1000)&lt;br /&gt;
basic.clearScreen()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;Python&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
basic.show_string(&amp;quot;Ahoj&amp;quot;)&lt;br /&gt;
basic.show_number(2026)&lt;br /&gt;
basic.show_icon(IconNames.HEART)&lt;br /&gt;
basic.pause(1000)&lt;br /&gt;
basic.clear_screen()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ako to funguje ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Blok !! Čo robí&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;show string&amp;lt;/code&amp;gt; || Zobrazí text. Ak sa nezmestí na displej (viac ako 1 znak), text sa posúva sprava doľava.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;show number&amp;lt;/code&amp;gt; || Zobrazí číslo. Jednociferné číslo ostane svietiť, viacciferné sa posúva.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;show icon&amp;lt;/code&amp;gt; || Zobrazí jednu z preddefinovaných ikon (srdce, smajlík, šípka, ...).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pause (ms)&amp;lt;/code&amp;gt; || Počká zadaný čas v &#039;&#039;&#039;milisekundách&#039;&#039;&#039;. 1000 ms = 1 sekunda.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;clear screen&amp;lt;/code&amp;gt; || Zhasne všetky LED.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Príkazy sa vykonajú presne v poradí, v akom sú zapísané: najprv prebehne text, potom číslo, potom sa ukáže srdce, sekundu svieti a nakoniec displej zhasne. Keďže sú v bloku &#039;&#039;on start&#039;&#039;, program sa vykoná len raz. Znova ho spustíte tlačidlom &#039;&#039;&#039;reset&#039;&#039;&#039; na zadnej strane micro:bitu.&lt;br /&gt;
&lt;br /&gt;
Všimnite si, že v textovom zápise sa každý príkaz začína slovom &amp;lt;code&amp;gt;basic.&amp;lt;/code&amp;gt;. Príkazy sú rozdelené do skupín (tzv. &#039;&#039;menných priestorov&#039;&#039;) a &amp;lt;code&amp;gt;basic&amp;lt;/code&amp;gt; je názov skupiny, rovnaký ako názov kategórie blokov. Podobne neskôr uvidíte &amp;lt;code&amp;gt;input.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;led.&amp;lt;/code&amp;gt; alebo &amp;lt;code&amp;gt;music.&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Časté chyby ==&lt;br /&gt;
* &#039;&#039;&#039;Diakritika.&#039;&#039;&#039; Displej nevie zobraziť písmená s mäkčeňmi a dĺžňami. Píšte „Ahoj Jozko“, nie „Ahoj Jožko“.&lt;br /&gt;
* &#039;&#039;&#039;Veľké a malé písmená.&#039;&#039;&#039; V textových jazykoch záleží na veľkosti písmen: &amp;lt;code&amp;gt;basic.showString&amp;lt;/code&amp;gt; funguje, &amp;lt;code&amp;gt;Basic.ShowString&amp;lt;/code&amp;gt; nie.&lt;br /&gt;
* &#039;&#039;&#039;Chýbajúce úvodzovky&#039;&#039;&#039; okolo textu. V blokoch sa to stať nemôže, v textovom zápise áno.&lt;br /&gt;
&lt;br /&gt;
== Úlohy ==&lt;br /&gt;
# Nechajte micro:bit zobraziť vaše meno a rok narodenia.&lt;br /&gt;
# Vymeňte poradie príkazov tak, aby sa srdce ukázalo ako prvé. Overte, že sa zmenilo aj správanie programu.&lt;br /&gt;
# Pozrite si v rozbaľovacom zozname bloku &#039;&#039;show icon&#039;&#039; všetky dostupné ikony a zobrazte za sebou aspoň tri rôzne s pauzou pol sekundy.&lt;br /&gt;
# Vyskúšajte, ako &#039;&#039;show number&#039;&#039; zobrazí záporné číslo (-5) a desatinné číslo (3.14). Všimnite si, že desatinné čísla sa v programovaní píšu s &#039;&#039;&#039;bodkou&#039;&#039;&#039;, nie s čiarkou.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Rýchlokurz micro:bit|⌂ Obsah kurzu]]&#039;&#039;&#039; | [[Rýchlokurz micro:bit/02 Animácia|Nasledujúca lekcia →]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit&amp;diff=19684</id>
		<title>Rýchlokurz micro:bit</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=R%C3%BDchlokurz_micro:bit&amp;diff=19684"/>
		<updated>2026-09-28T07:23:50Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit --&amp;gt; Tento rýchlokurz je určený pre študentov, ktorí ešte nikdy neprogramovali. Za niekoľko hodín samostatnej práce sa naučíte napísať jednoduchý program pre mikropočítač BBC micro:bit a zvládnete základné programátorské konštrukcie: &amp;#039;&amp;#039;&amp;#039;postupnosť príkazov, cykly, podmienky a premenné&amp;#039;&amp;#039;&amp;#039;. Na cvičeniach už budeme tieto znalosti považovať za samozrejmé a budeme na nich stavať (komunikácia, se…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Názov stránky: Rýchlokurz micro:bit --&amp;gt;&lt;br /&gt;
Tento rýchlokurz je určený pre študentov, ktorí ešte nikdy neprogramovali. Za niekoľko hodín samostatnej práce sa naučíte napísať jednoduchý program pre mikropočítač BBC micro:bit a zvládnete základné programátorské konštrukcie: &#039;&#039;&#039;postupnosť príkazov, cykly, podmienky a premenné&#039;&#039;&#039;. Na cvičeniach už budeme tieto znalosti považovať za samozrejmé a budeme na nich stavať (komunikácia, senzory, ...).&lt;br /&gt;
&lt;br /&gt;
Kurz tvorí 9 krátkych lekcií. Každá pridá k tomu, čo už viete, práve jednu novú vec. Odporúčame ich preto prejsť v poradí a pri každej si vyriešiť aj úlohy na konci. Na jednu lekciu počítajte zhruba 15 – 20 minút.&lt;br /&gt;
&lt;br /&gt;
== Čo je micro:bit ==&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Microbit-Komponenty.png|thumb|500px|Rozloženie komponentov na doske micro:bit V2]]&lt;br /&gt;
&lt;br /&gt;
BBC micro:bit je malý jednodoskový počítač veľkosti platobnej karty. Jeho jadrom je &#039;&#039;&#039;mikrokontrolér&#039;&#039;&#039;, teda jednočipový počítač, ktorý obsahuje procesor, pamäť aj vstupno-výstupné obvody. Na doske sú priamo osadené súčiastky, s ktorými môžeme hneď pracovať bez akéhokoľvek zapájania:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;LED displej&#039;&#039;&#039; – matica 5 × 5 červených LED diód. Dá sa na ňom zobraziť obrázok, číslo alebo bežiaci text. Každú LED vieme rozsvietiť aj samostatne a s rôznym jasom.&lt;br /&gt;
* &#039;&#039;&#039;Tlačidlá A a B&#039;&#039;&#039; – dve tlačidlá na prednej strane, ktoré môže program čítať.&lt;br /&gt;
* &#039;&#039;&#039;Tlačidlo reset&#039;&#039;&#039; – na zadnej strane; spustí program odznova.&lt;br /&gt;
* &#039;&#039;&#039;Akcelerometer a magnetometer&#039;&#039;&#039; – snímajú náklon, pohyb, otrasy a smer (kompas).&lt;br /&gt;
* &#039;&#039;&#039;Snímač teploty&#039;&#039;&#039; – je súčasťou procesora, meria teda skôr teplotu čipu než okolia.&lt;br /&gt;
* &#039;&#039;&#039;Snímač svetla&#039;&#039;&#039; – túto úlohu plní samotný LED displej.&lt;br /&gt;
* &#039;&#039;&#039;Rádio a Bluetooth&#039;&#039;&#039; – na komunikáciu medzi micro:bitmi alebo s mobilom či počítačom.&lt;br /&gt;
* &#039;&#039;&#039;Okrajový konektor&#039;&#039;&#039; – pozlátené kontakty na spodnom okraji. Na veľké otvory &#039;&#039;0&#039;&#039;, &#039;&#039;1&#039;&#039;, &#039;&#039;2&#039;&#039;, &#039;&#039;3V&#039;&#039; a &#039;&#039;GND&#039;&#039; sa dajú pripojiť krokosvorky, ostatné piny sú dostupné cez rozširujúce dosky.&lt;br /&gt;
* &#039;&#039;&#039;Micro USB konektor&#039;&#039;&#039; – slúži na napájanie aj na nahrávanie programu.&lt;br /&gt;
* &#039;&#039;&#039;Konektor pre batérie&#039;&#039;&#039; – micro:bit môže fungovať aj bez počítača, napr. z dvoch AAA batérií.&lt;br /&gt;
&lt;br /&gt;
=== Verzie V1 a V2 ===&lt;br /&gt;
&lt;br /&gt;
V laboratóriu máme obe verzie, väčšina kusov je však novšia verzia V2. Verziu spoznáte podľa nápisu na zadnej strane dosky. Verzia V2 má navyše na prednej strane pozlátené logo, ktoré funguje ako dotykové tlačidlo, a medzi kontaktmi okrajového konektora sú malé výrezy.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! micro:bit V1 !! micro:bit V2&lt;br /&gt;
|-&lt;br /&gt;
| Procesor || ARM Cortex-M0, 16 MHz || ARM Cortex-M4 s FPU, 64 MHz&lt;br /&gt;
|-&lt;br /&gt;
| Pamäť Flash / RAM || 256 kB / 16 kB || 512 kB / 128 kB&lt;br /&gt;
|-&lt;br /&gt;
| Reproduktor || – (zvuk len cez pin 0) || áno, priamo na doske&lt;br /&gt;
|-&lt;br /&gt;
| Mikrofón || – || áno, s indikačnou LED&lt;br /&gt;
|-&lt;br /&gt;
| Dotykové logo || – || áno&lt;br /&gt;
|-&lt;br /&gt;
| Vypínanie || – || dlhým stlačením tlačidla reset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Všetky programy v tomto kurze fungujú na oboch verziách. Kde využívame niečo, čo má len V2 (zvuk z reproduktora, dotykové logo), je to v texte výslovne uvedené.&lt;br /&gt;
&lt;br /&gt;
== Prostredie MakeCode ==&lt;br /&gt;
&lt;br /&gt;
Programovať budeme vo webovom prostredí &#039;&#039;&#039;Microsoft MakeCode&#039;&#039;&#039;, ktoré nevyžaduje žiadnu inštaláciu:&lt;br /&gt;
&lt;br /&gt;
: https://makecode.microbit.org&lt;br /&gt;
&lt;br /&gt;
Odporúčame prehliadač Chrome alebo Edge a anglické rozhranie. Všetky názvy blokov v tomto návode sú po anglicky, a po anglicky je aj väčšina návodov na internete. Ak by ste predsa len chceli bloky po slovensky, použite https://makecode.microbit.org/?lang=sk_SK&lt;br /&gt;
&lt;br /&gt;
Po kliknutí na &#039;&#039;&#039;New Project&#039;&#039;&#039; a zadaní mena projektu uvidíte tri hlavné časti obrazovky:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simulátor&#039;&#039;&#039; (vľavo) – virtuálny micro:bit, na ktorom sa program spustí okamžite po každej zmene. Tlačidlá A a B sa v ňom dajú stláčať myšou. Väčšinu programov si tak vyskúšate aj bez skutočného zariadenia.&lt;br /&gt;
* &#039;&#039;&#039;Paleta blokov&#039;&#039;&#039; (v strede) – bloky sú rozdelené do farebných kategórií: &#039;&#039;Basic&#039;&#039;, &#039;&#039;Input&#039;&#039;, &#039;&#039;Music&#039;&#039;, &#039;&#039;Led&#039;&#039;, &#039;&#039;Loops&#039;&#039;, &#039;&#039;Logic&#039;&#039;, &#039;&#039;Variables&#039;&#039;, &#039;&#039;Math&#039;&#039; atď.&lt;br /&gt;
* &#039;&#039;&#039;Pracovná plocha&#039;&#039;&#039; (vpravo) – sem bloky ťaháte a skladáte z nich program.&lt;br /&gt;
&lt;br /&gt;
=== Tri pohľady na ten istý program ===&lt;br /&gt;
&lt;br /&gt;
V hornej časti obrazovky je prepínač &#039;&#039;&#039;Blocks / JavaScript / Python&#039;&#039;&#039;. Nejde o tri rôzne programy, ale o tri spôsoby zápisu toho istého programu. Keď program poskladáte z blokov a prepnete sa do JavaScriptu, uvidíte ten istý program zapísaný textom, a naopak.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Bloky&#039;&#039;&#039; sú prehľadné a nedá sa v nich urobiť syntaktická chyba (napr. zabudnutá zátvorka). Dobre na nich vidno štruktúru programu: čo je vnútri cyklu, čo patrí do ktorej vetvy podmienky. Fungujú podobne ako vývojový diagram.&lt;br /&gt;
* &#039;&#039;&#039;JavaScript&#039;&#039;&#039; a &#039;&#039;&#039;Python&#039;&#039;&#039; sú skutočné textové programovacie jazyky. Profesionálne programy sa píšu textom, preto si ich zvykajte čítať od začiatku.&lt;br /&gt;
&lt;br /&gt;
V každej lekcii preto nájdete obrázok programu v blokoch a pod ním ten istý program v JavaScripte a Pythone (prepínajú sa záložkami). Odporúčame program najprv poskladať z blokov a potom sa prepnúť do textového zobrazenia a porovnať ho s návodom.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #aac; background:#eef4ff; padding:0.5em 1em; margin:1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Pozor na dva rôzne Pythony:&#039;&#039;&#039; Python v prostredí MakeCode používa rovnaké príkazy ako bloky a JavaScript (napr. &amp;lt;code&amp;gt;basic.show_string(&amp;quot;Ahoj&amp;quot;)&amp;lt;/code&amp;gt;). Na internete často nájdete príklady v jazyku &#039;&#039;&#039;MicroPython&#039;&#039;&#039; (prostredie python.microbit.org), ktorý má iné príkazy (napr. &amp;lt;code&amp;gt;display.scroll(&amp;quot;Ahoj&amp;quot;)&amp;lt;/code&amp;gt;). Syntax jazyka je rovnaká, ale príkazy pre micro:bit sa líšia, takže príklady z MicroPythonu v MakeCode nefungujú a naopak.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nahratie programu do micro:bitu ==&lt;br /&gt;
&lt;br /&gt;
# Pripojte micro:bit k počítaču USB káblom. V počítači sa objaví nový disk s názvom &#039;&#039;&#039;MICROBIT&#039;&#039;&#039;.&lt;br /&gt;
# V MakeCode kliknite na tlačidlo &#039;&#039;&#039;Download&#039;&#039;&#039;. Stiahne sa súbor s príponou &amp;lt;code&amp;gt;.hex&amp;lt;/code&amp;gt;, čo je preložený program.&lt;br /&gt;
# Súbor pretiahnite (alebo skopírujte) na disk MICROBIT. Počas nahrávania bliká žltá LED na zadnej strane, potom sa micro:bit reštartuje a program sa spustí.&lt;br /&gt;
&lt;br /&gt;
Pohodlnejší spôsob v prehliadači Chrome/Edge je micro:bit s MakeCode &#039;&#039;&#039;spárovať&#039;&#039;&#039; (tlačidlo &#039;&#039;…&#039;&#039; vedľa Download → &#039;&#039;Connect device&#039;&#039;). Potom sa program nahrá priamo jedným kliknutím na Download. Podrobnosti nájdete v návode [[Micro:bit Download]].&lt;br /&gt;
&lt;br /&gt;
Program zostáva v micro:bite uložený aj po odpojení napájania. Po zapnutí sa spustí znova.&lt;br /&gt;
&lt;br /&gt;
== Lekcie ==&lt;br /&gt;
&lt;br /&gt;
# [[Rýchlokurz micro:bit/01 Výpis na displej|Výpis na displej]] – postupnosť príkazov, text, čísla, ikony&lt;br /&gt;
# [[Rýchlokurz micro:bit/02 Animácia|Animácia]] – vlastný obrázok, nekonečný cyklus &#039;&#039;forever&#039;&#039;&lt;br /&gt;
# [[Rýchlokurz micro:bit/03 Premenná|Premenná]] – pomenované miesto v pamäti&lt;br /&gt;
# [[Rýchlokurz micro:bit/04 Cyklus for|Cyklus for]] – opakovanie s počítadlom, súradnice LED&lt;br /&gt;
# [[Rýchlokurz micro:bit/05 Cyklus while|Cyklus while]] – opakovanie, kým platí podmienka&lt;br /&gt;
# [[Rýchlokurz micro:bit/06 Tlačidlá a udalosti|Tlačidlá a udalosti]] – visačka na diskotéku&lt;br /&gt;
# [[Rýchlokurz micro:bit/07 Podmienka if-else|Podmienka if-else]] – rozhodovanie v programe&lt;br /&gt;
# [[Rýchlokurz micro:bit/08 Počítadlo|Počítadlo]] – premenná, ktorú menia udalosti&lt;br /&gt;
# [[Rýchlokurz micro:bit/09 Kuchynské minútky|Kuchynské minútky]] – záverečný projekt, spája všetko dohromady&lt;br /&gt;
&lt;br /&gt;
=== Ako je lekcia zostavená ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Čo sa naučíte&#039;&#039;&#039; – krátky prehľad cieľov lekcie.&lt;br /&gt;
* &#039;&#039;&#039;Vysvetlenie&#039;&#039;&#039; – nový pojem všeobecne, platí pre akýkoľvek programovací jazyk.&lt;br /&gt;
* &#039;&#039;&#039;Program&#039;&#039;&#039; – obrázok v blokoch, výsledok v simulátore a kód v JavaScripte a Pythone.&lt;br /&gt;
* &#039;&#039;&#039;Ako to funguje&#039;&#039;&#039; – rozbor programu riadok po riadku.&lt;br /&gt;
* &#039;&#039;&#039;Časté chyby&#039;&#039;&#039; – na čo si dať pozor.&lt;br /&gt;
* &#039;&#039;&#039;Úlohy&#039;&#039;&#039; – samostatná práca. Úlohy riešte, len čítaním sa programovať nenaučíte.&lt;br /&gt;
&lt;br /&gt;
== Odkazy ==&lt;br /&gt;
&lt;br /&gt;
* Dokumentácia blokov: https://makecode.microbit.org/blocks&lt;br /&gt;
* Dokumentácia JavaScriptu v MakeCode: https://makecode.microbit.org/javascript&lt;br /&gt;
* Dokumentácia Pythonu v MakeCode: https://makecode.microbit.org/python&lt;br /&gt;
* Oficiálna stránka projektu: https://microbit.org&lt;br /&gt;
* Ďalšie príklady: [[BBC micro:bit#Zbierka príkladov|Zbierka príkladov]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Rýchlokurz micro:bit]]&lt;br /&gt;
[[Category:Micro:bit]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19683</id>
		<title>Základy počítačov</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19683"/>
		<updated>2026-09-16T05:55:55Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Cvičenie 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
{{Predmet&lt;br /&gt;
| Stupeň štúdia = Bakalárske štúdium&lt;br /&gt;
| Voliteľnosť = Povinný&lt;br /&gt;
| Kreditov = 6.00  &lt;br /&gt;
| Ukoncenie = Skúška &lt;br /&gt;
| Semester   =  Zimný semester&lt;br /&gt;
| Prednaska = 2,00 hod./týždeň  &lt;br /&gt;
| Cvicenie = 2,00 hod./týždeň  &lt;br /&gt;
| Procesor = Atmel AT89S8252, &lt;br /&gt;
| Garant  = doc. Ing. Katarína Žáková, PhD.&lt;br /&gt;
| StrankaAIS = [http://is.stuba.sk/katalog/syllabus.pl?predmet=323630 ZPOC]&lt;br /&gt;
| Cieľ = Získať znalosti o základnej koncepcii číslicových počítačov a počítačových systémov. Pochopiť princípy hlavných podsystémov číslicových počítačov - procesor, vstupný a výstupný podsystém a pamäťový podsystém. Vedieť popísať štruktúry hlavných podsystémov číslicových počítačov a pracovať s nimi.&lt;br /&gt;
}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-1&amp;quot; style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Novinky&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 14. 9. Aktualizácia na ZS 2026&lt;br /&gt;
&lt;br /&gt;
=== Opakovanci: uznavanie predmetu ===&lt;br /&gt;
&lt;br /&gt;
Ak ste tento predmet už absolvovali minulý rok, môžete požiadať o jeho uznanie a nemusíte tak&lt;br /&gt;
navštevovať cvičenia znova. Prosím, vyplňte si &lt;br /&gt;
[https://www.fei.stuba.sk/buxus/docs/studium_od_2024/zapis_2425/ziadost_-_uznanie_predmetov.pdf takúto žiadosť], &lt;br /&gt;
kde uvediete, že žiadate o uznanie predmetu (prípadne aj všetky, z ktorých máte &lt;br /&gt;
A, B alebo C) a zanesiete to na PgO. Takéto žiadosti pán prodekan potom bez problémov schvaľuje &lt;br /&gt;
a je to úplne v poriadku aj z hľadiska účasti na výučbe a pod. Nemusíte potom už nič ďalšie &lt;br /&gt;
riešiť, rovno máte zapísanú známku v indexe.  V prípade, že vám predmet nebol uznaný, musíte riadne navštevovať&lt;br /&gt;
prednášky aj cvičenia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 25.11. 21:00 Všetky bonusové úlohy sú vyriešené (to bola fakt bleskovka!).&lt;br /&gt;
&lt;br /&gt;
* Exkurzia: Múzeum počítačov a návšteva superpočítača Devana na Slovenskej akadémii vied (SAV) &lt;br /&gt;
bude v piatok 12. 12. od 10:30. Do 4. 12 sa môžete prihlásiť tu: https://docs.google.com/spreadsheets/d/118-26-UxM_SshVW7laI3fxEfMN1JJAgCwafhXrweeIk/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* 27.10. Ak si myslíte, že logické obvody už chápete, zahrajte si [https://systemic-games.itch.io/bomb-squad-academy Bomb Squad Academy] - stačí demo, ktoré je zadarmo :)  Alebo si môžete zahrať trocha nudnejšiu [http://nandgame.com/ NANDgame].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 21.12. Po skúške prosím vyplňte aj [https://forms.gle/8vxxw82bFhP3ezQU8 Dotazník kvality predmetu]&lt;br /&gt;
* 21. 12. Program: &lt;br /&gt;
** 9:30 Náhradné cvičenie v D-208&lt;br /&gt;
** 11:00 Skúška A-J v CPU &lt;br /&gt;
** 12:30 Skúška K-Ž v CPU&lt;br /&gt;
** 14:00 Odchod na exkurziu SAV&lt;br /&gt;
** 14:30 Exkurzia SAV&lt;br /&gt;
* 28. 11. Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
** Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
* A tu nájdete doplnkový študijný materiál k téme [[Meranie výkonu počítačov]]&lt;br /&gt;
* 11. 10. Server znova funguje&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://forms.gle/pMc7mnW56f79GZhZ9 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, ale nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* Nezabudnite na domáce štúdium 2. kapitoly z knihy [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. &lt;br /&gt;
&lt;br /&gt;
*  3. 12. 20:00  Pribudli ďalšie bonusové [[#Domáce úlohy]], za ktorých vyriešenie môžete získať body navyše.&lt;br /&gt;
&lt;br /&gt;
* V poslednom týždni semestra nebudeme cvičiť nič nové, ale môžete si prísť docvičiť, alebo dopísať testy v nasledovných termínoch:&lt;br /&gt;
** Pondelok 16. 12. od 15:00 do 16:00 (Valocký)&lt;br /&gt;
** Utorok 17. 12.   od 8:00 do  10:00 (Chamraz)&lt;br /&gt;
** Streda 18. 12.   od 9:00 do  12:00 (Balogh), pozor, toto cvičenie bude v CPU (blok D, 1. posch)&lt;br /&gt;
&lt;br /&gt;
* 10. 12. 2019 bude posledná prednáška v tomto semestri. Privítame na nej hosťa - Williama Carbone z IBM, prednášať bude o počítačovej budúcnosti a technológiach IBM pre takéto počítače. Prednáška bude v angličtine.&lt;br /&gt;
&lt;br /&gt;
* Predtermín (len pre zapísaných) bude v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Priezvisko A-L o 10:00, M-Z o 11:00&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Skúška:&#039;&#039;&#039; riadny termín bude v pondelok, 20. januára 2020  v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Študenti prídu rozdelení podľa priezviska nasledovne: A-L o 9:00, M-Z o 11:00.&lt;br /&gt;
&lt;br /&gt;
* Opravný termín bude vo štvrtok, 6. februára 2020 o 9:00 v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:vianoce.png|center|250px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Všetkým prvákom prajem príjemné prežitie vianočných sviatkov,&amp;lt;BR&amp;gt;pevné zdravie  v novom roku a úspešne zakončené skúškové obdobie.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Richard Balogh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://goo.gl/forms/HIrZVDfC3rx4PNfS2 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, avšak nie je časovo limitovaný a nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* [[Meranie výkonu počítačov]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Náhrada za vymeškané cvičenia ===&lt;br /&gt;
&lt;br /&gt;
Jedno vymeškané cvičenie z ktorého vám chýbajú potrebné body je možné nahradiť tak, že &lt;br /&gt;
po dohode s prednášajúcim spracujete na 2 strany formátu A4 niektorú z nasledovných tém:&lt;br /&gt;
&lt;br /&gt;
A.) Alpha GO&lt;br /&gt;
* [1] https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/alphago-zero-goes-from-blank-slate-to-grandmaster-in-three-dayswithout-any-help-at-all&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/why-alphago-is-not-ai&lt;br /&gt;
&lt;br /&gt;
B.) Biopocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/biomedical/devices/biocomputer-and-memory-built-inside-living-bacteria&lt;br /&gt;
* [2] https://spectrum.ieee.org/the-human-os/biomedical/devices/biological-computer-commands-living-cells-to-light-up&lt;br /&gt;
&lt;br /&gt;
C.) Blockchain:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world&lt;br /&gt;
* [2] https://spectrum.ieee.org/computing/networks/how-blockchains-work&lt;br /&gt;
&lt;br /&gt;
D.) Kvantove pocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/nanoclast/computing/hardware/a-first-two-qubit-logic-gate-in-silicon&lt;br /&gt;
* [2] https://spectrum.ieee.org/tech-talk/computing/hardware/qudits-the-real-future-of-quantum-computing&lt;br /&gt;
&lt;br /&gt;
E.) Neurocomputing:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/hardware/the-brain-as-computer-bad-at-math-good-at-everything-else&lt;br /&gt;
* [2] https://spectrum.ieee.org/semiconductors/design/neuromorphic-chips-are-destined-for-deep-learningor-obscurity&lt;br /&gt;
&lt;br /&gt;
F.) Autonomous car:&lt;br /&gt;
* [1] https://spectrum.ieee.org/cars-that-think/transportation/self-driving/nvidia-or-nxpwhose-robocar-brain-will-win&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/how-google-self-driving-car-works&lt;br /&gt;
&lt;br /&gt;
Pri vypracovani musite pouzit vzdy aspon tie dva linky ktore su tam, samozrejme si mozete najst aj dalsiu literaturu k teme.&lt;br /&gt;
Na kazdu z tem sa moze prihlasit len jeden jediny student!&lt;br /&gt;
&lt;br /&gt;
Vysledny dokument potom pridame ako studijny material na stranku ZPOC.&lt;br /&gt;
Termin by mohol byt do 17.12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2026&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;15. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  &lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2025&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;16. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  ([https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyA.pdf slajdy 1], [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyB.pdf slajdy 2] a [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;23. 09.&#039;&#039;&#039; 2️⃣ &#039;&#039;&#039;Ukladanie informácií v počítači.&#039;&#039;&#039; Kódy ASCII a Unicode, Big Endian, Little Endian. Reálne čísla s pohyblivou rádovou čiarkou, IEEE-754.  ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyA.pdf slajdy 1]) a ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyB.pdf slajdy 2])&lt;br /&gt;
** Film [https://youtu.be/zZuqLLdx2YQ The Imitation Game]&lt;br /&gt;
** Angela Watercutter &#039;&#039;[https://www.wired.com/2014/11/imitation-game-building-christopher/ How Designers Recreated Alan Turing&#039;s Code-Breaking Computer for Imitation Game]&#039;&#039;. Wired, 2104.&lt;br /&gt;
** Doplnok k formátom [https://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/ s plávajúcou desatinnou čiarkou]&lt;br /&gt;
** Pentium [https://en.wikipedia.org/wiki/Pentium_FDIV_bug fdiv bug]&lt;br /&gt;
** Ariane 5 - [http://sunnyday.mit.edu/nasa-class/Ariane5-report.html opis nehody] ([https://youtu.be/gp_D8r-2hwk video 1], [https://youtu.be/5tJPXYA0Nec video 2])&lt;br /&gt;
** Patriot [https://msquair.files.wordpress.com/2015/05/patriot-timing-error.pdf system timing error]&lt;br /&gt;
** Google Colab Notebook: https://colab.research.google.com/drive/1RMyuumEOuH13smF9_WIdbbqy109Wh0MC?usp=sharing&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;30. 09.&#039;&#039;&#039; 3️⃣ &#039;&#039;&#039;Kombinačné logické obvody.&#039;&#039;&#039; Boolova algebra, DeMorganove pravidlá. Pravdivostná tabuľka, logická schéma, úplný systém logických funkcií. Analýza logických obvodov. ([https://senzor.robotika.sk/zp/Prednasky/03prednaskaZPOC-slajdyA.pdf slajdy])&amp;lt;BR&amp;gt;Úvod do programovania mikropočítača BBC micro:bit ([https://senzor.robotika.sk/zp/Prednasky/microbit-Uvod.pdf slajdy]) &lt;br /&gt;
** Stránka [https://microbit.org/ micro:bit]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;07. 10.&#039;&#039;&#039; 4️⃣ &#039;&#039;&#039;Kombinačné logické obvody II.&#039;&#039;&#039; Analýza a syntéza logických obvodov. Polovičná a úplná sčítačka. ([https://senzor.robotika.sk/zp/Prednasky/04prednaskaZPOC-slajdyA.pdf slajdy])&lt;br /&gt;
** Robert Keim: &#039;&#039;[https://www.allaboutcircuits.com/technical-articles/what-is-an-fpga-introduction-to-programmable-logic-fpga-vs-microcontroller/ What Is an FPGA? An Introduction to Programmable Logic]&#039;&#039;. 2018&lt;br /&gt;
** Film [https://youtu.be/KPeHFDxKUP4 Back to the Future] a [https://youtu.be/afwYMdN43Mc scéna so zosilňovačom]&lt;br /&gt;
** [https://madformath.com/calculators/digital-systems/karnaugh-maps/karnaugh-map-solver Karnaugh map solver 1] a [https://karnaughmapsolver.com/ solver 2]&lt;br /&gt;
** Simulátor [https://simulator.io/ simulator.io]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;14. 10.&#039;&#039;&#039; 5️⃣ &#039;&#039;&#039;Spínacie obvody.&#039;&#039;&#039; Relé, elektrónka, tranzistor, integrovaný obvod. Moorov zákon. Časové diagramy. ([https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-slajdyA.pdf slajdy] a [https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Datasheet obvodu [http://senzor.robotika.sk/zp/DM74LS00.pdf 7400]&lt;br /&gt;
** Moorov zákon: [https://www.intel.com/content/www/us/en/silicon-innovations/moores-law-technology.html video]&lt;br /&gt;
** Robert Ross: &#039;&#039;[https://robbreport.com/gear/audio/vacuum-tube-amps-remerging-1234797622/ ‘It Sounds Human’: Audiophiles Are Embracing the Lush Sounds of Old-School Tube Amps]&#039;&#039;&lt;br /&gt;
** Video: [https://youtu.be/_9_AEVQ_p74?si=ySTOy212WNOeJTBh Claude Shannon demonstrates &amp;quot;Theseus&amp;quot; Machine Learning]&lt;br /&gt;
** Film: [https://youtu.be/AxQ9GG6hUDM?si=BbLnkbjNTGnUPalw Forbidden Planet Official Trailer] - Leslie Nielsen Movie (1956) &lt;br /&gt;
** [https://micro.magnet.fsu.edu/electromag/java/transistor/ Výroba tranzistora] (animácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/5747025316151296/cmos-nand Hradlo NAND technológiou CMOS] (simulácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/4806663265714176/ttl-standard-nand-logic-gate Hradlo NAND technológiou TTL] (simulácia)&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;21.10.&#039;&#039;&#039; 6️⃣ &#039;&#039;&#039;Sekvenčné obvody.&#039;&#039;&#039; Oneskorenie. Spätná väzba, oscilátor. Kybernetika. ([http://senzor.robotika.sk/zp/Prednasky/prednaska05.pdf slajdy])&lt;br /&gt;
** [https://cw.fel.cvut.cz/wiki/_media/courses/a3m33iro/vysoky50letkybernetiky1998_v626-632.pdf Z histórie kybernetiky u nás]&lt;br /&gt;
** [http://www.ieeevic.org/video-interview-norbert-wiener-inventor-of-cybernetics/ Norbert Wiener] - video&lt;br /&gt;
** [https://youtu.be/nS0luYZd4fs Shannon: Theseus demo] - video &amp;lt;!--&lt;br /&gt;
** Simulator.IO&lt;br /&gt;
*** R-S preklápací obvod https://simulator.io/board/Gv2ZlMW8SZ/3&lt;br /&gt;
*** Pamäťový register https://simulator.io/board/Ec8FMQOuMx/2&lt;br /&gt;
*** Posuvný register https://simulator.io/board/Da9uTzXj5o/1&lt;br /&gt;
*** Delička frekvencie https://simulator.io/board/VTJCoRBS5o/1&lt;br /&gt;
*** Binárne počítadlo https://simulator.io/board/ix1nHMxe7w/1 --&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;28. 10.&#039;&#039;&#039; 7️⃣ &#039;&#039;&#039;Pamäte.&#039;&#039;&#039; Rýchlosť, cena, kapacita. Typy pamätí RWM, ROM, EPROM, EEPROM, FLASH. Adresovanie, dynamická a statická pamäť. ([http://senzor.robotika.sk/zp/Prednasky/prednaska06a.pdf slajdy])&amp;lt;BR&amp;gt;Stavové diagramy a BBC micro:bit ([http://senzor.robotika.sk/zp/Prednasky/prednaska06b.pdf slajdy])&lt;br /&gt;
** [http://www.computerhistory.org/timeline/memory-storage/ Timeline of computer memory]&lt;br /&gt;
** Static RAM 2114 1kB [http://www.science.smith.edu/dftwiki/images/a/ab/2114_datasheet.pdf datasheet]&lt;br /&gt;
** [https://www.ibm.com/history/dram Dynamic random-access memory (DRAM)] history by IBM&lt;br /&gt;
** [https://www.ibm.com/think/topics/flash-storage FLASH memory]] history by IBM&lt;br /&gt;
** EEPROM 2708 1kB [http://www.jrok.com/datasheet/TMS2708.pdf datasheet]&lt;br /&gt;
** Film [https://www.youtube.com/watch?v=hMT8tRrEMC4 TRON] (1982) a remake [https://www.youtube.com/watch?v=SqSuRdkglxM TRON Legacy] (2010)&lt;br /&gt;
** Men In Black 3 | [https://www.youtube.com/watch?v=nQmkkryDp0Y Retro Neuralyzer Scene]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 4. 11.&#039;&#039;&#039; 8️⃣  &#039;&#039;&#039;Mikroprocesor&#039;&#039;&#039; Základná stavebné prvky procesora. Operačná a riadiaca časť procesora. Inštrukčný súbor. Typy inštrukcií. ([http://senzor.robotika.sk/zp/Prednasky/prednaska08.pdf slajdy])&lt;br /&gt;
** Frederico Faggin: &#039;&#039;[http://ieeexplore.ieee.org/document/4776530/ Making of the First Microprocessor]&#039;&#039;.&lt;br /&gt;
** [https://youtu.be/Knd-U-avG0c Zoom Into a Microchip] - National Informal STEM Education Network (NISE Net)&lt;br /&gt;
** Papierový [https://cs.wikipedia.org/wiki/Pap%C3%ADrov%C3%BD_po%C4%8D%C3%ADta%C4%8D_CGS počítač CGS]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;11. 11.&#039;&#039;&#039; 9️⃣ &#039;&#039;&#039;Mikroprocesor II.&#039;&#039;&#039; Matematický koprocesor. Inštrukčný súbor. Typy inštrukcií. Formát inštrukcie. Inštrukcie - práca s pamäťovým systémom počítača. Spôsoby adresácie. Procesory s architektúrou RISC a CISC. Asembler, jazyk symbolických adries, simulátor a emulátor. ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy])&lt;br /&gt;
** Jednodoskový počítač [https://sk.wikipedia.org/wiki/PMI-80 PMI-80] &amp;lt;!-- http://www.nostalcomp.cz/pmi80.php --&amp;gt;&lt;br /&gt;
** Osobný počítač [https://pmd85.borik.net/wiki/Intro PMD-85]&lt;br /&gt;
** Školský robot [http://www.avir.sk/robotika/historia_kar/roboti/KOLKA025.html KOLKA]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Intel_8087 Aritmetický koprocesor i8087]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/8080instructions.pdf Ťahák na cvičenia s výberom inštrukcií]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 25. 11.&#039;&#039;&#039; 🔟 Mikroprocesor III. Zásobník, prerušenie, podprogramy. Hierarchia počítačov, mainframe, workstation, embedded. [[Meranie výkonu počítačov]].([http://senzor.robotika.sk/zp/Prednasky/prednaska10.pdf slajdy])&lt;br /&gt;
** [https://www.top500.org/ Zoznam 500 najvýkonnejších počítačov na svete]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Cray-2 Superpočítač CRAY-2]&lt;br /&gt;
** [https://waitbutwhy.com/2014/11/from-1-to-1000000.html Milión bodiek]&lt;br /&gt;
** [[Meranie výkonu počítačov]]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 2. 12.&#039;&#039;&#039; Umelá inteligencia a strojové učenie&lt;br /&gt;
* &#039;&#039;&#039; 9. 12.&#039;&#039;&#039; Kvantové počítače&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;FONT COlor=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;Prednášky z minulého roka&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;20. 11.&#039;&#039;&#039; 🔟 Georg Jaggle, TU Wien: &#039;&#039;&#039;Inputs and outputs&#039;&#039;&#039; (([http://senzor.robotika.sk/zp/Prednasky/prednaska07a.pdf Lecture in english]). &#039;&#039;&#039;Vstupy a výstupy.&#039;&#039;&#039; Digitálny vstup, výstup, displej, klávesnica, multiplexovanie. (([http://senzor.robotika.sk/zp/Prednasky/prednaska07b.pdf slajdy]))&lt;br /&gt;
** Úvodné video [https://www.youtube.com/watch?v=LDPVwI3KULk Matrix - computer interface]&lt;br /&gt;
** Video z prezentácie [https://youtu.be/tIIJME8-au8 Timo Boll vs. robot]&lt;br /&gt;
** Romeo [https://youtu.be/kz1Ob0Ks554 humanoid robot grasping demonstration]&lt;br /&gt;
** Blue Danube [https://youtu.be/-sHcQcFd7-A Airskin collaborative robotics]&lt;br /&gt;
** Paro [https://youtu.be/2ZUn9qtG8ow therapeutic robot]&lt;br /&gt;
** Thymio [https://www.thymio.org/ educational robot]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;10.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Towards Augmented Intelligence.&#039;&#039;&#039; &#039;&#039;Tools and Skills for the Cognitive Era.&#039;&#039; Invited lecture. &lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska11-IBM.pdf slajdy]&lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.youtube.com/watch?v=MSc5I550jlY Smart Wildlife project]&lt;br /&gt;
** Use The Force - [https://youtu.be/K-4mp_e5v4A Move a BB-8 with Your Mind]&lt;br /&gt;
** [https://qiskit.org/ Quantum computing]&lt;br /&gt;
** [https://www.youtube.com/watch?v=3WrVUb7ej0o Tanmay Bakshi] video&lt;br /&gt;
*** Tanmay Bakshi: [https://www.amazon.com/s?k=tanmay+bakshi books]&lt;br /&gt;
** [https://tone-analyzer-demo.ng.bluemix.net/ Text analyzer demo]&lt;br /&gt;
** Free [https://cognitiveclass.ai/ Cognitive Courses and Lessons]&lt;br /&gt;
** IBM Centennial Film [https://www.youtube.com/watch?eWxUWJgfzk 100 X 100 A century of achievements that have changed the world]&lt;br /&gt;
* &#039;&#039;&#039;.11.&#039;&#039;&#039; Vstupno-výstupných podsystém. I/O karty. Paralelný port. Vstup a výstup logických a číslicových hodnôt ([http://senzor.robotika.sk/zp/Prednasky/prednaska11.pdf slajdy]).&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039; Prenos údajov. Zbernicová architektúra počítača. Zbernice. Sériové rozhranie a UART.  Jednoprocesorové a viacprocesorové zbernice, arbitrácia prístupu. Multiplexovaná zbernica. Príklady štandardných zberníc ([http://senzor.robotika.sk/zp/Prednasky/prednaska11a.pdf slajdy]).&lt;br /&gt;
&lt;br /&gt;
* Prednáška o AI ToDo: pretriedit odkazy!&lt;br /&gt;
** [https://youtu.be/JA472HOifoA?si=uqtaykqgagVi5RM4 Top 10 AI Movies WARNING Us For Our Future]&lt;br /&gt;
** [https://youtu.be/iyKt7bK--uo?si=BXPm6SX308N0gNDM Top 10 AI Movies With HIDDEN Messages For Humans]&lt;br /&gt;
** [https://youtu.be/HLl47qX6-UM?si=I5jETjAq7004AoMb Top 10 AI TV Shows WARNING Us For Our Future]&lt;br /&gt;
** https://www.minedu.sk/ai-dni-priniesli-umelu-inteligenciu-do-100-slovenskych-skol/&lt;br /&gt;
** https://ai.iedu.sk/nastroje-ai/&lt;br /&gt;
** https://bratislavaiforum.com/global-forum/&lt;br /&gt;
** https://www.dny.ai/#program&lt;br /&gt;
** https://www.slovensko.ai/&lt;br /&gt;
** https://www.stuba.sk/sk/diani-na-stu/prehlad-aktualit/stu-ma-pravidla-pouzivania-umelej-inteligencie.html?page_id=17202&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Computing: vision for the Future.&#039;&#039;&#039; Invited lecture. History and status now. Limits and beyonds. Computers as a service.     Future challenges: blokchain, quantum computing, cognitive computing, clouds and services, internet of things. [[Základy počítačov - pozvaná prednáška|More information...]]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska12-IBM.pdf slajdy]&lt;br /&gt;
** [https://www.youtube.com/watch?v=pBiVyEfZVUU History of computers - partI.] &lt;br /&gt;
** [https://www.youtube.com/watch?v=HRi1BHjID3o History of computers - partII.] &lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.evaaugustyn.com/ibm-watson-x-music AI Music by IBM Watson]&lt;br /&gt;
** Video Johna Cohna, ktoré sme nevideli:&lt;br /&gt;
*** https://youtu.be/I-NT1-BdOvI&lt;br /&gt;
*** https://www.youtube.com/watch?v=qxRM99LlcVc&lt;br /&gt;
&lt;br /&gt;
2017&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Carbone-Lecture2018.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson, IBM: &#039;&#039;&#039;The Computer of (near) Future.&#039;&#039;&#039; Invited lecture. Cloud (Saas, Paas, Iaas). Cognitive computing - Whats that all about. Quantum Computing.&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson is a multi-skilled Senior IT Professional with extensive Cloud, DevOps, Development, technical architecture, release management and project management experience gained within a broad range of organisations operating across multiple business sectors across the globe. Thorough and detailed Cloud architecture knowledge built over many years, a true advocate of “Cloud First” thinking and a practitioner of best practices, seeing the TCO and cost saving opportunities of moving to the cloud.   Outstanding experience of designing and directing the implementation of Continuous Integration and Delivery Pipelines. Leading DevOps, environment support, technology architecture and infrastructure design activities and advising team members and management on the principles and benefits of Continuous Delivery and DevOps. A proven ability to lead both local and remote technical / development teams and to successfully deliver agreed solutions of the highest quality, often within complex and challenging environments.  A leader who has successfully built DevOps practices for multiple organisations, hiring the right candidates for the job and helping existing members of staff transform into a DevOps role and instilling the core principals.  A developer who will turn his hand to most languages, most recently GOLANG building a modern web app using micro-service architecture and docker based containers for responsive auto scaling(simple, blisteringly fast, small footprint, docker integration builtin)  and also systems tooling, docker, Terraform etc.&lt;br /&gt;
* Nestihli sme: &lt;br /&gt;
* Pamäte II. Externé pamäte, pevné a optické disky. Polia RAID ([http://senzor.robotika.sk/zp/Prednasky/prednaska06.pdf slajdy 31-63]). ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy]).&lt;br /&gt;
* Počítačové siete - charakteristika a ich rozdelenie. Sieťové médiá. Správa, rámec, paket.  Generácie počítačov.&lt;br /&gt;
* A/D a D/A prevodníky. Riadiace počítače. Elektromagnetická kompatibilita. Počítadlá a časovače. RTC&lt;br /&gt;
Číslicový počítač s von Neumannovou a Harvardskou architektúrou. Klasifikácia počítačov.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [http://senzor.robotika.sk/zp/Prednasky/ --&amp;gt; Slajdy z prednášok.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zoznam odporúčanej študijnej literatúry:&lt;br /&gt;
&lt;br /&gt;
* Sarah L. Harris and David M. Harris: &#039;&#039;&#039;[https://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244 Digital Design and Computer Architecture]&#039;&#039;&#039;. Morgan Kaufman, 3rd ed., 2016. ISBN: 9789382291527&lt;br /&gt;
* David Patterson and John Hennessy: &#039;&#039;[https://www.elsevier.com/books/computer-organization-and-design-arm-edition/patterson/978-0-12-801733-3 Computer Organization and Design ARM Edition]&#039;&#039;. 1st Ed. Morgan Kaufmann, 2016. ISBN: 9780128017333&lt;br /&gt;
* Tibor Krajčovič: &#039;&#039;[http://www2.fiit.stuba.sk/~tkraj/pocitace.pdf Počítače].&#039;&#039; Vydavateľstvo STU, Bratislava, 2000. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
* Richard Balogh: &#039;&#039;[https://www.fei.stuba.sk/sk/kniznica-fei/aktuality-kniznica/vybrane-kapitoly-z-mikropocitacov.html?page_id=6102 Vybrané kapitoly z mikropočítačov: I. časť: Hardware].&#039;&#039; Bratislava: Vydavateľstvo Spektrum STU, 2023. ISBN 978-80-227-5285-5. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
&lt;br /&gt;
Internetové zdroje:&lt;br /&gt;
* https://www.root.cz/serialy/co-se-deje-v-pocitaci/&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Cvičenia&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cvičenia prebiehajú prezenčne v učebni CPU (blok D, 1. posch.) podľa rozvrhu. V prípade choroby&lt;br /&gt;
alebo inej opodstatnenej neprítomnosti si môžete cvičenie nahradiť v ľubovoľnom inom termíne v danom týždni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 1 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# &#039;&#039;&#039;Riešime príklady na prevody DEC-BIN-HEX-ASCII: [[Prevody medzi číselnými sústavami]]&#039;&#039;&#039;&lt;br /&gt;
# prihlásiť sa na PC dočasným heslom a nové heslo si ZAPAMATAŤ&lt;br /&gt;
# prihlásiť sa do Google Classroom svojim stuba.sk menom a heslom&lt;br /&gt;
# prihlásiť sa do AISu&lt;br /&gt;
# nájdite si v AISe vstupný testík a vyplňte ho&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Číselné sústavy]] Príklady: [[Prevody medzi číselnými sústavami]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 2 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# počítame jednoduché príklady [[Aritmetika v dvojkovej sústave]]&lt;br /&gt;
# počítame príklady [[Kódy a kódovanie]]&lt;br /&gt;
# počítame príklady [[Zobrazenie čísel v počítači]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Aritmetické operácie v dvojkovej sústave]] alebo aj  [https://www.khanacademy.org/math/algebra-home/alg-intro-to-algebra/algebra-alternate-number-bases/v/number-systems-introduction Khan Academy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 3 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Návody: [[BBC micro:bit]].&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Programy pre micro:bit&lt;br /&gt;
## naprogramujte jednoduchú animáciu&lt;br /&gt;
## naprogramujte jednoduché minutky počítajúce smerom nadol&lt;br /&gt;
## naprogramujte hraciu kocku &lt;br /&gt;
## vyskúšajte, ako funguje [[Matematika a micro:bit‎‎]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 4 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
&lt;br /&gt;
# [[Kombinačné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória: [http://www2.fiit.stuba.sk/~kvasnicka/Logika/Lecture09/09.prezentacia.pdf Logické obvody]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 5 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy:&lt;br /&gt;
&lt;br /&gt;
#  [[Kombinačné logické obvody s micro:bitom]]&lt;br /&gt;
#   15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 6 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Sekvenčné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: &lt;br /&gt;
* [http://www.dnp.fmph.uniba.sk/~kollar/dg_w/index_d.htm Sekvenčné obvody] alebo [https://www.electronics-tutorials.ws/sequential/seq_1.html Sequential Logic Circuits]&lt;br /&gt;
* https://technobyte.org/flip-flops-latches-designing-truth-tables/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 7 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania - Sekvenčné obvody a stavové automaty s micro:bitom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Návod na cvičenie [[Stavové diagramy s micro:bit]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zadané problémy riešte v prostredí [https://makecode.microbit.org/ &amp;amp;#8594; MakeCode]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 8 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laboratórne cvičenie.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zapojte a odmerajte vlastnosti kombinačných a sekvenčných obvodov podľa návodu [[Meranie s logickými obvodmi‎]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ToDo 2023: ak nestihnete zmerať všetky úlohy na cvičení, môžete si ich prísť domerať do D-219 vo vymedzenom čase.&lt;br /&gt;
&lt;br /&gt;
# Keď to zvládnete, stačí k dvom obvodom z cvičenia pridať ešte 32 a máte hotový celý 8-bitový mikropočítač... Kliknutím na obrázok získate kompletný návod :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:TTLcomputer.jpg|500px|center|link=https://hackaday.io/project/20781-8-bit-color-computer-from-ttl]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 9 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mikroprocesor.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[ZPOC 9: Základy programovania v strojovom kóde]] (&amp;lt;S&amp;gt;[[ASM80 programy|old version]]&amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&#039;&#039;&#039;Zabudnuté inštrukcie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ižinieri v Silicon Valley našli v archívoch dokument, z ktorého vyplýva, že&lt;br /&gt;
niektoré assemblerovské inštrukcie, ktoré autori procesorov vytvorili sa napokon&lt;br /&gt;
do procesorov nedostali. Ktovie prečo? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
    BPDI    Be Polite, Don&#039;t Interrupt&lt;br /&gt;
    CLD     Call a Doctor&lt;br /&gt;
    CRB     Crash and Burn&lt;br /&gt;
    CRN     Convert to Roman Numerals&lt;br /&gt;
    DAC     Divide And Conquer&lt;br /&gt;
    DMNS    Do what I Mean, Not what I Say&lt;br /&gt;
    EPI     Execute Programmer Immediately&lt;br /&gt;
    GE      Generate  Error&lt;br /&gt;
    IBP     Insert Bug and Proceed&lt;br /&gt;
    IAN     Illogical AND&lt;br /&gt;
    IOR     Illogical OR&lt;br /&gt;
    JBW     Jump Both Ways&lt;br /&gt;
    JPO     Jump on Power Off&lt;br /&gt;
    JRA     Jump to Random Address&lt;br /&gt;
    LLI     Lose Last Instruction&lt;br /&gt;
    RNR     Rather Not Run&lt;br /&gt;
    RPM     Read Programmer&#039;s Mind&lt;br /&gt;
    SWOM    Store in Write Only Memory&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 10 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzory na micro:bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Senzory na mikropočítači micro:bit]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 11 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komunikácia s micro:bitmi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Komunikácia a micro:bit 2023]]  (staré verzie: &amp;lt;S&amp;gt;[[Komunikácia a micro:bit‎‎]] alebo [[Bezdrôtová komunikácia a micro:bit‎‎]] &amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
# Okrem toho môžete vypracovať všetky testy, ktoré ste zameškali v priebehu semestra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 12 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy strojového učenia&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Cvičenie základov strojového učenia]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test (prípadne si doplňte všetky, ktoré vám chýbajú)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 13 (bonus) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Robotický simulátor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Robotický simulátor PRIA IDE]]&lt;br /&gt;
# [https://ide.pria.at/projects/vysavac Link do programovacieho prostredia]&lt;br /&gt;
# Toto cvičenie je náhradné pre tých, ktorí z niektorého chýbali a nestihli si ho nahradiť. Dá sa vyriešiť aj doma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Domáce úlohy&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
* Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bonusové príklady&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Za vyriešenie týchto úloh môžete získať okrem dobrého pocitu aj bonusové body. Nezíska ich každý, &lt;br /&gt;
ale ten, kto ako prvý pošle ich riešenie na adresu balogh@elf.stuba.sk&lt;br /&gt;
Ak budú riešenia aj s postupom a tie budú dostatočne odlišné, môžu bonusové body získať aj viacerí. &lt;br /&gt;
Prečiarknuté body znamenajú, že úlohu môžete stále ešte riešiť sebe pre radosť, ale body, žiaľ, už nedostanete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Podmienky absolvovania predmetu ==&lt;br /&gt;
&lt;br /&gt;
# Znalosť odprezentovanej problematiky,&lt;br /&gt;
# absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť),&lt;br /&gt;
# vypracovanie všetkých testíkov &amp;lt;S&amp;gt;aspoň na polovicu&amp;lt;/S&amp;gt; na primeraný počet bodov,&lt;br /&gt;
# a získanie potrebného počtu bodov na skúške (min. 50% písomky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prácu študenta kontroluje a body udeľuje cvičiaci daného krúžku.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Kontakty&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Za menom je uvedené pracovisko a miestnosť. Zamestnanci STU majú e-mailové adresy v tvare meno.priezvisko@stuba.sk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vyučujúci:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* doc. Ing. Richard Balogh, PhD. (UAMT, D-110, streda 11:00)&lt;br /&gt;
&amp;lt;!-- * Ing. Belai (D-126, streda 10:00), Ing. Hlavatý, Ing. Michalovič (D-212, streda 10:00) a Ing. Račkay (D-215, stvrtok 14:00) - doktorandi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RozvrhHodin.png|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Základy počítačov]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19682</id>
		<title>Základy počítačov</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19682"/>
		<updated>2026-09-14T07:12:45Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
{{Predmet&lt;br /&gt;
| Stupeň štúdia = Bakalárske štúdium&lt;br /&gt;
| Voliteľnosť = Povinný&lt;br /&gt;
| Kreditov = 6.00  &lt;br /&gt;
| Ukoncenie = Skúška &lt;br /&gt;
| Semester   =  Zimný semester&lt;br /&gt;
| Prednaska = 2,00 hod./týždeň  &lt;br /&gt;
| Cvicenie = 2,00 hod./týždeň  &lt;br /&gt;
| Procesor = Atmel AT89S8252, &lt;br /&gt;
| Garant  = doc. Ing. Katarína Žáková, PhD.&lt;br /&gt;
| StrankaAIS = [http://is.stuba.sk/katalog/syllabus.pl?predmet=323630 ZPOC]&lt;br /&gt;
| Cieľ = Získať znalosti o základnej koncepcii číslicových počítačov a počítačových systémov. Pochopiť princípy hlavných podsystémov číslicových počítačov - procesor, vstupný a výstupný podsystém a pamäťový podsystém. Vedieť popísať štruktúry hlavných podsystémov číslicových počítačov a pracovať s nimi.&lt;br /&gt;
}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-1&amp;quot; style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Novinky&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 14. 9. Aktualizácia na ZS 2026&lt;br /&gt;
&lt;br /&gt;
=== Opakovanci: uznavanie predmetu ===&lt;br /&gt;
&lt;br /&gt;
Ak ste tento predmet už absolvovali minulý rok, môžete požiadať o jeho uznanie a nemusíte tak&lt;br /&gt;
navštevovať cvičenia znova. Prosím, vyplňte si &lt;br /&gt;
[https://www.fei.stuba.sk/buxus/docs/studium_od_2024/zapis_2425/ziadost_-_uznanie_predmetov.pdf takúto žiadosť], &lt;br /&gt;
kde uvediete, že žiadate o uznanie predmetu (prípadne aj všetky, z ktorých máte &lt;br /&gt;
A, B alebo C) a zanesiete to na PgO. Takéto žiadosti pán prodekan potom bez problémov schvaľuje &lt;br /&gt;
a je to úplne v poriadku aj z hľadiska účasti na výučbe a pod. Nemusíte potom už nič ďalšie &lt;br /&gt;
riešiť, rovno máte zapísanú známku v indexe.  V prípade, že vám predmet nebol uznaný, musíte riadne navštevovať&lt;br /&gt;
prednášky aj cvičenia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 25.11. 21:00 Všetky bonusové úlohy sú vyriešené (to bola fakt bleskovka!).&lt;br /&gt;
&lt;br /&gt;
* Exkurzia: Múzeum počítačov a návšteva superpočítača Devana na Slovenskej akadémii vied (SAV) &lt;br /&gt;
bude v piatok 12. 12. od 10:30. Do 4. 12 sa môžete prihlásiť tu: https://docs.google.com/spreadsheets/d/118-26-UxM_SshVW7laI3fxEfMN1JJAgCwafhXrweeIk/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* 27.10. Ak si myslíte, že logické obvody už chápete, zahrajte si [https://systemic-games.itch.io/bomb-squad-academy Bomb Squad Academy] - stačí demo, ktoré je zadarmo :)  Alebo si môžete zahrať trocha nudnejšiu [http://nandgame.com/ NANDgame].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 21.12. Po skúške prosím vyplňte aj [https://forms.gle/8vxxw82bFhP3ezQU8 Dotazník kvality predmetu]&lt;br /&gt;
* 21. 12. Program: &lt;br /&gt;
** 9:30 Náhradné cvičenie v D-208&lt;br /&gt;
** 11:00 Skúška A-J v CPU &lt;br /&gt;
** 12:30 Skúška K-Ž v CPU&lt;br /&gt;
** 14:00 Odchod na exkurziu SAV&lt;br /&gt;
** 14:30 Exkurzia SAV&lt;br /&gt;
* 28. 11. Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
** Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
* A tu nájdete doplnkový študijný materiál k téme [[Meranie výkonu počítačov]]&lt;br /&gt;
* 11. 10. Server znova funguje&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://forms.gle/pMc7mnW56f79GZhZ9 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, ale nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* Nezabudnite na domáce štúdium 2. kapitoly z knihy [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. &lt;br /&gt;
&lt;br /&gt;
*  3. 12. 20:00  Pribudli ďalšie bonusové [[#Domáce úlohy]], za ktorých vyriešenie môžete získať body navyše.&lt;br /&gt;
&lt;br /&gt;
* V poslednom týždni semestra nebudeme cvičiť nič nové, ale môžete si prísť docvičiť, alebo dopísať testy v nasledovných termínoch:&lt;br /&gt;
** Pondelok 16. 12. od 15:00 do 16:00 (Valocký)&lt;br /&gt;
** Utorok 17. 12.   od 8:00 do  10:00 (Chamraz)&lt;br /&gt;
** Streda 18. 12.   od 9:00 do  12:00 (Balogh), pozor, toto cvičenie bude v CPU (blok D, 1. posch)&lt;br /&gt;
&lt;br /&gt;
* 10. 12. 2019 bude posledná prednáška v tomto semestri. Privítame na nej hosťa - Williama Carbone z IBM, prednášať bude o počítačovej budúcnosti a technológiach IBM pre takéto počítače. Prednáška bude v angličtine.&lt;br /&gt;
&lt;br /&gt;
* Predtermín (len pre zapísaných) bude v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Priezvisko A-L o 10:00, M-Z o 11:00&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Skúška:&#039;&#039;&#039; riadny termín bude v pondelok, 20. januára 2020  v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Študenti prídu rozdelení podľa priezviska nasledovne: A-L o 9:00, M-Z o 11:00.&lt;br /&gt;
&lt;br /&gt;
* Opravný termín bude vo štvrtok, 6. februára 2020 o 9:00 v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:vianoce.png|center|250px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Všetkým prvákom prajem príjemné prežitie vianočných sviatkov,&amp;lt;BR&amp;gt;pevné zdravie  v novom roku a úspešne zakončené skúškové obdobie.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Richard Balogh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://goo.gl/forms/HIrZVDfC3rx4PNfS2 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, avšak nie je časovo limitovaný a nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* [[Meranie výkonu počítačov]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Náhrada za vymeškané cvičenia ===&lt;br /&gt;
&lt;br /&gt;
Jedno vymeškané cvičenie z ktorého vám chýbajú potrebné body je možné nahradiť tak, že &lt;br /&gt;
po dohode s prednášajúcim spracujete na 2 strany formátu A4 niektorú z nasledovných tém:&lt;br /&gt;
&lt;br /&gt;
A.) Alpha GO&lt;br /&gt;
* [1] https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/alphago-zero-goes-from-blank-slate-to-grandmaster-in-three-dayswithout-any-help-at-all&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/why-alphago-is-not-ai&lt;br /&gt;
&lt;br /&gt;
B.) Biopocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/biomedical/devices/biocomputer-and-memory-built-inside-living-bacteria&lt;br /&gt;
* [2] https://spectrum.ieee.org/the-human-os/biomedical/devices/biological-computer-commands-living-cells-to-light-up&lt;br /&gt;
&lt;br /&gt;
C.) Blockchain:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world&lt;br /&gt;
* [2] https://spectrum.ieee.org/computing/networks/how-blockchains-work&lt;br /&gt;
&lt;br /&gt;
D.) Kvantove pocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/nanoclast/computing/hardware/a-first-two-qubit-logic-gate-in-silicon&lt;br /&gt;
* [2] https://spectrum.ieee.org/tech-talk/computing/hardware/qudits-the-real-future-of-quantum-computing&lt;br /&gt;
&lt;br /&gt;
E.) Neurocomputing:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/hardware/the-brain-as-computer-bad-at-math-good-at-everything-else&lt;br /&gt;
* [2] https://spectrum.ieee.org/semiconductors/design/neuromorphic-chips-are-destined-for-deep-learningor-obscurity&lt;br /&gt;
&lt;br /&gt;
F.) Autonomous car:&lt;br /&gt;
* [1] https://spectrum.ieee.org/cars-that-think/transportation/self-driving/nvidia-or-nxpwhose-robocar-brain-will-win&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/how-google-self-driving-car-works&lt;br /&gt;
&lt;br /&gt;
Pri vypracovani musite pouzit vzdy aspon tie dva linky ktore su tam, samozrejme si mozete najst aj dalsiu literaturu k teme.&lt;br /&gt;
Na kazdu z tem sa moze prihlasit len jeden jediny student!&lt;br /&gt;
&lt;br /&gt;
Vysledny dokument potom pridame ako studijny material na stranku ZPOC.&lt;br /&gt;
Termin by mohol byt do 17.12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2026&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;15. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  &lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2025&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;16. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  ([https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyA.pdf slajdy 1], [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyB.pdf slajdy 2] a [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;23. 09.&#039;&#039;&#039; 2️⃣ &#039;&#039;&#039;Ukladanie informácií v počítači.&#039;&#039;&#039; Kódy ASCII a Unicode, Big Endian, Little Endian. Reálne čísla s pohyblivou rádovou čiarkou, IEEE-754.  ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyA.pdf slajdy 1]) a ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyB.pdf slajdy 2])&lt;br /&gt;
** Film [https://youtu.be/zZuqLLdx2YQ The Imitation Game]&lt;br /&gt;
** Angela Watercutter &#039;&#039;[https://www.wired.com/2014/11/imitation-game-building-christopher/ How Designers Recreated Alan Turing&#039;s Code-Breaking Computer for Imitation Game]&#039;&#039;. Wired, 2104.&lt;br /&gt;
** Doplnok k formátom [https://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/ s plávajúcou desatinnou čiarkou]&lt;br /&gt;
** Pentium [https://en.wikipedia.org/wiki/Pentium_FDIV_bug fdiv bug]&lt;br /&gt;
** Ariane 5 - [http://sunnyday.mit.edu/nasa-class/Ariane5-report.html opis nehody] ([https://youtu.be/gp_D8r-2hwk video 1], [https://youtu.be/5tJPXYA0Nec video 2])&lt;br /&gt;
** Patriot [https://msquair.files.wordpress.com/2015/05/patriot-timing-error.pdf system timing error]&lt;br /&gt;
** Google Colab Notebook: https://colab.research.google.com/drive/1RMyuumEOuH13smF9_WIdbbqy109Wh0MC?usp=sharing&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;30. 09.&#039;&#039;&#039; 3️⃣ &#039;&#039;&#039;Kombinačné logické obvody.&#039;&#039;&#039; Boolova algebra, DeMorganove pravidlá. Pravdivostná tabuľka, logická schéma, úplný systém logických funkcií. Analýza logických obvodov. ([https://senzor.robotika.sk/zp/Prednasky/03prednaskaZPOC-slajdyA.pdf slajdy])&amp;lt;BR&amp;gt;Úvod do programovania mikropočítača BBC micro:bit ([https://senzor.robotika.sk/zp/Prednasky/microbit-Uvod.pdf slajdy]) &lt;br /&gt;
** Stránka [https://microbit.org/ micro:bit]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;07. 10.&#039;&#039;&#039; 4️⃣ &#039;&#039;&#039;Kombinačné logické obvody II.&#039;&#039;&#039; Analýza a syntéza logických obvodov. Polovičná a úplná sčítačka. ([https://senzor.robotika.sk/zp/Prednasky/04prednaskaZPOC-slajdyA.pdf slajdy])&lt;br /&gt;
** Robert Keim: &#039;&#039;[https://www.allaboutcircuits.com/technical-articles/what-is-an-fpga-introduction-to-programmable-logic-fpga-vs-microcontroller/ What Is an FPGA? An Introduction to Programmable Logic]&#039;&#039;. 2018&lt;br /&gt;
** Film [https://youtu.be/KPeHFDxKUP4 Back to the Future] a [https://youtu.be/afwYMdN43Mc scéna so zosilňovačom]&lt;br /&gt;
** [https://madformath.com/calculators/digital-systems/karnaugh-maps/karnaugh-map-solver Karnaugh map solver 1] a [https://karnaughmapsolver.com/ solver 2]&lt;br /&gt;
** Simulátor [https://simulator.io/ simulator.io]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;14. 10.&#039;&#039;&#039; 5️⃣ &#039;&#039;&#039;Spínacie obvody.&#039;&#039;&#039; Relé, elektrónka, tranzistor, integrovaný obvod. Moorov zákon. Časové diagramy. ([https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-slajdyA.pdf slajdy] a [https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Datasheet obvodu [http://senzor.robotika.sk/zp/DM74LS00.pdf 7400]&lt;br /&gt;
** Moorov zákon: [https://www.intel.com/content/www/us/en/silicon-innovations/moores-law-technology.html video]&lt;br /&gt;
** Robert Ross: &#039;&#039;[https://robbreport.com/gear/audio/vacuum-tube-amps-remerging-1234797622/ ‘It Sounds Human’: Audiophiles Are Embracing the Lush Sounds of Old-School Tube Amps]&#039;&#039;&lt;br /&gt;
** Video: [https://youtu.be/_9_AEVQ_p74?si=ySTOy212WNOeJTBh Claude Shannon demonstrates &amp;quot;Theseus&amp;quot; Machine Learning]&lt;br /&gt;
** Film: [https://youtu.be/AxQ9GG6hUDM?si=BbLnkbjNTGnUPalw Forbidden Planet Official Trailer] - Leslie Nielsen Movie (1956) &lt;br /&gt;
** [https://micro.magnet.fsu.edu/electromag/java/transistor/ Výroba tranzistora] (animácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/5747025316151296/cmos-nand Hradlo NAND technológiou CMOS] (simulácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/4806663265714176/ttl-standard-nand-logic-gate Hradlo NAND technológiou TTL] (simulácia)&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;21.10.&#039;&#039;&#039; 6️⃣ &#039;&#039;&#039;Sekvenčné obvody.&#039;&#039;&#039; Oneskorenie. Spätná väzba, oscilátor. Kybernetika. ([http://senzor.robotika.sk/zp/Prednasky/prednaska05.pdf slajdy])&lt;br /&gt;
** [https://cw.fel.cvut.cz/wiki/_media/courses/a3m33iro/vysoky50letkybernetiky1998_v626-632.pdf Z histórie kybernetiky u nás]&lt;br /&gt;
** [http://www.ieeevic.org/video-interview-norbert-wiener-inventor-of-cybernetics/ Norbert Wiener] - video&lt;br /&gt;
** [https://youtu.be/nS0luYZd4fs Shannon: Theseus demo] - video &amp;lt;!--&lt;br /&gt;
** Simulator.IO&lt;br /&gt;
*** R-S preklápací obvod https://simulator.io/board/Gv2ZlMW8SZ/3&lt;br /&gt;
*** Pamäťový register https://simulator.io/board/Ec8FMQOuMx/2&lt;br /&gt;
*** Posuvný register https://simulator.io/board/Da9uTzXj5o/1&lt;br /&gt;
*** Delička frekvencie https://simulator.io/board/VTJCoRBS5o/1&lt;br /&gt;
*** Binárne počítadlo https://simulator.io/board/ix1nHMxe7w/1 --&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;28. 10.&#039;&#039;&#039; 7️⃣ &#039;&#039;&#039;Pamäte.&#039;&#039;&#039; Rýchlosť, cena, kapacita. Typy pamätí RWM, ROM, EPROM, EEPROM, FLASH. Adresovanie, dynamická a statická pamäť. ([http://senzor.robotika.sk/zp/Prednasky/prednaska06a.pdf slajdy])&amp;lt;BR&amp;gt;Stavové diagramy a BBC micro:bit ([http://senzor.robotika.sk/zp/Prednasky/prednaska06b.pdf slajdy])&lt;br /&gt;
** [http://www.computerhistory.org/timeline/memory-storage/ Timeline of computer memory]&lt;br /&gt;
** Static RAM 2114 1kB [http://www.science.smith.edu/dftwiki/images/a/ab/2114_datasheet.pdf datasheet]&lt;br /&gt;
** [https://www.ibm.com/history/dram Dynamic random-access memory (DRAM)] history by IBM&lt;br /&gt;
** [https://www.ibm.com/think/topics/flash-storage FLASH memory]] history by IBM&lt;br /&gt;
** EEPROM 2708 1kB [http://www.jrok.com/datasheet/TMS2708.pdf datasheet]&lt;br /&gt;
** Film [https://www.youtube.com/watch?v=hMT8tRrEMC4 TRON] (1982) a remake [https://www.youtube.com/watch?v=SqSuRdkglxM TRON Legacy] (2010)&lt;br /&gt;
** Men In Black 3 | [https://www.youtube.com/watch?v=nQmkkryDp0Y Retro Neuralyzer Scene]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 4. 11.&#039;&#039;&#039; 8️⃣  &#039;&#039;&#039;Mikroprocesor&#039;&#039;&#039; Základná stavebné prvky procesora. Operačná a riadiaca časť procesora. Inštrukčný súbor. Typy inštrukcií. ([http://senzor.robotika.sk/zp/Prednasky/prednaska08.pdf slajdy])&lt;br /&gt;
** Frederico Faggin: &#039;&#039;[http://ieeexplore.ieee.org/document/4776530/ Making of the First Microprocessor]&#039;&#039;.&lt;br /&gt;
** [https://youtu.be/Knd-U-avG0c Zoom Into a Microchip] - National Informal STEM Education Network (NISE Net)&lt;br /&gt;
** Papierový [https://cs.wikipedia.org/wiki/Pap%C3%ADrov%C3%BD_po%C4%8D%C3%ADta%C4%8D_CGS počítač CGS]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;11. 11.&#039;&#039;&#039; 9️⃣ &#039;&#039;&#039;Mikroprocesor II.&#039;&#039;&#039; Matematický koprocesor. Inštrukčný súbor. Typy inštrukcií. Formát inštrukcie. Inštrukcie - práca s pamäťovým systémom počítača. Spôsoby adresácie. Procesory s architektúrou RISC a CISC. Asembler, jazyk symbolických adries, simulátor a emulátor. ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy])&lt;br /&gt;
** Jednodoskový počítač [https://sk.wikipedia.org/wiki/PMI-80 PMI-80] &amp;lt;!-- http://www.nostalcomp.cz/pmi80.php --&amp;gt;&lt;br /&gt;
** Osobný počítač [https://pmd85.borik.net/wiki/Intro PMD-85]&lt;br /&gt;
** Školský robot [http://www.avir.sk/robotika/historia_kar/roboti/KOLKA025.html KOLKA]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Intel_8087 Aritmetický koprocesor i8087]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/8080instructions.pdf Ťahák na cvičenia s výberom inštrukcií]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 25. 11.&#039;&#039;&#039; 🔟 Mikroprocesor III. Zásobník, prerušenie, podprogramy. Hierarchia počítačov, mainframe, workstation, embedded. [[Meranie výkonu počítačov]].([http://senzor.robotika.sk/zp/Prednasky/prednaska10.pdf slajdy])&lt;br /&gt;
** [https://www.top500.org/ Zoznam 500 najvýkonnejších počítačov na svete]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Cray-2 Superpočítač CRAY-2]&lt;br /&gt;
** [https://waitbutwhy.com/2014/11/from-1-to-1000000.html Milión bodiek]&lt;br /&gt;
** [[Meranie výkonu počítačov]]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 2. 12.&#039;&#039;&#039; Umelá inteligencia a strojové učenie&lt;br /&gt;
* &#039;&#039;&#039; 9. 12.&#039;&#039;&#039; Kvantové počítače&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;FONT COlor=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;Prednášky z minulého roka&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;20. 11.&#039;&#039;&#039; 🔟 Georg Jaggle, TU Wien: &#039;&#039;&#039;Inputs and outputs&#039;&#039;&#039; (([http://senzor.robotika.sk/zp/Prednasky/prednaska07a.pdf Lecture in english]). &#039;&#039;&#039;Vstupy a výstupy.&#039;&#039;&#039; Digitálny vstup, výstup, displej, klávesnica, multiplexovanie. (([http://senzor.robotika.sk/zp/Prednasky/prednaska07b.pdf slajdy]))&lt;br /&gt;
** Úvodné video [https://www.youtube.com/watch?v=LDPVwI3KULk Matrix - computer interface]&lt;br /&gt;
** Video z prezentácie [https://youtu.be/tIIJME8-au8 Timo Boll vs. robot]&lt;br /&gt;
** Romeo [https://youtu.be/kz1Ob0Ks554 humanoid robot grasping demonstration]&lt;br /&gt;
** Blue Danube [https://youtu.be/-sHcQcFd7-A Airskin collaborative robotics]&lt;br /&gt;
** Paro [https://youtu.be/2ZUn9qtG8ow therapeutic robot]&lt;br /&gt;
** Thymio [https://www.thymio.org/ educational robot]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;10.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Towards Augmented Intelligence.&#039;&#039;&#039; &#039;&#039;Tools and Skills for the Cognitive Era.&#039;&#039; Invited lecture. &lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska11-IBM.pdf slajdy]&lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.youtube.com/watch?v=MSc5I550jlY Smart Wildlife project]&lt;br /&gt;
** Use The Force - [https://youtu.be/K-4mp_e5v4A Move a BB-8 with Your Mind]&lt;br /&gt;
** [https://qiskit.org/ Quantum computing]&lt;br /&gt;
** [https://www.youtube.com/watch?v=3WrVUb7ej0o Tanmay Bakshi] video&lt;br /&gt;
*** Tanmay Bakshi: [https://www.amazon.com/s?k=tanmay+bakshi books]&lt;br /&gt;
** [https://tone-analyzer-demo.ng.bluemix.net/ Text analyzer demo]&lt;br /&gt;
** Free [https://cognitiveclass.ai/ Cognitive Courses and Lessons]&lt;br /&gt;
** IBM Centennial Film [https://www.youtube.com/watch?eWxUWJgfzk 100 X 100 A century of achievements that have changed the world]&lt;br /&gt;
* &#039;&#039;&#039;.11.&#039;&#039;&#039; Vstupno-výstupných podsystém. I/O karty. Paralelný port. Vstup a výstup logických a číslicových hodnôt ([http://senzor.robotika.sk/zp/Prednasky/prednaska11.pdf slajdy]).&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039; Prenos údajov. Zbernicová architektúra počítača. Zbernice. Sériové rozhranie a UART.  Jednoprocesorové a viacprocesorové zbernice, arbitrácia prístupu. Multiplexovaná zbernica. Príklady štandardných zberníc ([http://senzor.robotika.sk/zp/Prednasky/prednaska11a.pdf slajdy]).&lt;br /&gt;
&lt;br /&gt;
* Prednáška o AI ToDo: pretriedit odkazy!&lt;br /&gt;
** [https://youtu.be/JA472HOifoA?si=uqtaykqgagVi5RM4 Top 10 AI Movies WARNING Us For Our Future]&lt;br /&gt;
** [https://youtu.be/iyKt7bK--uo?si=BXPm6SX308N0gNDM Top 10 AI Movies With HIDDEN Messages For Humans]&lt;br /&gt;
** [https://youtu.be/HLl47qX6-UM?si=I5jETjAq7004AoMb Top 10 AI TV Shows WARNING Us For Our Future]&lt;br /&gt;
** https://www.minedu.sk/ai-dni-priniesli-umelu-inteligenciu-do-100-slovenskych-skol/&lt;br /&gt;
** https://ai.iedu.sk/nastroje-ai/&lt;br /&gt;
** https://bratislavaiforum.com/global-forum/&lt;br /&gt;
** https://www.dny.ai/#program&lt;br /&gt;
** https://www.slovensko.ai/&lt;br /&gt;
** https://www.stuba.sk/sk/diani-na-stu/prehlad-aktualit/stu-ma-pravidla-pouzivania-umelej-inteligencie.html?page_id=17202&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Computing: vision for the Future.&#039;&#039;&#039; Invited lecture. History and status now. Limits and beyonds. Computers as a service.     Future challenges: blokchain, quantum computing, cognitive computing, clouds and services, internet of things. [[Základy počítačov - pozvaná prednáška|More information...]]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska12-IBM.pdf slajdy]&lt;br /&gt;
** [https://www.youtube.com/watch?v=pBiVyEfZVUU History of computers - partI.] &lt;br /&gt;
** [https://www.youtube.com/watch?v=HRi1BHjID3o History of computers - partII.] &lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.evaaugustyn.com/ibm-watson-x-music AI Music by IBM Watson]&lt;br /&gt;
** Video Johna Cohna, ktoré sme nevideli:&lt;br /&gt;
*** https://youtu.be/I-NT1-BdOvI&lt;br /&gt;
*** https://www.youtube.com/watch?v=qxRM99LlcVc&lt;br /&gt;
&lt;br /&gt;
2017&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Carbone-Lecture2018.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson, IBM: &#039;&#039;&#039;The Computer of (near) Future.&#039;&#039;&#039; Invited lecture. Cloud (Saas, Paas, Iaas). Cognitive computing - Whats that all about. Quantum Computing.&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson is a multi-skilled Senior IT Professional with extensive Cloud, DevOps, Development, technical architecture, release management and project management experience gained within a broad range of organisations operating across multiple business sectors across the globe. Thorough and detailed Cloud architecture knowledge built over many years, a true advocate of “Cloud First” thinking and a practitioner of best practices, seeing the TCO and cost saving opportunities of moving to the cloud.   Outstanding experience of designing and directing the implementation of Continuous Integration and Delivery Pipelines. Leading DevOps, environment support, technology architecture and infrastructure design activities and advising team members and management on the principles and benefits of Continuous Delivery and DevOps. A proven ability to lead both local and remote technical / development teams and to successfully deliver agreed solutions of the highest quality, often within complex and challenging environments.  A leader who has successfully built DevOps practices for multiple organisations, hiring the right candidates for the job and helping existing members of staff transform into a DevOps role and instilling the core principals.  A developer who will turn his hand to most languages, most recently GOLANG building a modern web app using micro-service architecture and docker based containers for responsive auto scaling(simple, blisteringly fast, small footprint, docker integration builtin)  and also systems tooling, docker, Terraform etc.&lt;br /&gt;
* Nestihli sme: &lt;br /&gt;
* Pamäte II. Externé pamäte, pevné a optické disky. Polia RAID ([http://senzor.robotika.sk/zp/Prednasky/prednaska06.pdf slajdy 31-63]). ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy]).&lt;br /&gt;
* Počítačové siete - charakteristika a ich rozdelenie. Sieťové médiá. Správa, rámec, paket.  Generácie počítačov.&lt;br /&gt;
* A/D a D/A prevodníky. Riadiace počítače. Elektromagnetická kompatibilita. Počítadlá a časovače. RTC&lt;br /&gt;
Číslicový počítač s von Neumannovou a Harvardskou architektúrou. Klasifikácia počítačov.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [http://senzor.robotika.sk/zp/Prednasky/ --&amp;gt; Slajdy z prednášok.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zoznam odporúčanej študijnej literatúry:&lt;br /&gt;
&lt;br /&gt;
* Sarah L. Harris and David M. Harris: &#039;&#039;&#039;[https://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244 Digital Design and Computer Architecture]&#039;&#039;&#039;. Morgan Kaufman, 3rd ed., 2016. ISBN: 9789382291527&lt;br /&gt;
* David Patterson and John Hennessy: &#039;&#039;[https://www.elsevier.com/books/computer-organization-and-design-arm-edition/patterson/978-0-12-801733-3 Computer Organization and Design ARM Edition]&#039;&#039;. 1st Ed. Morgan Kaufmann, 2016. ISBN: 9780128017333&lt;br /&gt;
* Tibor Krajčovič: &#039;&#039;[http://www2.fiit.stuba.sk/~tkraj/pocitace.pdf Počítače].&#039;&#039; Vydavateľstvo STU, Bratislava, 2000. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
* Richard Balogh: &#039;&#039;[https://www.fei.stuba.sk/sk/kniznica-fei/aktuality-kniznica/vybrane-kapitoly-z-mikropocitacov.html?page_id=6102 Vybrané kapitoly z mikropočítačov: I. časť: Hardware].&#039;&#039; Bratislava: Vydavateľstvo Spektrum STU, 2023. ISBN 978-80-227-5285-5. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
&lt;br /&gt;
Internetové zdroje:&lt;br /&gt;
* https://www.root.cz/serialy/co-se-deje-v-pocitaci/&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Cvičenia&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cvičenia prebiehajú prezenčne v učebni CPU (blok D, 1. posch.) podľa rozvrhu. V prípade choroby&lt;br /&gt;
alebo inej opodstatnenej neprítomnosti si môžete cvičenie nahradiť v ľubovoľnom inom termíne v danom týždni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 1 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# prihlásiť sa na PC dočasným heslom a nájsť si v AISe mail s vlastným prihlasovacím menom a heslom.&lt;br /&gt;
# prihlásiť sa svojim menom a heslom&lt;br /&gt;
# webstránka predmetu bude http://senzor.robotika.sk - prvá ikonka vľavo hore v tabuľke ZPOC&lt;br /&gt;
# &#039;&#039;&#039;Riešime príklady na prevody DEC-BIN-HEX-ASCII: [[Prevody medzi číselnými sústavami]]&#039;&#039;&#039;&lt;br /&gt;
# nájdite si v AISe vstupný testík a vyplňte ho&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Číselné sústavy]] Príklady: [[Prevody medzi číselnými sústavami]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
=== Cvičenie 2 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# počítame jednoduché príklady [[Aritmetika v dvojkovej sústave]]&lt;br /&gt;
# počítame príklady [[Kódy a kódovanie]]&lt;br /&gt;
# počítame príklady [[Zobrazenie čísel v počítači]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Aritmetické operácie v dvojkovej sústave]] alebo aj  [https://www.khanacademy.org/math/algebra-home/alg-intro-to-algebra/algebra-alternate-number-bases/v/number-systems-introduction Khan Academy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 3 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Návody: [[BBC micro:bit]].&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Programy pre micro:bit&lt;br /&gt;
## naprogramujte jednoduchú animáciu&lt;br /&gt;
## naprogramujte jednoduché minutky počítajúce smerom nadol&lt;br /&gt;
## naprogramujte hraciu kocku &lt;br /&gt;
## vyskúšajte, ako funguje [[Matematika a micro:bit‎‎]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 4 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
&lt;br /&gt;
# [[Kombinačné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória: [http://www2.fiit.stuba.sk/~kvasnicka/Logika/Lecture09/09.prezentacia.pdf Logické obvody]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 5 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy:&lt;br /&gt;
&lt;br /&gt;
#  [[Kombinačné logické obvody s micro:bitom]]&lt;br /&gt;
#   15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 6 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Sekvenčné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: &lt;br /&gt;
* [http://www.dnp.fmph.uniba.sk/~kollar/dg_w/index_d.htm Sekvenčné obvody] alebo [https://www.electronics-tutorials.ws/sequential/seq_1.html Sequential Logic Circuits]&lt;br /&gt;
* https://technobyte.org/flip-flops-latches-designing-truth-tables/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 7 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania - Sekvenčné obvody a stavové automaty s micro:bitom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Návod na cvičenie [[Stavové diagramy s micro:bit]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zadané problémy riešte v prostredí [https://makecode.microbit.org/ &amp;amp;#8594; MakeCode]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 8 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laboratórne cvičenie.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zapojte a odmerajte vlastnosti kombinačných a sekvenčných obvodov podľa návodu [[Meranie s logickými obvodmi‎]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ToDo 2023: ak nestihnete zmerať všetky úlohy na cvičení, môžete si ich prísť domerať do D-219 vo vymedzenom čase.&lt;br /&gt;
&lt;br /&gt;
# Keď to zvládnete, stačí k dvom obvodom z cvičenia pridať ešte 32 a máte hotový celý 8-bitový mikropočítač... Kliknutím na obrázok získate kompletný návod :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:TTLcomputer.jpg|500px|center|link=https://hackaday.io/project/20781-8-bit-color-computer-from-ttl]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 9 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mikroprocesor.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[ZPOC 9: Základy programovania v strojovom kóde]] (&amp;lt;S&amp;gt;[[ASM80 programy|old version]]&amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&#039;&#039;&#039;Zabudnuté inštrukcie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ižinieri v Silicon Valley našli v archívoch dokument, z ktorého vyplýva, že&lt;br /&gt;
niektoré assemblerovské inštrukcie, ktoré autori procesorov vytvorili sa napokon&lt;br /&gt;
do procesorov nedostali. Ktovie prečo? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
    BPDI    Be Polite, Don&#039;t Interrupt&lt;br /&gt;
    CLD     Call a Doctor&lt;br /&gt;
    CRB     Crash and Burn&lt;br /&gt;
    CRN     Convert to Roman Numerals&lt;br /&gt;
    DAC     Divide And Conquer&lt;br /&gt;
    DMNS    Do what I Mean, Not what I Say&lt;br /&gt;
    EPI     Execute Programmer Immediately&lt;br /&gt;
    GE      Generate  Error&lt;br /&gt;
    IBP     Insert Bug and Proceed&lt;br /&gt;
    IAN     Illogical AND&lt;br /&gt;
    IOR     Illogical OR&lt;br /&gt;
    JBW     Jump Both Ways&lt;br /&gt;
    JPO     Jump on Power Off&lt;br /&gt;
    JRA     Jump to Random Address&lt;br /&gt;
    LLI     Lose Last Instruction&lt;br /&gt;
    RNR     Rather Not Run&lt;br /&gt;
    RPM     Read Programmer&#039;s Mind&lt;br /&gt;
    SWOM    Store in Write Only Memory&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 10 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzory na micro:bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Senzory na mikropočítači micro:bit]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 11 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komunikácia s micro:bitmi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Komunikácia a micro:bit 2023]]  (staré verzie: &amp;lt;S&amp;gt;[[Komunikácia a micro:bit‎‎]] alebo [[Bezdrôtová komunikácia a micro:bit‎‎]] &amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
# Okrem toho môžete vypracovať všetky testy, ktoré ste zameškali v priebehu semestra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 12 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy strojového učenia&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Cvičenie základov strojového učenia]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test (prípadne si doplňte všetky, ktoré vám chýbajú)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 13 (bonus) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Robotický simulátor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Robotický simulátor PRIA IDE]]&lt;br /&gt;
# [https://ide.pria.at/projects/vysavac Link do programovacieho prostredia]&lt;br /&gt;
# Toto cvičenie je náhradné pre tých, ktorí z niektorého chýbali a nestihli si ho nahradiť. Dá sa vyriešiť aj doma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Domáce úlohy&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
* Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bonusové príklady&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Za vyriešenie týchto úloh môžete získať okrem dobrého pocitu aj bonusové body. Nezíska ich každý, &lt;br /&gt;
ale ten, kto ako prvý pošle ich riešenie na adresu balogh@elf.stuba.sk&lt;br /&gt;
Ak budú riešenia aj s postupom a tie budú dostatočne odlišné, môžu bonusové body získať aj viacerí. &lt;br /&gt;
Prečiarknuté body znamenajú, že úlohu môžete stále ešte riešiť sebe pre radosť, ale body, žiaľ, už nedostanete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Podmienky absolvovania predmetu ==&lt;br /&gt;
&lt;br /&gt;
# Znalosť odprezentovanej problematiky,&lt;br /&gt;
# absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť),&lt;br /&gt;
# vypracovanie všetkých testíkov &amp;lt;S&amp;gt;aspoň na polovicu&amp;lt;/S&amp;gt; na primeraný počet bodov,&lt;br /&gt;
# a získanie potrebného počtu bodov na skúške (min. 50% písomky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prácu študenta kontroluje a body udeľuje cvičiaci daného krúžku.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Kontakty&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Za menom je uvedené pracovisko a miestnosť. Zamestnanci STU majú e-mailové adresy v tvare meno.priezvisko@stuba.sk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vyučujúci:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* doc. Ing. Richard Balogh, PhD. (UAMT, D-110, streda 11:00)&lt;br /&gt;
&amp;lt;!-- * Ing. Belai (D-126, streda 10:00), Ing. Hlavatý, Ing. Michalovič (D-212, streda 10:00) a Ing. Račkay (D-215, stvrtok 14:00) - doktorandi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RozvrhHodin.png|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Základy počítačov]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:RozvrhHodin.png&amp;diff=19681</id>
		<title>Súbor:RozvrhHodin.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:RozvrhHodin.png&amp;diff=19681"/>
		<updated>2026-09-14T07:10:35Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Balogh nahral novú verziu Súbor:RozvrhHodin.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19680</id>
		<title>Základy počítačov</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Z%C3%A1klady_po%C4%8D%C3%ADta%C4%8Dov&amp;diff=19680"/>
		<updated>2026-09-14T07:10:03Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Novinky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
{{Predmet&lt;br /&gt;
| Stupeň štúdia = Bakalárske štúdium&lt;br /&gt;
| Voliteľnosť = Povinný&lt;br /&gt;
| Kreditov = 6.00  &lt;br /&gt;
| Ukoncenie = Skúška &lt;br /&gt;
| Semester   =  Zimný semester&lt;br /&gt;
| Prednaska = 2,00 hod./týždeň  &lt;br /&gt;
| Cvicenie = 2,00 hod./týždeň  &lt;br /&gt;
| Procesor = Atmel AT89S8252, &lt;br /&gt;
| Garant  = doc. Ing. Katarína Žáková, PhD.&lt;br /&gt;
| StrankaAIS = [http://is.stuba.sk/katalog/syllabus.pl?predmet=323630 ZPOC]&lt;br /&gt;
| Cieľ = Získať znalosti o základnej koncepcii číslicových počítačov a počítačových systémov. Pochopiť princípy hlavných podsystémov číslicových počítačov - procesor, vstupný a výstupný podsystém a pamäťový podsystém. Vedieť popísať štruktúry hlavných podsystémov číslicových počítačov a pracovať s nimi.&lt;br /&gt;
}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-1&amp;quot; style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Novinky&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 14. 9. Aktualizácia na ZS 2026&lt;br /&gt;
&lt;br /&gt;
=== Opakovanci: uznavanie predmetu ===&lt;br /&gt;
&lt;br /&gt;
Ak ste tento predmet už absolvovali minulý rok, môžete požiadať o jeho uznanie a nemusíte tak&lt;br /&gt;
navštevovať cvičenia znova. Prosím, vyplňte si &lt;br /&gt;
[https://www.fei.stuba.sk/buxus/docs/studium_od_2024/zapis_2425/ziadost_-_uznanie_predmetov.pdf takúto žiadosť], &lt;br /&gt;
kde uvediete, že žiadate o uznanie predmetu (prípadne aj všetky, z ktorých máte &lt;br /&gt;
A, B alebo C) a zanesiete to na PgO. Takéto žiadosti pán prodekan potom bez problémov schvaľuje &lt;br /&gt;
a je to úplne v poriadku aj z hľadiska účasti na výučbe a pod. Nemusíte potom už nič ďalšie &lt;br /&gt;
riešiť, rovno máte zapísanú známku v indexe.  V prípade, že vám predmet nebol uznaný, musíte riadne navštevovať&lt;br /&gt;
prednášky aj cvičenia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 25.11. 21:00 Všetky bonusové úlohy sú vyriešené (to bola fakt bleskovka!).&lt;br /&gt;
&lt;br /&gt;
* Exkurzia: Múzeum počítačov a návšteva superpočítača Devana na Slovenskej akadémii vied (SAV) &lt;br /&gt;
bude v piatok 12. 12. od 10:30. Do 4. 12 sa môžete prihlásiť tu: https://docs.google.com/spreadsheets/d/118-26-UxM_SshVW7laI3fxEfMN1JJAgCwafhXrweeIk/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* 27.10. Ak si myslíte, že logické obvody už chápete, zahrajte si [https://systemic-games.itch.io/bomb-squad-academy Bomb Squad Academy] - stačí demo, ktoré je zadarmo :)  Alebo si môžete zahrať trocha nudnejšiu [http://nandgame.com/ NANDgame].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 21.12. Po skúške prosím vyplňte aj [https://forms.gle/8vxxw82bFhP3ezQU8 Dotazník kvality predmetu]&lt;br /&gt;
* 21. 12. Program: &lt;br /&gt;
** 9:30 Náhradné cvičenie v D-208&lt;br /&gt;
** 11:00 Skúška A-J v CPU &lt;br /&gt;
** 12:30 Skúška K-Ž v CPU&lt;br /&gt;
** 14:00 Odchod na exkurziu SAV&lt;br /&gt;
** 14:30 Exkurzia SAV&lt;br /&gt;
* 28. 11. Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
** Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
* A tu nájdete doplnkový študijný materiál k téme [[Meranie výkonu počítačov]]&lt;br /&gt;
* 11. 10. Server znova funguje&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://forms.gle/pMc7mnW56f79GZhZ9 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, ale nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* Nezabudnite na domáce štúdium 2. kapitoly z knihy [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. &lt;br /&gt;
&lt;br /&gt;
*  3. 12. 20:00  Pribudli ďalšie bonusové [[#Domáce úlohy]], za ktorých vyriešenie môžete získať body navyše.&lt;br /&gt;
&lt;br /&gt;
* V poslednom týždni semestra nebudeme cvičiť nič nové, ale môžete si prísť docvičiť, alebo dopísať testy v nasledovných termínoch:&lt;br /&gt;
** Pondelok 16. 12. od 15:00 do 16:00 (Valocký)&lt;br /&gt;
** Utorok 17. 12.   od 8:00 do  10:00 (Chamraz)&lt;br /&gt;
** Streda 18. 12.   od 9:00 do  12:00 (Balogh), pozor, toto cvičenie bude v CPU (blok D, 1. posch)&lt;br /&gt;
&lt;br /&gt;
* 10. 12. 2019 bude posledná prednáška v tomto semestri. Privítame na nej hosťa - Williama Carbone z IBM, prednášať bude o počítačovej budúcnosti a technológiach IBM pre takéto počítače. Prednáška bude v angličtine.&lt;br /&gt;
&lt;br /&gt;
* Predtermín (len pre zapísaných) bude v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Priezvisko A-L o 10:00, M-Z o 11:00&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Skúška:&#039;&#039;&#039; riadny termín bude v pondelok, 20. januára 2020  v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu. Študenti prídu rozdelení podľa priezviska nasledovne: A-L o 9:00, M-Z o 11:00.&lt;br /&gt;
&lt;br /&gt;
* Opravný termín bude vo štvrtok, 6. februára 2020 o 9:00 v CPU (vchod z bloku D, 1. poschodie), čakajte v respíriu.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:vianoce.png|center|250px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Všetkým prvákom prajem príjemné prežitie vianočných sviatkov,&amp;lt;BR&amp;gt;pevné zdravie  v novom roku a úspešne zakončené skúškové obdobie.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Richard Balogh&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dotazník ===&lt;br /&gt;
&lt;br /&gt;
* [https://goo.gl/forms/HIrZVDfC3rx4PNfS2 Dotazník spokojnosti študentov s predmetom]&lt;br /&gt;
&lt;br /&gt;
=== Príprava na skúšku ===&lt;br /&gt;
&lt;br /&gt;
* V AISe máte pripravený test, ktorý sa podobá na skúšku, avšak nie je časovo limitovaný a nezískate za jeho riešenie žiadne body.&lt;br /&gt;
* [[Meranie výkonu počítačov]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Náhrada za vymeškané cvičenia ===&lt;br /&gt;
&lt;br /&gt;
Jedno vymeškané cvičenie z ktorého vám chýbajú potrebné body je možné nahradiť tak, že &lt;br /&gt;
po dohode s prednášajúcim spracujete na 2 strany formátu A4 niektorú z nasledovných tém:&lt;br /&gt;
&lt;br /&gt;
A.) Alpha GO&lt;br /&gt;
* [1] https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/alphago-zero-goes-from-blank-slate-to-grandmaster-in-three-dayswithout-any-help-at-all&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/why-alphago-is-not-ai&lt;br /&gt;
&lt;br /&gt;
B.) Biopocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/biomedical/devices/biocomputer-and-memory-built-inside-living-bacteria&lt;br /&gt;
* [2] https://spectrum.ieee.org/the-human-os/biomedical/devices/biological-computer-commands-living-cells-to-light-up&lt;br /&gt;
&lt;br /&gt;
C.) Blockchain:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world&lt;br /&gt;
* [2] https://spectrum.ieee.org/computing/networks/how-blockchains-work&lt;br /&gt;
&lt;br /&gt;
D.) Kvantove pocitace:&lt;br /&gt;
* [1] https://spectrum.ieee.org/nanoclast/computing/hardware/a-first-two-qubit-logic-gate-in-silicon&lt;br /&gt;
* [2] https://spectrum.ieee.org/tech-talk/computing/hardware/qudits-the-real-future-of-quantum-computing&lt;br /&gt;
&lt;br /&gt;
E.) Neurocomputing:&lt;br /&gt;
* [1] https://spectrum.ieee.org/computing/hardware/the-brain-as-computer-bad-at-math-good-at-everything-else&lt;br /&gt;
* [2] https://spectrum.ieee.org/semiconductors/design/neuromorphic-chips-are-destined-for-deep-learningor-obscurity&lt;br /&gt;
&lt;br /&gt;
F.) Autonomous car:&lt;br /&gt;
* [1] https://spectrum.ieee.org/cars-that-think/transportation/self-driving/nvidia-or-nxpwhose-robocar-brain-will-win&lt;br /&gt;
* [2] https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/how-google-self-driving-car-works&lt;br /&gt;
&lt;br /&gt;
Pri vypracovani musite pouzit vzdy aspon tie dva linky ktore su tam, samozrejme si mozete najst aj dalsiu literaturu k teme.&lt;br /&gt;
Na kazdu z tem sa moze prihlasit len jeden jediny student!&lt;br /&gt;
&lt;br /&gt;
Vysledny dokument potom pridame ako studijny material na stranku ZPOC.&lt;br /&gt;
Termin by mohol byt do 17.12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
*******************************************************************************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Prednášky 2025&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;16. 09.&#039;&#039;&#039; 1️⃣ &#039;&#039;&#039;Základy číslicových počítačov.&#039;&#039;&#039; Zobrazenie informácie v počítači. Analógové (spojité) a číslicové (diskrétne) zobrazenie informácií. Údajové typy a ich zobrazenie. Číselné a znakové kódy. Základné aritmetické operácie - číselne sústavy (binárna, dekadická, hexadecimálna)  ([https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyA.pdf slajdy 1], [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-slajdyB.pdf slajdy 2] a [https://senzor.robotika.sk/zp/Prednasky/01prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Film [https://youtu.be/ARJ8cAGm6JE 2001: A Space Odyssey]  (1968) directed by Stanley Kubrick, based on a [https://www.martinus.sk/?uItem=252403 novel by  Arthur C. Clarke].&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;23. 09.&#039;&#039;&#039; 2️⃣ &#039;&#039;&#039;Ukladanie informácií v počítači.&#039;&#039;&#039; Kódy ASCII a Unicode, Big Endian, Little Endian. Reálne čísla s pohyblivou rádovou čiarkou, IEEE-754.  ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyA.pdf slajdy 1]) a ([https://senzor.robotika.sk/zp/Prednasky/02prednaskaZPOC-slajdyB.pdf slajdy 2])&lt;br /&gt;
** Film [https://youtu.be/zZuqLLdx2YQ The Imitation Game]&lt;br /&gt;
** Angela Watercutter &#039;&#039;[https://www.wired.com/2014/11/imitation-game-building-christopher/ How Designers Recreated Alan Turing&#039;s Code-Breaking Computer for Imitation Game]&#039;&#039;. Wired, 2104.&lt;br /&gt;
** Doplnok k formátom [https://www.root.cz/clanky/norma-ieee-754-a-pribuzni-formaty-plovouci-radove-tecky/ s plávajúcou desatinnou čiarkou]&lt;br /&gt;
** Pentium [https://en.wikipedia.org/wiki/Pentium_FDIV_bug fdiv bug]&lt;br /&gt;
** Ariane 5 - [http://sunnyday.mit.edu/nasa-class/Ariane5-report.html opis nehody] ([https://youtu.be/gp_D8r-2hwk video 1], [https://youtu.be/5tJPXYA0Nec video 2])&lt;br /&gt;
** Patriot [https://msquair.files.wordpress.com/2015/05/patriot-timing-error.pdf system timing error]&lt;br /&gt;
** Google Colab Notebook: https://colab.research.google.com/drive/1RMyuumEOuH13smF9_WIdbbqy109Wh0MC?usp=sharing&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;30. 09.&#039;&#039;&#039; 3️⃣ &#039;&#039;&#039;Kombinačné logické obvody.&#039;&#039;&#039; Boolova algebra, DeMorganove pravidlá. Pravdivostná tabuľka, logická schéma, úplný systém logických funkcií. Analýza logických obvodov. ([https://senzor.robotika.sk/zp/Prednasky/03prednaskaZPOC-slajdyA.pdf slajdy])&amp;lt;BR&amp;gt;Úvod do programovania mikropočítača BBC micro:bit ([https://senzor.robotika.sk/zp/Prednasky/microbit-Uvod.pdf slajdy]) &lt;br /&gt;
** Stránka [https://microbit.org/ micro:bit]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;07. 10.&#039;&#039;&#039; 4️⃣ &#039;&#039;&#039;Kombinačné logické obvody II.&#039;&#039;&#039; Analýza a syntéza logických obvodov. Polovičná a úplná sčítačka. ([https://senzor.robotika.sk/zp/Prednasky/04prednaskaZPOC-slajdyA.pdf slajdy])&lt;br /&gt;
** Robert Keim: &#039;&#039;[https://www.allaboutcircuits.com/technical-articles/what-is-an-fpga-introduction-to-programmable-logic-fpga-vs-microcontroller/ What Is an FPGA? An Introduction to Programmable Logic]&#039;&#039;. 2018&lt;br /&gt;
** Film [https://youtu.be/KPeHFDxKUP4 Back to the Future] a [https://youtu.be/afwYMdN43Mc scéna so zosilňovačom]&lt;br /&gt;
** [https://madformath.com/calculators/digital-systems/karnaugh-maps/karnaugh-map-solver Karnaugh map solver 1] a [https://karnaughmapsolver.com/ solver 2]&lt;br /&gt;
** Simulátor [https://simulator.io/ simulator.io]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;14. 10.&#039;&#039;&#039; 5️⃣ &#039;&#039;&#039;Spínacie obvody.&#039;&#039;&#039; Relé, elektrónka, tranzistor, integrovaný obvod. Moorov zákon. Časové diagramy. ([https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-slajdyA.pdf slajdy] a [https://senzor.robotika.sk/zp/Prednasky/05prednaskaZPOC-suhrn.pdf zhrnutie])&lt;br /&gt;
** Datasheet obvodu [http://senzor.robotika.sk/zp/DM74LS00.pdf 7400]&lt;br /&gt;
** Moorov zákon: [https://www.intel.com/content/www/us/en/silicon-innovations/moores-law-technology.html video]&lt;br /&gt;
** Robert Ross: &#039;&#039;[https://robbreport.com/gear/audio/vacuum-tube-amps-remerging-1234797622/ ‘It Sounds Human’: Audiophiles Are Embracing the Lush Sounds of Old-School Tube Amps]&#039;&#039;&lt;br /&gt;
** Video: [https://youtu.be/_9_AEVQ_p74?si=ySTOy212WNOeJTBh Claude Shannon demonstrates &amp;quot;Theseus&amp;quot; Machine Learning]&lt;br /&gt;
** Film: [https://youtu.be/AxQ9GG6hUDM?si=BbLnkbjNTGnUPalw Forbidden Planet Official Trailer] - Leslie Nielsen Movie (1956) &lt;br /&gt;
** [https://micro.magnet.fsu.edu/electromag/java/transistor/ Výroba tranzistora] (animácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/5747025316151296/cmos-nand Hradlo NAND technológiou CMOS] (simulácia)&lt;br /&gt;
** [https://everycircuit.com/circuit/4806663265714176/ttl-standard-nand-logic-gate Hradlo NAND technológiou TTL] (simulácia)&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;21.10.&#039;&#039;&#039; 6️⃣ &#039;&#039;&#039;Sekvenčné obvody.&#039;&#039;&#039; Oneskorenie. Spätná väzba, oscilátor. Kybernetika. ([http://senzor.robotika.sk/zp/Prednasky/prednaska05.pdf slajdy])&lt;br /&gt;
** [https://cw.fel.cvut.cz/wiki/_media/courses/a3m33iro/vysoky50letkybernetiky1998_v626-632.pdf Z histórie kybernetiky u nás]&lt;br /&gt;
** [http://www.ieeevic.org/video-interview-norbert-wiener-inventor-of-cybernetics/ Norbert Wiener] - video&lt;br /&gt;
** [https://youtu.be/nS0luYZd4fs Shannon: Theseus demo] - video &amp;lt;!--&lt;br /&gt;
** Simulator.IO&lt;br /&gt;
*** R-S preklápací obvod https://simulator.io/board/Gv2ZlMW8SZ/3&lt;br /&gt;
*** Pamäťový register https://simulator.io/board/Ec8FMQOuMx/2&lt;br /&gt;
*** Posuvný register https://simulator.io/board/Da9uTzXj5o/1&lt;br /&gt;
*** Delička frekvencie https://simulator.io/board/VTJCoRBS5o/1&lt;br /&gt;
*** Binárne počítadlo https://simulator.io/board/ix1nHMxe7w/1 --&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;28. 10.&#039;&#039;&#039; 7️⃣ &#039;&#039;&#039;Pamäte.&#039;&#039;&#039; Rýchlosť, cena, kapacita. Typy pamätí RWM, ROM, EPROM, EEPROM, FLASH. Adresovanie, dynamická a statická pamäť. ([http://senzor.robotika.sk/zp/Prednasky/prednaska06a.pdf slajdy])&amp;lt;BR&amp;gt;Stavové diagramy a BBC micro:bit ([http://senzor.robotika.sk/zp/Prednasky/prednaska06b.pdf slajdy])&lt;br /&gt;
** [http://www.computerhistory.org/timeline/memory-storage/ Timeline of computer memory]&lt;br /&gt;
** Static RAM 2114 1kB [http://www.science.smith.edu/dftwiki/images/a/ab/2114_datasheet.pdf datasheet]&lt;br /&gt;
** [https://www.ibm.com/history/dram Dynamic random-access memory (DRAM)] history by IBM&lt;br /&gt;
** [https://www.ibm.com/think/topics/flash-storage FLASH memory]] history by IBM&lt;br /&gt;
** EEPROM 2708 1kB [http://www.jrok.com/datasheet/TMS2708.pdf datasheet]&lt;br /&gt;
** Film [https://www.youtube.com/watch?v=hMT8tRrEMC4 TRON] (1982) a remake [https://www.youtube.com/watch?v=SqSuRdkglxM TRON Legacy] (2010)&lt;br /&gt;
** Men In Black 3 | [https://www.youtube.com/watch?v=nQmkkryDp0Y Retro Neuralyzer Scene]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 4. 11.&#039;&#039;&#039; 8️⃣  &#039;&#039;&#039;Mikroprocesor&#039;&#039;&#039; Základná stavebné prvky procesora. Operačná a riadiaca časť procesora. Inštrukčný súbor. Typy inštrukcií. ([http://senzor.robotika.sk/zp/Prednasky/prednaska08.pdf slajdy])&lt;br /&gt;
** Frederico Faggin: &#039;&#039;[http://ieeexplore.ieee.org/document/4776530/ Making of the First Microprocessor]&#039;&#039;.&lt;br /&gt;
** [https://youtu.be/Knd-U-avG0c Zoom Into a Microchip] - National Informal STEM Education Network (NISE Net)&lt;br /&gt;
** Papierový [https://cs.wikipedia.org/wiki/Pap%C3%ADrov%C3%BD_po%C4%8D%C3%ADta%C4%8D_CGS počítač CGS]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;11. 11.&#039;&#039;&#039; 9️⃣ &#039;&#039;&#039;Mikroprocesor II.&#039;&#039;&#039; Matematický koprocesor. Inštrukčný súbor. Typy inštrukcií. Formát inštrukcie. Inštrukcie - práca s pamäťovým systémom počítača. Spôsoby adresácie. Procesory s architektúrou RISC a CISC. Asembler, jazyk symbolických adries, simulátor a emulátor. ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy])&lt;br /&gt;
** Jednodoskový počítač [https://sk.wikipedia.org/wiki/PMI-80 PMI-80] &amp;lt;!-- http://www.nostalcomp.cz/pmi80.php --&amp;gt;&lt;br /&gt;
** Osobný počítač [https://pmd85.borik.net/wiki/Intro PMD-85]&lt;br /&gt;
** Školský robot [http://www.avir.sk/robotika/historia_kar/roboti/KOLKA025.html KOLKA]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Intel_8087 Aritmetický koprocesor i8087]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/8080instructions.pdf Ťahák na cvičenia s výberom inštrukcií]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 25. 11.&#039;&#039;&#039; 🔟 Mikroprocesor III. Zásobník, prerušenie, podprogramy. Hierarchia počítačov, mainframe, workstation, embedded. [[Meranie výkonu počítačov]].([http://senzor.robotika.sk/zp/Prednasky/prednaska10.pdf slajdy])&lt;br /&gt;
** [https://www.top500.org/ Zoznam 500 najvýkonnejších počítačov na svete]&lt;br /&gt;
** [https://en.wikipedia.org/wiki/Cray-2 Superpočítač CRAY-2]&lt;br /&gt;
** [https://waitbutwhy.com/2014/11/from-1-to-1000000.html Milión bodiek]&lt;br /&gt;
** [[Meranie výkonu počítačov]]&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039; 2. 12.&#039;&#039;&#039; Umelá inteligencia a strojové učenie&lt;br /&gt;
* &#039;&#039;&#039; 9. 12.&#039;&#039;&#039; Kvantové počítače&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;FONT COlor=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;Prednášky z minulého roka&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;20. 11.&#039;&#039;&#039; 🔟 Georg Jaggle, TU Wien: &#039;&#039;&#039;Inputs and outputs&#039;&#039;&#039; (([http://senzor.robotika.sk/zp/Prednasky/prednaska07a.pdf Lecture in english]). &#039;&#039;&#039;Vstupy a výstupy.&#039;&#039;&#039; Digitálny vstup, výstup, displej, klávesnica, multiplexovanie. (([http://senzor.robotika.sk/zp/Prednasky/prednaska07b.pdf slajdy]))&lt;br /&gt;
** Úvodné video [https://www.youtube.com/watch?v=LDPVwI3KULk Matrix - computer interface]&lt;br /&gt;
** Video z prezentácie [https://youtu.be/tIIJME8-au8 Timo Boll vs. robot]&lt;br /&gt;
** Romeo [https://youtu.be/kz1Ob0Ks554 humanoid robot grasping demonstration]&lt;br /&gt;
** Blue Danube [https://youtu.be/-sHcQcFd7-A Airskin collaborative robotics]&lt;br /&gt;
** Paro [https://youtu.be/2ZUn9qtG8ow therapeutic robot]&lt;br /&gt;
** Thymio [https://www.thymio.org/ educational robot]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;10.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Towards Augmented Intelligence.&#039;&#039;&#039; &#039;&#039;Tools and Skills for the Cognitive Era.&#039;&#039; Invited lecture. &lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska11-IBM.pdf slajdy]&lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.youtube.com/watch?v=MSc5I550jlY Smart Wildlife project]&lt;br /&gt;
** Use The Force - [https://youtu.be/K-4mp_e5v4A Move a BB-8 with Your Mind]&lt;br /&gt;
** [https://qiskit.org/ Quantum computing]&lt;br /&gt;
** [https://www.youtube.com/watch?v=3WrVUb7ej0o Tanmay Bakshi] video&lt;br /&gt;
*** Tanmay Bakshi: [https://www.amazon.com/s?k=tanmay+bakshi books]&lt;br /&gt;
** [https://tone-analyzer-demo.ng.bluemix.net/ Text analyzer demo]&lt;br /&gt;
** Free [https://cognitiveclass.ai/ Cognitive Courses and Lessons]&lt;br /&gt;
** IBM Centennial Film [https://www.youtube.com/watch?eWxUWJgfzk 100 X 100 A century of achievements that have changed the world]&lt;br /&gt;
* &#039;&#039;&#039;.11.&#039;&#039;&#039; Vstupno-výstupných podsystém. I/O karty. Paralelný port. Vstup a výstup logických a číslicových hodnôt ([http://senzor.robotika.sk/zp/Prednasky/prednaska11.pdf slajdy]).&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039; Prenos údajov. Zbernicová architektúra počítača. Zbernice. Sériové rozhranie a UART.  Jednoprocesorové a viacprocesorové zbernice, arbitrácia prístupu. Multiplexovaná zbernica. Príklady štandardných zberníc ([http://senzor.robotika.sk/zp/Prednasky/prednaska11a.pdf slajdy]).&lt;br /&gt;
&lt;br /&gt;
* Prednáška o AI ToDo: pretriedit odkazy!&lt;br /&gt;
** [https://youtu.be/JA472HOifoA?si=uqtaykqgagVi5RM4 Top 10 AI Movies WARNING Us For Our Future]&lt;br /&gt;
** [https://youtu.be/iyKt7bK--uo?si=BXPm6SX308N0gNDM Top 10 AI Movies With HIDDEN Messages For Humans]&lt;br /&gt;
** [https://youtu.be/HLl47qX6-UM?si=I5jETjAq7004AoMb Top 10 AI TV Shows WARNING Us For Our Future]&lt;br /&gt;
** https://www.minedu.sk/ai-dni-priniesli-umelu-inteligenciu-do-100-slovenskych-skol/&lt;br /&gt;
** https://ai.iedu.sk/nastroje-ai/&lt;br /&gt;
** https://bratislavaiforum.com/global-forum/&lt;br /&gt;
** https://www.dny.ai/#program&lt;br /&gt;
** https://www.slovensko.ai/&lt;br /&gt;
** https://www.stuba.sk/sk/diani-na-stu/prehlad-aktualit/stu-ma-pravidla-pouzivania-umelej-inteligencie.html?page_id=17202&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;.12.&#039;&#039;&#039;  William Carbone, IBM: &#039;&#039;&#039;Computing: vision for the Future.&#039;&#039;&#039; Invited lecture. History and status now. Limits and beyonds. Computers as a service.     Future challenges: blokchain, quantum computing, cognitive computing, clouds and services, internet of things. [[Základy počítačov - pozvaná prednáška|More information...]]&lt;br /&gt;
** [http://senzor.robotika.sk/zp/Prednasky/prednaska12-IBM.pdf slajdy]&lt;br /&gt;
** [https://www.youtube.com/watch?v=pBiVyEfZVUU History of computers - partI.] &lt;br /&gt;
** [https://www.youtube.com/watch?v=HRi1BHjID3o History of computers - partII.] &lt;br /&gt;
** &#039;&#039;&#039;[https://www.watson-academy.info/ IBM Watson Academy]&#039;&#039;&#039; (free online courses)&lt;br /&gt;
** [https://ibm.biz/BdY3hW Link to IBM Cloud] (1 month free, ask me for promo codes to prolong it) &lt;br /&gt;
** [https://www.evaaugustyn.com/ibm-watson-x-music AI Music by IBM Watson]&lt;br /&gt;
** Video Johna Cohna, ktoré sme nevideli:&lt;br /&gt;
*** https://youtu.be/I-NT1-BdOvI&lt;br /&gt;
*** https://www.youtube.com/watch?v=qxRM99LlcVc&lt;br /&gt;
&lt;br /&gt;
2017&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Carbone-Lecture2018.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson, IBM: &#039;&#039;&#039;The Computer of (near) Future.&#039;&#039;&#039; Invited lecture. Cloud (Saas, Paas, Iaas). Cognitive computing - Whats that all about. Quantum Computing.&lt;br /&gt;
&lt;br /&gt;
Adrian Jackson is a multi-skilled Senior IT Professional with extensive Cloud, DevOps, Development, technical architecture, release management and project management experience gained within a broad range of organisations operating across multiple business sectors across the globe. Thorough and detailed Cloud architecture knowledge built over many years, a true advocate of “Cloud First” thinking and a practitioner of best practices, seeing the TCO and cost saving opportunities of moving to the cloud.   Outstanding experience of designing and directing the implementation of Continuous Integration and Delivery Pipelines. Leading DevOps, environment support, technology architecture and infrastructure design activities and advising team members and management on the principles and benefits of Continuous Delivery and DevOps. A proven ability to lead both local and remote technical / development teams and to successfully deliver agreed solutions of the highest quality, often within complex and challenging environments.  A leader who has successfully built DevOps practices for multiple organisations, hiring the right candidates for the job and helping existing members of staff transform into a DevOps role and instilling the core principals.  A developer who will turn his hand to most languages, most recently GOLANG building a modern web app using micro-service architecture and docker based containers for responsive auto scaling(simple, blisteringly fast, small footprint, docker integration builtin)  and also systems tooling, docker, Terraform etc.&lt;br /&gt;
* Nestihli sme: &lt;br /&gt;
* Pamäte II. Externé pamäte, pevné a optické disky. Polia RAID ([http://senzor.robotika.sk/zp/Prednasky/prednaska06.pdf slajdy 31-63]). ([http://senzor.robotika.sk/zp/Prednasky/prednaska09.pdf slajdy]).&lt;br /&gt;
* Počítačové siete - charakteristika a ich rozdelenie. Sieťové médiá. Správa, rámec, paket.  Generácie počítačov.&lt;br /&gt;
* A/D a D/A prevodníky. Riadiace počítače. Elektromagnetická kompatibilita. Počítadlá a časovače. RTC&lt;br /&gt;
Číslicový počítač s von Neumannovou a Harvardskou architektúrou. Klasifikácia počítačov.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [http://senzor.robotika.sk/zp/Prednasky/ --&amp;gt; Slajdy z prednášok.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zoznam odporúčanej študijnej literatúry:&lt;br /&gt;
&lt;br /&gt;
* Sarah L. Harris and David M. Harris: &#039;&#039;&#039;[https://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123944244 Digital Design and Computer Architecture]&#039;&#039;&#039;. Morgan Kaufman, 3rd ed., 2016. ISBN: 9789382291527&lt;br /&gt;
* David Patterson and John Hennessy: &#039;&#039;[https://www.elsevier.com/books/computer-organization-and-design-arm-edition/patterson/978-0-12-801733-3 Computer Organization and Design ARM Edition]&#039;&#039;. 1st Ed. Morgan Kaufmann, 2016. ISBN: 9780128017333&lt;br /&gt;
* Tibor Krajčovič: &#039;&#039;[http://www2.fiit.stuba.sk/~tkraj/pocitace.pdf Počítače].&#039;&#039; Vydavateľstvo STU, Bratislava, 2000. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
* Richard Balogh: &#039;&#039;[https://www.fei.stuba.sk/sk/kniznica-fei/aktuality-kniznica/vybrane-kapitoly-z-mikropocitacov.html?page_id=6102 Vybrané kapitoly z mikropočítačov: I. časť: Hardware].&#039;&#039; Bratislava: Vydavateľstvo Spektrum STU, 2023. ISBN 978-80-227-5285-5. Skriptá sú dostupné v knižnici FEI STU.&lt;br /&gt;
&lt;br /&gt;
Internetové zdroje:&lt;br /&gt;
* https://www.root.cz/serialy/co-se-deje-v-pocitaci/&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Cvičenia&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cvičenia prebiehajú prezenčne v učebni CPU (blok D, 1. posch.) podľa rozvrhu. V prípade choroby&lt;br /&gt;
alebo inej opodstatnenej neprítomnosti si môžete cvičenie nahradiť v ľubovoľnom inom termíne v danom týždni.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 1 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# prihlásiť sa na PC dočasným heslom a nájsť si v AISe mail s vlastným prihlasovacím menom a heslom.&lt;br /&gt;
# prihlásiť sa svojim menom a heslom&lt;br /&gt;
# webstránka predmetu bude http://senzor.robotika.sk - prvá ikonka vľavo hore v tabuľke ZPOC&lt;br /&gt;
# &#039;&#039;&#039;Riešime príklady na prevody DEC-BIN-HEX-ASCII: [[Prevody medzi číselnými sústavami]]&#039;&#039;&#039;&lt;br /&gt;
# nájdite si v AISe vstupný testík a vyplňte ho&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Číselné sústavy]] Príklady: [[Prevody medzi číselnými sústavami]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;grey&amp;quot;&amp;gt;&lt;br /&gt;
=== Cvičenie 2 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# počítame jednoduché príklady [[Aritmetika v dvojkovej sústave]]&lt;br /&gt;
# počítame príklady [[Kódy a kódovanie]]&lt;br /&gt;
# počítame príklady [[Zobrazenie čísel v počítači]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: [[Aritmetické operácie v dvojkovej sústave]] alebo aj  [https://www.khanacademy.org/math/algebra-home/alg-intro-to-algebra/algebra-alternate-number-bases/v/number-systems-introduction Khan Academy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 3 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Návody: [[BBC micro:bit]].&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Programy pre micro:bit&lt;br /&gt;
## naprogramujte jednoduchú animáciu&lt;br /&gt;
## naprogramujte jednoduché minutky počítajúce smerom nadol&lt;br /&gt;
## naprogramujte hraciu kocku &lt;br /&gt;
## vyskúšajte, ako funguje [[Matematika a micro:bit‎‎]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 4 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
&lt;br /&gt;
# [[Kombinačné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória: [http://www2.fiit.stuba.sk/~kvasnicka/Logika/Lecture09/09.prezentacia.pdf Logické obvody]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 5 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy:&lt;br /&gt;
&lt;br /&gt;
#  [[Kombinačné logické obvody s micro:bitom]]&lt;br /&gt;
#   15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;[https://makecode.microbit.org/ &amp;amp;#8594; Link do programovacieho prostredia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 6 ===&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Sekvenčné logické obvody]]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
Teória k cvičeniam: &lt;br /&gt;
* [http://www.dnp.fmph.uniba.sk/~kollar/dg_w/index_d.htm Sekvenčné obvody] alebo [https://www.electronics-tutorials.ws/sequential/seq_1.html Sequential Logic Circuits]&lt;br /&gt;
* https://technobyte.org/flip-flops-latches-designing-truth-tables/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 7 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy programovania - Sekvenčné obvody a stavové automaty s micro:bitom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Návod na cvičenie [[Stavové diagramy s micro:bit]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zadané problémy riešte v prostredí [https://makecode.microbit.org/ &amp;amp;#8594; MakeCode]&lt;br /&gt;
# 15 min. pred koncom cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 8 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Laboratórne cvičenie.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# Zapojte a odmerajte vlastnosti kombinačných a sekvenčných obvodov podľa návodu [[Meranie s logickými obvodmi‎]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ToDo 2023: ak nestihnete zmerať všetky úlohy na cvičení, môžete si ich prísť domerať do D-219 vo vymedzenom čase.&lt;br /&gt;
&lt;br /&gt;
# Keď to zvládnete, stačí k dvom obvodom z cvičenia pridať ešte 32 a máte hotový celý 8-bitový mikropočítač... Kliknutím na obrázok získate kompletný návod :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:TTLcomputer.jpg|500px|center|link=https://hackaday.io/project/20781-8-bit-color-computer-from-ttl]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 9 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mikroprocesor.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[ZPOC 9: Základy programovania v strojovom kóde]] (&amp;lt;S&amp;gt;[[ASM80 programy|old version]]&amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&#039;&#039;&#039;Zabudnuté inštrukcie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ižinieri v Silicon Valley našli v archívoch dokument, z ktorého vyplýva, že&lt;br /&gt;
niektoré assemblerovské inštrukcie, ktoré autori procesorov vytvorili sa napokon&lt;br /&gt;
do procesorov nedostali. Ktovie prečo? &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
    BPDI    Be Polite, Don&#039;t Interrupt&lt;br /&gt;
    CLD     Call a Doctor&lt;br /&gt;
    CRB     Crash and Burn&lt;br /&gt;
    CRN     Convert to Roman Numerals&lt;br /&gt;
    DAC     Divide And Conquer&lt;br /&gt;
    DMNS    Do what I Mean, Not what I Say&lt;br /&gt;
    EPI     Execute Programmer Immediately&lt;br /&gt;
    GE      Generate  Error&lt;br /&gt;
    IBP     Insert Bug and Proceed&lt;br /&gt;
    IAN     Illogical AND&lt;br /&gt;
    IOR     Illogical OR&lt;br /&gt;
    JBW     Jump Both Ways&lt;br /&gt;
    JPO     Jump on Power Off&lt;br /&gt;
    JRA     Jump to Random Address&lt;br /&gt;
    LLI     Lose Last Instruction&lt;br /&gt;
    RNR     Rather Not Run&lt;br /&gt;
    RPM     Read Programmer&#039;s Mind&lt;br /&gt;
    SWOM    Store in Write Only Memory&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 10 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzory na micro:bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Senzory na mikropočítači micro:bit]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 11 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komunikácia s micro:bitmi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Komunikácia a micro:bit 2023]]  (staré verzie: &amp;lt;S&amp;gt;[[Komunikácia a micro:bit‎‎]] alebo [[Bezdrôtová komunikácia a micro:bit‎‎]] &amp;lt;/S&amp;gt;)&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test&lt;br /&gt;
# Okrem toho môžete vypracovať všetky testy, ktoré ste zameškali v priebehu semestra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 12 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Základy strojového učenia&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Cvičenie základov strojového učenia]]&lt;br /&gt;
# Na konci cvičenia sa prihláste do AISu a vypracujte test (prípadne si doplňte všetky, ktoré vám chýbajú)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cvičenie 13 (bonus) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Robotický simulátor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Úlohy: &lt;br /&gt;
# [[Robotický simulátor PRIA IDE]]&lt;br /&gt;
# [https://ide.pria.at/projects/vysavac Link do programovacieho prostredia]&lt;br /&gt;
# Toto cvičenie je náhradné pre tých, ktorí z niektorého chýbali a nestihli si ho nahradiť. Dá sa vyriešiť aj doma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Domáce úlohy&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Téma &#039;&#039;&#039;komunikácie&#039;&#039;&#039;, ktorú sme na prednáškach nestihli prebrať ostáva na domáce naštudovanie. K dispozícii máte text 2. kapitoly z knižky, ten treba naštudovať &lt;br /&gt;
a naučiť sa podstatné pojmy. Otázky z tejto kapitoly samozrejme tiež môžu byť na skúške. &lt;br /&gt;
* Balogh, Bélai, Dorner, Drahoš: [http://senzor.robotika.sk/zp/kap2.pdf Priemyselné komunikácie]. STU, 2001.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bonusové príklady&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Za vyriešenie týchto úloh môžete získať okrem dobrého pocitu aj bonusové body. Nezíska ich každý, &lt;br /&gt;
ale ten, kto ako prvý pošle ich riešenie na adresu balogh@elf.stuba.sk&lt;br /&gt;
Ak budú riešenia aj s postupom a tie budú dostatočne odlišné, môžu bonusové body získať aj viacerí. &lt;br /&gt;
Prečiarknuté body znamenajú, že úlohu môžete stále ešte riešiť sebe pre radosť, ale body, žiaľ, už nedostanete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Podmienky absolvovania predmetu ==&lt;br /&gt;
&lt;br /&gt;
# Znalosť odprezentovanej problematiky,&lt;br /&gt;
# absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť),&lt;br /&gt;
# vypracovanie všetkých testíkov &amp;lt;S&amp;gt;aspoň na polovicu&amp;lt;/S&amp;gt; na primeraný počet bodov,&lt;br /&gt;
# a získanie potrebného počtu bodov na skúške (min. 50% písomky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prácu študenta kontroluje a body udeľuje cvičiaci daného krúžku.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Kontakty&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Za menom je uvedené pracovisko a miestnosť. Zamestnanci STU majú e-mailové adresy v tvare meno.priezvisko@stuba.sk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vyučujúci:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* doc. Ing. Richard Balogh, PhD. (UAMT, D-110, streda 11:00)&lt;br /&gt;
&amp;lt;!-- * Ing. Belai (D-126, streda 10:00), Ing. Hlavatý, Ing. Michalovič (D-212, streda 10:00) a Ing. Račkay (D-215, stvrtok 14:00) - doktorandi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RozvrhHodin.png|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Základy počítačov]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Interakt%C3%ADvna_lampi%C4%8Dka_I&amp;diff=19679</id>
		<title>Interaktívna lampička I</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Interakt%C3%ADvna_lampi%C4%8Dka_I&amp;diff=19679"/>
		<updated>2026-06-24T13:24:39Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Čo by som urobil inak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Záverečný projekt predmetu MIPS / LS2026 - &#039;&#039;&#039;Matúš Grúň&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Zadaním projektu je naprogramovať interaktívnu lampičku, ktorá reaguje na zvolený podnet. Ako podnet som si vybral zvuk — konkrétne tlieskanie. Lampička sníma zvuk pomocou mikrofónového senzora a ovláda sa počtom tleskov v časovom okne: 3 tlesky prepínajú systém medzi aktívnym a uspávacím režimom, 1 tlesk ovláda červenú LED a 2 tlesky ovládajú zelenú LED.&lt;br /&gt;
&lt;br /&gt;
[[Obrázok:Arduino-uno.jpg|400px|thumb|center|Vývojová doska Arduino Uno r3 s procesorom ATmega328p]]&lt;br /&gt;
[[Obrázok:KY-037.jpg|400px|thumb|center|Mikrofónový modul KY-037]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
* [https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf Dokumentácia k doske Arduino Uno]&lt;br /&gt;
* [https://download.kamami.pl/p587610-KY-037.pdf Dokumentácia k Mikrofónovému modulu KY-037]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Analýza  a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité súčiastky:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Arduino Uno R3:                Riadiaca jednotka &lt;br /&gt;
&lt;br /&gt;
- Červená LED Dióda              Červené Svetlo&lt;br /&gt;
&lt;br /&gt;
- Zelená LED Dióda               Zelené Svetlo &lt;br /&gt;
&lt;br /&gt;
- Mikrofónový modul KY-037       Snímač Zvuku (tlesk)&lt;br /&gt;
&lt;br /&gt;
- vodiče:                        Prepojenie periférií&lt;br /&gt;
&lt;br /&gt;
- Rezistory:                     2x220 OHM zapojené pred LED Diódy&lt;br /&gt;
&lt;br /&gt;
- Stará lampa:                   Dodá projektu formu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:ZariadenieIL1.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interaktívna lampička — popis funkcionality a zostrojenia:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Zariadenie predstavuje stolnú lampičku ovládanú tlieskaním, postavenú na mikrokontroléri ATmega328P — konkrétne na verzii Arduina Uno R3. Zvuk sníma mikrofónový modul KY-037 pripojený na digitálny pin 7. Modul obsahuje elektretový mikrofón s komparátorom, ktorý pri prekročení nastavenej hlasitostnej úrovne vyšle na výstupe logickú jednotku. Firmware túto udalosť zaznamená ako tlesknutie. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Aby systém vedel rozlíšiť jedno tlesknutie od série, pracuje s časovým oknom približne 800 milisekúnd. Po prvom zachytenom tlesknutí sa okno spustí a počítadlo sa zvyšuje s každým ďalším impulzom. Po vypršaní okna sa počet impulzov vyhodnotí: jedno tlesknutie prepne červenú LED na pine 5, dve tlesknutia prepnú zelenú LED na pine 6 a tri tlesknutia slúžia ako hlavný vypínač — pri aktívnom systéme ho uspí a zhasne obe LED, pri uspatom systéme ho prebudí a obe LED automaticky rozsvieti. Debounce navyše krátko ignoruje signál po detekcii impulzu, aby ozvena alebo mechanický šum nespôsobili falošný záznam. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Funkčnosť celého konceptu bola najprv overená na breadboarde s Arduinom a modulom KY037. Až po spoľahlivom odladení logiky sa pristúpilo k zabudovaniu do skutočnej lampičky. Cez telo stolnej lampy boli pretiahnuté tri vodiče: jeden pre pin 6, jeden pre pin 5 a spoločná zem. Na ich koncoch boli priletované LED diódy, každá so sériovým ochranným odporom 220 ohmov, ktorý obmedzuje prúd na hodnotu bezpečnú pre výstupné piny Arduina. Arduino zostalo mimo viditeľnej časti lampy — do nej vstupujú len tri tenké kábliky.&lt;br /&gt;
[[Súbor:SchemaIL1.jpg|400px|thumb|center|Schéma zapojenia.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Algoritmus programu využíva sledovanie stavu mikrofónu na pine PD7. Program pri každom tlesknutí zachytí nábehovú hranu (zmenu z 0 na 1) a zvýši počítadlo tlesknutí. Aby program nerátal jedno tlesknutie viackrát, používa ochranu proti zákmitom — čaká aspoň 50ms medzi tlesknutiami. Po uplynutí časového okna 800ms sa pozrie koľko tlesknutí prišlo a podľa toho niečo vykoná.&lt;br /&gt;
&lt;br /&gt;
Základné funkcie sú nastav_led(), ktorá zapína alebo vypína červenú LED na pine PD6 a zelenú LED na pine PD5 podľa toho aký je aktuálny stav, a vyhodnot(), ktorá skontroluje počet tlesknutí a rozhodne čo sa má stať. Tieto funkcie sa volajú z hlavnej slučky main() — vyhodnot() vždy keď uplynie časové okno, a nastav_led() vždy keď sa zmení stav niektorej LED.&lt;br /&gt;
&lt;br /&gt;
Logika systému funguje tak, že program má dva stavy — vypnutý a zapnutý. Tri tlesky prepnú medzi týmito stavmi. Keď je systém zapnutý, jedno tlesknutie prepne červenú LED a dva tlesky prepnú zelenú LED. Keď sa systém zapne, obe LED sa automaticky rozsvietia, keď sa vypne, obe zhasnú.&lt;br /&gt;
Výpis kódu je nižšie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;main.c&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#define BAUD 9600&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/* --- piny --- */&lt;br /&gt;
#define MIC  PD7&lt;br /&gt;
#define R_LED PD6&lt;br /&gt;
#define G_LED PD5&lt;br /&gt;
&lt;br /&gt;
/* --- casovanie --- */&lt;br /&gt;
#define DEBOUNCE 50&lt;br /&gt;
#define OKNO     800&lt;br /&gt;
&lt;br /&gt;
/* --- makra z uart.h --- */&lt;br /&gt;
FILE uart_out = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
/* --- globalne premenne --- */&lt;br /&gt;
uint8_t  pocet       = 0;&lt;br /&gt;
uint8_t  aktivny     = 0;&lt;br /&gt;
uint8_t  cervena     = 0;&lt;br /&gt;
uint8_t  zelena      = 0;&lt;br /&gt;
uint8_t  mic_pred    = 0;&lt;br /&gt;
uint32_t t_posledny  = 0;&lt;br /&gt;
uint32_t ms          = 0;   /* citac milisekund */&lt;br /&gt;
&lt;br /&gt;
/* --- aktualizuj LEDky --- */&lt;br /&gt;
void nastav_led(void)&lt;br /&gt;
{&lt;br /&gt;
    if (cervena) set_bit(PORTD, R_LED);&lt;br /&gt;
    else        clear_bit(PORTD, R_LED);&lt;br /&gt;
&lt;br /&gt;
    if (zelena)  set_bit(PORTD, G_LED);&lt;br /&gt;
    else        clear_bit(PORTD, G_LED);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* --- vyhodnotenie tleskov --- */&lt;br /&gt;
void vyhodnot(void)&lt;br /&gt;
{&lt;br /&gt;
    printf(&amp;quot;tlesky: %d\r\n&amp;quot;, pocet);&lt;br /&gt;
&lt;br /&gt;
    if (pocet == 3) {&lt;br /&gt;
        aktivny = !aktivny;&lt;br /&gt;
        if (aktivny) {&lt;br /&gt;
            cervena = 1;&lt;br /&gt;
            zelena  = 1;&lt;br /&gt;
            nastav_led();&lt;br /&gt;
            printf(&amp;quot;&amp;gt;&amp;gt; AKTIVNY - obe LED zapnute\r\n&amp;quot;);&lt;br /&gt;
        } else {&lt;br /&gt;
            cervena = 0;&lt;br /&gt;
            zelena  = 0;&lt;br /&gt;
            nastav_led();&lt;br /&gt;
            printf(&amp;quot;&amp;gt;&amp;gt; USPENY - obe LED zhasnute\r\n&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else if (aktivny) {&lt;br /&gt;
        if (pocet == 1) {&lt;br /&gt;
            cervena = !cervena;&lt;br /&gt;
            printf(&amp;quot;&amp;gt;&amp;gt; cervena: %s\r\n&amp;quot;, cervena ? &amp;quot;ON&amp;quot; : &amp;quot;OFF&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if (pocet == 2) {&lt;br /&gt;
            zelena = !zelena;&lt;br /&gt;
            printf(&amp;quot;&amp;gt;&amp;gt; zelena: %s\r\n&amp;quot;, zelena ? &amp;quot;ON&amp;quot; : &amp;quot;OFF&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        nastav_led();&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        printf(&amp;quot;&amp;gt;&amp;gt; system spi, ignorujem\r\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
	printf(&amp;quot;ms pri vyhodnoteni: %lu\r\n&amp;quot;, ms);&lt;br /&gt;
    pocet = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    /* nastavenie pinov */&lt;br /&gt;
    set_bit(DDRD, R_LED);    /* vystup - cervena */&lt;br /&gt;
    set_bit(DDRD, G_LED);    /* vystup - zelena  */&lt;br /&gt;
    clear_bit(DDRD, MIC);    /* vstup  - mikrofon */&lt;br /&gt;
&lt;br /&gt;
    clear_bit(PORTD, R_LED);&lt;br /&gt;
    clear_bit(PORTD, G_LED);&lt;br /&gt;
&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;uart_out;&lt;br /&gt;
    printf(&amp;quot;system USPENY. 3x tlesk = zapni\r\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        _delay_ms(1);&lt;br /&gt;
        ms++;&lt;br /&gt;
&lt;br /&gt;
        uint8_t mic_teraz = bit_is_set(PIND, MIC) ? 1 : 0;&lt;br /&gt;
&lt;br /&gt;
        /* nabezna hrana + debounce */&lt;br /&gt;
        if (mic_teraz == 1 &amp;amp;&amp;amp; mic_pred == 0) {&lt;br /&gt;
            if ((ms - t_posledny) &amp;gt; DEBOUNCE) {&lt;br /&gt;
                pocet++;&lt;br /&gt;
                t_posledny = ms;&lt;br /&gt;
                printf(&amp;quot;tlesk #%d\r\n&amp;quot;, pocet);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        mic_pred = mic_teraz;&lt;br /&gt;
&lt;br /&gt;
        /* po uplynutí okna vyhodno? */&lt;br /&gt;
        if (pocet &amp;gt; 0 &amp;amp;&amp;amp; (ms - t_posledny) &amp;gt; OKNO) {&lt;br /&gt;
            vyhodnot();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;uart.c&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
/* ************************************************************************* */&lt;br /&gt;
/* FileName:             uart.c                                              */&lt;br /&gt;
/* ************************************************************************* */&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#define BAUD  9600&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void uart_init( void )&lt;br /&gt;
{&lt;br /&gt;
	//  for different BAUD rate change the project settings, or uncomment&lt;br /&gt;
	//  following two lines:&lt;br /&gt;
	//	#undef  BAUD           // avoid compiler warning&lt;br /&gt;
	&lt;br /&gt;
	#include &amp;lt;util/setbaud.h&amp;gt;  // requires defined BAUD&lt;br /&gt;
	&lt;br /&gt;
	UBRR0H = UBRRH_VALUE;&lt;br /&gt;
	UBRR0L = UBRRL_VALUE;&lt;br /&gt;
	#if USE_2X                 // defined in setbaud.h&lt;br /&gt;
	UCSR0A |= (1 &amp;lt;&amp;lt; U2X0);&lt;br /&gt;
	#else&lt;br /&gt;
	UCSR0A &amp;amp;= ~(1 &amp;lt;&amp;lt; U2X0);&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); /* 8-bit data */&lt;br /&gt;
	UCSR0B = _BV(RXEN0) | _BV(TXEN0);   /* Enable RX and TX */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int uart_putc( char c, FILE *stream )&lt;br /&gt;
{&lt;br /&gt;
	if (c == &#039;\n&#039;)&lt;br /&gt;
	uart_putc(&#039;\r&#039;,stream);&lt;br /&gt;
	&lt;br /&gt;
	loop_until_bit_is_set(UCSR0A, UDRE0); /* Wait until data register empty. */&lt;br /&gt;
	UDR0 = c;&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void uart_puts(const char *s, FILE *stream)&lt;br /&gt;
{&lt;br /&gt;
	while(*s)&lt;br /&gt;
	{&lt;br /&gt;
		uart_putc(*s++, stream);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
char uart_getc(void)&lt;br /&gt;
{&lt;br /&gt;
	loop_until_bit_is_set(UCSR0A, RXC0); /* Wait until data exists. */&lt;br /&gt;
	return UDR0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void delay(int delay)      // vlastna funkcia pre dlhsie casy&lt;br /&gt;
{&lt;br /&gt;
	for (int i=1; i&amp;lt;=delay; i++)&lt;br /&gt;
	_delay_ms(1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;uart.h&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
/* ************************************************************************* */&lt;br /&gt;
/* FileName:             uart.h                                              */&lt;br /&gt;
/* ************************************************************************* */&lt;br /&gt;
&lt;br /&gt;
#define LED PB5  // internal on-board LED &lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#define BAUD  9600&lt;br /&gt;
&lt;br /&gt;
 /* na testovanie su uz zadefinovane */&lt;br /&gt;
 // bit_is_set(PINB, SW1)&lt;br /&gt;
 // bit_is_clear(PINB, SW1)&lt;br /&gt;
&lt;br /&gt;
 /* na cakanie su preddefinovane slucky */&lt;br /&gt;
 // loop_until_bit_is_set(PINB, SW1);    // cakanie na uvolnenie tlacitka&lt;br /&gt;
 // loop_until_bit_is_clear(PINB, SW1);  // cakanie na stlacenie tlacitka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define set_bit(ADDRESS,BIT) (ADDRESS |= (1&amp;lt;&amp;lt;BIT))&lt;br /&gt;
#define clear_bit(ADDRESS,BIT) (ADDRESS &amp;amp;= ~(1&amp;lt;&amp;lt;BIT))&lt;br /&gt;
&lt;br /&gt;
#ifndef UART_H_&lt;br /&gt;
#define UART_H_&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define BAUD_PRESCALE  103  // vzor?ek z datasheetu&lt;br /&gt;
&lt;br /&gt;
void hw_init( void );&lt;br /&gt;
void uart_init( void );&lt;br /&gt;
     &lt;br /&gt;
/* Following definition is compatible with STDIO.H, for more&lt;br /&gt;
 * information see https://www.appelsiini.net/2011/simple-usart-with-avr-libc/&lt;br /&gt;
 */&lt;br /&gt;
	 &lt;br /&gt;
int uart_putc( char c, FILE *stream );&lt;br /&gt;
void uart_puts( const char *s, FILE *stream);&lt;br /&gt;
&lt;br /&gt;
char uart_getc( void );&lt;br /&gt;
&lt;br /&gt;
void delay(int delay); &lt;br /&gt;
&lt;br /&gt;
#endif /* UART_H_ */&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Interaktivna_lampa_1.zip|Interaktivna lampa 1]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Funkčnosť programu bola overená testovaním na reálnom zariadení, a to nasledovne:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;sledovaním LEDky na module mikrofónu, ktorá sa zasvieti ak sníma zvuk&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;nastavovaním senzitivity mikrofónu pomocou potenciometra, ktorý je súčasťou modulu mikrofónu(taktiež podľa LED na module mikrofónu)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;sledovaním stavu samotných LED diód, či svietia alebo nie&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;sledovaním LEDky Tx na samotnom Arduino UNO, kedy doska zachytáva signál z mikrofónu, a kedy reaguje na vstupný zvuk&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;správnou reakciou na 1 tlesk, čo znamená --&amp;gt; zasvieť červenú LED &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;správnou reakciou na 2 tlesky, čo znamená --&amp;gt; zasvieť zelenú LED. Toto bolo trošku náročnejšie, lebo bolo treba nastaviť debounce a čas snímania tlesku na správne hodnoty&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;správnou reakciou na 3 tlesky, čo znamená --&amp;gt; Reaguj na 1 a 2 tlesky a zároveň zapni obe LEDky, alebo opak --&amp;gt; Ignoruj 1 a 2 tlesky a zároveň vypni obe LEDky &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Video:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;youtube&amp;gt;GG_nnK2SsiM&amp;lt;/youtube&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Čo by som urobil inak ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Projekt sa mi podarilo vyhotoviť bez väčších problémov, avšak musel som sa inšpirovať zapojeniami a videami na internete, kde chvalabohu takéto projekty sú. Ak by som mal niečo spraviť inak, dal by som tam miesto dvoch LED rôznej farby jednu RGB LEDku a skúsil sa pohrať s tým. Ďalšia možnosť by bola použiť LED pásik a bolo by to omnoho použiteľnejšie. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&amp;diff=19678</id>
		<title>MIPS Projekt</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&amp;diff=19678"/>
		<updated>2026-06-24T13:21:56Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Projekty MIPS 2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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. &lt;br /&gt;
&lt;br /&gt;
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:&lt;br /&gt;
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.&lt;br /&gt;
* 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&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{cbox|text=&#039;&#039;&#039;Upozornenie:&#039;&#039;&#039; programy vypracujete v avr-gcc, &#039;&#039;&#039;nie&#039;&#039;&#039; v Arduino IDE prostredí.&amp;lt;BR&amp;gt; Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;red&amp;quot; Size=&amp;quot;+1&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Vlastné:&#039;&#039;&#039;&lt;br /&gt;
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnoho inšpirácie na vlastné projekty nájdete napr. tu https://www.engineersgarage.com/?s=arduino&amp;amp;page=1 alebo tu https://circuitdigest.com/microcontroller-projects/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voľné projekty ==&lt;br /&gt;
&lt;br /&gt;
Poznámka: zadania označené (*) sú jednoduchšie a nie sú vhodné pre študentov, ktorí chcú mať známku A alebo B. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;8&amp;quot;&amp;gt;   Zbernica i2c: PCF8582E - 256x8-bit EEPROM i2c&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;10&amp;quot;&amp;gt;  Zbernica SPI: MCP41050 E/P  číslicový potenciometer 50k, 8-bit, SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;11&amp;quot;&amp;gt;  Zbernica SPI: MCP4811 -E/P  číslicový D/A prevodník 10 bit SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;12&amp;quot;&amp;gt;  Zbernica SPI: 25LC010A - EEPROM pamäť 128x8 bit SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;26&amp;quot;&amp;gt;  Jednoduchý multitasking s FreeRTOS https://github.com/johncobb/avr_328p_freertos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;34&amp;quot;&amp;gt; Ak použijeme funkciu printf(...) čas potrebný na k vykonaniu tejto operácie je úmerný prenosovej rýchlosti a počtu prenášaných B-tov. Jeden zo spôsobov skrátenia času potrebného na vykonanie tejto funkcie je použiť prerušovací podsystém. Na meranie času použite buď niektorý T/C, alebo osciloskop. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;36&amp;quot;&amp;gt; Študent musí vypočítať z T systému T oscilátora. Dokážete namerať toľko bodov,  ALF a FLF charakteristiky, aby ste vedeli dokresliť asymptoty?&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;li value=&amp;quot;38&amp;quot;&amp;gt; Niečo z predošlých zadaní v kombinácii Matlab/Simulink a generovaným kódom.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;39&amp;quot;&amp;gt; [[Zbernica i2c: hodiny reálneho času s PCF8583P]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2026 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Bukhtiiarov, Egor: [[Zbernica i2c: EEPROM Terminál]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Buryk, Yaroslav: [[Digitálny potenciometer]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Čavojský, Michal: [[Interaktívna lampička II]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Čornyj, Gordij: [[Úsporné režimy procesora]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Čulák, Adam: [[Zámok na kód I.]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Domchuk, Dmytro: [[Integrátor s mikroprocesorom]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Dordiai, Dariia: [[Pohyblivý text]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Dudášová, Mia: [[Zámok na kód s IR ovládaním]] - vlastný projekt&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Dzivjaková, Broňa: [[UART Kalkulačka]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Federmayer, Werner: [[Ultrazvukový radar s HC-SR04]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Fursov, Rostyslav: [[SOS maják]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Grúň, Matúš: [[Interaktívna lampička I]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Hegedúš, Lukáš: [[Zámok na kód II.]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Hreha, Filip: [[Alarm s PIR detektorom pohybu]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Chuiko, Oleh: [[Dekodér morzeovky]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Igaz, Samuel: [[Monitor kapacity batérie]] (*)&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Kesckés, Marek: [[Ovládanie servomotorčekov na manipulátore joystickmi]] - vlastný projekt&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Kilian, Karol: [[UART Metronóm]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Klein, Miroslav: [[Prehrávač melódie s ovládaním]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Koža, Andrej: [[Zbernica i2c: RTC Hodiny]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Milošev, Jakub: [[Zbernica SPI:  D/A prevodník MCP4812]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Mykyta, Oleksandr: [[Generátor harmonického signálu]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Nevzorova, Sofia: [[Vstupná jednotka s palcovým prepínačom TS211]]   (*)&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Prokop, Matúš: [[Simulátor sústavy 1. rádu]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Rostupytskyi, Kristian: [[Pripojenie viacero tlačidiel cez A/D prevodník‎]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Svystak, Dariia: [[Implementácia funkcie map()]] &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Szabo, Oliver: [[Generátor tónov]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Szabó Bartko, Áron: [[Binárne hodiny]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Vasas, Mihály Bertalan: [[Ultrazvukový radar so senzorom Ping)))]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Vríčan, Dávid: [[Automatické zavlažovanie]] &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Zadorozhnii, Anton: [[Generátor signálov s mikroprocesorom]]&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- nove pridavaj uz sem, lebo cislovanie --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Archív projektov z predošlých rokov == &lt;br /&gt;
&lt;br /&gt;
* Balogh: &#039;&#039;[[MIPS Template|Vzorová šablóna na projekty.]]&#039;&#039; 2023-6.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2025 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Dominik Andraščík: [[Ovládanie elektrického zámku z cloudu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Andrej Bariš: [[Bežiace svetlo s obvodom 74HC595]]&lt;br /&gt;
 &amp;lt;li&amp;gt;?? Ilona Baihildina: [[Hracia kocka s LED]] (*)&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Oliver Beko: [[Čítačka RFID kariet RC522]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Biacovský: [[Jednoduchá kuchynská váha do 1kg]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Filip Boco: [[Zbernica i2c: hodiny reálneho času s DS1388]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Dávid Bungyi: [[Diaľkové ovládanie zosilňovača]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Lukáš Čapla: [[Snímanie polohy optickým enkodérom]] IRC a jeho vyhodnotenie pre snímanie polohy&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Samuel Gálik: [[Ovládanie rýchlosti jednosmerného motora cez bluetooth]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Kamil Hanišák: &#039;&#039;[[Zbernica i2c: PCF8574]] - IO expandér.&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Ľuboš Hreňo: [[Ovládanie  robotického ramienka joystickom II.]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Hubocký: [[Kombinovaný snímač teploty a vlhkosti DHT22]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Dávid Jamarik: [[Hra Máš pevnú ruku?]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Miloslav Kráľ:  [[Tester Arduina]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Kráľ: [[Automatické nastavenie prenosovej rýchlosti]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Juraj Krasnovský: [[Ovládanie  robotického ramienka joystickom]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Lenarth: [[Ovládanie vyklápacích svetiel]]. &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Németh: [[Ovládanie rýchlosti jednosmerného motora z BT aplikácie]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Tymur Omelianenko: [[Generátor trojuholníkového signálu s R-2R prevodníkom]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Filip Pinďar: [[Ovládanie elektrického zámku z mobilnej aplikácie]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Kamil Raplík: [[Infračervený vypínač s ATtiny45]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ René Roger: [[Metódy zvýšenie presnosti A/D prevodu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Aleh Sobaleu: [[Kombinovaný snímač teploty a vlhkosti DHT11]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Marek Šoltés: [[Diaľkové ovládanie spotrebiča pomocou infračerveného signálu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Zakuťanský: [[Generovanie kódu z prostredia Matlaba/Simulink]] &lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2024 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Bobocký, Daniel Samuel: &#039;&#039;[[Klávesnica s radičom MH1KK1 -]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Bugár, Martin:         &#039;&#039;[[Reglátor chladenia so snímačom teploty]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Buzko, Kateryna:       &#039;&#039;[[Jednoduchý prijímač diaľkového IR ovládania]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Csabi, Jozef:          &#039;&#039;[[Meranie vzdialenosti ultrazvukovým snímačom HC-SR04]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Fedor, Peter:          &#039;&#039;[[Riadenie polohy klapky klimatizácie]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Guľak, Peter:          &#039;&#039;[[Piškvorky (Tic-Tac-Toe)]] na 8x8 maticovom displeji&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Hano, Adam:            &#039;&#039;[[Hodinový modul DS1302]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Illés, Dominik:        &#039;&#039;[[Ovládanie RGB LED pásika]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kramla, Oliver:        &#039;&#039;[[Svetelný efekt s obvodom 74595]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kudláč, Lukáš:         &#039;&#039;[[Riadenie križovatky]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kuňáková, Andrea:      &#039;&#039;[[Autíčko na sledovanie čiary]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ledecký, Matej:        &#039;&#039;[[Ovladanie krokoveho motora joystickom + uvod displej]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Macák, Jakub:          &#039;&#039;[[Tester obvodu 7400]] (4xNAND)&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Majba, David:          &#039;&#039;[[Vysielač morzeovky]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Nagy, Ladislav:        &#039;&#039;[[Maticový displej 8x8 s driverom MAX7219]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Nagy, Gabriel:         &#039;&#039;[[Tester obvodu 7493]] (4-bitové počítadlo)&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ondrejková, Lea Lenka: &#039;&#039;[[14-segmentový LED displej]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Pauliny, Kristián:     &#039;&#039;[[Akordy s procesorom AVR]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Reismüller, Tomáš:     &#039;&#039;[[Inteligentný šatník]]&#039;&#039; (model)&lt;br /&gt;
 &amp;lt;li&amp;gt; Sušina, Marián:        &#039;&#039;[[Senzor teploty a vlhkosti SHT31]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Szovics, Peter:        &#039;&#039;[[Elektronická škrtiaca klapka]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Tarcal, Ondrej:        &#039;&#039;[[Simon&#039;s Game]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ulej, Ján:             &#039;&#039;[[Kuchynské minutky]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Viest, Filip:          &#039;&#039;[[Klávesnica 2x3]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Vretenička, Šimon:     &#039;&#039;[[Ovládanie RGB LED cez Processing]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Žula, Daniel:          &#039;&#039;[[7-segmentový displej na futbal]] &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li&amp;gt; Brosz, Peter  a Diossy, Daniel: &#039;&#039;[[Automatické autíčko]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Matsibora, Viačeslav a Fietisov, Dmytro: &#039;&#039;[[Dvojosová kolíska na kameru ovládaná joystickom]]&#039;&#039; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;65&amp;quot;&amp;gt;&amp;lt;S&amp;gt; Tomáš Štibrányi: Klávesnica 4x4 s radičom MH1KK1&#039;&#039; &amp;lt;/S&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;61&amp;quot;&amp;gt;&amp;lt;S&amp;gt; Jakub Briežnik: Jednoduché menu s rotačným enkodérom&#039;&#039; a s výberom možností &amp;lt;/S&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2023 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Tomáš Bečvarov:   &#039;&#039;[[Senzor farieb TCS230]].&#039;&#039;  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Martin Cíbik:     &#039;&#039;[[Riadenie krokového motorčeka I.]]&#039;&#039;  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Viktor Fos*:      &#039;&#039;[[Rotačný enkodér]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Kristián Greif:   &#039;&#039;[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.&#039;&#039; Jednoduchý driver a knižnica pre tento obvod.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Ivan Hílek:       &#039;&#039;[[Postrehová hra]]&#039;&#039;  &lt;br /&gt;
 &amp;lt;li&amp;gt;Ivan Jagoš:       &#039;&#039;[[Dekodér infračerveného ovládača]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Mykyta Sabadash:  &#039;&#039;[[Hlukomer]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;lI&amp;gt;Lukáš Savčak:     &#039;&#039;[[Snímač teploty TMP36]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Juraj Štefánik:   &#039;&#039;[[Segmentový display TM1637]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Samuel Tomáš:     &#039;&#039;[[Miniatúrny analógový joystick]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Hortenzia Wollentová: &#039;&#039;[[Ovládač maticovej klávesnice]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Jozef Záhora:      &#039;&#039;[[Jednoduchá terminálová kalkulačka]]&#039;&#039;. 2023&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2022 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;1&amp;quot;&amp;gt; Martin Drgala: &amp;lt;!-- Lipták, Kristián: --&amp;gt; Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej&lt;br /&gt;
 &amp;lt;li value=&amp;quot;2&amp;quot;&amp;gt; Veronika Remeňová: &amp;lt;!-- Turčan, Maroš: --&amp;gt;    Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej&lt;br /&gt;
 &amp;lt;li value=&amp;quot;3&amp;quot;&amp;gt; František Kapsz:  &amp;lt;!-- Buday, Bálint: --&amp;gt;    Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;5&amp;quot;&amp;gt; Roderik Bako: &amp;lt;!-- Belokostolský, Alex Kristóf --&amp;gt; [https://www.mathsisfun.com/games/simon-says.html Simon&#039;s Game] 4x LED, 1x tlačítko, LCD displej na skore&lt;br /&gt;
 &amp;lt;li value=&amp;quot;6&amp;quot;&amp;gt; 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)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;7&amp;quot;&amp;gt; Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže &amp;quot;prestrihnúť&amp;quot; (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo &amp;quot;vybuchne&amp;quot; bombu&lt;br /&gt;
 &amp;lt;li value=&amp;quot;7&amp;quot;&amp;gt; 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 &amp;quot;prestrihnúť&amp;quot; (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo &amp;quot;vybuchne&amp;quot; bombu&lt;br /&gt;
 &amp;lt;li value=&amp;quot;14&amp;quot;&amp;gt; Alexander Lazorík:  &amp;lt;!-- Goljer, Ivan: --&amp;gt; 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ť&lt;br /&gt;
 &amp;lt;li value=&amp;quot;15&amp;quot;&amp;gt; Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).&lt;br /&gt;
 &amp;lt;li value=&amp;quot;17&amp;quot;&amp;gt; Marek Porubský: &amp;lt;!-- Berta, Kristof: --&amp;gt; &#039;&#039;Meranie teploty pomocou interného snímača procesora.&#039;&#039; (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])&lt;br /&gt;
 &amp;lt;li value=&amp;quot;18&amp;quot;&amp;gt; Andrii Sikomas: &amp;lt;!-- Bilčík, Martin: --&amp;gt; &#039;&#039;Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).&#039;&#039;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;19&amp;quot;&amp;gt; Adam Sližka: &amp;lt;!-- Oboril, Oliver:--&amp;gt; LED ako senzor intenzity svetla&lt;br /&gt;
 &amp;lt;li value=&amp;quot;20&amp;quot;&amp;gt; Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.&lt;br /&gt;
 &amp;lt;li value=&amp;quot;21&amp;quot;&amp;gt; Jakub Červenka: &amp;lt;!-- Skachová, Zuzana:--&amp;gt; Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;22&amp;quot;&amp;gt; Sabina Ovčiariková: &amp;lt;!-- Görözdös, Gergely: --&amp;gt; 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.&lt;br /&gt;
 &amp;lt;li value=&amp;quot;23&amp;quot;&amp;gt; Oleksandr Shyp: &amp;lt;!-- Hajda, Jaroslav: --&amp;gt; &#039;&#039;Posúvanie bodky na 8x8 led displayi pomocou joysticku.&#039;&#039;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;29&amp;quot;&amp;gt; Martin Vdovják: &amp;lt;!-- Mosej, Samuel: --&amp;gt;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)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;36&amp;quot;&amp;gt; Attila Hriňa: &amp;lt;!--  Papcun, Miroslav: --&amp;gt; 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á).&lt;br /&gt;
 &amp;lt;li value=&amp;quot;37&amp;quot;&amp;gt; Korytova, Taisiia: Svetelná križovatka s nočným režimom. &amp;lt;!-- Fabian, Maroš --&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;38&amp;quot;&amp;gt; Ákos Keszegh: Reaction Timer&lt;br /&gt;
 &amp;lt;li value=&amp;quot;39&amp;quot;&amp;gt; Marek Trúchly: Atmel2586 s MEMS akcelerometerom&lt;br /&gt;
 &amp;lt;li value=&amp;quot;40&amp;quot;&amp;gt; Oskar Bálint: Automatické otváranie dverí s PIR senzorom&lt;br /&gt;
 &amp;lt;li value=&amp;quot;41&amp;quot;&amp;gt; Adam Kašička:  Model a signalizácia sekvenčnej prevodovky&lt;br /&gt;
 &amp;lt;li value=&amp;quot;42&amp;quot;&amp;gt; Ing. Ján Šefčík: Riadenie modelu Ball&amp;amp;Beam&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zadania semestrálnych projektov v minulosti ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. &lt;br /&gt;
&lt;br /&gt;
Zadanie pozostáva z dvoch častí:&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. &lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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úť.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2014&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Lechvár, Slaminka: &#039;&#039;[[Meranie pulzovej frekvencie.]]&#039;&#039; 2014.&lt;br /&gt;
* Jankovič, Lukáč: &#039;&#039;[[Zbernica i2c: hodiny RTC.]]&#039;&#039; 2014.&lt;br /&gt;
* Bača, Galovič: &#039;&#039;[[Bezdrôtová komunikácia v pásme 433 MHz.]]&#039;&#039; 2014.&lt;br /&gt;
* Katona, Nehánszki: &#039;&#039;[[Hodiny RTC s kalendárom pomocou PCF8583]]&#039;&#039;. 2014.&lt;br /&gt;
* Benedek, Cintula, Gahér: &#039;&#039;[[Trojosí gyroskopický modul L3G4200D]]&#039;&#039;. 2014.&lt;br /&gt;
* Šandal, Vincze: &#039;&#039;[[Trojosí akcelerometer MMA7455]]&#039;&#039;. 2014.&lt;br /&gt;
* Kocian, Švančara: &#039;&#039;[[RFID čítačka]]&#039;&#039;. 2014&lt;br /&gt;
* Martinkovič, Valach: &#039;&#039;[[RFID čítačka II]]&#039;&#039;. 2014&lt;br /&gt;
* Jakubička, Vyletel: &#039;&#039;[[Inkrementálny snímač]]&#039;&#039;. 2014&lt;br /&gt;
* Bohuš, Vargic, Gašparová: &#039;&#039;[[MEMS mikrofón ADMP401]]&#039;&#039;. 2014&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2013&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Godál, R. a Šimončič, M.: &#039;&#039;[[Meranie reakčnej doby]].&#039;&#039; 2013.&lt;br /&gt;
* Leško, D. a Biath, V.: &#039;&#039;[[MiniMEXLE Hodiny na orientačný beh]].&#039;&#039; 2013.&lt;br /&gt;
* Paulen, J. a Vojvoda, R.: &#039;&#039;[[Meranie krátkych intervalov]].&#039;&#039; 2013.&lt;br /&gt;
* Jurák, M. a Vlahi, L.: &#039;&#039;[[Meranie časového intervalu]].&#039;&#039; 2013.&lt;br /&gt;
* Rybárik, M. a Lukáč, M.: &#039;&#039;[[Odpočítavacie hodiny na riadenie diskusie]].&#039;&#039; 2013.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2012&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Cebák, Darvaši:  &#039;&#039;[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]&#039;&#039; 2012.&lt;br /&gt;
* Pecho, Lacko:    &#039;&#039;[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]&#039;&#039; 2012.&lt;br /&gt;
* Rekšák, Mrva:    &#039;&#039;[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]&#039;&#039; 2012.&lt;br /&gt;
* Boráros, Gál:    &#039;&#039;[[Zbernica i2c: FM rádio]].&#039;&#039; 2012.&lt;br /&gt;
* Berčák, Harmata: &#039;&#039;[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]&#039;&#039; 2012.&lt;br /&gt;
* Géczy, Kamenský: &#039;&#039;[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]&#039;&#039; 2012.&lt;br /&gt;
&lt;br /&gt;
* Szolik, Šnyr:    &#039;&#039;[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]&#039;&#039; 2012.&lt;br /&gt;
* Gálik, Gogola:   &#039;&#039;[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]&#039;&#039; 2012.&lt;br /&gt;
* Virág, Topoli:   &#039;&#039;[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]&#039;&#039; 2012.&lt;br /&gt;
* Statečný:        &#039;&#039;[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]&#039;&#039; 2012.&lt;br /&gt;
* Vincze, Rozsár:  &#039;&#039;[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]&#039;&#039; 2012.&lt;br /&gt;
* Baláž, Kupčiha:  &#039;&#039;[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]&#039;&#039; 2012.&lt;br /&gt;
* Mazúch, Lovaš, Oravec: &#039;&#039;[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]&#039;&#039; 2012.&lt;br /&gt;
* Špitálová: [[Parkovací senzor]] 2012.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Vstupn%C3%A1_jednotka_s_palcov%C3%BDm_prep%C3%ADna%C4%8Dom_TS211&amp;diff=19677</id>
		<title>Vstupná jednotka s palcovým prepínačom TS211</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Vstupn%C3%A1_jednotka_s_palcov%C3%BDm_prep%C3%ADna%C4%8Dom_TS211&amp;diff=19677"/>
		<updated>2026-06-24T13:20:52Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Záverečný projekt predmetu MIPS / LS2026 - &#039;&#039;&#039;Sofiia Nevzorova&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Navrhnite a realizujte vstupnú jednotku na báze dvojsekčného palcového prepínača TS211 s BCD kódovaním pripojenú k vývojovej doske ACROB. Programovo zabezpečte čítanie hodnôt z oboch sekcií prepínača (desiatky a jednotky) v negatívnej logike s využitím interných pull-up rezistorov mikrokontroléra ATmega328P. Implementujte algoritmus na prevod BCD kódov z portov PORTC a PORTD na výsledné dekadické číslo v rozsahu 00 až 99. Zabezpečte výpis aktuálnej hodnoty cez rozhranie UART do konzoly pri každej zmene nastavenia(na overenie).&lt;br /&gt;
&lt;br /&gt;
[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]&lt;br /&gt;
* https://www.bucek.name/pdf/ts21xxxxx.pdf&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Analýza  a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Základným komponentom tohto riešenia je dvojsekčný palcový prepínač TS211. Každá sekcia prepínača funguje ako mechanický dekodér, ktorý prevádza nastavenú číslicu (0–9) na 4-bitový signál v kóde BCD (Binary Coded Decimal). Prepínač má pre každú sekciu 5 výstupov: jeden spoločný kontakt (Common) a štyri dátové kontakty s váhami 1, 2, 4 a 8.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:TS211_Nevzorova_realizacia.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]&lt;br /&gt;
&lt;br /&gt;
Princíp činnosti a softvérové spracovanie:&lt;br /&gt;
Vstupy mikrokontroléra sú nakonfigurované v režime s aktivovanými internými pull-up rezistormi. To znamená, že piny pracujú v negatívnej logike:&lt;br /&gt;
Ak je kontakt v prepínači otvorený, pull-up rezistor drží na pine logickú 1.&lt;br /&gt;
Ak je kontakt zopnutý (číslica je zvolená), pin sa prepojí so zemou (GND) a procesor načíta logickú 0.&lt;br /&gt;
V programe sa preto načítané hodnoty z registrov PINC a PIND najskôr bitovo invertujú (~).&lt;br /&gt;
Pre desiatky (PORTC) sa priamo maskujú spodné 4 bity.&lt;br /&gt;
Pre jednotky (PORTD) sa využíva bitový posun doprava o 2 miesta (&amp;gt;&amp;gt; 2), aby sa bity z pozícií D2–D5 dostali na pozície 0–3 pre správny výpočet váhy BCD kódu.&lt;br /&gt;
&lt;br /&gt;
Výsledné číslo sa vypočíta podľa vzťahu: Hodnota = (Desiatky * 10) + Jednotky, a následne sa posiela cez rozhranie UART do konzoly PuTTY.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:schemaMips.png|400px|thumb|center|Schéma zapojenia.]]&lt;br /&gt;
&lt;br /&gt;
Hardvérové zapojenie:&lt;br /&gt;
Prepojenie s mikrokontrolérom ATmega328P na doske ACROB bolo realizované nasledovne:&lt;br /&gt;
Ľavý blok (Desiatky): Výstupy s váhami 1, 2, 4, 8 sú pripojené na piny A0, A1, A2 a A3 (čo zodpovedá portu PORTC, bity 0–3).&lt;br /&gt;
Pravý blok (Jednotky): Výstupy sú pripojené na digitálne piny D2, D3, D4 a D5 (port PORTD, bity 2–5).&lt;br /&gt;
Spoločné kontakty (C): Obe sekcie majú spoločný kontakt pripojený na GND (zem).&lt;br /&gt;
Z hľadiska mechanickej konštrukcie bolo kvôli nedostatočnej dĺžke kontaktov prepínača pre montáž priamo do breadboardu zvolené pripojenie pomocou flexibilných vodičov, čím sa zabezpečil spoľahlivý elektrický kontakt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
V programe sme využili 8-bitovú premennú &amp;lt;code&amp;gt;uint8_t&amp;lt;/code&amp;gt; na uloženie stavu jednotlivých sekcií prepínača. Hodnota z portov sa po inverzii maskuje pomocou &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt;, čím získame čistý BCD kód (0–9).&lt;br /&gt;
&lt;br /&gt;
V úvode funkcie &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; prebieha inicializácia smerových registrov &lt;br /&gt;
&amp;lt;code&amp;gt;DDR&amp;lt;/code&amp;gt; a nastavenie vstupov:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DDRC &amp;amp;= ~0x0F; PORTC |= 0x0F;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DDRD &amp;amp;= ~0x3C; PORTD |= 0x3C;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Týmto krokom aktivujeme vnútorné pull-up rezistory ešte pred vstupom do hlavného cyklu &amp;lt;code&amp;gt;while(1)&amp;lt;/code&amp;gt;, čo zabezpečuje stabilné čítanie hodnôt z prepínača hneď po štarte mikrokontroléra.&lt;br /&gt;
&lt;br /&gt;
Výsledná hodnota sa vypočíta podľa vzťahu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;total = (tens * 10) + units;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pre výpočet desiatkovej hodnoty z portu D sme použili bitový posun o 2 miesta doprava, pretože fyzické pripojenie prepínača na piny D2 až D5 posúva dáta v registri &amp;lt;code&amp;gt;PIND&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Vzťah pre prepočet je:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tens = (~PIND &amp;gt;&amp;gt; 2) &amp;amp; 0x0F;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Táto úprava je nevyhnutná, aby sa logické úrovne zarovnali do intervalu 0 až 9, ktorý zodpovedá číslam na prepínači. Všetky výpočty sú vykonávané v celočíselnej aritmetike, čo je pre daný rozsah 0–99 úplne postačujúce.&lt;br /&gt;
&lt;br /&gt;
Na riadenie výpisu do konzoly bola použitá pomocná premenná &amp;lt;code&amp;gt;last_val&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;if (total != last_val) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; printf(&amp;quot;Value: %02u\n&amp;quot;, total);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; last_val = total;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Táto podmienka zabezpečuje, že mikrokontrolér odosiela dáta cez UART len v momente, keď dôjde k fyzickej zmene nastavenia na prepínači. Týmto sa minimalizuje zaťaženie sériovej linky a terminál PuTTY zostáva prehľadný.&lt;br /&gt;
Pri implementácii boli využité štandardné typy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint8_t&amp;lt;/code&amp;gt; pre dáta z portov a &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint16_t&amp;lt;/code&amp;gt; pre výslednú hodnotu, čo je z hľadiska pamäťových nárokov na procesor ATmega328P optimálne.&lt;br /&gt;
&lt;br /&gt;
V hlavnom cykle programu je zaradené krátke oneskorenie &amp;lt;code&amp;gt;_delay_ms(150);&amp;lt;/code&amp;gt;. Táto pauza slúži na stabilizáciu hodnôt pri mechanickom prepínaní kontaktov a zabraňuje náhodným chybám v načítaných dátach počas pohybu prepínača.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;AVR C-code&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
uint8_t read_bcd_tens(void) {&lt;br /&gt;
    uint8_t status = ~PINC;&lt;br /&gt;
    return (status &amp;amp; 0x0F); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t read_bcd_units(void) {&lt;br /&gt;
    uint8_t status = ~PIND;&lt;br /&gt;
    return ((status &amp;gt;&amp;gt; 2) &amp;amp; 0x0F); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout; &lt;br /&gt;
    &lt;br /&gt;
    DDRC &amp;amp;= ~0x0F; PORTC |= 0x0F;      &lt;br /&gt;
    DDRD &amp;amp;= ~0x3C; PORTD |= 0x3C;      &lt;br /&gt;
&lt;br /&gt;
    uint8_t last_val = 255; &lt;br /&gt;
&lt;br /&gt;
    while(1)&lt;br /&gt;
    {&lt;br /&gt;
        uint8_t tens = read_bcd_tens();   &lt;br /&gt;
        uint8_t units = read_bcd_units(); &lt;br /&gt;
        &lt;br /&gt;
        uint16_t total = (tens * 10) + units;&lt;br /&gt;
        &lt;br /&gt;
        if (total != last_val) {&lt;br /&gt;
            printf(&amp;quot;Value: %02u\n&amp;quot;, total);&lt;br /&gt;
            last_val = total;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        _delay_ms(150); &lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;filename.h&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void adc_init(void);                                   // A/D converter initialization&lt;br /&gt;
&lt;br /&gt;
unsigned int adc_read(char a_pin);&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:projekt_Nevzorova.zip|projekt_Nevzorova]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Správna funkcia projektu bola overená sledovaním sériového výstupu v termináli PuTTY. Pri každej mechanickej zmene polohy palcového prepínača sa v konzole okamžite zobrazila zodpovedajúca dvojciferná hodnota. Testovaním všetkých polôh oboch sekcií (0–9) sa potvrdilo, že program správne interpretuje BCD kód a bezchybne vypočítava výsledné dekadické číslo v rozsahu 00 až 99.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Video:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;youtube&amp;gt;e5XRd5vfh3U&amp;lt;/youtube&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Čo by som urobila inak ==&lt;br /&gt;
&lt;br /&gt;
V budúcej verzii by som namiesto neustáleho dopytovania sa na stav portov v cykle (polling) skúsila implementovať čítanie pomocou externých prerušení (interrupts), čo by zvýšilo efektivitu programu. Taktiež by som pridala ďalšiu sekciu prepínača pre zadávanie trojciferných čísel a navrhla kompaktný plošný spoj, aby som nahradila veľké množstvo prepojovacích káblov stabilnejším riešením.&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Vstupn%C3%A1_jednotka_s_palcov%C3%BDm_prep%C3%ADna%C4%8Dom_TS211&amp;diff=19676</id>
		<title>Vstupná jednotka s palcovým prepínačom TS211</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Vstupn%C3%A1_jednotka_s_palcov%C3%BDm_prep%C3%ADna%C4%8Dom_TS211&amp;diff=19676"/>
		<updated>2026-06-24T13:07:00Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Čo by som urobil inak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Záverečný projekt predmetu MIPS / LS2026 - &#039;&#039;&#039;Sofiia Nevzorova&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Navrhnite a realizujte vstupnú jednotku na báze dvojsekčného palcového prepínača TS211 s BCD kódovaním pripojenú k vývojovej doske ACROB. Programovo zabezpečte čítanie hodnôt z oboch sekcií prepínača (desiatky a jednotky) v negatívnej logike s využitím interných pull-up rezistorov mikrokontroléra ATmega328P. Implementujte algoritmus na prevod BCD kódov z portov PORTC a PORTD na výsledné dekadické číslo v rozsahu 00 až 99. Zabezpečte výpis aktuálnej hodnoty cez rozhranie UART do konzoly pri každej zmene nastavenia(na overenie).&lt;br /&gt;
&lt;br /&gt;
[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Analýza  a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Základným komponentom tohto riešenia je dvojsekčný palcový prepínač TS211. Každá sekcia prepínača funguje ako mechanický dekodér, ktorý prevádza nastavenú číslicu (0–9) na 4-bitový signál v kóde BCD (Binary Coded Decimal). Prepínač má pre každú sekciu 5 výstupov: jeden spoločný kontakt (Common) a štyri dátové kontakty s váhami 1, 2, 4 a 8.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:TS211_Nevzorova_realizacia.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]&lt;br /&gt;
&lt;br /&gt;
Princíp činnosti a softvérové spracovanie:&lt;br /&gt;
Vstupy mikrokontroléra sú nakonfigurované v režime s aktivovanými internými pull-up rezistormi. To znamená, že piny pracujú v negatívnej logike:&lt;br /&gt;
Ak je kontakt v prepínači otvorený, pull-up rezistor drží na pine logickú 1.&lt;br /&gt;
Ak je kontakt zopnutý (číslica je zvolená), pin sa prepojí so zemou (GND) a procesor načíta logickú 0.&lt;br /&gt;
V programe sa preto načítané hodnoty z registrov PINC a PIND najskôr bitovo invertujú (~).&lt;br /&gt;
Pre desiatky (PORTC) sa priamo maskujú spodné 4 bity.&lt;br /&gt;
Pre jednotky (PORTD) sa využíva bitový posun doprava o 2 miesta (&amp;gt;&amp;gt; 2), aby sa bity z pozícií D2–D5 dostali na pozície 0–3 pre správny výpočet váhy BCD kódu.&lt;br /&gt;
&lt;br /&gt;
Výsledné číslo sa vypočíta podľa vzťahu: Hodnota = (Desiatky * 10) + Jednotky, a následne sa posiela cez rozhranie UART do konzoly PuTTY.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:schemaMips.png|400px|thumb|center|Schéma zapojenia.]]&lt;br /&gt;
&lt;br /&gt;
Hardvérové zapojenie:&lt;br /&gt;
Prepojenie s mikrokontrolérom ATmega328P na doske ACROB bolo realizované nasledovne:&lt;br /&gt;
Ľavý blok (Desiatky): Výstupy s váhami 1, 2, 4, 8 sú pripojené na piny A0, A1, A2 a A3 (čo zodpovedá portu PORTC, bity 0–3).&lt;br /&gt;
Pravý blok (Jednotky): Výstupy sú pripojené na digitálne piny D2, D3, D4 a D5 (port PORTD, bity 2–5).&lt;br /&gt;
Spoločné kontakty (C): Obe sekcie majú spoločný kontakt pripojený na GND (zem).&lt;br /&gt;
Z hľadiska mechanickej konštrukcie bolo kvôli nedostatočnej dĺžke kontaktov prepínača pre montáž priamo do breadboardu zvolené pripojenie pomocou flexibilných vodičov, čím sa zabezpečil spoľahlivý elektrický kontakt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
V programe sme využili 8-bitovú premennú &amp;lt;code&amp;gt;uint8_t&amp;lt;/code&amp;gt; na uloženie stavu jednotlivých sekcií prepínača. Hodnota z portov sa po inverzii maskuje pomocou &amp;lt;code&amp;gt;0x0F&amp;lt;/code&amp;gt;, čím získame čistý BCD kód (0–9).&lt;br /&gt;
&lt;br /&gt;
V úvode funkcie &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; prebieha inicializácia smerových registrov &lt;br /&gt;
&amp;lt;code&amp;gt;DDR&amp;lt;/code&amp;gt; a nastavenie vstupov:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DDRC &amp;amp;= ~0x0F; PORTC |= 0x0F;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DDRD &amp;amp;= ~0x3C; PORTD |= 0x3C;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Týmto krokom aktivujeme vnútorné pull-up rezistory ešte pred vstupom do hlavného cyklu &amp;lt;code&amp;gt;while(1)&amp;lt;/code&amp;gt;, čo zabezpečuje stabilné čítanie hodnôt z prepínača hneď po štarte mikrokontroléra.&lt;br /&gt;
&lt;br /&gt;
Výsledná hodnota sa vypočíta podľa vzťahu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;total = (tens * 10) + units;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pre výpočet desiatkovej hodnoty z portu D sme použili bitový posun o 2 miesta doprava, pretože fyzické pripojenie prepínača na piny D2 až D5 posúva dáta v registri &amp;lt;code&amp;gt;PIND&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Vzťah pre prepočet je:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tens = (~PIND &amp;gt;&amp;gt; 2) &amp;amp; 0x0F;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Táto úprava je nevyhnutná, aby sa logické úrovne zarovnali do intervalu 0 až 9, ktorý zodpovedá číslam na prepínači. Všetky výpočty sú vykonávané v celočíselnej aritmetike, čo je pre daný rozsah 0–99 úplne postačujúce.&lt;br /&gt;
&lt;br /&gt;
Na riadenie výpisu do konzoly bola použitá pomocná premenná &amp;lt;code&amp;gt;last_val&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;if (total != last_val) {&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; printf(&amp;quot;Value: %02u\n&amp;quot;, total);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; last_val = total;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Táto podmienka zabezpečuje, že mikrokontrolér odosiela dáta cez UART len v momente, keď dôjde k fyzickej zmene nastavenia na prepínači. Týmto sa minimalizuje zaťaženie sériovej linky a terminál PuTTY zostáva prehľadný.&lt;br /&gt;
Pri implementácii boli využité štandardné typy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint8_t&amp;lt;/code&amp;gt; pre dáta z portov a &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uint16_t&amp;lt;/code&amp;gt; pre výslednú hodnotu, čo je z hľadiska pamäťových nárokov na procesor ATmega328P optimálne.&lt;br /&gt;
&lt;br /&gt;
V hlavnom cykle programu je zaradené krátke oneskorenie &amp;lt;code&amp;gt;_delay_ms(150);&amp;lt;/code&amp;gt;. Táto pauza slúži na stabilizáciu hodnôt pri mechanickom prepínaní kontaktov a zabraňuje náhodným chybám v načítaných dátach počas pohybu prepínača.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;AVR C-code&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
uint8_t read_bcd_tens(void) {&lt;br /&gt;
    uint8_t status = ~PINC;&lt;br /&gt;
    return (status &amp;amp; 0x0F); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
uint8_t read_bcd_units(void) {&lt;br /&gt;
    uint8_t status = ~PIND;&lt;br /&gt;
    return ((status &amp;gt;&amp;gt; 2) &amp;amp; 0x0F); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout; &lt;br /&gt;
    &lt;br /&gt;
    DDRC &amp;amp;= ~0x0F; PORTC |= 0x0F;      &lt;br /&gt;
    DDRD &amp;amp;= ~0x3C; PORTD |= 0x3C;      &lt;br /&gt;
&lt;br /&gt;
    uint8_t last_val = 255; &lt;br /&gt;
&lt;br /&gt;
    while(1)&lt;br /&gt;
    {&lt;br /&gt;
        uint8_t tens = read_bcd_tens();   &lt;br /&gt;
        uint8_t units = read_bcd_units(); &lt;br /&gt;
        &lt;br /&gt;
        uint16_t total = (tens * 10) + units;&lt;br /&gt;
        &lt;br /&gt;
        if (total != last_val) {&lt;br /&gt;
            printf(&amp;quot;Value: %02u\n&amp;quot;, total);&lt;br /&gt;
            last_val = total;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        _delay_ms(150); &lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;filename.h&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void adc_init(void);                                   // A/D converter initialization&lt;br /&gt;
&lt;br /&gt;
unsigned int adc_read(char a_pin);&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:projekt_Nevzorova.zip|projekt_Nevzorova]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Správna funkcia projektu bola overená sledovaním sériového výstupu v termináli PuTTY. Pri každej mechanickej zmene polohy palcového prepínača sa v konzole okamžite zobrazila zodpovedajúca dvojciferná hodnota. Testovaním všetkých polôh oboch sekcií (0–9) sa potvrdilo, že program správne interpretuje BCD kód a bezchybne vypočítava výsledné dekadické číslo v rozsahu 00 až 99.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Video:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;youtube&amp;gt;e5XRd5vfh3U&amp;lt;/youtube&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Čo by som urobila inak ==&lt;br /&gt;
&lt;br /&gt;
V budúcej verzii by som namiesto neustáleho dopytovania sa na stav portov v cykle (polling) skúsila implementovať čítanie pomocou externých prerušení (interrupts), čo by zvýšilo efektivitu programu. Taktiež by som pridala ďalšiu sekciu prepínača pre zadávanie trojciferných čísel a navrhla kompaktný plošný spoj, aby som nahradila veľké množstvo prepojovacích káblov stabilnejším riešením.&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=UART_Kalkula%C4%8Dka&amp;diff=19675</id>
		<title>UART Kalkulačka</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=UART_Kalkula%C4%8Dka&amp;diff=19675"/>
		<updated>2026-06-24T13:04:59Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Čo by som urobil inak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Záverečný projekt predmetu MIPS / LS2026 - &#039;&#039;&#039;Broňa Dzivjaková&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo implementovať kalkulačku komunikujúcu cez sériové rozhranie UART (minimálne použiť: +, -, *, /). Používateľ zadáva matematický príklad (napr. 10+5 alebo 3.14*2) priamo cez sériový terminál a Arduino UNO výsledok vypočíta a odošle späť. Po úspešnom výpočte sa rozsvieti vstavaná LED dióda na pine 13. Program taktiež uchováva históriu posledných desiatich príkladov v pamäti EEPROM, ktorá zostane zachovaná aj po vypnutí zariadenia. Históriu je možné zobraziť príkazom &#039;h&#039; a vymazať príkazom &#039;c&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Obrázok:arduinoUNO.png|400px|thumb|center|Vývojová doska Arduino UNO.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
* [https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf Dokumentácia k mikrokontroléru ATmega328P]&lt;br /&gt;
* [https://docs.arduino.cc/hardware/uno-rev3/ Dokumentácia k doske Arduino UNO]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Analýza  a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Projekt je realizovaný na vývojovej doske Arduino UNO s mikrokontrolérom ATmega328P. Komunikácia prebieha cez UART rozhranie na rýchlosti 9600 baudov. &lt;br /&gt;
&lt;br /&gt;
Nakoľko matematické operácie sú na 8-bitových mikrokontroléroch nepresné, tak príklady sú riešené pomocou fixnej desatinnej čiarky. Všetky zadané hodnoty sú spracované ako stotiny (násobené *100) s použitím vlastnej funkcie. Týmto spôsobom vie kalkulačka dosiahnuť presnosť na 2 desatinné miesta.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:ZapojenieUNO.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na vstup ani výstup nie sú potrebné žiadne externé súčiastky, nakoľko som využila vstavanú LED diódu na pine 13 (PB5) a sériový port cez USB kábel. &lt;br /&gt;
&lt;br /&gt;
[[Súbor:ZapUnoSchem.png|400px|thumb|center|Schéma zapojenia.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Program je rozdelený do niekoľkých funkcií. Po spustení sa inicializuje UART &#039;funkcia uart_init&#039; a LED pin ako výstup. Hlavná nekonečná slučka čaká na vstup od používateľa. Funkcia &#039;read_line&#039; číta znaky zo sériového portu jeden po druhom a ukladá ich do vyrovnávacej pamäte (buffer), kým nepríde &#039;Enter&#039;.&lt;br /&gt;
&lt;br /&gt;
Hlavné funkcie programu:&lt;br /&gt;
&lt;br /&gt;
•	Funkcia &#039;na_stotiny&#039;, ktorá nám spracuje načítaný vstup z pamäte. Preskakuje medzery, spracuje nám záporné čísla a prenásobí ich *100. &lt;br /&gt;
&lt;br /&gt;
•	Funkcia &#039;process&#039; je jadro kalkulačky. Kontroluje nám validitu vstupu a obsahuje iba čísla. Následne vyhľadáva operátor, podľa ktorého vykonáva matematickú operáciu. Ošetruje taktiež aj delenie  nulou, výsledky so zápornými znamienkami a korektné formátovanie. &lt;br /&gt;
&lt;br /&gt;
•	Funkcie &#039;hist_save&#039;, &#039;hist_print&#039; a &#039;hist_clear&#039; zabezpečujú cyklický posun a ukladanie reťazcov do EEPROM pamäte. Pri zápise nového príkladu sa staré záznamy posunú o index vyššie. Pamäť ukladá 10 operácií. Pamäť sa maže zapísaním nulových bitov.  &lt;br /&gt;
&lt;br /&gt;
•	Funkcia &#039;led_blink&#039; nám rieši nastavenie pinu PB na vstavanej LED do logickej jednotky po dobu 1000 ms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;AVR C-code&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/eeprom.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define LED_DDR   DDRB&lt;br /&gt;
#define LED_PORT  PORTB&lt;br /&gt;
#define LED_PIN   PB5 //vstavaná LED&lt;br /&gt;
&lt;br /&gt;
#define HIST_COUNT  10  // História definovaná - uloží mi posledných 10 operácií&lt;br /&gt;
#define HIST_LEN    32 &lt;br /&gt;
char EEMEM ee_hist[HIST_COUNT][HIST_LEN];&lt;br /&gt;
&lt;br /&gt;
static FILE uart_stream = FDEV_SETUP_STREAM(uart_putc, uart_getc, _FDEV_SETUP_RW);&lt;br /&gt;
&lt;br /&gt;
 // používané funkcie&lt;br /&gt;
void    led_init(void);&lt;br /&gt;
void    led_blink(void);&lt;br /&gt;
uint8_t read_line(char *buf, uint8_t max);&lt;br /&gt;
void    process(const char *line);&lt;br /&gt;
void    hist_save(const char *line);&lt;br /&gt;
void    hist_print(void);&lt;br /&gt;
void    hist_clear(void);&lt;br /&gt;
int     na_stotiny(const char *str);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    char buf[HIST_LEN];&lt;br /&gt;
&lt;br /&gt;
    uart_init();				//basic uart inicializácia&lt;br /&gt;
    stdin  = &amp;amp;uart_stream;&lt;br /&gt;
    stdout = &amp;amp;uart_stream;&lt;br /&gt;
    led_init();&lt;br /&gt;
&lt;br /&gt;
	printf(&amp;quot;=================================\r\n\r&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;======= MIPS 2026 ZADANIE: ======\r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;======== UART Kalkulačka ========\r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;   Zadaj príklad (napr.: 3.14*2)\r\n&amp;quot;);&lt;br /&gt;
	printf(&amp;quot;   Dostupné operandy: +, -, *, / \r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;     Pre pozretie histórie: h \r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;    Pre vymazanie histórie: c \r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;=================================\r\n\r\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;&amp;gt; &amp;quot;);&lt;br /&gt;
        if (read_line(buf, HIST_LEN))&lt;br /&gt;
        {&lt;br /&gt;
            if (strcmp(buf, &amp;quot;h&amp;quot;) == 0) {		//čítanie zadaného vstupu &lt;br /&gt;
                hist_print();					//kontrola, či nie je &#039;h&#039; alebo &#039;c&#039;&lt;br /&gt;
            }&lt;br /&gt;
            else if (strcmp(buf, &amp;quot;c&amp;quot;) == 0) { &lt;br /&gt;
                hist_clear();&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                process(buf);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void led_init(void)&lt;br /&gt;
{&lt;br /&gt;
    LED_DDR  |=  (1 &amp;lt;&amp;lt; LED_PIN);&lt;br /&gt;
    LED_PORT &amp;amp;= ~(1 &amp;lt;&amp;lt; LED_PIN);&lt;br /&gt;
}&lt;br /&gt;
									//basic LED blikanie&lt;br /&gt;
void led_blink(void)&lt;br /&gt;
{&lt;br /&gt;
    LED_PORT |=  (1 &amp;lt;&amp;lt; LED_PIN);&lt;br /&gt;
    _delay_ms(1000);&lt;br /&gt;
    LED_PORT &amp;amp;= ~(1 &amp;lt;&amp;lt; LED_PIN);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
uint8_t read_line(char *buf, uint8_t max)	//čítanie vstupu a &lt;br /&gt;
{											// ukladanie do bufferu, kde to potom spracuvávam&lt;br /&gt;
    uint8_t i = 0;&lt;br /&gt;
    char c;&lt;br /&gt;
    while (i &amp;lt; max - 1)&lt;br /&gt;
    {&lt;br /&gt;
        c = uart_getc(stdin);&lt;br /&gt;
        if (c == &#039;\r&#039; || c == &#039;\n&#039;) { uart_puts(&amp;quot;\r\n&amp;quot;); break; }&lt;br /&gt;
        if (c == &#039;\b&#039; &amp;amp;&amp;amp; i &amp;gt; 0)    { i--; uart_puts(&amp;quot;\b \b&amp;quot;); continue; } //možný backspace&lt;br /&gt;
        uart_putc(c, stdout);&lt;br /&gt;
        buf[i++] = c;&lt;br /&gt;
    }&lt;br /&gt;
    buf[i] = &#039;\0&#039;;&lt;br /&gt;
    return (i &amp;gt; 0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int na_stotiny(const char *str)  //keďže nefunguje float dobre a ani iné operácie s desatinami&lt;br /&gt;
{								//musím to manuálne spracovať - zvolila som si prácu s max &lt;br /&gt;
    int cela = 0;				// 2 desatinnými číslami &lt;br /&gt;
    int desatina = 0;&lt;br /&gt;
    int znamienko = 1;&lt;br /&gt;
    const char *p = str;&lt;br /&gt;
&lt;br /&gt;
    while (*p == &#039; &#039;) p++;&lt;br /&gt;
&lt;br /&gt;
    if (*p == &#039;-&#039;) { znamienko = -1; p++; }&lt;br /&gt;
    else if (*p == &#039;+&#039;) p++;&lt;br /&gt;
&lt;br /&gt;
    //hlavným cieľom je nájsť bodku/čiarku - tu čítam čísla pred&lt;br /&gt;
    while (*p &amp;gt;= &#039;0&#039; &amp;amp;&amp;amp; *p &amp;lt;= &#039;9&#039;) {&lt;br /&gt;
        cela = cela * 10 + (*p - &#039;0&#039;);&lt;br /&gt;
        p++;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // ak prídem na . akebo , &lt;br /&gt;
    if (*p == &#039;.&#039; || *p == &#039;,&#039;) {&lt;br /&gt;
        p++;&lt;br /&gt;
        if (*p &amp;gt;= &#039;0&#039; &amp;amp;&amp;amp; *p &amp;lt;= &#039;9&#039;) {&lt;br /&gt;
            desatina += (*p - &#039;0&#039;) * 10; // desatina&lt;br /&gt;
            p++;&lt;br /&gt;
        }&lt;br /&gt;
        if (*p &amp;gt;= &#039;0&#039; &amp;amp;&amp;amp; *p &amp;lt;= &#039;9&#039;) {&lt;br /&gt;
            desatina += (*p - &#039;0&#039;);      // stotina&lt;br /&gt;
            p++;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return (cela * 100 + desatina) * znamienko;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void process(const char *line)&lt;br /&gt;
{&lt;br /&gt;
    // Kontrola na nepovolené znaky (písmená a iné)&lt;br /&gt;
    const char *check = line;&lt;br /&gt;
    while (*check) {&lt;br /&gt;
        if (!isdigit((unsigned char)*check) &amp;amp;&amp;amp; *check != &#039;.&#039; &amp;amp;&amp;amp; &lt;br /&gt;
            *check != &#039;+&#039; &amp;amp;&amp;amp; *check != &#039;-&#039; &amp;amp;&amp;amp; *check != &#039;*&#039; &amp;amp;&amp;amp; *check != &#039;/&#039;) {&lt;br /&gt;
            printf(&amp;quot;Chyba: neplatný znak v príklade!\r\n\r\n&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        check++;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    const char ops[] = &amp;quot;*/+-&amp;quot;;&lt;br /&gt;
    const char *op_pos = NULL;&lt;br /&gt;
    uint8_t i;&lt;br /&gt;
    &lt;br /&gt;
    // aký operátor&lt;br /&gt;
    for (i = 0; i &amp;lt; 4; i++) {&lt;br /&gt;
        op_pos = strchr(line + 1, ops[i]);&lt;br /&gt;
        if (op_pos) break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!op_pos) {&lt;br /&gt;
        printf(&amp;quot;Chyba: nebol zadaný operátor!\r\n\r\n&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    char op = *op_pos;&lt;br /&gt;
&lt;br /&gt;
    // a-pred čiarkou, b-za čiarkou&lt;br /&gt;
    long a = na_stotiny(line);&lt;br /&gt;
    long b = na_stotiny(op_pos + 1);&lt;br /&gt;
    long r = 0;&lt;br /&gt;
&lt;br /&gt;
    if (op == &#039;/&#039; &amp;amp;&amp;amp; b == 0) {		//kontrola delenia s 0&lt;br /&gt;
        printf(&amp;quot;Chyba: delenie nulou!\r\n\r\n&amp;quot;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //operácie poriešené cez * a / 100 &lt;br /&gt;
    if (op == &#039;+&#039;) r = a + b;&lt;br /&gt;
    else if (op == &#039;-&#039;) r = a - b;&lt;br /&gt;
    else if (op == &#039;*&#039;) r = (a * b) / 100; &lt;br /&gt;
    else if (op == &#039;/&#039;) r = (a * 100) / b;&lt;br /&gt;
&lt;br /&gt;
    long cela_cast = r / 100;&lt;br /&gt;
    long des_cast = r % 100;&lt;br /&gt;
    if (des_cast &amp;lt; 0) des_cast = -des_cast;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    // rozlišovanie, či výsledok má desatinné číslo&lt;br /&gt;
     printf(&amp;quot;Vysledok: &amp;quot;);&lt;br /&gt;
    if (r &amp;lt; 0 &amp;amp;&amp;amp; cela_cast == 0) {&lt;br /&gt;
        printf(&amp;quot;-&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;%ld&amp;quot;, cela_cast);&lt;br /&gt;
&lt;br /&gt;
    // ak zistím, ... vypíšem bodku&lt;br /&gt;
    if (des_cast != 0) {&lt;br /&gt;
        printf(&amp;quot;.&amp;quot;);&lt;br /&gt;
        if (des_cast &amp;lt; 10) {&lt;br /&gt;
            printf(&amp;quot;0&amp;quot;); // ak mám 0.05 napr.&lt;br /&gt;
        }&lt;br /&gt;
        printf(&amp;quot;%ld&amp;quot;, des_cast);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;\r\n\r\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    char hist_buffer[HIST_LEN];&lt;br /&gt;
    if (des_cast != 0) {&lt;br /&gt;
        if (r &amp;lt; 0 &amp;amp;&amp;amp; cela_cast == 0) {&lt;br /&gt;
            sprintf(hist_buffer, &amp;quot;%s=-%ld.%02ld&amp;quot;, line, cela_cast, des_cast);&lt;br /&gt;
        } else {&lt;br /&gt;
            sprintf(hist_buffer, &amp;quot;%s=%ld.%02ld&amp;quot;, line, cela_cast, des_cast);&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        sprintf(hist_buffer, &amp;quot;%s=%ld&amp;quot;, line, cela_cast);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    hist_save(hist_buffer); // uložím do histórie&lt;br /&gt;
    led_blink();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void hist_save(const char *line)&lt;br /&gt;
{&lt;br /&gt;
    char tmp[HIST_LEN];&lt;br /&gt;
    int8_t i;&lt;br /&gt;
    &lt;br /&gt;
    for (i = HIST_COUNT - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
        eeprom_read_block(tmp, ee_hist[i - 1], HIST_LEN);&lt;br /&gt;
        eeprom_write_block(tmp, ee_hist[i], HIST_LEN);&lt;br /&gt;
    }&lt;br /&gt;
    eeprom_write_block(line, ee_hist[0], HIST_LEN);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void hist_print(void)   &lt;br /&gt;
{&lt;br /&gt;
    char tmp[HIST_LEN];&lt;br /&gt;
    uint8_t found = 0;&lt;br /&gt;
    uint8_t i;&lt;br /&gt;
   &lt;br /&gt;
    printf(&amp;quot;============ História ===========\r\n&amp;quot;, HIST_COUNT);&lt;br /&gt;
    for (i = 0; i &amp;lt; HIST_COUNT; i++) {&lt;br /&gt;
        eeprom_read_block(tmp, ee_hist[i], HIST_LEN);&lt;br /&gt;
        tmp[HIST_LEN - 1] = &#039;\0&#039;;&lt;br /&gt;
        &lt;br /&gt;
        if ((unsigned char)tmp[0] == 0xFF || tmp[0] == &#039;\0&#039;) continue;&lt;br /&gt;
        &lt;br /&gt;
        printf(&amp;quot;  %d: %s\r\n&amp;quot;, i + 1, tmp);&lt;br /&gt;
        found = 1;&lt;br /&gt;
    }&lt;br /&gt;
    if (!found) printf(&amp;quot;       História je prázdna.\r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;=================================\r\n\r&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void hist_clear(void)  //vymazanie histórie&lt;br /&gt;
{&lt;br /&gt;
    char prazdne[HIST_LEN];&lt;br /&gt;
    uint8_t i;&lt;br /&gt;
    memset(prazdne, 0, HIST_LEN);&lt;br /&gt;
    for (i = 0; i &amp;lt; HIST_COUNT; i++) {&lt;br /&gt;
        eeprom_write_block(prazdne, ee_hist[i], HIST_LEN);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;       História je vymazaná.\r\n\r\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;uart.h&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef UART_H_&lt;br /&gt;
#define UART_H_&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void uart_init(void);&lt;br /&gt;
//void uart_putc(char c);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
//char uart_getc(void);&lt;br /&gt;
int  uart_putc(char c, FILE *stream);&lt;br /&gt;
int  uart_getc(FILE *stream);&lt;br /&gt;
&lt;br /&gt;
void uart_puts(const char *s);&lt;br /&gt;
&lt;br /&gt;
#endif /* UART_H_ */&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tab name=&amp;quot;uart.c&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#define BAUD  9600&lt;br /&gt;
#define MYUBRR (F_CPU / 16 / BAUD - 1)&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void uart_init(void)&lt;br /&gt;
{&lt;br /&gt;
    unsigned int ubrr = MYUBRR;&lt;br /&gt;
&lt;br /&gt;
    /* nastavenie baud rate */&lt;br /&gt;
    UBRR0H = (unsigned char)(ubrr &amp;gt;&amp;gt; 8);&lt;br /&gt;
    UBRR0L = (unsigned char)(ubrr);&lt;br /&gt;
&lt;br /&gt;
    /* zapni RX a TX */&lt;br /&gt;
    UCSR0B = (1 &amp;lt;&amp;lt; RXEN0) | (1 &amp;lt;&amp;lt; TXEN0);&lt;br /&gt;
&lt;br /&gt;
    /* 8 datových bitov, 1 stop bit, bez parity */&lt;br /&gt;
    UCSR0C = (1 &amp;lt;&amp;lt; UCSZ01) | (1 &amp;lt;&amp;lt; UCSZ00);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int uart_putc(char c, FILE *stream)&lt;br /&gt;
{&lt;br /&gt;
    if (c == &#039;\n&#039;)&lt;br /&gt;
        uart_putc(&#039;\r&#039;, stream);&lt;br /&gt;
&lt;br /&gt;
    while (!(UCSR0A &amp;amp; (1 &amp;lt;&amp;lt; UDRE0)));   /* čakaj kým je buffer prázdny */&lt;br /&gt;
    UDR0 = c;&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int uart_getc(FILE *stream)&lt;br /&gt;
{&lt;br /&gt;
    while (!(UCSR0A &amp;amp; (1 &amp;lt;&amp;lt; RXC0)));    /* čakaj na prijatý znak */&lt;br /&gt;
    return UDR0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void uart_puts(const char *s)&lt;br /&gt;
{&lt;br /&gt;
    while (*s)&lt;br /&gt;
        uart_putc(*s++, NULL);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:ProjektDzivjakovaBronaMIPS.zip|zdrojaky.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Funkčnosť som overila pomocou sériového terminálu s knižnicou UART. Testovala som každú z ponúknutých operácií, operáciu s desatinnými a zápornými číslami, a aj chybové stavy.&lt;br /&gt;
&lt;br /&gt;
•	Základné operácie: 5+8 = 13, 8*3 = 24, -9-4 = -13, 10/4 = 2.5, 89/0 = Delenie nulou&lt;br /&gt;
&lt;br /&gt;
•	Desatinné čísla: 3.14*7 = 21.98&lt;br /&gt;
&lt;br /&gt;
•	Chybové stavy: delenie nulou, zadanie písmena namiesto čísla&lt;br /&gt;
&lt;br /&gt;
•	História: príkaz &#039;h&#039; zobrazí posledné 3 príklady, &#039;c&#039; ich vymaže&lt;br /&gt;
&lt;br /&gt;
•	LED: po každom správnom výpočte blikne vstavaná LED na pine 13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Dzbarduino.jpg|400px|thumb|center|Bliknutie LED pri výpočte.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Video:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;youtube&amp;gt;Wl-AcCXg7Nw&amp;lt;/youtube&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Čo by som urobila inak ==&lt;br /&gt;
&lt;br /&gt;
Projekt splnil požiadavky zadania, no v budúcnosti by som ho rozšírila o LCD displej, kde by sa príklady a výsledky zobrazovali priamo na zariadení bez potreby počítača a sériového terminálu. Taktiež by bolo zaujímavé pridať podporu pre viac operácií v jednom výraze s dodržaním matematickej priority (násobenie pred sčítaním).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Integr%C3%A1tor_s_mikroprocesorom&amp;diff=19674</id>
		<title>Integrátor s mikroprocesorom</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Integr%C3%A1tor_s_mikroprocesorom&amp;diff=19674"/>
		<updated>2026-06-24T12:54:24Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Algoritmus a program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Záverečný projekt predmetu MIPS / LS2026 - &#039;&#039;&#039;Dmytro Domchuk&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
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 serialplot. Takže, sčitame hodnotu ADC vstupu z potenciometra a budeme ju integrovať každych 5ms. Ďalej, vysledky budeme posielať cez seriovu linku do programu SerialPlot.&lt;br /&gt;
&lt;br /&gt;
[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Analýza  a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Našou ulohou bolo vytvoriť integrator na zaklade vyvijivej dosky Acrob a petenciometroveho modula. Potenciometrový model sa saklada z potenciometra, prepinača režimu fungovania(linearný alebo parabolický), reset tlačidko a kontrolera. Zapojili sme modul potenciometra ku doske Acrob na port X4. A pripojili Acrob ku počitaču pomocou USB kabla. Na moldule potenciometra nastavujeme velkosť potenciometra, sčitavame hodnotu z ADC, vypočitame integral a posielame dve hodnoty na SerialPlot. Prva hodnota je velkosťou vstupu a druha je integrolom.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:08d34a4c-397f-4d53-b44a-7e9815cb343b.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]&lt;br /&gt;
&lt;br /&gt;
Nezabudnite doplniť schému zapojenia! V texte by ste mali opísať základné veci zo zapojenia, samotná schéma nie je dostačujúci opis.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:schemazapojenia.png|400px|thumb|center|Schéma zapojenia.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
 &lt;br /&gt;
Algoritmus programu  v hlavnej slučke sa začina tym že robí inicializaciu UART, ADC a Timer1 apovoluje prerušenia pomocou sei(). Ďalej zapisuje parametre integratora. Potom program zčita hodnotu z ADC a spravi posun nuly. Ďalej sa vytvori pasmo necitlivosti na +-3 jednotky z hodnoty ADC. Potom program vypočita integral Eulerovou metodou a spravi anti-windup aby hodnota integrala ne prekročila hranice 10000 a -10000. Ďalej v programe vytvorime 2 premennych typu int16_t plot_input a plot_ integral ktore sa rovnaju hodnotam input a integral. Ďalej posielame hodnoty premennych cez seriovu linku v binarnom tvare.&lt;br /&gt;
Funkcia void UART_init() robo inicializaciu UART pre baud 14400  a posialanie 8 datovych bitov a 1 stop bit.  Funkcia void UART_transmit_byte(uint8_t data) čaka pokial bufer sa vyprazdni a posiela 8 datovych bitov. Funkcia void UART_send_int16(int16_t value) 2 krat použiva predchadzajucu funkciu na posielani jedneho čisla typu int16. Inicializaciu ADC robi void ADC_init(). Funkcia uint16_t ADC_read() načitava hodnotu z ADC.Inicializujeme Timer1 v void Timer1_init(). Funkcia ISR(TIMER1_COMPA_vect) je rutiniu prerušenia. Ne použil som funkcie uart.c a adc.c zo semestra lebo musel by som ich moc silno zmeniť, takže na jeden krat stači aj realizacia priamo v programe. Ale pri vetšiem počte podobnych programov alebo pre zabezpečenie fungovania na viacerych zariadeniach radšej spraviť zvlašť hlavnu slučku a funkcie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tabs&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;AVR C-code&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt; &lt;br /&gt;
	 // Globálne premenné&lt;br /&gt;
	   volatile uint8_t timer_flag = 0;// Príznak z prerušenia &lt;br /&gt;
	  &lt;br /&gt;
	   // --- Inicializácia UART pre 14400 baud (pri 16 MHz) --- &lt;br /&gt;
	   &lt;br /&gt;
    void UART_init() {&lt;br /&gt;
    uint16_t ubrr = 68; &lt;br /&gt;
    UBRR0H = (uint8_t)(ubrr &amp;gt;&amp;gt; 8);&lt;br /&gt;
    UBRR0L = (uint8_t)ubrr;&lt;br /&gt;
    UCSR0A &amp;amp;= ~(1 &amp;lt;&amp;lt; U2X0); // Dvojnásobná rýchlost off &lt;br /&gt;
    UCSR0B = (1 &amp;lt;&amp;lt; TXEN0); // Povolenie vysielaca&lt;br /&gt;
    UCSR0C = (1 &amp;lt;&amp;lt; UCSZ01) | (1 &amp;lt;&amp;lt; UCSZ00);&lt;br /&gt;
		   } // 8 dátových bitov, 1 stop bit . Odošle jeden znak &lt;br /&gt;
		   &lt;br /&gt;
		   &lt;br /&gt;
		   &lt;br /&gt;
    void UART_transmit_byte(uint8_t data) {&lt;br /&gt;
    while (!(UCSR0A &amp;amp; (1 &amp;lt;&amp;lt; UDRE0))); // caká na vyprázdnenie buffra &lt;br /&gt;
    UDR0 = data;&lt;br /&gt;
		    } &lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
    void UART_send_int16(int16_t value){&lt;br /&gt;
    UART_transmit_byte((uint8_t)(value &amp;amp; 0xFF));&lt;br /&gt;
    UART_transmit_byte((uint8_t)((value&amp;gt;&amp;gt;8) &amp;amp; 0xFF));&lt;br /&gt;
			  }&lt;br /&gt;
			  &lt;br /&gt;
			  &lt;br /&gt;
			   // --- Inicializácia ADC --- &lt;br /&gt;
			  void ADC_init() { // Referencia AVCC (REFS0=1), výber kanála ADC0 (MUX = 0000) &lt;br /&gt;
			  ADMUX = (1 &amp;lt;&amp;lt; REFS0)|(1&amp;lt;&amp;lt;MUX2); // Povolenie ADC (ADEN=1), preddelic 128 (ADPS2..0 = 111) pre frekvenciu 125 kHz&lt;br /&gt;
			   ADCSRA = (1 &amp;lt;&amp;lt; ADEN) | (1 &amp;lt;&amp;lt; ADPS2) | (1 &amp;lt;&amp;lt; ADPS1) | (1 &amp;lt;&amp;lt; ADPS0); } &lt;br /&gt;
			   &lt;br /&gt;
			   // Nacítanie hodnoty z ADC0 &lt;br /&gt;
			   uint16_t ADC_read() {&lt;br /&gt;
                ADCSRA |= (1 &amp;lt;&amp;lt; ADSC); // Spustenie prevodu &lt;br /&gt;
			   while (ADCSRA &amp;amp; (1 &amp;lt;&amp;lt; ADSC)); // cakanie na dokoncenie &lt;br /&gt;
			   return ADC; &lt;br /&gt;
			   } &lt;br /&gt;
			   // --- Inicializácia Timer1 pre 5ms prerušenie --- &lt;br /&gt;
			   void Timer1_init() { &lt;br /&gt;
// Režim CTC (Clear Timer on Compare Match), &lt;br /&gt;
			   TCCR1B |= (1 &amp;lt;&amp;lt; WGM12); &lt;br /&gt;
// Nastavenie preddelica na 64 &lt;br /&gt;
// Frekvencia casovaca = 16 MHz / 64 = 250 kHz &lt;br /&gt;
// Požadovaný cas = 5 ms (0.005 s) &lt;br /&gt;
// Hodnota do OCR1A = (0.005 * 250000) - 1 = 1249 &lt;br /&gt;
			   &lt;br /&gt;
               OCR1A = 1249; &lt;br /&gt;
// Povolenie prerušenia pri zhode (Compare Match A) &lt;br /&gt;
			   TIMSK1 |= (1 &amp;lt;&amp;lt; OCIE1A); &lt;br /&gt;
// Spustenie casovaca s preddelicom 64 (CS11=1, CS10=1) &lt;br /&gt;
			   TCCR1B |= (1 &amp;lt;&amp;lt; CS11) | (1 &amp;lt;&amp;lt; CS10); } &lt;br /&gt;
			   &lt;br /&gt;
			   // Rutina obsluhy prerušenia od Timer1 (vykoná sa každých 5 ms) &lt;br /&gt;
			   ISR(TIMER1_COMPA_vect) {&lt;br /&gt;
                 timer_flag = 1; // Len nastavíme vlajku, výpocet urobíme v main slu?ke &lt;br /&gt;
			   } &lt;br /&gt;
			   int main(void) {&lt;br /&gt;
			   UART_init();&lt;br /&gt;
			   ADC_init();&lt;br /&gt;
			   Timer1_init();&lt;br /&gt;
			   sei(); // Globálne povolenie prerušení &lt;br /&gt;
				   &lt;br /&gt;
				   // Parametre integrátora &lt;br /&gt;
				   const float Ts = 0.005; // 5 ms &lt;br /&gt;
				   const float Ti = 1.0; &lt;br /&gt;
				   float integral = 0.0; &lt;br /&gt;
				   float input =0;&lt;br /&gt;
				  &lt;br /&gt;
				    while (1) {&lt;br /&gt;
					 if (timer_flag) {&lt;br /&gt;
					  timer_flag = 0; // Zhodenie vlajky &lt;br /&gt;
					 					  &lt;br /&gt;
					  // 1. Nacítanie vstupu a posunutie nuly &lt;br /&gt;
					  uint16_t raw_adc = ADC_read();&lt;br /&gt;
					   input = (float)(raw_adc - 512); &lt;br /&gt;
// Softvérové pásmo necitlivosti (Deadband) &lt;br /&gt;
// Ignoruje jemný šum (napr. +- 3 hodnoty z ADC okolo stredu), aby integrátor nedriftoval &lt;br /&gt;
					   if (input &amp;gt; -3.0 &amp;amp;&amp;amp; input &amp;lt; 3.0) {&lt;br /&gt;
					    input = 0.0; &lt;br /&gt;
						} &lt;br /&gt;
						// 2. Výpocet (Eulerova dopredná metóda) &lt;br /&gt;
						integral = integral + (Ts / Ti) * input; &lt;br /&gt;
						// Anti-windup &lt;br /&gt;
						if (integral &amp;gt; 10000.0) integral = 10000.0;&lt;br /&gt;
						 if (integral &amp;lt; -10000.0) integral = -10000.0; &lt;br /&gt;
						 &lt;br /&gt;
						 &lt;br /&gt;
						 int16_t plot_input=(int16_t)input;&lt;br /&gt;
						 int16_t plot_integral=(int16_t)integral;&lt;br /&gt;
						  &lt;br /&gt;
// 4. Odoslanie vo formáte pre Serial Plotter: &amp;quot;Hodnota1,Hodnota2\n&amp;quot; &lt;br /&gt;
						  &lt;br /&gt;
						  &lt;br /&gt;
							UART_send_int16(plot_input);&lt;br /&gt;
							UART_send_int16(plot_integral);&lt;br /&gt;
							UART_transmit_byte(&#039;\r&#039;);&lt;br /&gt;
							UART_transmit_byte(&#039;\n&#039;);&lt;br /&gt;
							 } &lt;br /&gt;
							 } &lt;br /&gt;
					   }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;tab name=&amp;quot;filename.h&amp;quot;&amp;gt;&amp;lt;syntaxhighlight  lang=&amp;quot;c++&amp;quot; style=&amp;quot;background: LightYellow;&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt; &lt;br /&gt;
void UART_init();&lt;br /&gt;
void UART_transmit_byte(uint8_t data);&lt;br /&gt;
void UART_send_int16(int16_t value);&lt;br /&gt;
void ADC_init();&lt;br /&gt;
uint16_t ADC_read();&lt;br /&gt;
void Timer1_init();&lt;br /&gt;
ISR(TIMER1_COMPA_vect);&lt;br /&gt;
int main(void);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&amp;lt;/tab&amp;gt;&lt;br /&gt;
&amp;lt;/tabs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Domchuk_Dmytro_MIPS_projekt.zip|zdrojak Domchuk.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Overovali sme naš program tym že menili sme polohu potenciometra a pozerali ako sa zmeni graf na serial plot.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Potenciometr0.jpg|400px|thumb|center|Poloha potenciometra 0.]]&lt;br /&gt;
[[Súbor:Graf0.jpg|400px|thumb|center|Graf pri polohe potenciometra 0.]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Potenciometr3.7.jpg|400px|thumb|center|Poloha potenciometra 3.7.]]&lt;br /&gt;
[[Súbor:Graf3.7.jpg|400px|thumb|center|Graf pri polohe potenciometra 3.7.]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Potenciometr4,2.jpg|400px|thumb|center|Poloha potenciometra 4.2.]]&lt;br /&gt;
[[Súbor:Graf4.2.jpg|400px|thumb|center|Graf pri polohe potenciometra 4.2.]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Potenciometr5.2.jpg|400px|thumb|center|Poloha potenciometra 5.2.]]&lt;br /&gt;
[[Súbor:Graf5.2.jpg|400px|thumb|center|Graf pri polohe potenciometra 5.2.]]&lt;br /&gt;
&lt;br /&gt;
== Čo by som urobil inak ==&lt;br /&gt;
&lt;br /&gt;
Nabuduce pre riešenie tohto problemu zrušil by som posun nuly pri sčitanií ADC. Takže zmenil by som Baud na dajme tomu 115200 pre rychlejší prenos signalu. Takže nabuduce spravil by som to z viac profesionalnym pristupom a vytvorenim samostatnych funkcí.&lt;br /&gt;
Nepodarilo sa mi odladiť program tak aby signal bol ustalený a ne kmital.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&amp;diff=19519</id>
		<title>MIPS Projekt</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&amp;diff=19519"/>
		<updated>2026-06-19T12:35:46Z</updated>

		<summary type="html">&lt;p&gt;Balogh: /* Projekty MIPS 2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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. &lt;br /&gt;
&lt;br /&gt;
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:&lt;br /&gt;
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.&lt;br /&gt;
* 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&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{cbox|text=&#039;&#039;&#039;Upozornenie:&#039;&#039;&#039; programy vypracujete v avr-gcc, &#039;&#039;&#039;nie&#039;&#039;&#039; v Arduino IDE prostredí.&amp;lt;BR&amp;gt; Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;red&amp;quot; Size=&amp;quot;+1&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Vlastné:&#039;&#039;&#039;&lt;br /&gt;
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnoho inšpirácie na vlastné projekty nájdete napr. tu https://www.engineersgarage.com/?s=arduino&amp;amp;page=1 alebo tu https://circuitdigest.com/microcontroller-projects/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voľné projekty ==&lt;br /&gt;
&lt;br /&gt;
Poznámka: zadania označené (*) sú jednoduchšie a nie sú vhodné pre študentov, ktorí chcú mať známku A alebo B. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;8&amp;quot;&amp;gt;   Zbernica i2c: PCF8582E - 256x8-bit EEPROM i2c&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;10&amp;quot;&amp;gt;  Zbernica SPI: MCP41050 E/P  číslicový potenciometer 50k, 8-bit, SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;11&amp;quot;&amp;gt;  Zbernica SPI: MCP4811 -E/P  číslicový D/A prevodník 10 bit SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;12&amp;quot;&amp;gt;  Zbernica SPI: 25LC010A - EEPROM pamäť 128x8 bit SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;26&amp;quot;&amp;gt;  Jednoduchý multitasking s FreeRTOS https://github.com/johncobb/avr_328p_freertos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;34&amp;quot;&amp;gt; Ak použijeme funkciu printf(...) čas potrebný na k vykonaniu tejto operácie je úmerný prenosovej rýchlosti a počtu prenášaných B-tov. Jeden zo spôsobov skrátenia času potrebného na vykonanie tejto funkcie je použiť prerušovací podsystém. Na meranie času použite buď niektorý T/C, alebo osciloskop. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;36&amp;quot;&amp;gt; Študent musí vypočítať z T systému T oscilátora. Dokážete namerať toľko bodov,  ALF a FLF charakteristiky, aby ste vedeli dokresliť asymptoty?&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;li value=&amp;quot;38&amp;quot;&amp;gt; Niečo z predošlých zadaní v kombinácii Matlab/Simulink a generovaným kódom.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;39&amp;quot;&amp;gt; [[Zbernica i2c: hodiny reálneho času s PCF8583P]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2026 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Bukhtiiarov, Egor: [[Zbernica i2c: EEPROM Terminál]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Buryk, Yaroslav: [[Digitálny potenciometer]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Čavojský, Michal: [[Interaktívna lampička II]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Čulák, Adam: [[Zámok na kód I.]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Dordiai, Dariia: [[Pohyblivý text]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Dudášová, Mia: [[Zámok na kód s IR ovládaním]] - vlastný projekt&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Federmayer, Werner: [[Ultrazvukový radar s HC-SR04]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Fursov, Rostyslav: [[SOS maják]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Grúň, Matúš: [[Interaktívna lampička I]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Hegedúš, Lukáš: [[Zámok na kód II.]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Hreha, Filip: [[Alarm s PIR detektorom pohybu]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Chuiko, Oleh: [[Dekodér morzeovky]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Igaz, Samuel: [[Monitor kapacity batérie]] (*)&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Kesckés, Marek: [[Ovládanie servomotorčekov na manipulátore joystickmi]] - vlastný projekt&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Kilian, Karol: [[UART Metronóm]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Klein, Miroslav: [[Prehrávač melódie s ovládaním]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Koža, Andrej: [[Zbernica i2c: RTC Hodiny]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Milošev, Jakub: [[Zbernica SPI:  D/A prevodník MCP4812]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Mykyta, Oleksandr: [[Generátor harmonického signálu]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Prokop, Matúš: [[Simulátor sústavy 1. rádu]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Rostupytskyi, Kristian: [[Pripojenie viacero tlačidiel cez A/D prevodník‎]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Svystak, Dariia: [[Implementácia funkcie map()]] &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Szabo, Oliver: [[Generátor tónov]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Szabó Bartko, Áron: [[Binárne hodiny]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Vasas, Mihály Bertalan: [[Ultrazvukový radar so senzorom Ping)))]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Vríčan, Dávid: [[Automatické zavlažovanie]] &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Zadorozhnii, Anton: [[Generátor signálov s mikroprocesorom]]&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;  Čornyj, Gordij: [[Úsporné režimy procesora]] - Power down úsporné režimy https://www.engineersgarage.com/reducing-arduino-power-consumption-sleep-modes/&lt;br /&gt;
 &amp;lt;li&amp;gt;  Domchuk, Dmytro: [[Integrátor s mikroprocesorom]]. 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. &lt;br /&gt;
 &amp;lt;li&amp;gt;  Dzivjaková, Broňa: [[UART Kalkulačka]]: Študent pošle cez terminál príklad (napr. 5+3) a mikropočítač vráti výsledok. Operácie aspoň +,-,*,/.&lt;br /&gt;
 &amp;lt;li&amp;gt; (*) Nevzorova, Sofia: [[Vstupná jednotka s palcovým prepínačom TS211]] - https://www.bucek.name/pdf/ts21xxxxx.pdf&lt;br /&gt;
&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- nove pridavaj uz sem, lebo cislovanie --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Archív projektov z predošlých rokov == &lt;br /&gt;
&lt;br /&gt;
* Balogh: &#039;&#039;[[MIPS Template|Vzorová šablóna na projekty.]]&#039;&#039; 2023-6.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2025 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Dominik Andraščík: [[Ovládanie elektrického zámku z cloudu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Andrej Bariš: [[Bežiace svetlo s obvodom 74HC595]]&lt;br /&gt;
 &amp;lt;li&amp;gt;?? Ilona Baihildina: [[Hracia kocka s LED]] (*)&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Oliver Beko: [[Čítačka RFID kariet RC522]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Biacovský: [[Jednoduchá kuchynská váha do 1kg]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Filip Boco: [[Zbernica i2c: hodiny reálneho času s DS1388]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Dávid Bungyi: [[Diaľkové ovládanie zosilňovača]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Lukáš Čapla: [[Snímanie polohy optickým enkodérom]] IRC a jeho vyhodnotenie pre snímanie polohy&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Samuel Gálik: [[Ovládanie rýchlosti jednosmerného motora cez bluetooth]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Kamil Hanišák: &#039;&#039;[[Zbernica i2c: PCF8574]] - IO expandér.&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Ľuboš Hreňo: [[Ovládanie  robotického ramienka joystickom II.]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Hubocký: [[Kombinovaný snímač teploty a vlhkosti DHT22]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Dávid Jamarik: [[Hra Máš pevnú ruku?]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Miloslav Kráľ:  [[Tester Arduina]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Kráľ: [[Automatické nastavenie prenosovej rýchlosti]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Juraj Krasnovský: [[Ovládanie  robotického ramienka joystickom]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Lenarth: [[Ovládanie vyklápacích svetiel]]. &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Németh: [[Ovládanie rýchlosti jednosmerného motora z BT aplikácie]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Tymur Omelianenko: [[Generátor trojuholníkového signálu s R-2R prevodníkom]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Filip Pinďar: [[Ovládanie elektrického zámku z mobilnej aplikácie]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Kamil Raplík: [[Infračervený vypínač s ATtiny45]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ René Roger: [[Metódy zvýšenie presnosti A/D prevodu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Aleh Sobaleu: [[Kombinovaný snímač teploty a vlhkosti DHT11]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Marek Šoltés: [[Diaľkové ovládanie spotrebiča pomocou infračerveného signálu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Zakuťanský: [[Generovanie kódu z prostredia Matlaba/Simulink]] &lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2024 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Bobocký, Daniel Samuel: &#039;&#039;[[Klávesnica s radičom MH1KK1 -]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Bugár, Martin:         &#039;&#039;[[Reglátor chladenia so snímačom teploty]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Buzko, Kateryna:       &#039;&#039;[[Jednoduchý prijímač diaľkového IR ovládania]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Csabi, Jozef:          &#039;&#039;[[Meranie vzdialenosti ultrazvukovým snímačom HC-SR04]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Fedor, Peter:          &#039;&#039;[[Riadenie polohy klapky klimatizácie]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Guľak, Peter:          &#039;&#039;[[Piškvorky (Tic-Tac-Toe)]] na 8x8 maticovom displeji&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Hano, Adam:            &#039;&#039;[[Hodinový modul DS1302]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Illés, Dominik:        &#039;&#039;[[Ovládanie RGB LED pásika]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kramla, Oliver:        &#039;&#039;[[Svetelný efekt s obvodom 74595]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kudláč, Lukáš:         &#039;&#039;[[Riadenie križovatky]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kuňáková, Andrea:      &#039;&#039;[[Autíčko na sledovanie čiary]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ledecký, Matej:        &#039;&#039;[[Ovladanie krokoveho motora joystickom + uvod displej]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Macák, Jakub:          &#039;&#039;[[Tester obvodu 7400]] (4xNAND)&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Majba, David:          &#039;&#039;[[Vysielač morzeovky]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Nagy, Ladislav:        &#039;&#039;[[Maticový displej 8x8 s driverom MAX7219]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Nagy, Gabriel:         &#039;&#039;[[Tester obvodu 7493]] (4-bitové počítadlo)&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ondrejková, Lea Lenka: &#039;&#039;[[14-segmentový LED displej]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Pauliny, Kristián:     &#039;&#039;[[Akordy s procesorom AVR]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Reismüller, Tomáš:     &#039;&#039;[[Inteligentný šatník]]&#039;&#039; (model)&lt;br /&gt;
 &amp;lt;li&amp;gt; Sušina, Marián:        &#039;&#039;[[Senzor teploty a vlhkosti SHT31]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Szovics, Peter:        &#039;&#039;[[Elektronická škrtiaca klapka]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Tarcal, Ondrej:        &#039;&#039;[[Simon&#039;s Game]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ulej, Ján:             &#039;&#039;[[Kuchynské minutky]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Viest, Filip:          &#039;&#039;[[Klávesnica 2x3]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Vretenička, Šimon:     &#039;&#039;[[Ovládanie RGB LED cez Processing]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Žula, Daniel:          &#039;&#039;[[7-segmentový displej na futbal]] &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li&amp;gt; Brosz, Peter  a Diossy, Daniel: &#039;&#039;[[Automatické autíčko]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Matsibora, Viačeslav a Fietisov, Dmytro: &#039;&#039;[[Dvojosová kolíska na kameru ovládaná joystickom]]&#039;&#039; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;65&amp;quot;&amp;gt;&amp;lt;S&amp;gt; Tomáš Štibrányi: Klávesnica 4x4 s radičom MH1KK1&#039;&#039; &amp;lt;/S&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;61&amp;quot;&amp;gt;&amp;lt;S&amp;gt; Jakub Briežnik: Jednoduché menu s rotačným enkodérom&#039;&#039; a s výberom možností &amp;lt;/S&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2023 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Tomáš Bečvarov:   &#039;&#039;[[Senzor farieb TCS230]].&#039;&#039;  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Martin Cíbik:     &#039;&#039;[[Riadenie krokového motorčeka I.]]&#039;&#039;  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Viktor Fos*:      &#039;&#039;[[Rotačný enkodér]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Kristián Greif:   &#039;&#039;[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.&#039;&#039; Jednoduchý driver a knižnica pre tento obvod.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Ivan Hílek:       &#039;&#039;[[Postrehová hra]]&#039;&#039;  &lt;br /&gt;
 &amp;lt;li&amp;gt;Ivan Jagoš:       &#039;&#039;[[Dekodér infračerveného ovládača]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Mykyta Sabadash:  &#039;&#039;[[Hlukomer]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;lI&amp;gt;Lukáš Savčak:     &#039;&#039;[[Snímač teploty TMP36]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Juraj Štefánik:   &#039;&#039;[[Segmentový display TM1637]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Samuel Tomáš:     &#039;&#039;[[Miniatúrny analógový joystick]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Hortenzia Wollentová: &#039;&#039;[[Ovládač maticovej klávesnice]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Jozef Záhora:      &#039;&#039;[[Jednoduchá terminálová kalkulačka]]&#039;&#039;. 2023&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2022 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;1&amp;quot;&amp;gt; Martin Drgala: &amp;lt;!-- Lipták, Kristián: --&amp;gt; Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej&lt;br /&gt;
 &amp;lt;li value=&amp;quot;2&amp;quot;&amp;gt; Veronika Remeňová: &amp;lt;!-- Turčan, Maroš: --&amp;gt;    Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej&lt;br /&gt;
 &amp;lt;li value=&amp;quot;3&amp;quot;&amp;gt; František Kapsz:  &amp;lt;!-- Buday, Bálint: --&amp;gt;    Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;5&amp;quot;&amp;gt; Roderik Bako: &amp;lt;!-- Belokostolský, Alex Kristóf --&amp;gt; [https://www.mathsisfun.com/games/simon-says.html Simon&#039;s Game] 4x LED, 1x tlačítko, LCD displej na skore&lt;br /&gt;
 &amp;lt;li value=&amp;quot;6&amp;quot;&amp;gt; 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)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;7&amp;quot;&amp;gt; Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže &amp;quot;prestrihnúť&amp;quot; (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo &amp;quot;vybuchne&amp;quot; bombu&lt;br /&gt;
 &amp;lt;li value=&amp;quot;7&amp;quot;&amp;gt; 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 &amp;quot;prestrihnúť&amp;quot; (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo &amp;quot;vybuchne&amp;quot; bombu&lt;br /&gt;
 &amp;lt;li value=&amp;quot;14&amp;quot;&amp;gt; Alexander Lazorík:  &amp;lt;!-- Goljer, Ivan: --&amp;gt; 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ť&lt;br /&gt;
 &amp;lt;li value=&amp;quot;15&amp;quot;&amp;gt; Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).&lt;br /&gt;
 &amp;lt;li value=&amp;quot;17&amp;quot;&amp;gt; Marek Porubský: &amp;lt;!-- Berta, Kristof: --&amp;gt; &#039;&#039;Meranie teploty pomocou interného snímača procesora.&#039;&#039; (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])&lt;br /&gt;
 &amp;lt;li value=&amp;quot;18&amp;quot;&amp;gt; Andrii Sikomas: &amp;lt;!-- Bilčík, Martin: --&amp;gt; &#039;&#039;Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).&#039;&#039;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;19&amp;quot;&amp;gt; Adam Sližka: &amp;lt;!-- Oboril, Oliver:--&amp;gt; LED ako senzor intenzity svetla&lt;br /&gt;
 &amp;lt;li value=&amp;quot;20&amp;quot;&amp;gt; Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.&lt;br /&gt;
 &amp;lt;li value=&amp;quot;21&amp;quot;&amp;gt; Jakub Červenka: &amp;lt;!-- Skachová, Zuzana:--&amp;gt; Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;22&amp;quot;&amp;gt; Sabina Ovčiariková: &amp;lt;!-- Görözdös, Gergely: --&amp;gt; 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.&lt;br /&gt;
 &amp;lt;li value=&amp;quot;23&amp;quot;&amp;gt; Oleksandr Shyp: &amp;lt;!-- Hajda, Jaroslav: --&amp;gt; &#039;&#039;Posúvanie bodky na 8x8 led displayi pomocou joysticku.&#039;&#039;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;29&amp;quot;&amp;gt; Martin Vdovják: &amp;lt;!-- Mosej, Samuel: --&amp;gt;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)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;36&amp;quot;&amp;gt; Attila Hriňa: &amp;lt;!--  Papcun, Miroslav: --&amp;gt; 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á).&lt;br /&gt;
 &amp;lt;li value=&amp;quot;37&amp;quot;&amp;gt; Korytova, Taisiia: Svetelná križovatka s nočným režimom. &amp;lt;!-- Fabian, Maroš --&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;38&amp;quot;&amp;gt; Ákos Keszegh: Reaction Timer&lt;br /&gt;
 &amp;lt;li value=&amp;quot;39&amp;quot;&amp;gt; Marek Trúchly: Atmel2586 s MEMS akcelerometerom&lt;br /&gt;
 &amp;lt;li value=&amp;quot;40&amp;quot;&amp;gt; Oskar Bálint: Automatické otváranie dverí s PIR senzorom&lt;br /&gt;
 &amp;lt;li value=&amp;quot;41&amp;quot;&amp;gt; Adam Kašička:  Model a signalizácia sekvenčnej prevodovky&lt;br /&gt;
 &amp;lt;li value=&amp;quot;42&amp;quot;&amp;gt; Ing. Ján Šefčík: Riadenie modelu Ball&amp;amp;Beam&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zadania semestrálnych projektov v minulosti ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. &lt;br /&gt;
&lt;br /&gt;
Zadanie pozostáva z dvoch častí:&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. &lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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úť.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2014&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Lechvár, Slaminka: &#039;&#039;[[Meranie pulzovej frekvencie.]]&#039;&#039; 2014.&lt;br /&gt;
* Jankovič, Lukáč: &#039;&#039;[[Zbernica i2c: hodiny RTC.]]&#039;&#039; 2014.&lt;br /&gt;
* Bača, Galovič: &#039;&#039;[[Bezdrôtová komunikácia v pásme 433 MHz.]]&#039;&#039; 2014.&lt;br /&gt;
* Katona, Nehánszki: &#039;&#039;[[Hodiny RTC s kalendárom pomocou PCF8583]]&#039;&#039;. 2014.&lt;br /&gt;
* Benedek, Cintula, Gahér: &#039;&#039;[[Trojosí gyroskopický modul L3G4200D]]&#039;&#039;. 2014.&lt;br /&gt;
* Šandal, Vincze: &#039;&#039;[[Trojosí akcelerometer MMA7455]]&#039;&#039;. 2014.&lt;br /&gt;
* Kocian, Švančara: &#039;&#039;[[RFID čítačka]]&#039;&#039;. 2014&lt;br /&gt;
* Martinkovič, Valach: &#039;&#039;[[RFID čítačka II]]&#039;&#039;. 2014&lt;br /&gt;
* Jakubička, Vyletel: &#039;&#039;[[Inkrementálny snímač]]&#039;&#039;. 2014&lt;br /&gt;
* Bohuš, Vargic, Gašparová: &#039;&#039;[[MEMS mikrofón ADMP401]]&#039;&#039;. 2014&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2013&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Godál, R. a Šimončič, M.: &#039;&#039;[[Meranie reakčnej doby]].&#039;&#039; 2013.&lt;br /&gt;
* Leško, D. a Biath, V.: &#039;&#039;[[MiniMEXLE Hodiny na orientačný beh]].&#039;&#039; 2013.&lt;br /&gt;
* Paulen, J. a Vojvoda, R.: &#039;&#039;[[Meranie krátkych intervalov]].&#039;&#039; 2013.&lt;br /&gt;
* Jurák, M. a Vlahi, L.: &#039;&#039;[[Meranie časového intervalu]].&#039;&#039; 2013.&lt;br /&gt;
* Rybárik, M. a Lukáč, M.: &#039;&#039;[[Odpočítavacie hodiny na riadenie diskusie]].&#039;&#039; 2013.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2012&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Cebák, Darvaši:  &#039;&#039;[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]&#039;&#039; 2012.&lt;br /&gt;
* Pecho, Lacko:    &#039;&#039;[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]&#039;&#039; 2012.&lt;br /&gt;
* Rekšák, Mrva:    &#039;&#039;[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]&#039;&#039; 2012.&lt;br /&gt;
* Boráros, Gál:    &#039;&#039;[[Zbernica i2c: FM rádio]].&#039;&#039; 2012.&lt;br /&gt;
* Berčák, Harmata: &#039;&#039;[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]&#039;&#039; 2012.&lt;br /&gt;
* Géczy, Kamenský: &#039;&#039;[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]&#039;&#039; 2012.&lt;br /&gt;
&lt;br /&gt;
* Szolik, Šnyr:    &#039;&#039;[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]&#039;&#039; 2012.&lt;br /&gt;
* Gálik, Gogola:   &#039;&#039;[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]&#039;&#039; 2012.&lt;br /&gt;
* Virág, Topoli:   &#039;&#039;[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]&#039;&#039; 2012.&lt;br /&gt;
* Statečný:        &#039;&#039;[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]&#039;&#039; 2012.&lt;br /&gt;
* Vincze, Rozsár:  &#039;&#039;[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]&#039;&#039; 2012.&lt;br /&gt;
* Baláž, Kupčiha:  &#039;&#039;[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]&#039;&#039; 2012.&lt;br /&gt;
* Mazúch, Lovaš, Oravec: &#039;&#039;[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]&#039;&#039; 2012.&lt;br /&gt;
* Špitálová: [[Parkovací senzor]] 2012.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&amp;diff=19499</id>
		<title>MIPS Projekt</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=MIPS_Projekt&amp;diff=19499"/>
		<updated>2026-06-09T12:03:12Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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. &lt;br /&gt;
&lt;br /&gt;
Do termínu skúšky treba riešenie predviesť a potom odovzať dokumentáciu sem do wiki:&lt;br /&gt;
* Stručný opis riešenia, akýsi návod na použitie, čo ste vlastne spravili a ako to funguje.&lt;br /&gt;
* 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&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{cbox|text=&#039;&#039;&#039;Upozornenie:&#039;&#039;&#039; programy vypracujete v avr-gcc, &#039;&#039;&#039;nie&#039;&#039;&#039; v Arduino IDE prostredí.&amp;lt;BR&amp;gt; Nie je dovolené používať žiadne cudzie knižnice s výnimkou štandartných a tých, ktoré sme používali na cvičeniach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FONT Color=&amp;quot;red&amp;quot; Size=&amp;quot;+1&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Vlastné:&#039;&#039;&#039;&lt;br /&gt;
* Ak máte vlastný nápad, napríklad si chcete k svojej Arduino doske niečo pripojiť, naprogramovať, ozvite sa, dohoda je možná.&lt;br /&gt;
&amp;lt;/FONT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mnoho inšpirácie na vlastné projekty nájdete napr. tu https://www.engineersgarage.com/?s=arduino&amp;amp;page=1 alebo tu https://circuitdigest.com/microcontroller-projects/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voľné projekty ==&lt;br /&gt;
&lt;br /&gt;
Poznámka: zadania označené (*) sú jednoduchšie a nie sú vhodné pre študentov, ktorí chcú mať známku A alebo B. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;8&amp;quot;&amp;gt;   Zbernica i2c: PCF8582E - 256x8-bit EEPROM i2c&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;10&amp;quot;&amp;gt;  Zbernica SPI: MCP41050 E/P  číslicový potenciometer 50k, 8-bit, SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;11&amp;quot;&amp;gt;  Zbernica SPI: MCP4811 -E/P  číslicový D/A prevodník 10 bit SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;12&amp;quot;&amp;gt;  Zbernica SPI: 25LC010A - EEPROM pamäť 128x8 bit SPI&lt;br /&gt;
 &amp;lt;li value=&amp;quot;26&amp;quot;&amp;gt;  Jednoduchý multitasking s FreeRTOS https://github.com/johncobb/avr_328p_freertos&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;34&amp;quot;&amp;gt; Ak použijeme funkciu printf(...) čas potrebný na k vykonaniu tejto operácie je úmerný prenosovej rýchlosti a počtu prenášaných B-tov. Jeden zo spôsobov skrátenia času potrebného na vykonanie tejto funkcie je použiť prerušovací podsystém. Na meranie času použite buď niektorý T/C, alebo osciloskop. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;36&amp;quot;&amp;gt; Študent musí vypočítať z T systému T oscilátora. Dokážete namerať toľko bodov,  ALF a FLF charakteristiky, aby ste vedeli dokresliť asymptoty?&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;li value=&amp;quot;38&amp;quot;&amp;gt; Niečo z predošlých zadaní v kombinácii Matlab/Simulink a generovaným kódom.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li value=&amp;quot;39&amp;quot;&amp;gt; [[Zbernica i2c: hodiny reálneho času s PCF8583P]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2026 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Bukhtiiarov, Egor: [[Zbernica i2c: EEPROM Terminál]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Buryk, Yaroslav: [[Digitálny potenciometer]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Čavojský, Michal: [[Interaktívna lampička II]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Čulák, Adam: [[Zámok na kód I.]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Dordiai, Dariia: [[Pohyblivý text]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Dudášová, Mia: [[Zámok na kód s IR ovládaním]] - vlastný projekt&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Federmayer, Werner: [[Ultrazvukový radar s HC-SR04]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Fursov, Rostyslav: [[SOS maják]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Grúň, Matúš: [[Interaktívna lampička I]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Hegedúš, Lukáš: [[Zámok na kód II.]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Hreha, Filip: [[Alarm s PIR detektorom pohybu]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Chuiko, Oleh: [[Dekodér morzeovky]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Igaz, Samuel: [[Monitor kapacity batérie]] (*)&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Kesckés, Marek: [[Ovládanie servomotorčekov na manipulátore joystickmi]] - vlastný projekt&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Kilian, Karol: [[UART Metronóm]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Klein, Miroslav: [[Prehrávač melódie s ovládaním]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Koža, Andrej: [[Zbernica i2c: RTC Hodiny]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Milošev, Jakub: [[Zbernica SPI:  D/A prevodník MCP4812]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Mykyta, Oleksandr: [[Generátor harmonického signálu]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Prokop, Matúš: [[Simulátor sústavy 1. rádu]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Rostupytskyi, Kristian: [[Pripojenie viacero tlačidiel cez A/D prevodník‎]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Svystak, Dariia: [[Implementácia funkcie map()]] &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Szabo, Oliver: [[Generátor tónov]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Szabó Bartko, Áron: [[Binárne hodiny]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Vasas, Mihály Bertalan: [[Ultrazvukový radar so senzorom Ping)))]]&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Vríčan, Dávid: [[Automatické zavlažovanie]] (*)&lt;br /&gt;
 &amp;lt;li&amp;gt; ✔️ Zadorozhnii, Anton: [[Generátor signálov s mikroprocesorom]]&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;  Čornyj, Gordij: [[Úsporné režimy procesora]] - Power down úsporné režimy https://www.engineersgarage.com/reducing-arduino-power-consumption-sleep-modes/&lt;br /&gt;
 &amp;lt;li&amp;gt;  Domchuk, Dmytro: [[Integrátor s mikroprocesorom]]. 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. &lt;br /&gt;
 &amp;lt;li&amp;gt;  Dzivjaková, Broňa: [[UART Kalkulačka]]: Študent pošle cez terminál príklad (napr. 5+3) a mikropočítač vráti výsledok. Operácie aspoň +,-,*,/.&lt;br /&gt;
 &amp;lt;li&amp;gt; (*) Nevzorova, Sofia: [[Vstupná jednotka s palcovým prepínačom TS211]] - https://www.bucek.name/pdf/ts21xxxxx.pdf&lt;br /&gt;
&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- nove pridavaj uz sem, lebo cislovanie --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Archív projektov z predošlých rokov == &lt;br /&gt;
&lt;br /&gt;
* Balogh: &#039;&#039;[[MIPS Template|Vzorová šablóna na projekty.]]&#039;&#039; 2023-6.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2025 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Dominik Andraščík: [[Ovládanie elektrického zámku z cloudu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Andrej Bariš: [[Bežiace svetlo s obvodom 74HC595]]&lt;br /&gt;
 &amp;lt;li&amp;gt;?? Ilona Baihildina: [[Hracia kocka s LED]] (*)&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Oliver Beko: [[Čítačka RFID kariet RC522]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Biacovský: [[Jednoduchá kuchynská váha do 1kg]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Filip Boco: [[Zbernica i2c: hodiny reálneho času s DS1388]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Dávid Bungyi: [[Diaľkové ovládanie zosilňovača]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Lukáš Čapla: [[Snímanie polohy optickým enkodérom]] IRC a jeho vyhodnotenie pre snímanie polohy&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Samuel Gálik: [[Ovládanie rýchlosti jednosmerného motora cez bluetooth]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Kamil Hanišák: &#039;&#039;[[Zbernica i2c: PCF8574]] - IO expandér.&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Ľuboš Hreňo: [[Ovládanie  robotického ramienka joystickom II.]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Hubocký: [[Kombinovaný snímač teploty a vlhkosti DHT22]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Dávid Jamarik: [[Hra Máš pevnú ruku?]] (*) &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Miloslav Kráľ:  [[Tester Arduina]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Kráľ: [[Automatické nastavenie prenosovej rýchlosti]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Juraj Krasnovský: [[Ovládanie  robotického ramienka joystickom]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Martin Lenarth: [[Ovládanie vyklápacích svetiel]]. &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Németh: [[Ovládanie rýchlosti jednosmerného motora z BT aplikácie]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Tymur Omelianenko: [[Generátor trojuholníkového signálu s R-2R prevodníkom]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Filip Pinďar: [[Ovládanie elektrického zámku z mobilnej aplikácie]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Kamil Raplík: [[Infračervený vypínač s ATtiny45]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ René Roger: [[Metódy zvýšenie presnosti A/D prevodu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Aleh Sobaleu: [[Kombinovaný snímač teploty a vlhkosti DHT11]] &lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Marek Šoltés: [[Diaľkové ovládanie spotrebiča pomocou infračerveného signálu]]&lt;br /&gt;
 &amp;lt;li&amp;gt;✔️ Matúš Zakuťanský: [[Generovanie kódu z prostredia Matlaba/Simulink]] &lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2024 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Bobocký, Daniel Samuel: &#039;&#039;[[Klávesnica s radičom MH1KK1 -]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Bugár, Martin:         &#039;&#039;[[Reglátor chladenia so snímačom teploty]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Buzko, Kateryna:       &#039;&#039;[[Jednoduchý prijímač diaľkového IR ovládania]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Csabi, Jozef:          &#039;&#039;[[Meranie vzdialenosti ultrazvukovým snímačom HC-SR04]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Fedor, Peter:          &#039;&#039;[[Riadenie polohy klapky klimatizácie]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Guľak, Peter:          &#039;&#039;[[Piškvorky (Tic-Tac-Toe)]] na 8x8 maticovom displeji&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Hano, Adam:            &#039;&#039;[[Hodinový modul DS1302]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Illés, Dominik:        &#039;&#039;[[Ovládanie RGB LED pásika]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kramla, Oliver:        &#039;&#039;[[Svetelný efekt s obvodom 74595]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kudláč, Lukáš:         &#039;&#039;[[Riadenie križovatky]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Kuňáková, Andrea:      &#039;&#039;[[Autíčko na sledovanie čiary]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ledecký, Matej:        &#039;&#039;[[Ovladanie krokoveho motora joystickom + uvod displej]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Macák, Jakub:          &#039;&#039;[[Tester obvodu 7400]] (4xNAND)&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Majba, David:          &#039;&#039;[[Vysielač morzeovky]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Nagy, Ladislav:        &#039;&#039;[[Maticový displej 8x8 s driverom MAX7219]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Nagy, Gabriel:         &#039;&#039;[[Tester obvodu 7493]] (4-bitové počítadlo)&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ondrejková, Lea Lenka: &#039;&#039;[[14-segmentový LED displej]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Pauliny, Kristián:     &#039;&#039;[[Akordy s procesorom AVR]]&#039;&#039; &lt;br /&gt;
 &amp;lt;li&amp;gt; Reismüller, Tomáš:     &#039;&#039;[[Inteligentný šatník]]&#039;&#039; (model)&lt;br /&gt;
 &amp;lt;li&amp;gt; Sušina, Marián:        &#039;&#039;[[Senzor teploty a vlhkosti SHT31]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Szovics, Peter:        &#039;&#039;[[Elektronická škrtiaca klapka]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Tarcal, Ondrej:        &#039;&#039;[[Simon&#039;s Game]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Ulej, Ján:             &#039;&#039;[[Kuchynské minutky]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Viest, Filip:          &#039;&#039;[[Klávesnica 2x3]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Vretenička, Šimon:     &#039;&#039;[[Ovládanie RGB LED cez Processing]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Žula, Daniel:          &#039;&#039;[[7-segmentový displej na futbal]] &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;li&amp;gt; Brosz, Peter  a Diossy, Daniel: &#039;&#039;[[Automatické autíčko]]&#039;&#039;&lt;br /&gt;
 &amp;lt;li&amp;gt; Matsibora, Viačeslav a Fietisov, Dmytro: &#039;&#039;[[Dvojosová kolíska na kameru ovládaná joystickom]]&#039;&#039; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;65&amp;quot;&amp;gt;&amp;lt;S&amp;gt; Tomáš Štibrányi: Klávesnica 4x4 s radičom MH1KK1&#039;&#039; &amp;lt;/S&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;61&amp;quot;&amp;gt;&amp;lt;S&amp;gt; Jakub Briežnik: Jednoduché menu s rotačným enkodérom&#039;&#039; a s výberom možností &amp;lt;/S&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2023 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Tomáš Bečvarov:   &#039;&#039;[[Senzor farieb TCS230]].&#039;&#039;  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Martin Cíbik:     &#039;&#039;[[Riadenie krokového motorčeka I.]]&#039;&#039;  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Viktor Fos*:      &#039;&#039;[[Rotačný enkodér]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Kristián Greif:   &#039;&#039;[[Zbernica i2c: MCP4725]] - DAC prevodník s EEPROM.&#039;&#039; Jednoduchý driver a knižnica pre tento obvod.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Ivan Hílek:       &#039;&#039;[[Postrehová hra]]&#039;&#039;  &lt;br /&gt;
 &amp;lt;li&amp;gt;Ivan Jagoš:       &#039;&#039;[[Dekodér infračerveného ovládača]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Mykyta Sabadash:  &#039;&#039;[[Hlukomer]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;lI&amp;gt;Lukáš Savčak:     &#039;&#039;[[Snímač teploty TMP36]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Juraj Štefánik:   &#039;&#039;[[Segmentový display TM1637]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Samuel Tomáš:     &#039;&#039;[[Miniatúrny analógový joystick]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Hortenzia Wollentová: &#039;&#039;[[Ovládač maticovej klávesnice]]&#039;&#039;.  2023&lt;br /&gt;
 &amp;lt;li&amp;gt;Jozef Záhora:      &#039;&#039;[[Jednoduchá terminálová kalkulačka]]&#039;&#039;. 2023&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Projekty MIPS 2022 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;1&amp;quot;&amp;gt; Martin Drgala: &amp;lt;!-- Lipták, Kristián: --&amp;gt; Stopky - spustenie, aspoň jeden medzičas, nulovanie. 3x tlačítko + LCD displej&lt;br /&gt;
 &amp;lt;li value=&amp;quot;2&amp;quot;&amp;gt; Veronika Remeňová: &amp;lt;!-- Turčan, Maroš: --&amp;gt;    Kuchynské minútky - nastavenie, spustenie, alarm. Tlačítko, potenciometer (nastavenie času) + LCD displej&lt;br /&gt;
 &amp;lt;li value=&amp;quot;3&amp;quot;&amp;gt; František Kapsz:  &amp;lt;!-- Buday, Bálint: --&amp;gt;    Vizualizácia polohy potenciometra na displeji - vyfarbovanie polí na displeji (ako ovládač hlasitosti)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;5&amp;quot;&amp;gt; Roderik Bako: &amp;lt;!-- Belokostolský, Alex Kristóf --&amp;gt; [https://www.mathsisfun.com/games/simon-says.html Simon&#039;s Game] 4x LED, 1x tlačítko, LCD displej na skore&lt;br /&gt;
 &amp;lt;li value=&amp;quot;6&amp;quot;&amp;gt; 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)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;7&amp;quot;&amp;gt; Maté Tóth: Simulátor hollywood pyrotechnika - displej odrátava čas a študent má na výber dva káble ktoré môže &amp;quot;prestrihnúť&amp;quot; (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo &amp;quot;vybuchne&amp;quot; bombu&lt;br /&gt;
 &amp;lt;li value=&amp;quot;7&amp;quot;&amp;gt; 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 &amp;quot;prestrihnúť&amp;quot; (odpojiť), náhodne sa zvolí jeden ktorý preruší časovať a jeden čo &amp;quot;vybuchne&amp;quot; bombu&lt;br /&gt;
 &amp;lt;li value=&amp;quot;14&amp;quot;&amp;gt; Alexander Lazorík:  &amp;lt;!-- Goljer, Ivan: --&amp;gt; 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ť&lt;br /&gt;
 &amp;lt;li value=&amp;quot;15&amp;quot;&amp;gt; Pavel Bucha: Ovládanie RGB LED cez Processing pomocou troch posuvníkov ([[Meranie odporov|príklad na posuvník je tu]]).&lt;br /&gt;
 &amp;lt;li value=&amp;quot;17&amp;quot;&amp;gt; Marek Porubský: &amp;lt;!-- Berta, Kristof: --&amp;gt; &#039;&#039;Meranie teploty pomocou interného snímača procesora.&#039;&#039; (podľa [http://ww1.microchip.com/downloads/en/AppNotes/Atmel-8108-Calibration-of-the-AVRs-Internal-Temperature-Reference_ApplicationNote_AVR122.pdf AVR AppNote 122])&lt;br /&gt;
 &amp;lt;li value=&amp;quot;18&amp;quot;&amp;gt; Andrii Sikomas: &amp;lt;!-- Bilčík, Martin: --&amp;gt; &#039;&#039;Ultrazvukový senzor HC-SR04 a meranie vzdialenosti (parkovací senzor).&#039;&#039;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;19&amp;quot;&amp;gt; Adam Sližka: &amp;lt;!-- Oboril, Oliver:--&amp;gt; LED ako senzor intenzity svetla&lt;br /&gt;
 &amp;lt;li value=&amp;quot;20&amp;quot;&amp;gt; Tomáš Truben: Servomotorček ako indikátor nejakej inej veličiny - ručičku a stupnicu vyrobíte sami.&lt;br /&gt;
 &amp;lt;li value=&amp;quot;21&amp;quot;&amp;gt; Jakub Červenka: &amp;lt;!-- Skachová, Zuzana:--&amp;gt; Semafor s akustickou signalizáciou pre nevidiacich a slabozrakých (frekvencie vid: https://sk.wikipedia.org/wiki/Akustick%C3%BD_maj%C3%A1k)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;22&amp;quot;&amp;gt; Sabina Ovčiariková: &amp;lt;!-- Görözdös, Gergely: --&amp;gt; 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.&lt;br /&gt;
 &amp;lt;li value=&amp;quot;23&amp;quot;&amp;gt; Oleksandr Shyp: &amp;lt;!-- Hajda, Jaroslav: --&amp;gt; &#039;&#039;Posúvanie bodky na 8x8 led displayi pomocou joysticku.&#039;&#039;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;29&amp;quot;&amp;gt; Martin Vdovják: &amp;lt;!-- Mosej, Samuel: --&amp;gt;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)&lt;br /&gt;
 &amp;lt;li value=&amp;quot;36&amp;quot;&amp;gt; Attila Hriňa: &amp;lt;!--  Papcun, Miroslav: --&amp;gt; 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á).&lt;br /&gt;
 &amp;lt;li value=&amp;quot;37&amp;quot;&amp;gt; Korytova, Taisiia: Svetelná križovatka s nočným režimom. &amp;lt;!-- Fabian, Maroš --&amp;gt;&lt;br /&gt;
 &amp;lt;li value=&amp;quot;38&amp;quot;&amp;gt; Ákos Keszegh: Reaction Timer&lt;br /&gt;
 &amp;lt;li value=&amp;quot;39&amp;quot;&amp;gt; Marek Trúchly: Atmel2586 s MEMS akcelerometerom&lt;br /&gt;
 &amp;lt;li value=&amp;quot;40&amp;quot;&amp;gt; Oskar Bálint: Automatické otváranie dverí s PIR senzorom&lt;br /&gt;
 &amp;lt;li value=&amp;quot;41&amp;quot;&amp;gt; Adam Kašička:  Model a signalizácia sekvenčnej prevodovky&lt;br /&gt;
 &amp;lt;li value=&amp;quot;42&amp;quot;&amp;gt; Ing. Ján Šefčík: Riadenie modelu Ball&amp;amp;Beam&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zadania semestrálnych projektov v minulosti ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Toto bolo v minulosti, ale na dištančnú formu je to nevhodné. V roku 2021 nebudú pracovať vo dvojiciach, ale individuálne. &lt;br /&gt;
&lt;br /&gt;
Zadanie pozostáva z dvoch častí:&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
Dokumentáciu budete písať do tejto wiki-stránky, prihlasovacie meno a heslo sa dozviete na cvičení. &lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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úť.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2014&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Lechvár, Slaminka: &#039;&#039;[[Meranie pulzovej frekvencie.]]&#039;&#039; 2014.&lt;br /&gt;
* Jankovič, Lukáč: &#039;&#039;[[Zbernica i2c: hodiny RTC.]]&#039;&#039; 2014.&lt;br /&gt;
* Bača, Galovič: &#039;&#039;[[Bezdrôtová komunikácia v pásme 433 MHz.]]&#039;&#039; 2014.&lt;br /&gt;
* Katona, Nehánszki: &#039;&#039;[[Hodiny RTC s kalendárom pomocou PCF8583]]&#039;&#039;. 2014.&lt;br /&gt;
* Benedek, Cintula, Gahér: &#039;&#039;[[Trojosí gyroskopický modul L3G4200D]]&#039;&#039;. 2014.&lt;br /&gt;
* Šandal, Vincze: &#039;&#039;[[Trojosí akcelerometer MMA7455]]&#039;&#039;. 2014.&lt;br /&gt;
* Kocian, Švančara: &#039;&#039;[[RFID čítačka]]&#039;&#039;. 2014&lt;br /&gt;
* Martinkovič, Valach: &#039;&#039;[[RFID čítačka II]]&#039;&#039;. 2014&lt;br /&gt;
* Jakubička, Vyletel: &#039;&#039;[[Inkrementálny snímač]]&#039;&#039;. 2014&lt;br /&gt;
* Bohuš, Vargic, Gašparová: &#039;&#039;[[MEMS mikrofón ADMP401]]&#039;&#039;. 2014&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2013&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Godál, R. a Šimončič, M.: &#039;&#039;[[Meranie reakčnej doby]].&#039;&#039; 2013.&lt;br /&gt;
* Leško, D. a Biath, V.: &#039;&#039;[[MiniMEXLE Hodiny na orientačný beh]].&#039;&#039; 2013.&lt;br /&gt;
* Paulen, J. a Vojvoda, R.: &#039;&#039;[[Meranie krátkych intervalov]].&#039;&#039; 2013.&lt;br /&gt;
* Jurák, M. a Vlahi, L.: &#039;&#039;[[Meranie časového intervalu]].&#039;&#039; 2013.&lt;br /&gt;
* Rybárik, M. a Lukáč, M.: &#039;&#039;[[Odpočítavacie hodiny na riadenie diskusie]].&#039;&#039; 2013.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekty 2012&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Cebák, Darvaši:  &#039;&#039;[[Zbernica i2c: SAA1064|Zbernica i2c: 7-segmentový displej.]]&#039;&#039; 2012.&lt;br /&gt;
* Pecho, Lacko:    &#039;&#039;[[Projekt: Infračervené ovládanie|Infračervené ovládanie]]&#039;&#039; 2012.&lt;br /&gt;
* Rekšák, Mrva:    &#039;&#039;[[Projekt: Inkrementálny snímač otáčok|Inkrementálny snímač otáčok.]]&#039;&#039; 2012.&lt;br /&gt;
* Boráros, Gál:    &#039;&#039;[[Zbernica i2c: FM rádio]].&#039;&#039; 2012.&lt;br /&gt;
* Berčák, Harmata: &#039;&#039;[[Projekt: Hodiny A|Hodiny na orientačný beh I.]]&#039;&#039; 2012.&lt;br /&gt;
* Géczy, Kamenský: &#039;&#039;[[Projekt: Hodiny B|Hodiny na orientačný beh II.]]&#039;&#039; 2012.&lt;br /&gt;
&lt;br /&gt;
* Szolik, Šnyr:    &#039;&#039;[[Projekt: Snímač teploty SMT160|Snímač teploty SMT160]]&#039;&#039; 2012.&lt;br /&gt;
* Gálik, Gogola:   &#039;&#039;[[Projekt: Dvojosí akcelerometer A|Dvojosí akcelerometer I.]]&#039;&#039; 2012.&lt;br /&gt;
* Virág, Topoli:   &#039;&#039;[[Projekt: Dvojosí akcelerometer B|Dvojosí akcelerometer II.]]&#039;&#039; 2012.&lt;br /&gt;
* Statečný:        &#039;&#039;[[Zbernica i2c: SHT11|Zbernica i2c: snímač teploty a vlhkosti SHT11]]&#039;&#039; 2012.&lt;br /&gt;
* Vincze, Rozsár:  &#039;&#039;[[Projekt: Snímač farby ColorPal|Snímač farby ColorPal]]&#039;&#039; 2012.&lt;br /&gt;
* Baláž, Kupčiha:  &#039;&#039;[[Projekt: Snímač teploty DS18B20|Snímač teploty DS18B20]]&#039;&#039; 2012.&lt;br /&gt;
* Mazúch, Lovaš, Oravec: &#039;&#039;[[1-Riadková kamera TSLR1401|1-Riadková kamera TSLR1401]]&#039;&#039; 2012.&lt;br /&gt;
* Špitálová: [[Parkovací senzor]] 2012.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AVR]] [[Category:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19498</id>
		<title>Vzorové riešenie MIPS 2026</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19498"/>
		<updated>2026-06-09T08:25:58Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Praktická časť skúšky z predmetu MIPS / LS2026 - &#039;&#039;&#039;Richard Balogh&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Dostali ste neznámu elektronickú súčiastku spolu s jej datasheet-om. Vašou úlohou je z datasheetu zistiť, o aký snímač ide, identifikovať jeho vývody a navrhnúť zapojenie k mikroprocesoru ATmega328P. Analógový výstup snímača pripojte na vstup ADC0 (pin PC0). Na LCD displeji EA-DOGM163 zobrazte aktuálnu teplotu podľa predpísaného formátu.&lt;br /&gt;
&lt;br /&gt;
 +----------------+&lt;br /&gt;
 | Snimac teploty |&lt;br /&gt;
 | T = 25.3 °C    |&lt;br /&gt;
 | Meno Priezvisk |&lt;br /&gt;
 +----------------+&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;K dispozícii máte:&#039;&#039;&#039; &lt;br /&gt;
* Rozširujúci modul s displejom EA-DOGM163 &lt;br /&gt;
* Knižnice lcd.h / lcd.c a uart.h / uart.c z cvičení&lt;br /&gt;
* [https://www.ti.com/lit/ds/symlink/lm35.pdf Datasheet obvodu LM35]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Z datasheetu zistíme, že súčiastka LM35DZ je analógový snímač teploty v puzdre TO-92 s lineárnym výstupom &#039;&#039;&#039;10 mV/°C&#039;&#039;&#039;. Má tri vývody — pri pohľade spredu (plochá strana k nám, nožičky smerujú dole) sú zľava: +Vs (napájanie), Vout (analógový výstup) a GND (zem). Napájací rozsah je 4–30 V, takže 5 V z dosky Acrob vyhovuje.&lt;br /&gt;
&lt;br /&gt;
Zapojenie je jednoduché — napájanie na 5V, zem na GND a výstup Vout priamo na pin PC0 (ADC0). Nie je potrebný žiadny prídavný rezistor ani kondenzátor.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-schema.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Schéma zapojenia LM35DZ k ATmega328P.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ak sa zo schémy zapojenia neviete celkom zorientovať, možno vám pomôže fotografia zapojenia priamo na doštičke.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-zapojenie.jpg|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Zapojenie na doštičke.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Prepočet ADC na teplotu ===&lt;br /&gt;
&lt;br /&gt;
ATmega328P má 10-bitový ADC prevodník (rozsah 0–1023). S referenčným napätím AVcc = 5 V je rozlíšenie jedného kroku:&lt;br /&gt;
&lt;br /&gt;
 5000 mV / 1024 = 4,88 mV/krok&lt;br /&gt;
&lt;br /&gt;
Keďže LM35 dáva 10 mV/°C, rozlíšenie merania je približne 0,5 °C. Prepočet na teplotu v desatinách stupňa (celočíselná aritmetika):&lt;br /&gt;
&lt;br /&gt;
 t_x10 = adc_val × 5000 / 1024&lt;br /&gt;
&lt;br /&gt;
Pozor na pretečenie — hodnota 1023 × 5000 = 5 115 000, čo sa nezmestí do 16-bitového typu (max 65 535). Preto je nutné pretypovanie na &amp;lt;code&amp;gt;uint32_t&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t t_x10 = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
uint8_t  cele     = t_x10 / 10;    // celá časť&lt;br /&gt;
uint8_t  desatiny = t_x10 % 10;    // desatinná časť&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Program najprv inicializuje UART (pre ladenie cez &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt;), LCD displej a ADC prevodník. &lt;br /&gt;
V hlavnej slučke periodicky číta hodnotu z ADC0, prepočíta ju na teplotu a zobrazí na displej.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;adc.h&amp;quot;&lt;br /&gt;
#include &amp;quot;lcd.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout;&lt;br /&gt;
&lt;br /&gt;
    lcd_init();&lt;br /&gt;
    lcd_bklt(1);&lt;br /&gt;
    lcd_command(0x0C);&lt;br /&gt;
&lt;br /&gt;
    adc_init();&lt;br /&gt;
&lt;br /&gt;
    char riadok[17];&lt;br /&gt;
&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        uint16_t adc_val = adc_read(0);&lt;br /&gt;
        uint16_t t_x10   = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
        uint8_t  cele     = t_x10 / 10;&lt;br /&gt;
        uint8_t  desatiny = t_x10 % 10;&lt;br /&gt;
&lt;br /&gt;
        printf(&amp;quot;ADC=%4u  T=%2u.%1u C\r\n&amp;quot;, adc_val, cele, desatiny);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(1, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Snimac teploty &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        sprintf(riadok, &amp;quot; T = %2u.%1u oC    &amp;quot;, cele, desatiny);&lt;br /&gt;
        lcd_setCursor(2, 0);&lt;br /&gt;
        lcd_puts(riadok);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(3, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Meno Priezvisko &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        _delay_ms(100);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza problémov a najčastejšie chyby ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prevažná väčšina dokázala správne identifikovať funkciu súčiastky a väčšinou aj správne identifikovať pinout z datasheetu (ak si odmyslím &amp;quot;pohľad zdola&amp;quot;). &lt;br /&gt;
Väčšina študentov tiež ovláda jednotlivé stavebné bloky — napr. ADC inicializácia sa objavuje takmer všade a je väčšinou správna, sériová linka fungovala a často aj displej. &lt;br /&gt;
&lt;br /&gt;
Hlavný problém nebol v žiadnej jednotlivej časti — každú z nich (ADC, LCD, UART) sme robili na cvičeniach samostatne. Problém je však celková integrácia. Na skúške ste mali spojiť všetky tri naraz, navyše &lt;br /&gt;
s neznámou súčiastkou a pochopiť datasheet v angličtine.&lt;br /&gt;
&lt;br /&gt;
Vaše programy boli obvykle mozaikou kúskov z rôznych cvičení (PWM, tlačidlá, ADC, UART, LCD), poskladaných vedľa seba bez toho, aby tvorili súvislý celok. To naznačuje, že ste kód z cvičení &lt;br /&gt;
skôr kopírovali než pochopili, a keď ho bolo potrebné poskladať inak, nevedeli ste ako.&lt;br /&gt;
&lt;br /&gt;
=== Najčastejšie chyby ===&lt;br /&gt;
&lt;br /&gt;
* Príliš ambiciózny prístup &lt;br /&gt;
** písanie celého kódu na jeden krát bez priebežnej kompilácie a overovania, alebo &lt;br /&gt;
** pokus o čítanie ADC cez prerušenie (na skúšku zbytočne zložité a nedá sa stihnúť)&lt;br /&gt;
* Zmätok a neprehľadnosť v kóde &lt;br /&gt;
** chýba slučka while(1), takže celý program zbehne len raz, &lt;br /&gt;
** funkcia ktorá sa ani neskompiluje, pretože chýba jej deklarácia,&lt;br /&gt;
** mŕtvy kód - displej je za nekonečnou slučkou, takže sa nikdy nevykoná&lt;br /&gt;
** kompiluje sa celkom iný program z iného cvičenia ako ten čo je otvorený v editore&lt;br /&gt;
** Copy-paste bez rozmyslu - často sa v kóde objavovali funkcie na prácu s časovačmi a PWM výstupom.&lt;br /&gt;
&lt;br /&gt;
=== Na čo sa sústrediť pri príprave na opravný termín ===&lt;br /&gt;
&lt;br /&gt;
* Pochopiť, nielen kopírovať príkazy&lt;br /&gt;
* Snažiť sa natrénovať celý reťazec od nuly, nie jednotlivé bloky. &lt;br /&gt;
* Kompletný program: inicializuj ADC → prečítaj → prepočítaj → zobraz na LCD → opakuj. &lt;br /&gt;
* Naučiť sa vzor sprintf → lcd_puts. Toto je mechanický vzor, ktorý sa opakuje stále rovnako:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  cchar buf[17];&lt;br /&gt;
  sprintf(buf, &amp;quot;T = %2d.%d oC&amp;quot;, cele, desatiny);&lt;br /&gt;
  lcd_setCursor(2, 0);&lt;br /&gt;
  lcd_puts(buf);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kto si toto zapamätá ako jeden blok, ušetrí na skúške cenné minúty.&lt;br /&gt;
&lt;br /&gt;
* Vedieť rýchlo preskenovať a prečítať datasheet: Stačí nájsť tri veci: čo to je, aký je pinout, aká je charakteristika. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rozšírená verzia kódu ==&lt;br /&gt;
&lt;br /&gt;
Na záver ukážka programu, ktorý rieši aj niektoré menšie problémy. Je tu zadefinovaný vlastný znak pre stupeň celzia aj&lt;br /&gt;
pre priezvisko s diakritikou. Aby hodnota teploty nekolísala, spravíme 16 meraní a vypočítame z nich priemernú hodnotu, &lt;br /&gt;
teda spravíme akýsi jednoduchý filter. &lt;br /&gt;
&lt;br /&gt;
Najzložitejšie je pochopiť, že v tomto kóde sme zmenili referenčné napätie z 5,0V na interných 1,1 V. Predpokladáme, že&lt;br /&gt;
teplota nikdy neprekročí 100 stupňov a teda aj napätie bude vždy menšie ako 1,0V. Preto zmenou referenčného napätia&lt;br /&gt;
rapídne zlepšíme presnosť merania. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Vzorové riešenie — rozšírená verzia (bonus)&lt;br /&gt;
 * =============================================&lt;br /&gt;
 * LM35DZ na ADC0 (PC0), displej EA-DOGM163&lt;br /&gt;
 *&lt;br /&gt;
 * Vylepšenia oproti základu:&lt;br /&gt;
 *   1. Interná referencia 1,1V  (rozlíšenie ~0,1 °C)&lt;br /&gt;
 *   2. Priemerovanie 16 vzoriek (potlačenie šumu)&lt;br /&gt;
 *   3. Vlastné znaky: °C (stupeň), ž, č  →  &amp;quot;Jožko Mrkvička&amp;quot;&lt;br /&gt;
 *&lt;br /&gt;
 * F_CPU=16000000UL, BAUDRATE=9600&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;lcd.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  Vlastné znaky v CGRAM  (5×8 pixelov)&lt;br /&gt;
 *&lt;br /&gt;
 *  CGRAM má 8 pozícií (0–7). Znak na pozícii N sa vloží ako &#039;\x0N&#039;.&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 1: stupeň °&lt;br /&gt;
 *&lt;br /&gt;
 *   .XX..     0x06&lt;br /&gt;
 *   X..X.     0x09&lt;br /&gt;
 *   X..X.     0x09&lt;br /&gt;
 *   .XX..     0x06&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_stupen[8] = {&lt;br /&gt;
    0x06, 0x09, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 2: ž  (z s mäkčeňom)&lt;br /&gt;
 *&lt;br /&gt;
 *   .X.X.     0x0A&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   XXXX.     0x1E&lt;br /&gt;
 *   ...X.     0x02&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   .X...     0x08&lt;br /&gt;
 *   XXXX.     0x1E&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_z_hacik[8] = {&lt;br /&gt;
    0x0A, 0x04, 0x1E, 0x02, 0x04, 0x08, 0x1E, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 3: č  (c s mäkčeňom)&lt;br /&gt;
 *&lt;br /&gt;
 *   .X.X.     0x0A&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   .XXX.     0x0E&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   .XXX.     0x0E&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_c_hacik[8] = {&lt;br /&gt;
    0x0A, 0x04, 0x0E, 0x10, 0x10, 0x10, 0x0E, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  ADC — interná referencia 1,1V + priemerovanie&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
void adc_init_1(void)&lt;br /&gt;
{&lt;br /&gt;
    /*  REFS1=1, REFS0=1  →  interná referencia 1,1V&lt;br /&gt;
     *&lt;br /&gt;
     *  Prečo 1,1V a nie 5V?&lt;br /&gt;
     *    5V:   rozlíšenie = 5000/1024 = 4,88 mV/krok → ~0,49 °C/krok&lt;br /&gt;
     *    1,1V: rozlíšenie = 1100/1024 = 1,07 mV/krok → ~0,11 °C/krok&lt;br /&gt;
     *&lt;br /&gt;
     *  Maximum s 1,1V referenciou je ~110 °C, čo LM35DZ (0–100 °C) pokryje.&lt;br /&gt;
     */&lt;br /&gt;
    ADMUX  = (1 &amp;lt;&amp;lt; REFS1) | (1 &amp;lt;&amp;lt; REFS0);&lt;br /&gt;
&lt;br /&gt;
    ADCSRA = (1 &amp;lt;&amp;lt; ADEN)&lt;br /&gt;
           | (1 &amp;lt;&amp;lt; ADPS2) | (1 &amp;lt;&amp;lt; ADPS1) | (1 &amp;lt;&amp;lt; ADPS0);  /* /128 → 125 kHz */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*  Priemer z N meraní — potlačenie šumu&lt;br /&gt;
 *&lt;br /&gt;
 *  Prečo priemerovať?&lt;br /&gt;
 *    Jeden ADC prevod kolíše ±1–2 LSB kvôli šumu.&lt;br /&gt;
 *    Priemer z 16 vzoriek to vyfiltruje.&lt;br /&gt;
 *    16 je mocnina 2, takže delenie je rýchly bitový posun.&lt;br /&gt;
 */&lt;br /&gt;
uint16_t adc_read_avg(uint8_t channel, uint8_t n)&lt;br /&gt;
{&lt;br /&gt;
    uint32_t sum = 0;&lt;br /&gt;
    for (uint8_t i = 0; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        sum += adc_read(channel);&lt;br /&gt;
        _delay_ms(2);&lt;br /&gt;
    }&lt;br /&gt;
    return (uint16_t)(sum / n);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  MAIN&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    /* --- Inicializácia --- */&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout;&lt;br /&gt;
    printf(&amp;quot;\r\n=== LM35DZ Teplomer (bonus) ===\r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Ref: 1.1V interna, priemer 16 vzoriek\r\n\r\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd_init();&lt;br /&gt;
    lcd_bklt(1);&lt;br /&gt;
    lcd_command(0x0C);           /* display ON, cursor OFF */&lt;br /&gt;
&lt;br /&gt;
    /* Nahraj vlastné znaky do CGRAM */&lt;br /&gt;
    def_znak(znak_stupen,  1);   /* ° na pozícii 1 → &#039;\x01&#039; */&lt;br /&gt;
    def_znak(znak_z_hacik, 2);   /* ž na pozícii 2 → &#039;\x02&#039; */&lt;br /&gt;
    def_znak(znak_c_hacik, 3);   /* č na pozícii 3 → &#039;\x03&#039; */&lt;br /&gt;
&lt;br /&gt;
    /* Inicializuj ADC s internou 1,1V referenciou */&lt;br /&gt;
    adc_init_1();&lt;br /&gt;
    (void)adc_read(0);           /* zahoď prvý prevod po zmene Vref */&lt;br /&gt;
    _delay_ms(50);               /* nechaj referenciu ustáliť sa */&lt;br /&gt;
&lt;br /&gt;
    char riadok[17];&lt;br /&gt;
&lt;br /&gt;
    /* --- Hlavná slučka --- */&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        uint16_t adc_val = adc_read_avg(0, 16);&lt;br /&gt;
&lt;br /&gt;
        /*  Prepočet s 1,1V referenciou:&lt;br /&gt;
         *&lt;br /&gt;
         *    U [mV] = adc_val × 1100 / 1024&lt;br /&gt;
         *    T [°C] = U / 10            (LM35: 10 mV/°C)&lt;br /&gt;
         *    t_x10  = adc_val × 1100 / 1024   (teplota × 10)&lt;br /&gt;
         *&lt;br /&gt;
         *    Príklad: adc_val = 227&lt;br /&gt;
         *      t_x10 = 227 × 1100 / 1024 = 243  →  24,3 °C&lt;br /&gt;
         */&lt;br /&gt;
        uint16_t t_x10 = (uint32_t)adc_val * 1100 / 1024;&lt;br /&gt;
&lt;br /&gt;
        uint8_t cele     = t_x10 / 10;&lt;br /&gt;
        uint8_t desatiny = t_x10 % 10;&lt;br /&gt;
&lt;br /&gt;
        /* Debug na UART */&lt;br /&gt;
        printf(&amp;quot;ADC=%4u  T=%2u.%1u C\r\n&amp;quot;, adc_val, cele, desatiny);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 1: nadpis */&lt;br /&gt;
        lcd_setCursor(1, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Senzor LM35 &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 2: teplota so znakom ° z CGRAM pozície 1 */&lt;br /&gt;
        sprintf(riadok, &amp;quot; T = %2u.%1u \x01&amp;quot;&amp;quot;C    &amp;quot;, cele, desatiny);&lt;br /&gt;
        lcd_setCursor(2, 0);&lt;br /&gt;
        lcd_puts(riadok);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 3: &amp;quot;Jožko Mrkvička&amp;quot; s vlastnými ž a č */&lt;br /&gt;
        lcd_setCursor(3, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Jo\x02ko Mrkvi\x03ka &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        _delay_ms(500);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Program funguje ako vidno na videu - je na ňom vidieť aktuálnu teplotu na displeji, ktorá reaguje na dotyk prsta (zahriatie).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-video.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategória:AVR]]&lt;br /&gt;
[[Kategória:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:MIPS2026-LM35DZ-video.gif&amp;diff=19497</id>
		<title>Súbor:MIPS2026-LM35DZ-video.gif</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:MIPS2026-LM35DZ-video.gif&amp;diff=19497"/>
		<updated>2026-06-09T08:25:12Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:MIPS2026-LM35DZ-zapojenie.jpg&amp;diff=19496</id>
		<title>Súbor:MIPS2026-LM35DZ-zapojenie.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:MIPS2026-LM35DZ-zapojenie.jpg&amp;diff=19496"/>
		<updated>2026-06-09T08:19:10Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:MIPS2026-LM35DZ-schema.png&amp;diff=19495</id>
		<title>Súbor:MIPS2026-LM35DZ-schema.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:MIPS2026-LM35DZ-schema.png&amp;diff=19495"/>
		<updated>2026-06-09T08:14:17Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19494</id>
		<title>Vzorové riešenie MIPS 2026</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19494"/>
		<updated>2026-06-09T08:14:03Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Praktická časť skúšky z predmetu MIPS / LS2026 - &#039;&#039;&#039;Richard Balogh&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Dostali ste neznámu elektronickú súčiastku spolu s jej datasheet-om. Vašou úlohou je z datasheetu zistiť, o aký snímač ide, identifikovať jeho vývody a navrhnúť zapojenie k mikroprocesoru ATmega328P. Analógový výstup snímača pripojte na vstup ADC0 (pin PC0). Na LCD displeji EA-DOGM163 zobrazte aktuálnu teplotu podľa predpísaného formátu.&lt;br /&gt;
&lt;br /&gt;
 +----------------+&lt;br /&gt;
 | Snimac teploty |&lt;br /&gt;
 | T = 25.3 °C    |&lt;br /&gt;
 | Meno Priezvisk |&lt;br /&gt;
 +----------------+&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;K dispozícii máte:&#039;&#039;&#039; &lt;br /&gt;
* Rozširujúci modul s displejom EA-DOGM163 &lt;br /&gt;
* Knižnice lcd.h / lcd.c a uart.h / uart.c z cvičení&lt;br /&gt;
* [https://www.ti.com/lit/ds/symlink/lm35.pdf Datasheet obvodu LM35]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Z datasheetu zistíme, že súčiastka LM35DZ je analógový snímač teploty v puzdre TO-92 s lineárnym výstupom &#039;&#039;&#039;10 mV/°C&#039;&#039;&#039;. Má tri vývody — pri pohľade spredu (plochá strana k nám, nožičky smerujú dole) sú zľava: +Vs (napájanie), Vout (analógový výstup) a GND (zem). Napájací rozsah je 4–30 V, takže 5 V z dosky Acrob vyhovuje.&lt;br /&gt;
&lt;br /&gt;
Zapojenie je jednoduché — napájanie na 5V, zem na GND a výstup Vout priamo na pin PC0 (ADC0). Nie je potrebný žiadny prídavný rezistor ani kondenzátor.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-schema.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Schéma zapojenia LM35DZ k ATmega328P.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ak sa zo schémy zapojenia neviete celkom zorientovať, možno vám pomôže fotografia zapojenia priamo na doštičke.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-zapojenie.jpg|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Zapojenie na doštičke.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Prepočet ADC na teplotu ===&lt;br /&gt;
&lt;br /&gt;
ATmega328P má 10-bitový ADC prevodník (rozsah 0–1023). S referenčným napätím AVcc = 5 V je rozlíšenie jedného kroku:&lt;br /&gt;
&lt;br /&gt;
 5000 mV / 1024 = 4,88 mV/krok&lt;br /&gt;
&lt;br /&gt;
Keďže LM35 dáva 10 mV/°C, rozlíšenie merania je približne 0,5 °C. Prepočet na teplotu v desatinách stupňa (celočíselná aritmetika):&lt;br /&gt;
&lt;br /&gt;
 t_x10 = adc_val × 5000 / 1024&lt;br /&gt;
&lt;br /&gt;
Pozor na pretečenie — hodnota 1023 × 5000 = 5 115 000, čo sa nezmestí do 16-bitového typu (max 65 535). Preto je nutné pretypovanie na &amp;lt;code&amp;gt;uint32_t&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t t_x10 = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
uint8_t  cele     = t_x10 / 10;    // celá časť&lt;br /&gt;
uint8_t  desatiny = t_x10 % 10;    // desatinná časť&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Program najprv inicializuje UART (pre ladenie cez &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt;), LCD displej a ADC prevodník. &lt;br /&gt;
V hlavnej slučke periodicky číta hodnotu z ADC0, prepočíta ju na teplotu a zobrazí na displej.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;adc.h&amp;quot;&lt;br /&gt;
#include &amp;quot;lcd.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout;&lt;br /&gt;
&lt;br /&gt;
    lcd_init();&lt;br /&gt;
    lcd_bklt(1);&lt;br /&gt;
    lcd_command(0x0C);&lt;br /&gt;
&lt;br /&gt;
    adc_init();&lt;br /&gt;
&lt;br /&gt;
    char riadok[17];&lt;br /&gt;
&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        uint16_t adc_val = adc_read(0);&lt;br /&gt;
        uint16_t t_x10   = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
        uint8_t  cele     = t_x10 / 10;&lt;br /&gt;
        uint8_t  desatiny = t_x10 % 10;&lt;br /&gt;
&lt;br /&gt;
        printf(&amp;quot;ADC=%4u  T=%2u.%1u C\r\n&amp;quot;, adc_val, cele, desatiny);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(1, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Snimac teploty &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        sprintf(riadok, &amp;quot; T = %2u.%1u oC    &amp;quot;, cele, desatiny);&lt;br /&gt;
        lcd_setCursor(2, 0);&lt;br /&gt;
        lcd_puts(riadok);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(3, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Meno Priezvisko &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        _delay_ms(100);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza problémov a najčastejšie chyby&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prevažná väčšina dokázala správne identifikovať funkciu súčiastky a väčšinou aj správne identifikovať pinout z datasheetu (ak si odmyslím &amp;quot;pohľad zdola&amp;quot;). &lt;br /&gt;
Väčšina študentov tiež ovláda jednotlivé stavebné bloky — napr. ADC inicializácia sa objavuje takmer všade a je väčšinou správna, sériová linka fungovala a často aj displej. &lt;br /&gt;
&lt;br /&gt;
Hlavný problém nebol v žiadnej jednotlivej časti — každú z nich (ADC, LCD, UART) sme robili na cvičeniach samostatne. Problém je však celková integrácia. Na skúške ste mali spojiť všetky tri naraz, navyše &lt;br /&gt;
s neznámou súčiastkou a pochopiť datasheet v angličtine.&lt;br /&gt;
&lt;br /&gt;
Vaše programy boli obvykle mozaikou kúskov z rôznych cvičení (PWM, tlačidlá, ADC, UART, LCD), poskladaných vedľa seba bez toho, aby tvorili súvislý celok. To naznačuje, že ste kód z cvičení &lt;br /&gt;
skôr kopírovali než pochopili, a keď ho bolo potrebné poskladať inak, nevedeli ste ako.&lt;br /&gt;
&lt;br /&gt;
=== Najčastejšie chyby ===&lt;br /&gt;
&lt;br /&gt;
* Príliš ambiciózny prístup &lt;br /&gt;
** písanie celého kódu na jeden krát bez priebežnej kompilácie a overovania, alebo &lt;br /&gt;
** pokus o čítanie ADC cez prerušenie (na skúšku zbytočne zložité a nedá sa stihnúť)&lt;br /&gt;
* Zmätok a neprehľadnosť v kóde &lt;br /&gt;
** chýba slučka while(1), takže celý program zbehne len raz, &lt;br /&gt;
** funkcia ktorá sa ani neskompiluje, pretože chýba jej deklarácia,&lt;br /&gt;
** mŕtvy kód - displej je za nekonečnou slučkou, takže sa nikdy nevykoná&lt;br /&gt;
** kompiluje sa celkom iný program z iného cvičenia ako ten čo je otvorený v editore&lt;br /&gt;
** Copy-paste bez rozmyslu - často sa v kóde objavovali funkcie na prácu s časovačmi a PWM výstupom.&lt;br /&gt;
&lt;br /&gt;
=== Na čo sa sústrediť pri príprave na opravný termín ===&lt;br /&gt;
&lt;br /&gt;
* Pochopiť, nielen kopírovať príkazy&lt;br /&gt;
* Snažiť sa natrénovať celý reťazec od nuly, nie jednotlivé bloky. &lt;br /&gt;
* Kompletný program: inicializuj ADC → prečítaj → prepočítaj → zobraz na LCD → opakuj. &lt;br /&gt;
* Naučiť sa vzor sprintf → lcd_puts. Toto je mechanický vzor, ktorý sa opakuje stále rovnako:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  cchar buf[17];&lt;br /&gt;
  sprintf(buf, &amp;quot;T = %2d.%d oC&amp;quot;, cele, desatiny);&lt;br /&gt;
  lcd_setCursor(2, 0);&lt;br /&gt;
  lcd_puts(buf);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kto si toto zapamätá ako jeden blok, ušetrí na skúške cenné minúty.&lt;br /&gt;
&lt;br /&gt;
* Vedieť rýchlo preskenovať a prečítať datasheet: Stačí nájsť tri veci: čo to je, aký je pinout, aká je charakteristika. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rozšírená verzia kódu ==&lt;br /&gt;
&lt;br /&gt;
Na záver ukážka programu, ktorý rieši aj niektoré menšie problémy. Je tu zadefinovaný vlastný znak pre stupeň celzia aj&lt;br /&gt;
pre priezvisko s diakritikou. Aby hodnota teploty nekolísala, spravíme 16 meraní a vypočítame z nich priemernú hodnotu, &lt;br /&gt;
teda spravíme akýsi jednoduchý filter. &lt;br /&gt;
&lt;br /&gt;
Najzložitejšie je pochopiť, že v tomto kóde sme zmenili referenčné napätie z 5,0V na interných 1,1 V. Predpokladáme, že&lt;br /&gt;
teplota nikdy neprekročí 100 stupňov a teda aj napätie bude vždy menšie ako 1,0V. Preto zmenou referenčného napätia&lt;br /&gt;
rapídne zlepšíme presnosť merania. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Vzorové riešenie — rozšírená verzia (bonus)&lt;br /&gt;
 * =============================================&lt;br /&gt;
 * LM35DZ na ADC0 (PC0), displej EA-DOGM163&lt;br /&gt;
 *&lt;br /&gt;
 * Vylepšenia oproti základu:&lt;br /&gt;
 *   1. Interná referencia 1,1V  (rozlíšenie ~0,1 °C)&lt;br /&gt;
 *   2. Priemerovanie 16 vzoriek (potlačenie šumu)&lt;br /&gt;
 *   3. Vlastné znaky: °C (stupeň), ž, č  →  &amp;quot;Jožko Mrkvička&amp;quot;&lt;br /&gt;
 *&lt;br /&gt;
 * F_CPU=16000000UL, BAUDRATE=9600&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;lcd.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  Vlastné znaky v CGRAM  (5×8 pixelov)&lt;br /&gt;
 *&lt;br /&gt;
 *  CGRAM má 8 pozícií (0–7). Znak na pozícii N sa vloží ako &#039;\x0N&#039;.&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 1: stupeň °&lt;br /&gt;
 *&lt;br /&gt;
 *   .XX..     0x06&lt;br /&gt;
 *   X..X.     0x09&lt;br /&gt;
 *   X..X.     0x09&lt;br /&gt;
 *   .XX..     0x06&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_stupen[8] = {&lt;br /&gt;
    0x06, 0x09, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 2: ž  (z s mäkčeňom)&lt;br /&gt;
 *&lt;br /&gt;
 *   .X.X.     0x0A&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   XXXX.     0x1E&lt;br /&gt;
 *   ...X.     0x02&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   .X...     0x08&lt;br /&gt;
 *   XXXX.     0x1E&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_z_hacik[8] = {&lt;br /&gt;
    0x0A, 0x04, 0x1E, 0x02, 0x04, 0x08, 0x1E, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 3: č  (c s mäkčeňom)&lt;br /&gt;
 *&lt;br /&gt;
 *   .X.X.     0x0A&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   .XXX.     0x0E&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   .XXX.     0x0E&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_c_hacik[8] = {&lt;br /&gt;
    0x0A, 0x04, 0x0E, 0x10, 0x10, 0x10, 0x0E, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  ADC — interná referencia 1,1V + priemerovanie&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
void adc_init_1(void)&lt;br /&gt;
{&lt;br /&gt;
    /*  REFS1=1, REFS0=1  →  interná referencia 1,1V&lt;br /&gt;
     *&lt;br /&gt;
     *  Prečo 1,1V a nie 5V?&lt;br /&gt;
     *    5V:   rozlíšenie = 5000/1024 = 4,88 mV/krok → ~0,49 °C/krok&lt;br /&gt;
     *    1,1V: rozlíšenie = 1100/1024 = 1,07 mV/krok → ~0,11 °C/krok&lt;br /&gt;
     *&lt;br /&gt;
     *  Maximum s 1,1V referenciou je ~110 °C, čo LM35DZ (0–100 °C) pokryje.&lt;br /&gt;
     */&lt;br /&gt;
    ADMUX  = (1 &amp;lt;&amp;lt; REFS1) | (1 &amp;lt;&amp;lt; REFS0);&lt;br /&gt;
&lt;br /&gt;
    ADCSRA = (1 &amp;lt;&amp;lt; ADEN)&lt;br /&gt;
           | (1 &amp;lt;&amp;lt; ADPS2) | (1 &amp;lt;&amp;lt; ADPS1) | (1 &amp;lt;&amp;lt; ADPS0);  /* /128 → 125 kHz */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*  Priemer z N meraní — potlačenie šumu&lt;br /&gt;
 *&lt;br /&gt;
 *  Prečo priemerovať?&lt;br /&gt;
 *    Jeden ADC prevod kolíše ±1–2 LSB kvôli šumu.&lt;br /&gt;
 *    Priemer z 16 vzoriek to vyfiltruje.&lt;br /&gt;
 *    16 je mocnina 2, takže delenie je rýchly bitový posun.&lt;br /&gt;
 */&lt;br /&gt;
uint16_t adc_read_avg(uint8_t channel, uint8_t n)&lt;br /&gt;
{&lt;br /&gt;
    uint32_t sum = 0;&lt;br /&gt;
    for (uint8_t i = 0; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        sum += adc_read(channel);&lt;br /&gt;
        _delay_ms(2);&lt;br /&gt;
    }&lt;br /&gt;
    return (uint16_t)(sum / n);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  MAIN&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    /* --- Inicializácia --- */&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout;&lt;br /&gt;
    printf(&amp;quot;\r\n=== LM35DZ Teplomer (bonus) ===\r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Ref: 1.1V interna, priemer 16 vzoriek\r\n\r\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd_init();&lt;br /&gt;
    lcd_bklt(1);&lt;br /&gt;
    lcd_command(0x0C);           /* display ON, cursor OFF */&lt;br /&gt;
&lt;br /&gt;
    /* Nahraj vlastné znaky do CGRAM */&lt;br /&gt;
    def_znak(znak_stupen,  1);   /* ° na pozícii 1 → &#039;\x01&#039; */&lt;br /&gt;
    def_znak(znak_z_hacik, 2);   /* ž na pozícii 2 → &#039;\x02&#039; */&lt;br /&gt;
    def_znak(znak_c_hacik, 3);   /* č na pozícii 3 → &#039;\x03&#039; */&lt;br /&gt;
&lt;br /&gt;
    /* Inicializuj ADC s internou 1,1V referenciou */&lt;br /&gt;
    adc_init_1();&lt;br /&gt;
    (void)adc_read(0);           /* zahoď prvý prevod po zmene Vref */&lt;br /&gt;
    _delay_ms(50);               /* nechaj referenciu ustáliť sa */&lt;br /&gt;
&lt;br /&gt;
    char riadok[17];&lt;br /&gt;
&lt;br /&gt;
    /* --- Hlavná slučka --- */&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        uint16_t adc_val = adc_read_avg(0, 16);&lt;br /&gt;
&lt;br /&gt;
        /*  Prepočet s 1,1V referenciou:&lt;br /&gt;
         *&lt;br /&gt;
         *    U [mV] = adc_val × 1100 / 1024&lt;br /&gt;
         *    T [°C] = U / 10            (LM35: 10 mV/°C)&lt;br /&gt;
         *    t_x10  = adc_val × 1100 / 1024   (teplota × 10)&lt;br /&gt;
         *&lt;br /&gt;
         *    Príklad: adc_val = 227&lt;br /&gt;
         *      t_x10 = 227 × 1100 / 1024 = 243  →  24,3 °C&lt;br /&gt;
         */&lt;br /&gt;
        uint16_t t_x10 = (uint32_t)adc_val * 1100 / 1024;&lt;br /&gt;
&lt;br /&gt;
        uint8_t cele     = t_x10 / 10;&lt;br /&gt;
        uint8_t desatiny = t_x10 % 10;&lt;br /&gt;
&lt;br /&gt;
        /* Debug na UART */&lt;br /&gt;
        printf(&amp;quot;ADC=%4u  T=%2u.%1u C\r\n&amp;quot;, adc_val, cele, desatiny);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 1: nadpis */&lt;br /&gt;
        lcd_setCursor(1, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Senzor LM35 &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 2: teplota so znakom ° z CGRAM pozície 1 */&lt;br /&gt;
        sprintf(riadok, &amp;quot; T = %2u.%1u \x01&amp;quot;&amp;quot;C    &amp;quot;, cele, desatiny);&lt;br /&gt;
        lcd_setCursor(2, 0);&lt;br /&gt;
        lcd_puts(riadok);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 3: &amp;quot;Jožko Mrkvička&amp;quot; s vlastnými ž a č */&lt;br /&gt;
        lcd_setCursor(3, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Jo\x02ko Mrkvi\x03ka &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        _delay_ms(500);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Program funguje ako vidno na videu - je na ňom vidieť aktuálnu teplotu na displeji, ktorá reaguje na dotyk prsta (zahriatie).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-video.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategória:AVR]]&lt;br /&gt;
[[Kategória:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19493</id>
		<title>Vzorové riešenie MIPS 2026</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19493"/>
		<updated>2026-06-09T08:10:49Z</updated>

		<summary type="html">&lt;p&gt;Balogh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vzorové riešenie MIPS 2026&lt;br /&gt;
&lt;br /&gt;
Praktická časť skúšky z predmetu MIPS / LS2026 - &#039;&#039;&#039;Richard Balogh&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Dostali ste neznámu elektronickú súčiastku spolu s jej datasheet-om. Vašou úlohou je z datasheetu zistiť, o aký snímač ide, identifikovať jeho vývody a navrhnúť zapojenie k mikroprocesoru ATmega328P. Analógový výstup snímača pripojte na vstup ADC0 (pin PC0). Na LCD displeji EA-DOGM163 zobrazte aktuálnu teplotu podľa predpísaného formátu.&lt;br /&gt;
&lt;br /&gt;
 +----------------+&lt;br /&gt;
 | Snimac teploty |&lt;br /&gt;
 | T = 25.3 °C    |&lt;br /&gt;
 | Meno Priezvisk |&lt;br /&gt;
 +----------------+&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;K dispozícii máte:&#039;&#039;&#039; &lt;br /&gt;
* Rozširujúci modul s displejom EA-DOGM163 &lt;br /&gt;
* Knižnice lcd.h / lcd.c a uart.h / uart.c z cvičení&lt;br /&gt;
* [https://www.ti.com/lit/ds/symlink/lm35.pdf Datasheet obvodu LM35]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Z datasheetu zistíme, že súčiastka LM35DZ je analógový snímač teploty v puzdre TO-92 s lineárnym výstupom &#039;&#039;&#039;10 mV/°C&#039;&#039;&#039;. Má tri vývody — pri pohľade spredu (plochá strana k nám, nožičky smerujú dole) sú zľava: +Vs (napájanie), Vout (analógový výstup) a GND (zem). Napájací rozsah je 4–30 V, takže 5 V z dosky Acrob vyhovuje.&lt;br /&gt;
&lt;br /&gt;
Zapojenie je jednoduché — napájanie na 5V, zem na GND a výstup Vout priamo na pin PC0 (ADC0). Nie je potrebný žiadny prídavný rezistor ani kondenzátor.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-schema.svg|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Schéma zapojenia LM35DZ k ATmega328P.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ak sa zo schémy zapojenia neviete celkom zorientovať, možno vám pomôže fotografia zapojenia priamo na doštičke.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-zapojenie.jpg|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Zapojenie na doštičke.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Prepočet ADC na teplotu ===&lt;br /&gt;
&lt;br /&gt;
ATmega328P má 10-bitový ADC prevodník (rozsah 0–1023). S referenčným napätím AVcc = 5 V je rozlíšenie jedného kroku:&lt;br /&gt;
&lt;br /&gt;
 5000 mV / 1024 = 4,88 mV/krok&lt;br /&gt;
&lt;br /&gt;
Keďže LM35 dáva 10 mV/°C, rozlíšenie merania je približne 0,5 °C. Prepočet na teplotu v desatinách stupňa (celočíselná aritmetika):&lt;br /&gt;
&lt;br /&gt;
 t_x10 = adc_val × 5000 / 1024&lt;br /&gt;
&lt;br /&gt;
Pozor na pretečenie — hodnota 1023 × 5000 = 5 115 000, čo sa nezmestí do 16-bitového typu (max 65 535). Preto je nutné pretypovanie na &amp;lt;code&amp;gt;uint32_t&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t t_x10 = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
uint8_t  cele     = t_x10 / 10;    // celá časť&lt;br /&gt;
uint8_t  desatiny = t_x10 % 10;    // desatinná časť&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Program najprv inicializuje UART (pre ladenie cez &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt;), LCD displej a ADC prevodník. &lt;br /&gt;
V hlavnej slučke periodicky číta hodnotu z ADC0, prepočíta ju na teplotu a zobrazí na displej.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;adc.h&amp;quot;&lt;br /&gt;
#include &amp;quot;lcd.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout;&lt;br /&gt;
&lt;br /&gt;
    lcd_init();&lt;br /&gt;
    lcd_bklt(1);&lt;br /&gt;
    lcd_command(0x0C);&lt;br /&gt;
&lt;br /&gt;
    adc_init();&lt;br /&gt;
&lt;br /&gt;
    char riadok[17];&lt;br /&gt;
&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        uint16_t adc_val = adc_read(0);&lt;br /&gt;
        uint16_t t_x10   = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
        uint8_t  cele     = t_x10 / 10;&lt;br /&gt;
        uint8_t  desatiny = t_x10 % 10;&lt;br /&gt;
&lt;br /&gt;
        printf(&amp;quot;ADC=%4u  T=%2u.%1u C\r\n&amp;quot;, adc_val, cele, desatiny);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(1, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Snimac teploty &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        sprintf(riadok, &amp;quot; T = %2u.%1u oC    &amp;quot;, cele, desatiny);&lt;br /&gt;
        lcd_setCursor(2, 0);&lt;br /&gt;
        lcd_puts(riadok);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(3, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Meno Priezvisko &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        _delay_ms(100);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza problémov a najčastejšie chyby&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prevažná väčšina dokázala správne identifikovať funkciu súčiastky a väčšinou aj správne identifikovať pinout z datasheetu (ak si odmyslím &amp;quot;pohľad zdola&amp;quot;). &lt;br /&gt;
Väčšina študentov tiež ovláda jednotlivé stavebné bloky — napr. ADC inicializácia sa objavuje takmer všade a je väčšinou správna, sériová linka fungovala a často aj displej. &lt;br /&gt;
&lt;br /&gt;
Hlavný problém nebol v žiadnej jednotlivej časti — každú z nich (ADC, LCD, UART) sme robili na cvičeniach samostatne. Problém je však celková integrácia. Na skúške ste mali spojiť všetky tri naraz, navyše &lt;br /&gt;
s neznámou súčiastkou a pochopiť datasheet v angličtine.&lt;br /&gt;
&lt;br /&gt;
Vaše programy boli obvykle mozaikou kúskov z rôznych cvičení (PWM, tlačidlá, ADC, UART, LCD), poskladaných vedľa seba bez toho, aby tvorili súvislý celok. To naznačuje, že ste kód z cvičení &lt;br /&gt;
skôr kopírovali než pochopili, a keď ho bolo potrebné poskladať inak, nevedeli ste ako.&lt;br /&gt;
&lt;br /&gt;
=== Najčastejšie chyby ===&lt;br /&gt;
&lt;br /&gt;
* Príliš ambiciózny prístup &lt;br /&gt;
** písanie celého kódu na jeden krát bez priebežnej kompilácie a overovania, alebo &lt;br /&gt;
** pokus o čítanie ADC cez prerušenie (na skúšku zbytočne zložité a nedá sa stihnúť)&lt;br /&gt;
* Zmätok a neprehľadnosť v kóde &lt;br /&gt;
** chýba slučka while(1), takže celý program zbehne len raz, &lt;br /&gt;
** funkcia ktorá sa ani neskompiluje, pretože chýba jej deklarácia,&lt;br /&gt;
** mŕtvy kód - displej je za nekonečnou slučkou, takže sa nikdy nevykoná&lt;br /&gt;
** kompiluje sa celkom iný program z iného cvičenia ako ten čo je otvorený v editore&lt;br /&gt;
** Copy-paste bez rozmyslu - často sa v kóde objavovali funkcie na prácu s časovačmi a PWM výstupom.&lt;br /&gt;
&lt;br /&gt;
=== Na čo sa sústrediť pri príprave na opravný termín ===&lt;br /&gt;
&lt;br /&gt;
* Pochopiť, nielen kopírovať príkazy&lt;br /&gt;
* Snažiť sa natrénovať celý reťazec od nuly, nie jednotlivé bloky. &lt;br /&gt;
* Kompletný program: inicializuj ADC → prečítaj → prepočítaj → zobraz na LCD → opakuj. &lt;br /&gt;
* Naučiť sa vzor sprintf → lcd_puts. Toto je mechanický vzor, ktorý sa opakuje stále rovnako:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
  cchar buf[17];&lt;br /&gt;
  sprintf(buf, &amp;quot;T = %2d.%d oC&amp;quot;, cele, desatiny);&lt;br /&gt;
  lcd_setCursor(2, 0);&lt;br /&gt;
  lcd_puts(buf);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kto si toto zapamätá ako jeden blok, ušetrí na skúške cenné minúty.&lt;br /&gt;
&lt;br /&gt;
* Vedieť rýchlo preskenovať a prečítať datasheet: Stačí nájsť tri veci: čo to je, aký je pinout, aká je charakteristika. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rozšírená verzia kódu ==&lt;br /&gt;
&lt;br /&gt;
Na záver ukážka programu, ktorý rieši aj niektoré menšie problémy. Je tu zadefinovaný vlastný znak pre stupeň celzia aj&lt;br /&gt;
pre priezvisko s diakritikou. Aby hodnota teploty nekolísala, spravíme 16 meraní a vypočítame z nich priemernú hodnotu, &lt;br /&gt;
teda spravíme akýsi jednoduchý filter. &lt;br /&gt;
&lt;br /&gt;
Najzložitejšie je pochopiť, že v tomto kóde sme zmenili referenčné napätie z 5,0V na interných 1,1 V. Predpokladáme, že&lt;br /&gt;
teplota nikdy neprekročí 100 stupňov a teda aj napätie bude vždy menšie ako 1,0V. Preto zmenou referenčného napätia&lt;br /&gt;
rapídne zlepšíme presnosť merania. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Vzorové riešenie — rozšírená verzia (bonus)&lt;br /&gt;
 * =============================================&lt;br /&gt;
 * LM35DZ na ADC0 (PC0), displej EA-DOGM163&lt;br /&gt;
 *&lt;br /&gt;
 * Vylepšenia oproti základu:&lt;br /&gt;
 *   1. Interná referencia 1,1V  (rozlíšenie ~0,1 °C)&lt;br /&gt;
 *   2. Priemerovanie 16 vzoriek (potlačenie šumu)&lt;br /&gt;
 *   3. Vlastné znaky: °C (stupeň), ž, č  →  &amp;quot;Jožko Mrkvička&amp;quot;&lt;br /&gt;
 *&lt;br /&gt;
 * F_CPU=16000000UL, BAUDRATE=9600&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define F_CPU 16000000UL&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;lcd.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  Vlastné znaky v CGRAM  (5×8 pixelov)&lt;br /&gt;
 *&lt;br /&gt;
 *  CGRAM má 8 pozícií (0–7). Znak na pozícii N sa vloží ako &#039;\x0N&#039;.&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 1: stupeň °&lt;br /&gt;
 *&lt;br /&gt;
 *   .XX..     0x06&lt;br /&gt;
 *   X..X.     0x09&lt;br /&gt;
 *   X..X.     0x09&lt;br /&gt;
 *   .XX..     0x06&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_stupen[8] = {&lt;br /&gt;
    0x06, 0x09, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 2: ž  (z s mäkčeňom)&lt;br /&gt;
 *&lt;br /&gt;
 *   .X.X.     0x0A&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   XXXX.     0x1E&lt;br /&gt;
 *   ...X.     0x02&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   .X...     0x08&lt;br /&gt;
 *   XXXX.     0x1E&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_z_hacik[8] = {&lt;br /&gt;
    0x0A, 0x04, 0x1E, 0x02, 0x04, 0x08, 0x1E, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/*  Pozícia 3: č  (c s mäkčeňom)&lt;br /&gt;
 *&lt;br /&gt;
 *   .X.X.     0x0A&lt;br /&gt;
 *   ..X..     0x04&lt;br /&gt;
 *   .XXX.     0x0E&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   X....     0x10&lt;br /&gt;
 *   .XXX.     0x0E&lt;br /&gt;
 *   .....     0x00&lt;br /&gt;
 */&lt;br /&gt;
unsigned char znak_c_hacik[8] = {&lt;br /&gt;
    0x0A, 0x04, 0x0E, 0x10, 0x10, 0x10, 0x0E, 0x00&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  ADC — interná referencia 1,1V + priemerovanie&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
void adc_init_1(void)&lt;br /&gt;
{&lt;br /&gt;
    /*  REFS1=1, REFS0=1  →  interná referencia 1,1V&lt;br /&gt;
     *&lt;br /&gt;
     *  Prečo 1,1V a nie 5V?&lt;br /&gt;
     *    5V:   rozlíšenie = 5000/1024 = 4,88 mV/krok → ~0,49 °C/krok&lt;br /&gt;
     *    1,1V: rozlíšenie = 1100/1024 = 1,07 mV/krok → ~0,11 °C/krok&lt;br /&gt;
     *&lt;br /&gt;
     *  Maximum s 1,1V referenciou je ~110 °C, čo LM35DZ (0–100 °C) pokryje.&lt;br /&gt;
     */&lt;br /&gt;
    ADMUX  = (1 &amp;lt;&amp;lt; REFS1) | (1 &amp;lt;&amp;lt; REFS0);&lt;br /&gt;
&lt;br /&gt;
    ADCSRA = (1 &amp;lt;&amp;lt; ADEN)&lt;br /&gt;
           | (1 &amp;lt;&amp;lt; ADPS2) | (1 &amp;lt;&amp;lt; ADPS1) | (1 &amp;lt;&amp;lt; ADPS0);  /* /128 → 125 kHz */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*  Priemer z N meraní — potlačenie šumu&lt;br /&gt;
 *&lt;br /&gt;
 *  Prečo priemerovať?&lt;br /&gt;
 *    Jeden ADC prevod kolíše ±1–2 LSB kvôli šumu.&lt;br /&gt;
 *    Priemer z 16 vzoriek to vyfiltruje.&lt;br /&gt;
 *    16 je mocnina 2, takže delenie je rýchly bitový posun.&lt;br /&gt;
 */&lt;br /&gt;
uint16_t adc_read_avg(uint8_t channel, uint8_t n)&lt;br /&gt;
{&lt;br /&gt;
    uint32_t sum = 0;&lt;br /&gt;
    for (uint8_t i = 0; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        sum += adc_read(channel);&lt;br /&gt;
        _delay_ms(2);&lt;br /&gt;
    }&lt;br /&gt;
    return (uint16_t)(sum / n);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* =====================================================================&lt;br /&gt;
 *  MAIN&lt;br /&gt;
 * ===================================================================== */&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    /* --- Inicializácia --- */&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout;&lt;br /&gt;
    printf(&amp;quot;\r\n=== LM35DZ Teplomer (bonus) ===\r\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Ref: 1.1V interna, priemer 16 vzoriek\r\n\r\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    lcd_init();&lt;br /&gt;
    lcd_bklt(1);&lt;br /&gt;
    lcd_command(0x0C);           /* display ON, cursor OFF */&lt;br /&gt;
&lt;br /&gt;
    /* Nahraj vlastné znaky do CGRAM */&lt;br /&gt;
    def_znak(znak_stupen,  1);   /* ° na pozícii 1 → &#039;\x01&#039; */&lt;br /&gt;
    def_znak(znak_z_hacik, 2);   /* ž na pozícii 2 → &#039;\x02&#039; */&lt;br /&gt;
    def_znak(znak_c_hacik, 3);   /* č na pozícii 3 → &#039;\x03&#039; */&lt;br /&gt;
&lt;br /&gt;
    /* Inicializuj ADC s internou 1,1V referenciou */&lt;br /&gt;
    adc_init_1();&lt;br /&gt;
    (void)adc_read(0);           /* zahoď prvý prevod po zmene Vref */&lt;br /&gt;
    _delay_ms(50);               /* nechaj referenciu ustáliť sa */&lt;br /&gt;
&lt;br /&gt;
    char riadok[17];&lt;br /&gt;
&lt;br /&gt;
    /* --- Hlavná slučka --- */&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        uint16_t adc_val = adc_read_avg(0, 16);&lt;br /&gt;
&lt;br /&gt;
        /*  Prepočet s 1,1V referenciou:&lt;br /&gt;
         *&lt;br /&gt;
         *    U [mV] = adc_val × 1100 / 1024&lt;br /&gt;
         *    T [°C] = U / 10            (LM35: 10 mV/°C)&lt;br /&gt;
         *    t_x10  = adc_val × 1100 / 1024   (teplota × 10)&lt;br /&gt;
         *&lt;br /&gt;
         *    Príklad: adc_val = 227&lt;br /&gt;
         *      t_x10 = 227 × 1100 / 1024 = 243  →  24,3 °C&lt;br /&gt;
         */&lt;br /&gt;
        uint16_t t_x10 = (uint32_t)adc_val * 1100 / 1024;&lt;br /&gt;
&lt;br /&gt;
        uint8_t cele     = t_x10 / 10;&lt;br /&gt;
        uint8_t desatiny = t_x10 % 10;&lt;br /&gt;
&lt;br /&gt;
        /* Debug na UART */&lt;br /&gt;
        printf(&amp;quot;ADC=%4u  T=%2u.%1u C\r\n&amp;quot;, adc_val, cele, desatiny);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 1: nadpis */&lt;br /&gt;
        lcd_setCursor(1, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Senzor LM35 &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 2: teplota so znakom ° z CGRAM pozície 1 */&lt;br /&gt;
        sprintf(riadok, &amp;quot; T = %2u.%1u \x01&amp;quot;&amp;quot;C    &amp;quot;, cele, desatiny);&lt;br /&gt;
        lcd_setCursor(2, 0);&lt;br /&gt;
        lcd_puts(riadok);&lt;br /&gt;
&lt;br /&gt;
        /* Riadok 3: &amp;quot;Jožko Mrkvička&amp;quot; s vlastnými ž a č */&lt;br /&gt;
        lcd_setCursor(3, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Jo\x02ko Mrkvi\x03ka &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        _delay_ms(500);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Program funguje ako vidno na videu - je na ňom vidieť aktuálnu teplotu na displeji, ktorá reaguje na dotyk prsta (zahriatie).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-video.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategória:AVR]]&lt;br /&gt;
[[Kategória:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19492</id>
		<title>Vzorové riešenie MIPS 2026</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Vzorov%C3%A9_rie%C5%A1enie_MIPS_2026&amp;diff=19492"/>
		<updated>2026-06-09T06:47:24Z</updated>

		<summary type="html">&lt;p&gt;Balogh: Vytvorená stránka „Vzorové riešenie MIPS 2026  Praktická časť skúšky z predmetu MIPS / LS2026 - &amp;#039;&amp;#039;&amp;#039;Richard Balogh&amp;#039;&amp;#039;&amp;#039;   == Zadanie ==  Dostali ste neznámu elektronickú súčiastku spolu s jej datasheet-om. Vašou úlohou je z datasheetu zistiť, o aký snímač ide, identifikovať jeho vývody a navrhnúť zapojenie k mikroprocesoru ATmega328P. Analógový výstup snímača pripojte na vstup ADC0 (pin PC0). Na LCD displeji EA-DOGM163 zobrazte aktuálnu teplotu podľa predpís…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vzorové riešenie MIPS 2026&lt;br /&gt;
&lt;br /&gt;
Praktická časť skúšky z predmetu MIPS / LS2026 - &#039;&#039;&#039;Richard Balogh&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Dostali ste neznámu elektronickú súčiastku spolu s jej datasheet-om. Vašou úlohou je z datasheetu zistiť, o aký snímač ide, identifikovať jeho vývody a navrhnúť zapojenie k mikroprocesoru ATmega328P. Analógový výstup snímača pripojte na vstup ADC0 (pin PC0). Na LCD displeji EA-DOGM163 zobrazte aktuálnu teplotu podľa predpísaného formátu.&lt;br /&gt;
&lt;br /&gt;
 +----------------+&lt;br /&gt;
 | Snimac teploty |&lt;br /&gt;
 | T = 25.3 °C    |&lt;br /&gt;
 | Meno Priezvisk |&lt;br /&gt;
 +----------------+&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;K dispozícii máte:&#039;&#039;&#039; &lt;br /&gt;
* Rozširujúci modul s displejom EA-DOGM163 &lt;br /&gt;
* Knižnice lcd.h / lcd.c a uart.h / uart.c z cvičení&lt;br /&gt;
* [https://www.ti.com/lit/ds/symlink/lm35.pdf Datasheet obvodu LM35]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza a opis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Z datasheetu zistíme, že súčiastka LM35DZ je analógový snímač teploty v puzdre TO-92 s lineárnym výstupom &#039;&#039;&#039;10 mV/°C&#039;&#039;&#039;. Má tri vývody — pri pohľade spredu (plochá strana k nám, nožičky smerujú dole) sú zľava: +Vs (napájanie), Vout (analógový výstup) a GND (zem). Napájací rozsah je 4–30 V, takže 5 V z dosky Acrob vyhovuje.&lt;br /&gt;
&lt;br /&gt;
Zapojenie je jednoduché — napájanie na 5V, zem na GND a výstup Vout priamo na pin PC0 (ADC0). Nie je potrebný žiadny prídavný rezistor ani kondenzátor.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-schema.svg|800px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Schéma zapojenia LM35DZ k ATmega328P.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ak sa zo schémy zapojenia neviete celkom zorientovať, možno vám pomôže fotografia zapojenia priamo na doštičke.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-zapojenie.jpg|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Zapojenie na doštičke.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Prepočet ADC na teplotu ===&lt;br /&gt;
&lt;br /&gt;
ATmega328P má 10-bitový ADC prevodník (rozsah 0–1023). S referenčným napätím AVcc = 5 V je rozlíšenie jedného kroku:&lt;br /&gt;
&lt;br /&gt;
 5000 mV / 1024 = 4,88 mV/krok&lt;br /&gt;
&lt;br /&gt;
Keďže LM35 dáva 10 mV/°C, rozlíšenie merania je približne 0,5 °C. Prepočet na teplotu v desatinách stupňa (celočíselná aritmetika):&lt;br /&gt;
&lt;br /&gt;
 t_x10 = adc_val × 5000 / 1024&lt;br /&gt;
&lt;br /&gt;
Pozor na pretečenie — hodnota 1023 × 5000 = 5 115 000, čo sa nezmestí do 16-bitového typu (max 65 535). Preto je nutné pretypovanie na &amp;lt;code&amp;gt;uint32_t&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t t_x10 = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
uint8_t  cele     = t_x10 / 10;    // celá časť&lt;br /&gt;
uint8_t  desatiny = t_x10 % 10;    // desatinná časť&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Program najprv inicializuje UART (pre ladenie cez &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt;), LCD displej a ADC prevodník. &lt;br /&gt;
V hlavnej slučke periodicky číta hodnotu z ADC0, prepočíta ju na teplotu a zobrazí na displej.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;&lt;br /&gt;
#include &amp;quot;adc.h&amp;quot;&lt;br /&gt;
#include &amp;quot;lcd.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    uart_init();&lt;br /&gt;
    stdout = &amp;amp;mystdout;&lt;br /&gt;
&lt;br /&gt;
    lcd_init();&lt;br /&gt;
    lcd_bklt(1);&lt;br /&gt;
    lcd_command(0x0C);&lt;br /&gt;
&lt;br /&gt;
    adc_init();&lt;br /&gt;
&lt;br /&gt;
    char riadok[17];&lt;br /&gt;
&lt;br /&gt;
    while (1)&lt;br /&gt;
    {&lt;br /&gt;
        uint16_t adc_val = adc_read(0);&lt;br /&gt;
        uint16_t t_x10   = (uint32_t)adc_val * 5000 / 1024;&lt;br /&gt;
        uint8_t  cele     = t_x10 / 10;&lt;br /&gt;
        uint8_t  desatiny = t_x10 % 10;&lt;br /&gt;
&lt;br /&gt;
        printf(&amp;quot;ADC=%4u  T=%2u.%1u C\r\n&amp;quot;, adc_val, cele, desatiny);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(1, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Snimac teploty &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        sprintf(riadok, &amp;quot; T = %2u.%1u oC    &amp;quot;, cele, desatiny);&lt;br /&gt;
        lcd_setCursor(2, 0);&lt;br /&gt;
        lcd_puts(riadok);&lt;br /&gt;
&lt;br /&gt;
        lcd_setCursor(3, 0);&lt;br /&gt;
        lcd_puts(&amp;quot; Meno Priezvisko &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        _delay_ms(100);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Program fungoval na prvý pokus. Na videu je vidieť aktuálnu teplotu na displeji, ktorá reaguje na dotyk prsta (zahriatie).&lt;br /&gt;
&lt;br /&gt;
[[Súbor:MIPS2026-LM35DZ-video.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategória:AVR]]&lt;br /&gt;
[[Kategória:MIPS]]&lt;/div&gt;</summary>
		<author><name>Balogh</name></author>
	</entry>
</feed>