Ovládame Lauru

Ovládame Lauru

Čo ma k tomu viedlo

S Laurou som mal pôvodne veľké plány. Bohužiaľ môj časový priestor a hlavne chuť do roboty sú obmedzené a tak mnoho z toho, čo mám ešte v pláne nie je zrealizované. Okrem iného bolo ako ďaľší krok plánované ovládanie Laury priamo z vysielačky. Chcel som to spraviť už najmenej mesiac, ale nejako som sa k tomu nedokázal dokopať. Moja apatia pramenila hlavne z myšlienky, že ak to otvorím, a začnem do toho vŕtať, niečo môžem nadobro pokaziť a projekt Laura v tomto štádiu prototypu definitívne skončí. Potom by bola už len možnosť vyrobiť celý hardvér nanovo, a to by som chcel už (so skúsenosťami ktoré som pri výrobe nadobudol) robiť úplne inak (časovo náročnejšie).

Úpne náhodou som ale na poslednom stretku dostal „popud“ od Honzu BB (OM7AHN), ktorý sa ma pýtal, či by sa to nedalo spraviť tak, ako je to na opakovači, že si vyťukám na vysielačke určitú sekvenciu a Laura mi povie napríklad aké bude zajtra počasie.

Honzo pritom nemal ani najmenšie tušenie že toto som presne aj zamýšľal spraviť, ale nevedel sa k tomu dokopať. Zároveň si všetky názory/pripomienky veľmi vážim a niektoré (ako v tomto prípade) ma aj motivujú.

Čo sa zmenilo

Laura sa dá ovládať „on-demand“ (na požiadanie) cez DTMF kódy priamo z vysielačky. Inak povedané – zakľúčujem, vyťukám kód cez klávesnicu vysielačky a dostanem odpoveď. Nemusím čakať, kým odbije celá hodina a Laura dá svoje info. Nemusím nadávať, že som to zase nestihol, keď si zapnem vysielačku 12:01 miesto 12:00. O tomto presne Honzo vravel, že sa mu to stáva, pretože to počúva… To bol ten „popud“, ktorý ma naštartoval k tomu, aby  som túto funkcionalitu dorobil.

Trocha teórie o DTMF

DTMF je jednoduchý a starý systém kódovania, kde už z názvu „Dual-tone multi-frequency signaling“ vyplýva, že ide o kódovanie pomocou dvoch simultánnych tónov, alebo frekvencií. Je to matica 4×4, kde jeden tón udáva riadok a druhý stĺpec.

DTMF keypad frequencies (with sound clips)
1209 Hz1336 Hz1477 Hz1633 Hz
697 Hz123A
770 Hz456B
852 Hz789C
941 Hz*0#D

Takto to vyzerá, keď zlúčite tóny 1209 Hz a 697 Hz, aby ste dostali číslo „1“:

Technické riešenie

Mal som v podstate 3 možnosti, ako DTMF dekódovať:

  1. Na najvyššej vrstve, teda v počítači, kde by som čítal vstup zo zvukovej karty pripojenej k vysielačke
  2. Na hardvérovej úrovni, ale pomocou softvéru na Arduine (v minulosti sa DTMF dekódovalo pomocou baniek ladených filtrov, ja som chcel použiť modernejší Goertzelov algoritmus, ktorý je veľmi rýchly a nenáročný na výpočetný výkon procesora napríklad oproti FFT)
  3. Na hardvérovej úrovni, pomocou dedikovaného dekódera

Keďže som chcel kvôli stabilite celého systému ísť na čo najnižšiu možnú vrstvu, rozhodol som sa dekódovať na HW úrovni pomocou dedikovaného DTMF dekódera s pomocou integráču MT8870. Toto rozhodnutie padlo aj kvôli odolnosti voči šumu a nekvalitnému signálu.

Keďže som po chvíľke skúmaní s variantou MT8870DE tohto dekódera došiel k záveru, že mi už jednoducho nevojde na proto-dosku,

rozhodol som sa použiť hotové riešenie, ktoré malo SMD variantu tohto čipu a aj obslužné súčiastky a kryštál už naletované. Z Číny za $1,74. Modul vyzerá presne takto:

Rátal som s tým, že keď odletujem všetko nepotrebné z tejto dosky, ako napríklad 3.5mm jack a headre, tak ju tam napchám. 😀

Po pripojení som spravil prvých pár testov – poslal som mu na vstup krásny čistučký signál, s ktorým to fungovalo… Doprogramoval som teda obslužný softvér na Arduine, na prevod sekvencií BCD na hotové znaky klávesnice, ktoré som spájal následne do reťazcov a tie posielal cez USB do počítača.

Všetko šlo hladko podľa mojich predstáv. Zašpinil som si ale letovačku od spálených izolantov, lebo na niektoré piny už je v tom „hadiom hniezde“ ťažký prístup. To je daň za to, že je možné ešte robiť takéto dodatočné úpravy. 🙂 Samozrejme hneď ako som to dokončil a plánoval to celé už zapúzdriť, skúsil som to ešte raz z Baofengu a samozrejme čip si ani neprdol. Zistil som, že rôzne vysielačky majú inak vyladené obvody na syntézu DTMF, a s lacnučkou „rozladenou“ UV-5R to proste nešlo. Aj toto som nakoniec vyriešil, nejdem to už ale naťahovať a zachádzať príliž do detailov…

Ako na to

Tu je tabuľka kódov a popisy, čo približne robia. Toto sa bude ešte meniť, ako budem pridávať funkcie. Všetky príkazy na Lauru vytáčajte dvojitým stlačením hviezdičky a následne číslom funkcie.

**0
Aktuálny dátum a čas
**1
Aktuálne počasie v BB a predpoveď na zajtra
**2
Aktuálne podmienky šírenia rádiových vĺn
**3
Aktuálna technická novinka
**4
Náhodný latinský citát z internetu - bude odstránené
**5
RIFF 1 (len pre test dosahu) - bude odstránené
**6
RIFF 2 (len pre test dosahu) - bude odstránené
**7
RIFF 3 (len pre test dosahu) - bude odstránené
**8
Starý ICQ "o-ouh" sampel (volám ťa) - bude odstránené

Záver

Dorobil som ovládanie Laury pomocou príkazov a odskúšal, že riešenie s integráčom MT8870 je dobre odolné aj voči značne zašumenému a „rozladenému“ signálu. Do budúcna by som chcel, aby Laura bola súčasťou prevádzača OM0OUH, ale s restrikciami – napríklad max. 1 správa za pol hodinu a časované správy povedzme raz za 4 hodiny. Veľa funkcionality by sa muselo zakázať, ale zároveň je ešte aj priestor na pridávanie nových funkcií.

Ďakujem že ste to dočítali až sem.

 

73 – Tekk BB / OM7AXT

Loading

Pridať komentár

Táto webová stránka používa Akismet na redukciu spamu. Získajte viac informácií o tom, ako sú vaše údaje z komentárov spracovávané.