Toto je starší verze dokumentu!
Většina mobilních telefonů a MP3 přehrávačů mají v sobě automaticky radiový přijímač. Není se čemu divit, výrobci je integrovali do velmi malých pouzder a při jejich masové výrobě je cena příznivá. Všechny potřebné funkce mají již v sobě (RDS, potlačení šumu, AGC, automatické vyhledávání stanic, atd.), takže stačí pouze přidat výstupní zesilovač, nebo využít digitálních audio výstupů. Nejvíce mě zaujala nabídka Silicon Labs. Nabízí mimo přijímačů i vysílače nebo kombinace obojího. Vysílače umožňují velmi jednoduše spojit MP3 přehrávač nebo mobilní telefon přímo s autorádiem. (pozn.: Česká legislativa něco takového neumožňuje)
Vybral jsem si modul FM rádia Si4703. Ten má v sobě zabudovaný i RDS procesor a další funkce. Zapsáním hodnoty do příslušného registru ovládáme VCO (oscilátor řízený napětím), s pomocí kterého obvod naladí frekvenci. Modul již má audiozesilovač, takže stačí jen připojit sluchátka, které slouží zároveň i jako anténa.
Jako zobrazovací médium nám poslouží kompaktní OLED displej s řadičem SSD1306, rozlišením 128×64 pixelů a úhlopříčkou 0.96 palce. Komunikace probíhá pomocí sběrnice i2c.
Budeme ho ovládat pomocí vývojového kitu FRDM-KL25Z.
Vývojové prostředí mbed.org umožňuje vyhledat a importovat knihovny, které vytvořili ostatní uživatelé. Takto se podařilo získat knihovny pro FM modul i displej. Následující vytvořený kód má za úkol zobrazit hlavní obrazovku, na které bude zobrazena aktuálně naladěná frekvence, možnost manuálního i automatického ladění, nastavení hlasitosti a dat z RDS.
Velký počet proměnných, které jsou třeba například pro uložení nastavení mě pomohly zpřehlednit struktury
// Prostor pro ulozeni nastaveni typedef struct{ bool rds; int volume; bool tuning; }Menu_Setup; Menu_Setup setup; // Prostor pro ulozeni aktualni frekvence typedef struct{ int current; int high; int low; }Frequency_Info; Frequency_Info frequency;
Ukázka funkčnosti
Výsledkem projektu je vytvoření aplikace, které spojuje modul rádia, displeje a tři tlačítka v použitelný radiopřijímač. Kromě automatického ladění je možné frekvenci zadat i ručně, je zde i možnost ovládání hlasitosti. Pomocí dat z RDS se podařilo zobrazit jen název u jedné stanice, a to u EVROPY 2. Celý zdrojový kód je uveřejněný na stránkách mbed Projekt MPOA Si4703 .