Generátor zvuku motoru s PICAXE

Bond, Alan Bond. Tak nějak se může představovat jeden z členů klubu lodních modelářů, kteří se scházejí v Setley Pond, v hrabství Hampshire na jihu Anglie. Právě tento modelář a elektronik si před několika léty předsevzal vytvořit s PICAXE 08M zvukový modul pro simulaci chodu lodních motorů, a to benzínových i dieselových, případně i pístových parních strojů.

Na stejném záměru si vylámala zuby už hezká řádka konstruktérů, Alan Bond na rozdíl od nich však uspěl a výsledky své práce dal ostatním modelářům k dispozici na internetových stránkách http://srcmbc.org.uk/ht_afb_sound-units_marine-engine.php . V současnosti už tam však stavební návod na tento zvukový modul není, prezenzuje jen novější verzi, kterou prodává. Na odladění parametrů pro co nejvěrnější zvuk se podílel Ray Hellicar. Po dohodě s autorem modulu vznikl v roce  2010 následující článek, podle něhož je možné si zvukový modul postavit v původní nebo zjednodušené verzi.

Původní zapojení obsahuje obvody nutné k programování mikrokontrolérů, jeho vstup je přizpůsoben i ke spolupráci s přijímači s malou amplitudou výstupních pulzů a zahrnuje také audiovýstup s regulací hlasitosti pro externí zesilovač. Zde uvedené schéma je zjednodušené, právě výše jmenované části z něj byly vypuštěny, deska však zůstala stejná. Aby se zachovalo přiřazení odpovídajících součástek jako v původní dokumentaci, je zachováno jejich označení i za cenu, že po úpravě netvoří celistvou řadu.

modul schéma

Upravené schéma zvukového modulu

Zařízení využívá dva mikrokontroléry Picaxe 08M. Proč jsou potřeba dva ? Protože vytváření zvuku je časově velmi náročné a jeden mikrokontrolér už nezvládá k němu ještě sledovat a číst řídící servoimpulzy. Modul se připojuje k přijímači na kanál plynu a jeho elektronika se napájí z palubního napětí 5V. Pozor, nesmí být použito napětí 6V! Na výstupní konektor přímo propojený se vstupním se zapojí regulátor, předpokládá se standardní obousměrný s neutrálem při pulzu 1,5 ms.

Mikrokontrolér IC1 čte řídící pulzy na vstupu Pin3 a na výstupu Pin2 generuje na pozadí šířkově modulované (PWM) pulzy o frekvenci 4 kHz. Spolu s RC článkem R4C2 se pulzy vyhladí na napětí v rozsahu 0 až 5V, jehož velikost odpovídá plynu vpřed nebo vzad. Druhý procesor IC2 se stará o generování zvuku a když může, přečte si svým AD převodníkem napětí vyjadřující požadované „otáčky“ motoru. Převod signálu z analogového na digitální a zase zpátky odstraňuje nutnost, aby se „zvukový“ procesor jakkoli synchronizoval s řídícími pulzy.

DSCN0184b

Modul na univerzální DPS

Výstup Pin1 IC2 budí výkonový FET tranzistor připojený k reproduktoru o impedanci 4 nebo lépe 8 Ω. Je nutné, aby tento tranzistor měl buzení třídy L nebo LL (5 nebo 3 V). Použitý typ STP35NF06L (U max 60V, I max 30A, Rds 48 miliohm) se dá koupit i u nás, případně je možné ho nahradit například IRLZ34N nebo silnějšími IRL2203N, IRL3803. Dioda D2 zamezuje vzniku napěťových špiček z reproduktoru. D1 odděluje palubní rozvod 5V v případě, že je reproduktor napájen z vyššího napětí. Druhé napětí není nutné, je-li vstup nezapojen, bude se reproduktor napájet z 5V stejně jako elektronika, jeho velký pulzní odběr ale může přetížit BEC regulátoru. Kondenzátor C3 by měl být blízko výstupu a částečně vykrývá proudové špičky při spínání reproduktoru. Zvýrazněné spoje je vhodné posílit, může jimi procházet proud přes 3A. Pokud by bylo možné použít samostatný nf zesilovač, nemusíme osazovat výkonový tranzistor, D1 a D2. Místo toho použijeme C4, R8, RV1 a vhodný konektor podle původního zapojení.

Pro naprogramování mikrokontrolérů si předem vyrobíme „programátor“, což není nic jiného než základní zapojení PICAXE 08M s paticí a připojením na sériovou linku na kousku univerzální desky s plošným spojem. Na COM konektoru (Canon 9) najdeme zem na kontaktu 5, RxD na 2 a TxD na kontaktu 3. Při programování napájíme procesor optimálně ze čtyřčlánku Nixx nebo stabilizovaného zdroje 5V.

programátor schéma

Programovací přípravek

DSCN0172b

Programovací přípravek

DSCN0193b

Programovací přípravek

pripravek

DPS programovacího přípravku

