Pôvodný zámer
Už dlho som mal myšlineku vyrobiť projekt, ktorý by bol založený na TTS (Text to Speech) systéme. Chcel som pôvodne spraviť iba systém, ktorý by zhromažďoval novinky z rádioamatérskych portálov, ako napríklad hamradio.sk a vysielal ich v skrátenej podobe napríklad raz za deň.
TTS je systém prevodu textu na hovorenú reč. Strávil som asi týždeň alebo dva hľadaním čo najprirodzenejšie znejúceho Slovenského hlasu na internete. Mimo iného som narazil na hlas od firmy Nuance, ktorý sa volal Laura. Aj keď som už vhodného kandidáta mal, nevzdával som hľadanie, lebo Laura fungovala iba na Windowse, ale projekt som chcel portnúť hlavne pre Raspberry Pi. K tomu nakoniec nedošlo, a momentálne projekt Laura funguje na Windowse. Do budúcna ale určite budem hľadať cestu, ako systém Windowsáckeho TTS SAPI5 rozbehať pod Wine na Raspberry. Videl som už nejaké návody na iné distribúcie Linuxu, takže by to teoreticky bolo možné.
Dekódovanie prijatého zvuku
Neskôr som sa však dostal k Linuxovej utilite multimon-ng, ktorá toho vedela toľko, že som si povedal, že by bolo super zapracovať dekódovanie zachyteného signálu, napríklad digitálne kódované správy a dáta. Toto je ešte v príprave, ale ďaľšiu Linuxovú utilitu, sox, tzv. švajčiarsky nožík na úpravu zvuku v Linuxe som poznal už z mojej diplomovej práce, kde som ju často používal ako pomocný nástroj na konvertovanie formátov, normalizáciu a inú prácu s audiom.
Sox sa dal využiť na nahrávanie zvuku z mojej externej aplikácie a vie napríklad sám zastaviť nahrávanie po určitom čase ticha, pričom nahratý súbor uloží do zvoleného formátu.
Tu je krátky zoznam protokolov, ktorý vie dekódovať multimon-ng:
- POCSAG512 POCSAG1200 POCSAG2400
- FLEX
- EAS
- UFSK1200
- CLIPFSK
- AFSK1200, AFSK2400, AFSK2400_2, AFSK2400_3
- HAPN4800
- FSK9600
- DTMF
- ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI
- EEA EIA
- CCIR
- MORSE CW
Spísal som si zoznam funkcií, ktoré by som chcel mať v Laure implementované. V čase keď som dokument písal, už bola prevažná väčšina hardvéru a softwaru implementovaná, mal som spravený „research“ – teda výskum, ale chýbali stále nejaké „fíčury“.
Dokument ktorý som spísal, odporúčam prečítať:
Download: LAURA1.pdf (267 kB)
Skúsenosti so Zello gateway
Už som mal skúsenosti s výrobou prepojovacích systémov z počítača do vysielačky z projektu Zello Gatewayu, ktorý som asi pred rokom vyrobil, ale bol som nútený tento projekt vypnúť a tým skončil aj akýkoľvek ďaľší vývoj.
Takto vyzeral prevodník na zvukovú kartu:
Tu vidno USB-TTL konvertor, ktorým som cez relátko spúšťal vysielanie (PTT) a zvukovú kartu, ktorú som na celý projekt používal:
Dokonca som mal na Zello napísaný vlasný program, ktorým som eliminoval potrebu mať na vysielačke zapnutý VOX. Program snímal obrazovku, lepšie povedané časť obrazovky, kde Zello indikovalo príjem, a keď bol nájdený príslušný počet zelených pixelov, (niekto vysielal cez Zello do skupiny) spustilo sa vysielanie na vysielačke.
Tým sa výrazne zvýšila kvalita hovoru, keďže pri tichej modulácii človek nevypadával.
Natočil som aj krátke video o tom programe, a doteraz mi veľa rádioamatérov z celého sveta píše, či by som im mohol ten program poslať, že oni chcú tiež vyrobiť taký gateway. Už mám na to predpripravenú odpoveď v texťáku a iba kopírujem unifikovanú odpoveď spolu s linkom na stiahnutie 😀
Hardvér
Začalo to hackom nepodareného slúchadla
Vedel som, že potrebujem nový systém na prenos audia z a do zvukovej karty a ovládanie PTT. Jediné, čo som mal po ruke s tzv. Kenwood K-type konektorom, bolo toto sprosté (a úplne nepoužiteľné) slúchadlo, ktoré sa dodáva ku každej Baofeng vysielačke. Má otrasnú moduláciu.
Tak som rozobral strednú časť s mikrofónom, aby som videl, čo je vovnútri:
Celé som to preniesol na protoypovaciu doštičku, pridal oddeľovací kondenzátor pre zvuk, 10k rezistor na prevod Line hlasitosti na mikrofónnu a začal experimentovať:
Zistil som, že keď je vysielačka zapnutá, je na PTT kábliku napätie cca 3,3V, čo by odpovedalo digitálnemu pinu vo vysielačke v stave INPUT_PULLUP. Zoskratovaním so zemou sa spustilo vysielanie, čo potvrdzovalo moju teóriu.
Experimentoval som s rôznym zapojením oddeľovacieho kondenzátora a jeho veľkosti. Pridal som kábel na prívod zvuku zo zvukovej karty.
A na vstup do nej:
Kábliky, čo išli zo slúchadla boli chatrné, tak som ich neskôr zaistil drôtom o dosku, aby sa neodtrhli.
Prvý prototyp
Celé som to nejako zapúzdril, a výsledok vyzeral nejako takto:
Na ovládanie spúšťania vysielania cez PTT som chcel použiť Arduino. Okrem iného som ho chcel využiť aj na detekciu, či je na kanáli práve prevádzka, aby Laura zbytočne negumovala prebiehajúce konverzácie, ale vedela sa buď brejknúť, alebo aspoň počkať, kým ľudia dohovoria.
Problémy s galvanickým oddelením
Keďže logické obvody vysielačky očividne pracovali na modernejšej variante s napätím 3,3V a ja som chcel použiť Arduino, ktoré používalo sarší systém 5V, chcel som spúšťanie PTT galvanicky oddeliť optočlenom, napriek tomu, že to fungovalo aj bez neho…
Jediná súčiastka, ktorá sa aspoň z diaľky podobala na optočlen, ktorú som vo svojom hamshacku vtedy našiel, bol tento starý monštrózny Teslácky tank s označením WK16412.
Po otestovaní som ale zistil, že na výstupe nie je dostatočne malý odpor na zopnutie PTT. Rozhodol som sa preto pre radikálny krok, vyrabovať moderný optočlen FL817C z relátkovej dosky z Ebay.
Dal som ho teda na dosku, po zopnutí sa spustilo vysielanie, ale na moje prekvapenie po jeho rozopnutí sa vysielanie nezastavilo, ale vysielačka ostala vysielať, až kým som ju nevypol. Zanadával som si.
Skúšal som rôzne ťahy, ako ten optočlen znásilniť, pridal som aj kontrolnú LED, ale výsledok bol stále ten istý.
Tak som nakoniec bol nútený ho z tade vyletovať, a nechať to iba pripojené na digitálny pin z Arduina, týmto spôsobom to aspoň fungovalo.
Indikačné LED diódy a PTT tlačítko
Nakoniec som pridal na krabičku indikačné LED diódy na celkový stav, RX, TX, aktívny Link s PC, a kontrolné tlačítko na spustenie PTT.
Pridal som aj komparátor LM393 na detekciu zvuku z vysielačky, ktorého výstup som pripojil na Arduino. Bol na module na detekciu zvuku z Ebay, z ktorého som vyletoval mikrofón a vstup pripojil na výstup z vysielačky. Citlivosť som nastavil na maximálnu. LM393 dáva pri zopnutí na výstupe logickú nulu, ktorú som čítal Arduinom.
Použil som Arduino Micro taktované na 16MHz, pri napätí ako som už vravel, 5V. Výsledkom bolo toto hadie hniezdo, ako David na takéto projekty vraví „zaliať do betónu a zakopať“ 😀 Ale hlavne že to fungovalo. Pomedzi to ako som dizajnoval HW, som písal zdrojáky pre Arduino. LEDky som aj zalial, ale nie do betónu, ale lepidlom… Takisto aj Arduino, keďže ma nenapadol vhodnejší spôsob ako ho tam udržať aby sa nemixloval USB konektor do PC.
Dokončenie vzhľadu krabičky
Výsledok vyzeral ako práca čistého amatéra, a hlavne človeka, čo nemá cit pre presnosť vo vŕtaní otvorov do krabičiek, ale ako-tak sa na to dalo pozerať.
Dodatočné úpravy
Potom som ešte pridal 1W 3.3V zenérovu diódu na limitáciu napätia 5V na 3.3V, aby sa náhodou nepoškodila nejaká vysielačka, keďže pri neaktívnom PTT bol pin v stave INPUT_PULLUP a aj keď skoro žiaden prúd, ale to napätie na tom bolo. A zo skúseností s modernejšími MCU ako napr. architektúra ARM – STM32/ESP8266 viem, že ich GPIO piny znesú oveľa menej ako MCU a v Arduinách a nemusia byť 5V tolerantné, aj keď niektoré sú. Záleží od konkrétneho čipu. Ale vo všeobecnosti dokážu dodávať a sinkovať, čiže odoberať oveľa menej prúdu ako AVRká v Arduine. Je určite dôvod, prečo skúsení vývojári označujú AVRká za „obrnené tanky“ medzi mikrokontrolérmi.
A takto teraz vyzerá HW Laury aj so zvukovou kartou (zase z Ebay)…
Windows SW
Ukážka softvéru na ovládanie HW pre Windows, ktorý som napísal:
Program komunikuje s Arduinom, a generuje hlas. Je zložitejší, ako vyzerá.
Oddelenie nakoniec vyriešené
Nakoniec som sa rozhodol namiesto toho optočlena použiť obyčajný NPN tranzistor, čo mi poradil Tarzan BB, keďže na Baofengoch po odvysielaní 2-3 správ prestalo fungovať PTT až do resetu vysielačky. Zrejme sa tam nabil, alebo vybil nejaký kondenzátor. Na Wouxone KG-UV8D to šlo bez problémov.
Ukážka v praxi
Ak ste mali tú trpezlivosť, a dočítali to až sem, gratulujem! Môžete si teraz pozrieť a vypočuť video, ako Laura znie a funguje v praxi.
Záver
Laura verzia 2.0 bude určite mať aj možnosť interagovať s užívateľmi, cez DTMF príkazy. Viď PDF ktoré je na začiatku článku.
Ale to je ešte hudba budúcnosti.
Ďakujem že ste to so mnou vydržali. Akékoľvek otázky zodpoviem v komentároch pod článkom.
73 – Tekk BB, OM7AXT
Ahoj, díky za Lauru! Chytili jsme ji úplně náhodou pomocí amatérských vysílaček při přechodu Nízkých Tater a její pravidelná předpověď nám hodně pomohla. Chytali jsme zhruba od Chopku až po Kráľovu hoľu, mysleli jsme, že je to nějaký oficiální předpovědní kanál pro Tatry. Trvalo mi hodně dlouho, než jsem našel tyto stránky, prosím, šiřte povědomí o Lauře i mimo radioamatéry, na horách to může zachraňovat životy (díky předpovědi o bouřkách jsme vyrazili dříve a stihli dojít z Andrejcové na Kráľovu hoľu včas).
Ďakujeme za super feedback! Teším sa, že Laura bola užitočná, to je jej cieľ.
Info o Laure šíriť mimo amatérske sféry – k tomu sa veľmi neviem vyjadriť, neviem kde inde by sme to mohli šíriť. Myslím, že veľa ľuďom mimo rádioamatérov to príde ako úplne zbytočný a nezaujímavý projekt.
Teším sa, že vám Laura pomohla.
Pozdravujeme do ČR v mene celého rádioklubu!
Já taky nevím, jak by se to dalo udělat, na jaké stránky bych šel, kdybych hledal předem předpověď počasí pro Nízké Tatry. Stránky lyžařského střediska na Chopku jsou dost komerční, tam asi nebudou chodit lidi, kteří to nejvíc ocení. Napadá mě Horská služba nebo ti meteorologové, z jejichž předpovědi čerpáte. Prostě jenom že existuje možnost na sedmém kanálu chytit aktuální předpověď (pro Banskú Bystricu?). Asi dost naivně předpokládám, že by o to mohl být zájem a že by Laura mohla být za pár let slyšet na víc místech.
Ještě jednou dík a ať se daří!
Laura je skvela! paradna robota Peťo!
Ďakujem! Toto vždy poteší 🙂
Bravo ..deti chytili tvoju Lauru -potom opakovac …bravo kus prace …si priamo z BB?
Ahoj 🙂 Ano, rodeny bystrican, aj byvam momentalne v BB.