This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
project:eaton:proj_eaton [2018/08/20 13:05] xkubalik created |
project:eaton:proj_eaton [2018/10/25 10:43] (current) xkubalik |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Projekty zadané společností EATON ====== | ====== Projekty zadané společností EATON ====== | ||
+ | |||
+ | ===== Knihovní funkce pro mikroprocesor ===== | ||
+ | **Cíle:** | ||
+ | • Prozkoumejte, jak je naimplementován blok kontrolního součtu, časovače, I2C komunikační sběrnice, pulzně šířkové modulace na zadaném mikrokontroléru. | ||
+ | • Zjistěte, které části jsou již implementovány (Hardware Abstract Layer) . | ||
+ | • Navrhněte seznam knihovních funkcí (Application Programming Interface), které jsou potřeba naimplementovat. | ||
+ | • Navržené knihovní funkce naimplementujte v jazyku C. | ||
+ | • Výsledné řešení otestujte. | ||
+ | • Pro veškeré navržené funkce vytvořte dokumentaci v dOxygen formátu. | ||
+ | |||
+ | **Výstupy:** Knihovní funkce a dokumentace v dOxygen formátu pro: | ||
+ | • blok kontrolního součtu (CRC) | ||
+ | • časovače (CCTIMER, SWTIMER) | ||
+ | • I2C komunikační sběrnice (I2C) | ||
+ | • pulzně šířkové modulace (PWM) | ||
+ | |||
+ | **Otestovat tyto knihovní funkce :** | ||
+ | • Spočítat kontrolní součet celé paměti a porovnat jej s očekávaným výsledkem. | ||
+ | • S použitím čítače a sensoru zjistit rychlost a směr otáčení hřídele motoru. | ||
+ | • Otestovat komunikaci po sběrnici s obvodem reálného času připojeného přes Arduino shield. | ||
+ | • Otestovat řízení motoru pomocí H-můstku připojeného přes Arduino shield. | ||
+ | • Otestovat funkčnost dostupných led diod. | ||
+ | |||
+ | ===== Knihovna logovacích funkcí pro zachycení chyb ===== | ||
+ | |||
+ | **Cíle:** | ||
+ | • Prostudujte způsob řešení pro zpracování chybových výstupu periferií procesoru. | ||
+ | • Navrhněte knihovní funkce, které budou obstarávat obsluhu chyb a chybový výstup. | ||
+ | • Knihovna bude podporovat různé typy výstupů v závislosti na nastavení preprocesorových maker (časová značka, jméno souboru – modulu, který hlásí chybovou hlášku, stupeň důležitosti) | ||
+ | • Knihovna bude umožňovat volbu výstupu pro odesílání chybových zpráv (do FLASH paměti, na sériový výstup) v závislosti na nastavení preprocesorových maker. | ||
+ | • Při implementaci je nutné brát v úvahu výslednou velikost chybového výstupu, která by měla být optimalizována na co nejmenší velikost. Pro dekódování optimalizovaného výstupu použijte script, který zkomprimovaná data načte a zobrazí je v čitelné podobě + možnost výstupu do JSON formátu. | ||
+ | • Navržené řešení implementujte jako knihovní funkce v jazyku C pro zadaný mikrokontrolér. | ||
+ | • V jazyce Python napište script pro následné dekódování. | ||
+ | • Výsledné řešení otestujte. | ||
+ | |||
+ | **Výstupy:** | ||
+ | • Knihovní funkce, které budou obstarávat obsluhu chyb a chybový výstup. | ||
+ | • Script v jazyce Python pro následné dekódování logu. | ||
+ | • Test logovacího systému s pomocí RaspberyPi, které bude řídit testovaný mikrokontrolér. | ||
+ | |||
+ | ===== Reálný model pásového dopravníku řízený uC ===== | ||
+ | |||
+ | **Cíle:** | ||
+ | • Prozkoumejte, jak jsou naimplementované časovače a pulzně šířková modulace na zadaném mikrokontroléru (nastudovat dané části ve specifikaci mikrokontroléru). | ||
+ | • Zjistěte, které části jsou již naimplementovány (Hardware Abstract Layer). | ||
+ | • Navrhněte seznam knihovních funkcí (Application Programming Interface), které jsou potřeba naimplementovat. | ||
+ | • Navrženou knihovnu funkcí naimplementovat v jazyku C. | ||
+ | • Sestavte pásový dopravník z již hotových součástí stavebnice merkur. | ||
+ | • Osaďte pásový dopravník DC motorem a rotačním snímačem. | ||
+ | • V jazyce C naimplementujte vyčítání pozice dopravníku a následné řízení motoru s možností přímého řízení pozice dopravníku. | ||
+ | • Vyzkoušejte různé typy řízení (PID regulace). | ||
+ | • Pro knihovní funkce vytvořte dokumentaci v dOxygen formátu. | ||
+ | • Výsledné řešení otestujte. | ||
+ | |||
+ | **Výstupy:** | ||
+ | • Funkční model pásového dopravníku sestaveného ze stavebnice merkur. | ||
+ | • Knihovní funkce a dokumentace v dOxygen formátu k řízení motoru a optimalizace k omezení času, kdy oba tranzistory v H-můstku jsou aktivní. | ||
+ | • Knihovní funkce a dokumentace v dOxygen formátu k vyčítání pozice a rychlosti dopravníku. | ||
+ | • Knihovní funkce a dokumentace v dOxygen formátu k PID regulaci. | ||
+ | • Test - vstupem bude pozice dopravníku a dopravník musí dané pozice dosáhnout co nejrychleji s danou přesností. | ||
+ | |||
+ | ===== Grafické uživatelské rozhraní (GUI) pro definování funkcionality vývodů mikrokontroléru a generování kostry kódu v jazyku C ===== | ||
+ | |||
+ | **Cíle:** | ||
+ | • Prozkoumejte, jak je implementován blok přiřazení funkce k vývodům mikrokontroléru (nastudovat specifikaci IO_CTRL bloku) pozn.: IO_CTRL - ovládá propojení mezi vývodem na ASICu a periferií uvnitř obvodu (například přiřadí funkci I2C.SDA nebo I2C.SCL k vývodům). | ||
+ | • Zjistěte, které části jsou již naimplementovány (Hardware Abstract Layer). | ||
+ | • Navrhněte implementaci uživatelského rozhraní v jazyce Python (inspirujte se jinými výrobci mikrořadičů - STM32CubeMX). | ||
+ | • Všechna možná nastavení přiřazení v mikrořadiči budou popsána v JSON formátu. | ||
+ | • Uživatelské rozhraní umožní čtení a zápis uživatelem zvolené konfigurace ve formátu JSON. | ||
+ | • Uživatelské rozhraní umožní vygenerovat kostru v jazyku C, která bude implementovat funkcionalitu (přiřazení funkce k vývodu obvodu), která byla nastavena uživatelem v uživatelském rozhraní. | ||
+ | • Navržené řešení implementujte a následně otestujte. | ||
+ | |||
+ | **Výstupy:** | ||
+ | • Grafické rozhraní v jazyce Python včetně dokumentace. | ||
+ | • Možnost generování C kódu z grafického rozhraní. | ||
+ | • Možnost uložení a načtení aktuálního nastavení v grafickém rozhraní. | ||
+ | • Možnost načíst definici přiřazení funkcionality specifické pro daný mikrořadič. | ||
+ | |||
+ | ===== Grafické uživatelské rozhraní (GUI) pro nastavení hodinových stromů v mikrokontroléru a generování kostry kódu v jazyku C ===== | ||
+ | |||
+ | **Cíle:** | ||
+ | • Prozkoumat jak je implementován blok přiřazení hodinových stromů v mikrokontroléru (nastudovat specifikaci CLK_NRES bloku) pozn.: CLK_NRES - ovládá propojení hodinových stromů mezi vstupním hodinovým signálem a periferií, dále umožňuje nastavení hodinového závěsu (PLL) a různé hodinové děličky. | ||
+ | • Hodinové stromy jsou popsány v JSON formátu a můžou být tím pádem generické. | ||
+ | • Všechny omezující podmínky jsou popsány v JSON formátu. | ||
+ | • Prozkoumejte, jaké jsou možnosti hodinových cest v mikrokontroléru. | ||
+ | • Zjistěte, jak jsou implementovány stávající funkce (Hardware Abstract Layer). | ||
+ | • Navrhněte implementaci uživatelského rozhraní (inspirujte se jinými výrobci mikrořadičů - STM32CubeMX). | ||
+ | • Uživatelské rozhraní umožní čtení a zápis zvolené konfigurace ve formátu XML/JSON/jiné. | ||
+ | • Uživatelské rozhraní umožní vygenerovat kostru v jazyku C, která bude implementovat funkcionalitu (nastavení hodin obvodu a periferií), která byla nastavena uživatelem v uživatelském rozhraní. | ||
+ | • Uživatelské rozhraní kontroluje nastavení, zda-li dává smysl a respektuje pravidla definovaná specifikací (např. že max. výstupní frekvence PLL je 100MHz). | ||
+ | • Navržené řešení zrealizujte a řádně otestujte. | ||
+ | |||
+ | **Výstupy:** | ||
+ | • Grafické rozhraní v Python včetně dokumentace. | ||
+ | • Možnost generování C kódu z grafického rozhraní. | ||
+ | • Možnost uložení a načtení aktuálního nastavení v grafickém rozhraní. | ||
+ | • Možnost načíst omezující podmínky pro konfiguraci hodinových stromů v grafickém rozhraní. | ||
+ | • Možnost načíst definici (topologii) hodinových stromů v grafickém rozhraní | ||
+ | |||
+ | ===== Sběr dat z elektroměrů pomocí RaspberryPI ===== | ||
+ | |||
+ | **Cíle:** | ||
+ | • Proveďte průzkum trhu elektroměrů používaných pro datová centra. | ||
+ | • Nainstalujte a nakonfigurujte NUT (Network UPS Tools) na RaspberryPi. | ||
+ | • Navrhněte a naimplementujte podporu Eaton zařízení (resp. zařízení od našich konkurentů) do NUTu. | ||
+ | • Při návrhu zohledněte návrhové vzory projektu NUT. | ||
+ | • Výsledné zařízení otestujte na reálném hardware a vytvořte několik ukázkových příkladu použití. | ||
+ | • Pro výsledné řešení vytvořte dokumentaci. | ||
+ | |||
+ | **Výstupy:** | ||
+ | • Předpokládaný výstup práce zahrnuje zprovoznění NUTu na RaspberryPi a rozšíření jeho současné implementace o nová zařízení, a to o elektroměry používající SNMP protokol: přidáním SNMP objektů, nezbytné rozšíření kódu NUTu (přidání nového ovladače, popř. nového namespace). | ||
+ | • RaspberryPi by mělo být schopné číst data z vybraných zařízení. | ||
+ | • Kód bude dokumentován a testován. | ||
+ | • Dokumentace k vytvořenému řešení. | ||
+ | |||
+ | ===== Monitorování dieselového generátoru pomocí RaspberryPI ===== | ||
+ | |||
+ | **Cíle:** | ||
+ | • Proveďte průzkum trhu dieselgenerátorů se zaměřením na jejich dostupné komunikační rozhraní. | ||
+ | • Navrhněte a implementujte Modbus TCP a RTU ovladače do NUTu na platformě RaspberryPi. | ||
+ | • Implementovanou podporu sběrnice Modbus použijte ke komunikaci s dieselovým generátorem (bude poskytnuta specifikace ke konkrétnímu zařízení) a sběru dat. | ||
+ | • Pro výsledné řešení vytvořte několik přikladu pro ověření správné funkce komunikace s dieselagregatem. | ||
+ | • Pro realizované řešení vytvořte dokumentaci. | ||
+ | |||
+ | |||
+ | **Výstupy:** | ||
+ | Předpokládaný výstup práce zahrnuje zprovoznění NUTu na RaspberryPi a rozšíření jeho současné implementace o nový ovladač Modbusu TCP/RTU. | ||
+ | RaspberryPi by mělo být schopné použít Modbus TCP/RTU převodník ke komunikaci s dieselovým generátorem. | ||
+ | Výsledné řešení bude dokumentováno a testováno s reálným dieselgeneratorem. | ||
+ |