Desku zvukového modulu připravíme z „proužkové“ univerzální desky podle původní verze, ve zjednodušené verzi neosadíme součástky R1-3, Q1, R5-6, R8, RV1 a konektory SKT2-3. Naopak přidáme jednu propojku mezi horním koncem nepoužitého R1 a vývodem 4 prvního procesoru. Při osazování pozor, pod patice mikrokontrolérů se musí předem zavést propojky. Do PICAXE pro pozici IC1 přeneseme program „speed_demand“, stavíme-li ale zjednodušenou verzi, nejprve v něm na řádku 48 změníme v příkazu pulsin druhý parametr na 1 místo 0. Pro původní verzi zapojení parametr ponecháme. Do druhého mikrokontroléru na pozici IC2 přeneseme jeden ze tří programů podle požadavku na zvuk benzínového motoru, dieselu nebo parního stroje, zapojení je pro všechny varianty stejné.

spoje

DPS zvukového modulu

poklaďák

Rozložení součástek zvukového modulu

Program zážehového motoru a dieselu jsou vnitřně velmi podobné, liší se hlavně nastavením parametrů. „Blafnutí“ každého válce je tvořeno příkazem sound, který vydává šumy a šelesty dané délky. Charakter zvuku se mění přidělením různé výšky zvuku každému válci samostatně, hodnoty jsou uloženy v tabulce (řádky 104 – 118). Počet válců se dá nastavit od 2 do 6. Aby se vyhovělo logaritmické povaze zvuku a současně konstantní době vykonávání kódu i při měnících se otáčkách, není změna otáček plynulá, ale už prvním procesorem je rozsah rozdělen na 25 diskrétních oblastí, pro něž jsou koeficienty uloženy v kvazilogaritmické stupnici (tabulka na řádku 67). Podle tabulky se přidělují hodnoty střídy PWM modulace. Přechody otáček ve 25 stupních zní v praxi plynule, některé komerční zvukové moduly používají dokonce jen 8 stupňů. Pokud chceme zvětšit plynulost přechodů a zejména zajistit přirozený průběh poklesu „otáček“ při prudkém ubrání plynu (za cenu pomalejších nástupů), můžeme na místě R4 osadit odpor 10k a současně změnit C2 na 100 μF.

LED při plynu v neutrálu po zapnutí rychle bliká, je ticho. Při malé výchylce z neutrálu motor „nastartuje“ do parametrem zadaných minimálních otáček, zvuk sleduje přidávání a ubírání plynu. Je-li plyn v neutrálu, LED svítí nepřerušovaně. Jestliže klid trvá déle než 1,5 minuty, motor řízeně „zhasne“. Doba čekání se dá samozřejmě nastavit parametrem, ve zvukových ukázkách je tato doba zkrácena na několik málo sekund. Zvuk parního stroje prodlevu nemá, utichne bezprostředně po stažení plynu.

Příklad zvuku benzínového motoru
Příklad zvuku naftového motoru
Příklad zvuku parního stroje

Nastavení počtu válců se dělá pomocí propojky JP (v původním schématu LK1). Kontakty zkratujeme a modul zapneme. Program pípne a pak generuje krátké ukázky zvuku s postupně rostoucím počtem válců oddělené mezerami. Když zvuk vyhovuje charakteru modelu, odstraníme propojku. Program volbu potvrdí a počet válců si zapamatuje, tedy uloží do trvalé paměti. Ukázky se cyklicky opakují a jsou oddělené pípnutím.

Pro výsledný dojem je zcela klíčová volba reproduktoru a jeho instalace do modelu. Reproduktory s papírovou membránou mají nižší rezonanční kmitočet než mylarové, jejich výhodou zase je, že jsou odolné vůči vodě. Basové reproduktory bývají nejlepší, zejména pro diesel, ale do lodí se málokdy vejdou. Čím větší reproduktor, tím je většinou dojem lepší. Zvuk parního stroje obsahuje mnohem více vyšších tónů a dává dobré výsledky i s mylarovými membránami. Výsledek může zlepšit i zhoršit rezonování celého modelu jako ozvučné skříně. Někdy je účelné udělat nad reproduktorem rezonanční zvukovod, může být využit třeba komín lodě.

Alan Bond napsal všechny programy s bohatým komentářem aby zájemcům usnadnil se v nich orientovat a zkoušet vlastní úpravy. Změny vítá a v případě, že výsledky budou dobré, vyzývá uživatele, aby se s ostatními podělili o výsledky. Experimentovat je možné jak s nastavením parametrů na začátku programu, tak s barvou zvuku danou přiřazením hodnot jednotlivým válcům. Je dobré nejprve zabudovat reproduktor do lodi na definitivní místo, vytáhnout vodiče vedle na stůl k modulu a teprve potom zkoušet změny. Rozdíl v dojmu při zkoušení s reproduktorem venku nebo v modelu může být značný.

Ačkoli je modul prezentován jako doplněk pro lodě, je možné jej nasadit i parních lokomotivách, možná i tancích nebo jiné technice s velkoobjemovými motory. Kvalita syntézy samozřejmě nedosahuje věrnosti navzorkovaných zvuků, ale výsledek je výborný i v porovnání s podobnými komerčními jednotkami. Součástí balíčku souborů k modulu na www.rcrevue.cz jsou také nahrané ukázky, takže si zájemce může předem zhodnotit, jestli jej kvalita uspokojí. Alan Bond další vývoj této verze modulu nepředpokládá, chtěl by se zaměřit spíš na řešení využívající navzorkované zvuky skutečných lodí, a to nejen motorů, ale třeba i sirén nebo střelby.

ZIP balíček se zdrojovými texty, příklady zvuku a původní dokumentací ⇒ Generator zvuku