Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:p2p-nrf24l01

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2015:p2p-nrf24l01 [2016/01/17 18:18]
Petr Sedláček [Hardware a vývojová platforma]
2015:p2p-nrf24l01 [2016/01/17 21:22] (aktuální)
Petr Sedláček [Demonstrační video]
Řádek 5: Řádek 5:
 ==== Hardware a vývojová platforma ==== ==== Hardware a vývojová platforma ====
  
-Pro projekt byla použita hardwarová platforma FRDM od společnosti Freescale (NXP) s procesorem KL25Z s jádrem Cortex M0+: [[http://​www.nxp.com/​products/​software-and-tools/​hardware-development-tools/​freedom-development-boards/​freedom-development-platform-for-kinetis-kl14-kl15-kl24-kl25-mcus:​FRDM-KL25Z|FRDM-KL25Z]]. Jako transceivery byly použity moduly nRF24L01+ od společnosti Nordic Semiconductor s integrovanou anténou. Moduly jsou velice kompaktní a je možné si na nich nastavit kmitočet v rozsahu 2400 - 2483 MHz, dále také datovou rychlost a výkon vysílače. Distributoři tvrdí, že dosah transceiveru je až 100 metrů ve volném prostoru. Vývojová deska a její pinout je uveden na obrázku níže. Pod ním je na obrázku samotný modul nRF24L01+. ​+Pro projekt byla použita hardwarová platforma FRDM od společnosti Freescale (NXP) s procesorem KL25Z s jádrem Cortex M0+: [[http://​www.nxp.com/​products/​software-and-tools/​hardware-development-tools/​freedom-development-boards/​freedom-development-platform-for-kinetis-kl14-kl15-kl24-kl25-mcus:​FRDM-KL25Z|FRDM-KL25Z]]. Jako transceivery byly použity moduly nRF24L01+ od společnosti Nordic Semiconductor s integrovanou anténou. Moduly jsou velice kompaktní a je možné si na nich nastavit kmitočet v rozsahu 2400 - 2483 MHz, dále také datovou rychlost a výkon vysílače. Distributoři tvrdí, že dosah transceiveru je až 100 metrů ve volném prostoru. Vývojová deska a její pinout je uveden na obrázku níže. Pod ním je na obrázku samotný modul nRF24L01+. Na třetím obrázku je uvedeno blokové schéma modulu nRF24L01.
  
-{{ :​2015:​2015_nrf24l01_frdm.png?​300 |}}+{{ :​2015:​2015_nrf24l01_frdm.png?​500 |}}
  
-{{ :​2015:​2015_nrf24l01_nrf24l01.jpg?​300 |}}+{{ :​2015:​2015_nrf24l01_nrf24l01.jpg?​400 |}}
  
-Modul je s vývojovou ​desku spojen pomocí vodičů přes sběrnici SPI. K desce bylo nutno připájet piny, aby bylo možné obě zařízení propojit. Pro komunikaci bylo zvoleno SPI na pinech PTD1 - PTD3, viz obrázek. Zde se však objevila drobná vada, na pinu PTD1 je signál SCK sběrnice SPI, avšak zároveň také ovládání modré LED. To způsobuje svit modré LED při připojení SPI, signál SCK prakticky funguje jako PWM pro modrou LED. Tento designový krok mi přijde přinejmenším velmi nelogický. Řešení by spočívalo v připojení modulu na jinou sběrnici SPI, avšak kvůli tomu by se musely zbytečně pájet další piny, což je pouze kvůli kosmetické vadě zbytečné. Svit modré LED tak indikuje činnost SPI.+{{ :​2015:​2015_nrf24l01_block.png?​500 |}} 
 + 
 +Modul je s vývojovou ​deskou ​spojen pomocí vodičů přes sběrnici SPI. K desce bylo nutno připájet piny, aby bylo možné obě zařízení propojit. Pro komunikaci bylo zvoleno SPI na pinech PTD1 - PTD3, viz obrázek. Zde se však objevila drobná vada, na pinu PTD1 je signál SCK sběrnice SPI, avšak zároveň také ovládání modré LED. To způsobuje svit modré LED při připojení SPI, signál SCK prakticky funguje jako PWM pro modrou LED. Tento designový krok mi přijde přinejmenším velmi nelogický. Řešení by spočívalo v připojení modulu na jinou sběrnici SPI, avšak kvůli tomu by se musely zbytečně pájet další piny, což je pouze kvůli kosmetické vadě zbytečné. Svit modré LED tak indikuje činnost SPI.
  
 Původně bylo pro vývoj firmwaru použito prostředí Freescale Kinetis, avšak po jednom dni neúspěšné práce byl pro zachování pevných nervů zvolen mbed, což nakonec přineslo řadu výhod. Asi největší z nich spočívala v již hotové knihovně, která se snadno do projektu importovala. Odkaz na ni je zde: https://​developer.mbed.org/​cookbook/​nRF24L01-wireless-transceiver. Původně bylo pro vývoj firmwaru použito prostředí Freescale Kinetis, avšak po jednom dni neúspěšné práce byl pro zachování pevných nervů zvolen mbed, což nakonec přineslo řadu výhod. Asi největší z nich spočívala v již hotové knihovně, která se snadno do projektu importovala. Odkaz na ni je zde: https://​developer.mbed.org/​cookbook/​nRF24L01-wireless-transceiver.
Řádek 322: Řádek 324:
 } }
 </​code>​ </​code>​
 +
 +==== Demonstrační video ====
 +
 +Následuje video, které demonstruje funkčnost spoje. Na začátku videa je ukázáno nastavení modulu pomocí konzole. Po nastavení je ukázáno posílání zpráv při zadávání znaků z klávesnice. Nakonec je ukázáno odesílání automatických zpráv. K notebooku je připojen vysílač, který měří parametry spoje. Ve videu je demonstrováno,​ jakým způsobem se mění parametry spoje při zvyšující se vzdálenosti mezi moduly. Při opuštění místnosti s přijímačem již dochází k výpadku spojení a tedy i zpráv, což vede ke zvýšení BER. Je však nutno podotknout, že ve videu je nastaven výstupní výkon na -6 dBm a maximum modulu je 0 dBm, dosah by se tedy určitě o několik metrů zlepšil při zvýšení výkonu. Parametry spoje nastavené ve videu jsou následující:​
 +  * Výstupní výkon transceiveru:​ -6 dBm
 +  * Frekvence: 2410 MHz
 +  * Datová rychlost: 2 Mbit/s
 +  * Interval automatických zpráv: 3 sekundy
 +
 +Adresy obou zařízení jsou nastaveny programově a musí být stejné. Stejně tak je pevně nastaveno automatické potvrzování a jsou vypnuty automatické retransmise.
 +
 +{{ youtube>​wiiTdn5zPDg?​medium }}
 +
 +V konzolovém okně se občas objeví chybné znaky, není to však tím, že by během přenosu došlo k chybě. Chyba je nejspíše někde na straně konzole.
 +==== Závěr ====
 +
 +Cílem projektu bylo naprogramovat rádiový spoj v pásmu 2,4 GHz. Výstupem projektu je plně funkční obousměrný spoj, který měří základní parametry přenosu. Spoj s uživatelem komunikuje prostřednictvím konzole na PC, kde se vypisují odeslané a přijaté zprávy a zároveň parametry přenosu a počet zpráv. V konzoli je také možné modul nastavit na požadované parametry pomocí jednoduchého menu. Zadání projektu je tedy tímto splněno.
 +
 +Repozitář k celému projektu je uveden [[https://​developer.mbed.org/​users/​petrsedlacek/​code/​MPOA_nrf24l01P/​|zde]] ​
 +
2015/p2p-nrf24l01.1453051139.txt.gz · Poslední úprava: 2016/01/17 18:18 autor: Petr Sedláček