Jindra Fučík

Elektronický regulátor rychlosti pro RC modely

Pokoušet se v dnešní době prezentovat elektronický regulátor rychlosti (ESC - Electronic Speed Controler) vyžaduje buď odvahu a nebo drzost. Svět levné výroby elektroniky je zaplaven regulátory různé kvality s opravdu širokým spektrem funkcí. Přesto jsem byl požádán o vytvoření jednoho takového regulátoru. Zadání znělo poměrně jednoduše - co mám udělat, abych mohl servo upravené pro nekonečné otáčení použít pro pohon rypadla.

RC model Electronic Speed Controller

If you try to present Electronic Speed Controller (ESC) nowadays, you must be impudent or bold. The world of cheap electronic manufacturing is full of regulators with various quality with wide spectrum of functions. Nevertheless friend of mine ask me to design one regulator for him. The input was pretty simple - what can I do, to be able use servo modified to infinite rotation for drive excavator?
 Budu trochu předpokládat, že většina modelářů už pochopila, že levné modelářské servo lze s úspěchem předělat na nekonečné otáčení. V praxi jde jen o odstranění mechanického dorazu a trimru pro zpětný ohlas. Pokud se použije výchozí elektronika, lze servo sice ovládat ve smyslu otáčení na jednu stranu, nebo na druhou stranu, ale prakticky nelze regulovat rychlost otáčení. Nicméně pokud se odstraní původní elektronika, zůstane nám v podstatě stejnosměrný motor s převodovkou. Pro tento motor platí, že jeho pracovní napětí je zhruba v rozsahu 4V - 5V a proudová zátěž je ve stovkách miliampér (řekněme méně než 500mA). Tyto parametry jsou podstatné zejména proto, že tím pádem je možné používat společné napájení pro přijímač a pro pohon. Zároveň jako bonus si všimněme, že parametry jsou velmi blízké pohonům dětských hraček, takže bude regulátor použitelný i pro případy, kdy chceme dětem vylepšit hračku z původního bang-bang ovládání na modernější proporcionální.
 I assume, that majority of modellers understand, that cheap model servo can be successfully converted to infinite rotation. In practice it mean only remove mechanical stopper and electronic trimmer for feedback. Once you keep default electronic, you can control servo in meaning of rotation to one or oposite direction, but in practice without possibility to regulate speed of rotation. But when you remove default electronic, we will get DC motor with not that bad gearbox. This motor working with voltage about 4V - 5V and current consumption is about hundreds milliamperes (let us say less than 500mA). Those parameters are crucial especially because we can use common voltage for receiver and for drive. And as a bonus you can see, that it is parameters are very close to motors of kids toys. Then the regulator will be suitable also for cases, we would like to upgrade toy from original bang-bang control to more modern proportional control.
 Vzhledem k tomu, že několikrát zaznělo slovo "levné", je plán celé zařízení udělat jako levné a pokud možno jednoduché. Vycházíme z předpokladu, že regulátor a motor bude napájen ze společného napětí s přijímačem a že toto napětí bude v rozsahu použitelném pro běžné procesoru (cca 4 - 5V ). Proto není nutné řešit žádné komplikované napájecí obvody. Pro vyhodnocování signálu si vystačíme s běžným procesorem PIC12F629. Uznávám, že je to z dnešního pohledu opravdu nemoderní procesor, ale stále se velmi dobře kupuje a poskytuje dostatek periferií. Podstatnou součástkou v našem návrhu je integrovaný H-můstek. Zvolil jsem opravdu levný kousek L9110. Tento můstek se dá koupit v několika verzích jak v nožičkové DIL 8, tak v SMD SO-08. Navíc jeho cena je mimořádně příznivá, při kusovém nákupu v Číně kolem 20,- Kč včetně poštovného. Pak už na schématu najdeme jen konektor pro připojení programovadla (PICkit a jeho klony fungují dobře a koupí se levně). U konektoru jsou poněkud neobvyklé rezistory R1 a R2. Ty nejsou podstatné do doby, než se rozhodneme používat koncové spínače. V případě, že dáme koncové spínače nějak nešikovně a zaznamenáme rušení, pak právě přidáním těchto rezistorů můžeme rušení omezovat. Tím se vlastně dostáváme k "rozšířené funkci". Dozvěděl jsem se, že regulátor funguje dobře, ale není vhodný pro portálový jeřáb, protože děti nechávají jeřábní kočku narážet do dorazů až se utrhne. Takže jsem využil volné vstupy právě na programovacím konektoru pro připojení koncových spínačů. Jejich připojení je také nakresleno na schématu. Pochopitelně by bylo možné schéma dále rozvíjet, to nechám na úvahách každého konstruktéra.
 Because we used the world "cheap" few times; the plan is, to make all device cheap and simple as much as possible. We are working with condition, that motor and regulator are powered from same voltage source, including receiver. We assume, that this voltage will be in range acceptable for usual processors (cca 4V - 5V). Then we must not solve any complicated powering circuits. For signal evaluation we will use common processor PIC12F629. I agree, that nowadays it is old fashion processor, but it is still cheap and easy to buy and it have enough peripherals. Fundamental part in our design is integrated H-bridge (motor driver). I decided to use really cheap one L9110. This H-bridge can be found in various versions including through hole DIL 8, and also SMD SO-08. The price of this bridge is extra positive on the top. When buying single pieces in China, it cost less than $1 including post fee. On the schematic we can found only header for connecting programmer (PICkit and its clones working fine and they are cheap). Next to header we have unusual resistors R1 and R2. They are not important, until we not start using end stop switches. In case we will have those switches on electronic noisy places, we can limit impact of this electronic noise by adding those resistors. We are going to "extended functions" then. I was informed, that it working fine, but it not fits portal crane, because kids leaving trolley frame hits to end stops until it tears off. Then I was re-used free inputs on programming header to connect end switches. Their connection is also present in schematics. Yes, it is possible to done many enhancements on schematics, but I will leave it on fantasy of every builder.
 Deska plošných spojů je velmi jednoduchá, je navržená jako trochu větší. To je jednak kvůli snadnému osazování, ale také kvůli dobrému chlazení. Deska je navržena jako jednostranná, s tím, že procesor a H-můstek jsou použity SMD. Na desce jsou dvě drátové propojky. Celou desku je možné osadit tak, že je vše osazeno na vrchní straně (tak byla navržena). Potom zůstává spodní strana úplně plochá a je možné desku přilepit oboustrannou páskou někam k modelu. Pro tuto alternativu ještě používám několik drobných triků. Drátové propojky realizované izolovaným drátem na straně součástek jsou jasné, připájení konektorů a rezistorů na straně součástek také. Ale první finta je, že po osazení desky na spodní straně "uříznu" přečnívající vodiče a konektory pomocí žiletkové pilky. Tím mám spodní stranu dostatečně rovnou pro použití oboustranné pásky. Protože konektory při pájení jen na straně součástek nedrží zrovna pevně, tak je ze spodní strany ještě "zakápnu" vteřinovým lepidlem. Čistě pro větší mechanickou pevnost. Lepidlo nelze považovat za izolaci.
  Printed circuit board is pretty simple. It is designed as little bigger. It is because it is more easy to solder components and also for good cooling. PCB is designed as single side, with SMD processor and H-bridge. PCB contain two wire connections. All board can be soldered on top side (that is designed). Then bottom side remain absolutely flat and can be glue using both side adhesive tape somewhere in model. I use few tricks for this alternative. Wire connections are realized by isolated wires on component side. Connectors and resistors are also soldered on component side of PCB. First trick is, that after soldering I "cut out" all remaining wires using jig saw. Then bottom side is flat enough for use of both side adhesive tape. Because connectors when soldered top side only not fitting well, then second trick is to "drop" them by super-glue. It is only for better mechanical stability. Glue can not be understand as isolation.

 To, že je na desce přímo vyveden konektor pro PICkit není samo sebou. Regulátor nemá žádné ovládací prvky pro nastavování. Nastavování se provádí při nahrávání programu. Rychlostní křivka je uložena v paměti EEPROM procesoru. Je uložena tak, že první bajt určuje rychlost pro páku v pozici 688µsec (úplně dole), pak každý krok znamená 16µsec. Takže středová poloha (1500µsec) je bajt na adrese 33(hex). Pokud se bavíme o regulátoru pro auto, pak ve středové poloze motor stojí, jedním směrem rychlost roste a druhým směrem také roste, ale v obráceném směru. Každý bajt znamená konkrétní rychlost pro danou výchylku. Rychlost 00 (hex - tak jak jsou uvedena při programování) znamená, že motor stojí, rychlost 01 znamená pomalé otáčení, 02 o něco rychlejší a tak dále. Jelikož se jedná o šestnáctková čísla, tak nezapomeňte, že řada pokračuje 08, 09, 0A, 0B, .. 0F a končí 10. Při rychlosti 10 už nemluvíme o regulaci, ale motor je přímo připojen k napájení. Pro obrácený směr je situace podobná, jen přičteme 80, takže řada bude 80 (motor stojí), 81 (pomalu), 82, ... 88, 89, 8A, 8B, ... 8F, 90 (maximum). Pochopitelně se některé hodnoty opakují, tím vzniká optimální rychlostní křivka. Výchozí křivka je lineární, lze ji však snadno změnit. Stejně tak lze posunout místo, kde motor stojí, pokud nemá vysílač správně nastavenou středovou pozici. Popisovat převod křivky pro letadlo asi nedává smysl, tyto motory ani regulátor nejsou vhodné pro letadla.
 The occurrence of PICkit header on board have very good reason. Regulator have no own control elements for configuration. Configuration i done in a time, when program is loaded. Speed curve is stored in EEPROM memory of processor. It is stored that first byte mean throttle in position 688µsec (maximum down). Then every next step mean 16µsec. Then middle position (1500µsec) is byte with address 33(hex). Once we are talking about regulator for car, then middle position mean, that motor stops. moving throttle to one direction mean rotation speed increase; moving throttle to opposite direction mean, that rotation speed also increase, but with opposite rotation. Every byte mean exact speed for given throttle position. Speed 00 (hex - as used when programming) mean, that motor stopping. speed 01 mean very slow rotation, speed 02 little faster etc. Do not forget, that it is hex numbers, then row continue 08, 09, 0A, 0B, .. 0F and end with 10. When speed step 10 is given, it is no regulation, but motor is connected directly to power. The situation for opposite direction is similar, only value 80 is added. Then row is like this: 80 (motor stopping), 81 (slow), 82, ... 88, 89, 8A, 8B, ... 8F, 90 (maximum). Of course some values are stored few times, it define optimal speed curve. default curve is linear, but it can be easily changed. same easy, as can be changed the position, where motor is stopping, once transmitter have not good trimmed centre position. Describe how speed curve for air plane should look like is no necessary, this kind of motors as well as regulator is not designed for air planes.
 Program pro procesor je velice jednoduchý. Jedná se o minimální modifikaci programu z již zveřejněných komponent, proto nemá cenu jej komentovat.
 The program for processor is very simple. It is only modification of already presented components, then it is no necessary to spend long time with description of functionality.
 Tímto jednoduchým způsobem lze vyřešit regulátor pro malý motorek, například z modifikovaného serva. Lze tak snadno oživit makety stavebních strojů, pásových vozidel a nebo jen dětem vylepšit ovládání autíček. Regulátor je velice základní a nemá žádné speciální vychytávky. Je to spíš jen hračka pro oživení dalších hraček. Prostě jen "tati, udělej abych měl auto na vysílačku jako ty". Nicméně svůj účel plní dobře a rozhodně již několika dětem udělal radost.

Vyšlo v časopise Praktická elektronika 03/2018.
 This is very simple way, how to solve regulator for small motor for example from modified model servo. It is suitable for easy animate models of building machines, tanks, or only upgrade controlling of cars for kids. Regulator is very basic and have no special functions. It is more toy for animate other toys. Simple solution to "daddy, make me remote controlled car like you have". But it doing it well and it already make few kids pleasure.
Download: PCB + asm + HEX .zip