|
|
| (25 medziľahlých úprav od jedného ďalšieho používateľa nie je zobrazených) |
| Riadok 1: |
Riadok 1: |
| Záverečný projekt predmetu MIPS / LS2026 - '''Dariia Dordiai'''
| | ... |
| | |
| | |
| == Zadanie ==
| |
| | |
| Cieľom projektu je zobraziť text na LCD displeji EA-DOGM163, ktorý je pripojený k vývojovej doske ACROB s mikrokontrolérom ATmega328P. Text je možné posúvať vľavo a vpravo po riadku displeja pomocou potenciometra. Poloha potenciometra je snímaná analógovo-digitálnym prevodníkom (ADC) a prepočítaná na pozíciu kurzora na displeji. Program umožňuje zobraziť ľubovoľný text.
| |
| | |
| [[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]
| |
| | |
| '''Literatúra:'''
| |
| * [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]
| |
| * [http://www.humanbenchmark.com/tests/reactiontime/index.php Vyskúšajte si zmerať reakciu on-line]
| |
| | |
| | |
| __TOC__
| |
| | |
| == Analýza a opis riešenia ==
| |
| | |
| Systém sa skladá z dvoch hlavných častí: vývojovej dosky ACROB s mikrokontrolérom ATmega328P a rozširujúceho modulu s LCD displejom EA-DOGM163. Externe je pripojená ovládacia krabička s potenciometrom, ktorá je k doske prepojená páskowym káblom. Otočením potenciometra sa mení napätie na analógovom vstupe, ktoré mikrokontrolér prevedie na pozíciu textu a zobrazí ho na displeji.
| |
| | |
| [[Súbor:GeminiAI-image3.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]
| |
| | |
| 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.
| |
| | |
| [[Súbor:GeminiAI-image2.jpg|400px|thumb|center|Schéma zapojenia.]]
| |
| | |
| ===Použité komponenty===
| |
| Vývojová doska ACROB — doska postavená okolo mikrokontroléra ATmega328P.
| |
| | |
| LCD modul EA-DOGM163 — rozširujúci modul pre dosku ACROB s displejom 3×16 znakov, oranžovým podsvietením, troma tlačidlami a jednou LED diódou.
| |
| | |
| Potenciometer — externý otočný potenciometer umiestnený v krabičke so stupnicou 0–10. Slúži ako vstupné zariadenie pre nastavenie polohy textu. Prepojený s doskou páskowym káblom.
| |
| | |
| === Algoritmus a program ===
| |
| | |
| Program je napísaný v jazyku C pre mikrokontrolér ATmega328P. Po inicializácii UART, LCD displeja a ADC vstupuje program do nekonečnej slučky.
| |
| V každom cykle sa načíta hodnota z potenciometra. Aby sa eliminoval šum, meranie sa opakuje päťkrát s prestávkou 5 ms a výsledok sa spriemeruje. Ak je výsledná hodnota väčšia ako 1000, automaticky sa zaokrúhli na 1023 — táto mŕtva zóna zabraňuje chveniu textu pri krajnej polohe potenciometra.
| |
| Hodnota ADC sa prepočíta na pozíciu kurzora v rozsahu 0–10 podľa vzorca:
| |
| pos = ((1023 - val) × MAX_COL) / 1023
| |
| Text sa prepíše na displej len vtedy, keď sa pozícia zmení oproti predchádzajúcemu cyklu. Tým sa predchádza zbytočnému blikaniu displeja. Riadok sa najprv vymaže funkciou lcd_clearline(), následne sa nastaví kurzor na novú pozíciu a vypíše sa text pomocou lcd_puts().
| |
| | |
| | |
| <tabs>
| |
| <tab name="AVR C-code"><syntaxhighlight lang="c++" style="background: LightYellow;">
| |
| #include <avr/io.h>
| |
| | |
| int main(void)
| |
| {
| |
| unsigned int measuredValue;
| |
| | |
| while (1)
| |
| {
| |
| /* relax */
| |
| }
| |
| | |
| return(0);
| |
| }
| |
| | |
| </syntaxhighlight ></tab>
| |
| <tab name="filename.h"><syntaxhighlight lang="c++" style="background: LightYellow;">
| |
| #include <avr/io.h>
| |
| | |
| void adc_init(void); // A/D converter initialization
| |
| | |
| unsigned int adc_read(char a_pin);
| |
| </syntaxhighlight ></tab>
| |
| </tabs>
| |
| | |
| Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x ''zdrojaky.zip'':
| |
| | |
| Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]
| |
| | |
| === Overenie ===
| |
| | |
| Ako ste overili funkciu, napríklad... Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia.
| |
| Na konci uvádzame fotku hotového zariadenia.
| |
| | |
| [[Súbor:GeminiAI-image1.jpg|400px|thumb|center|Aplikácia.]]
| |
| | |
| '''Video:'''
| |
| <center><youtube>D0UnqGm_miA</youtube></center>
| |
| | |
| == Čo by som urobil inak ==
| |
| | |
| Zamyslite sa spätne nad problémom, ktorý ste riešili a napíšte, čo sa vám nepodarilo a nabudúce by ste spravili inak.
| |
| | |
| | |
| Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.
| |
| | |
| [[Category:AVR]] [[Category:MIPS]]
| |