Bezdrôtová komunikácia v pásme 433 MHz.: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 54: | Riadok 54: | ||
Celý projekt je možné rozdeliť na 2 časti, ktoré budú popísané postupne | Celý projekt je možné rozdeliť na 2 časti, ktoré budú popísané postupne | ||
* 1. Transmitter | |||
* 2. Receiver | |||
===Transmitter=== | |||
Vysielacia časť (Transmitter) je riadiacou časťou konštrukcie, ktorá vysiela riadiace signály pre prijímaciu časť (Receiver). | |||
'''Vysielacia časť (Transmitter)''' je riadiacou časťou konštrukcie, ktorá vysiela riadiace signály pre prijímaciu časť (Receiver). | |||
Ako bolo vyššie spomenuté, základ tvorí vývojová doska ACROB, ktorá disponuje mikroprocesorom ATmega328P ktorý sníma pozíciu dvoch analógových joyistickov, na základe čoho je vysielaný reťazec znakov do RF modulu. | Ako bolo vyššie spomenuté, základ tvorí vývojová doska ACROB, ktorá disponuje mikroprocesorom ATmega328P ktorý sníma pozíciu dvoch analógových joyistickov, na základe čoho je vysielaný reťazec znakov do RF modulu. | ||
Snímanie pozície analógového joysticku je založené na snímaní analógového napätia v rozsahu 0 ÷ 5V (pri napájaní 5V), ktoré je snímané z bežca | |||
Snímanie pozície analógového joysticku je založené na snímaní analógového napätia v rozsahu 0 ÷ 5V (pri napájaní 5V), ktoré je snímané z bežca 10KOhm potenciometru umiestnenom v konštrukcii spomínaného joysticku. Pre každé z kolies je vyhradený jeden joystick. V pôvodnom stave je bežec nastavený na stred dráhy, čím je na výstupe napätie 2,5V. Tento signál je privedený na piny PC4 a PC5 na ktorých sa nachádza aj periféria analógovo digitálneho prevodníka so vstupmi ADC4 a ADC. | |||
Tieto analógové hodnoty sú procesorom spracované a prevedené na číslo, ktoré zodpovedá hodnote rýchlosti v %. Skutočnosť, že použitý typ serva je konštruovaný tak, aby sa mohol kontinuálne otáčať jedným, alebo druhým smerom, sme museli ošetriť rozdelením rozsahu na 2 polovice. | Tieto analógové hodnoty sú procesorom spracované a prevedené na číslo, ktoré zodpovedá hodnote rýchlosti v %. Skutočnosť, že použitý typ serva je konštruovaný tak, aby sa mohol kontinuálne otáčať jedným, alebo druhým smerom, sme museli ošetriť rozdelením rozsahu na 2 polovice. | ||
Analógové napätie zodpovedajúce hodnote 0 ÷ 2,5 V je prepočítané na hodnotu 0-49% a napätie 2,5 ÷ 5V je prepočítané na hodnotu 49-99%. | Analógové napätie zodpovedajúce hodnote 0 ÷ 2,5 V je prepočítané na hodnotu 0-49% a napätie 2,5 ÷ 5V je prepočítané na hodnotu 49-99%. | ||
Pre komunikáciu s RF modulom je použitá sériová linka, ktorá komunikuje na prenosovej rýchlosti | Pre komunikáciu s RF modulom je použitá sériová linka, ktorá komunikuje na prenosovej rýchlosti 9600 Bd. Pin RF modulu s názvom Serial Data bol pripojený k PD1 (TxD). Reťazec ktorý je posielaný z mikroprocesoru do RF modulu vyzerá nasledovne. | ||
OBRÁZOK TOHO RETAZCA | |||
Na začiatku vysielaného reťazca sa vysiela identifikátor, ktorý je konštantný a skladá sa zo znakov 5A*. Za ním nasleduje znak, ktorý rozhoduje o výbere pravého, resp. ľavého motora. Za ním nasleduje znak M (Motor) a znak S (speed). Za týmito znakmi sú vyslané 2 posledné znaky, ktoré reprezentujú percentuálne číslo rýchlosti. Tieto rámce sú vysielané s 10ms odstupom, ktorý bol experimentálne zvolený. | Na začiatku vysielaného reťazca sa vysiela identifikátor, ktorý je konštantný a skladá sa zo znakov 5A*. Za ním nasleduje znak, ktorý rozhoduje o výbere pravého, resp. ľavého motora. Za ním nasleduje znak M (Motor) a znak S (speed). Za týmito znakmi sú vyslané 2 posledné znaky, ktoré reprezentujú percentuálne číslo rýchlosti. Tieto rámce sú vysielané s 10ms odstupom, ktorý bol experimentálne zvolený. | ||
===Receiver=== | |||
'''Prijímacia časť (Receiver)''' je riadenou časťou konštrukcie, ktorá vysielané dáta prijíma a spracováva. | |||
Je podobne ako vysielacia postavená na vývojovej doske ACROB s mikroprocesorom ATmega328P, ktorá je umiestnená na 3 kolesovom podvozku robota ACROB. | |||
Príjmanie dát zabezpečuje RF modul, ktorý je zapojený podľa obrázku nižšie. Dáta sú privedené na pin PD0 (RxD). Tieto dáta sú spracované a dekódované mikroprocesorom tak, aby bolo možné definovať, ktorý z motorov a akou rýchlosťou sa majú točiť. | |||
Tieto inštrukcie sú prevedené na šírku pulzu PWM signálu príslušného motoru, ktorý má byť riadený. | |||
Pri frekvencii 50Hz a šírke impulzu 1,5ms sa motor neotáča. Pre maximálnu rýchlosť otáčania v smere hodinových ručičiek je potrebná šírka 1,3ms a v protismere hodinových ručičiek je šírka impulzu 1,7ms pri tej istej frekvencii. Maximálne otáčky dosiahnuté pri napájacom napätí 5 V sú 50 min-1. | |||
Verzia z 21:41, 28. december 2014
Autori: | Vladislav Bača |
Marcel Galovič | |
Študijný odbor: | Aplikovaná mechatronika |
Ročník: | 2. Ing. (2014) |
Zadanie
Treba popísať teóriu okolo bezdrôtovej komunikácie v tomto pásme, spôsoby prenosu dát, princíp AM a CPCA moduácie, RSSI a pod. Ďalej treba vyskúšať možnosti komunikačných modulov Parallax TrX module a naprogramovať bezpečný prenos dát medzi dvoma procesorovými modulmi.
Literatúra:
- 433 MHz RF Transceiver - prehlaď (parallax.com)
- 433 MHz RF Transceiver - Datasheet (.pdf)
Literatúra:
- Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
Analýza
V rámci projektu sme mali zadanú úlohu, ktorá mala byť riešená na vývojovej doske ACROB (ACROB dokumentácia), ktorá disponuje mikroprocesorom ATmega328P. Bezdrôtová komunikácia mala byť riešená pomocou komunikačných modulou Parallax 433 MHz RF Transceiver (Parallax 433MHz transceiver), ktorý komunikuje s mikroprocesorom pomocou periférie UART.
Schéma zapojenia vývodov RF modulu:
Našou snahou bolo vytvoriť jednoduchú aplikáciu s dostupným materiálom. Z tohto hľadiska sme sa rozhodli pre vytvorenie diaľkovo ovládaného jednoduchého 3 kolesového vozidla, ktoré bude poháňané dvomi Parallax Continuous Rotation Servo (Parallax Continuous Rotation Servo).
Pre riadenie tohto vozidla bol zvolený Joystick Dualshock 2 z hernej konzoly Playstation 2, ktorý obsahuje 2 analógové joysticky ktoré snímajú pohyb v 2 osiach. Princíp tohto mechanizmu je znázornený nižšie.
Schéma zapojenia analógového joysticku:
Popis riešenia
Celý projekt je možné rozdeliť na 2 časti, ktoré budú popísané postupne
- 1. Transmitter
- 2. Receiver
Transmitter
Vysielacia časť (Transmitter) je riadiacou časťou konštrukcie, ktorá vysiela riadiace signály pre prijímaciu časť (Receiver). Ako bolo vyššie spomenuté, základ tvorí vývojová doska ACROB, ktorá disponuje mikroprocesorom ATmega328P ktorý sníma pozíciu dvoch analógových joyistickov, na základe čoho je vysielaný reťazec znakov do RF modulu.
Snímanie pozície analógového joysticku je založené na snímaní analógového napätia v rozsahu 0 ÷ 5V (pri napájaní 5V), ktoré je snímané z bežca 10KOhm potenciometru umiestnenom v konštrukcii spomínaného joysticku. Pre každé z kolies je vyhradený jeden joystick. V pôvodnom stave je bežec nastavený na stred dráhy, čím je na výstupe napätie 2,5V. Tento signál je privedený na piny PC4 a PC5 na ktorých sa nachádza aj periféria analógovo digitálneho prevodníka so vstupmi ADC4 a ADC. Tieto analógové hodnoty sú procesorom spracované a prevedené na číslo, ktoré zodpovedá hodnote rýchlosti v %. Skutočnosť, že použitý typ serva je konštruovaný tak, aby sa mohol kontinuálne otáčať jedným, alebo druhým smerom, sme museli ošetriť rozdelením rozsahu na 2 polovice. Analógové napätie zodpovedajúce hodnote 0 ÷ 2,5 V je prepočítané na hodnotu 0-49% a napätie 2,5 ÷ 5V je prepočítané na hodnotu 49-99%. Pre komunikáciu s RF modulom je použitá sériová linka, ktorá komunikuje na prenosovej rýchlosti 9600 Bd. Pin RF modulu s názvom Serial Data bol pripojený k PD1 (TxD). Reťazec ktorý je posielaný z mikroprocesoru do RF modulu vyzerá nasledovne.
OBRÁZOK TOHO RETAZCA
Na začiatku vysielaného reťazca sa vysiela identifikátor, ktorý je konštantný a skladá sa zo znakov 5A*. Za ním nasleduje znak, ktorý rozhoduje o výbere pravého, resp. ľavého motora. Za ním nasleduje znak M (Motor) a znak S (speed). Za týmito znakmi sú vyslané 2 posledné znaky, ktoré reprezentujú percentuálne číslo rýchlosti. Tieto rámce sú vysielané s 10ms odstupom, ktorý bol experimentálne zvolený.
Receiver
Prijímacia časť (Receiver) je riadenou časťou konštrukcie, ktorá vysielané dáta prijíma a spracováva. Je podobne ako vysielacia postavená na vývojovej doske ACROB s mikroprocesorom ATmega328P, ktorá je umiestnená na 3 kolesovom podvozku robota ACROB. Príjmanie dát zabezpečuje RF modul, ktorý je zapojený podľa obrázku nižšie. Dáta sú privedené na pin PD0 (RxD). Tieto dáta sú spracované a dekódované mikroprocesorom tak, aby bolo možné definovať, ktorý z motorov a akou rýchlosťou sa majú točiť. Tieto inštrukcie sú prevedené na šírku pulzu PWM signálu príslušného motoru, ktorý má byť riadený. Pri frekvencii 50Hz a šírke impulzu 1,5ms sa motor neotáča. Pre maximálnu rýchlosť otáčania v smere hodinových ručičiek je potrebná šírka 1,3ms a v protismere hodinových ručičiek je šírka impulzu 1,7ms pri tej istej frekvencii. Maximálne otáčky dosiahnuté pri napájacom napätí 5 V sú 50 min-1.
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru (nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo nahrať už aspoň 10 študentov.
Algoritmus a program
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
Vyberte podstatné časti zdrojového kódu, použite na to prostredie source:
/* A nezabudnite zdroják hojne komentovať */
int main(void) {
printf("Hello, World!\n");
return(0);
}
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
Zdrojový kód: serial.h a main.c
Overenie
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje). Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, odfotografujte ho.
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.