Funguje báječně, ale neseje (4. díl)

Z minula máme vyrobené a otestované prográmky, pomocí kterých můžeme tlačítkem zapínat a vypínat jakékoliv části našeho robota. Dneska se tedy vrhneme na pokus o točení motory. Předtím, než se pustíme do dalšího testování, si vyrobíme „falešný motor“ neboli dvě „antiparalelně“ zapojené LED diody, červenou a zelenou.

PetrKubac_Antiparalelní LED

Antiparalelní zapojení je to, co vidíte na obrázku. Podobnost s motorem spočívá v tom, že pokud proud jde obvodem jedním směrem, svítí zelená LEDka jako že robot jede dopředu. Pokud jde proud opačným směrem, robot jede dozadu. Stavím si veškerou elektroniku pro své roboty sám proto mám výhodu v tom, že mám takovou dvojici diod rovnou vestavěnou do můstků pro motory. Jestli vám není líto peněz za 4 LEDky a 2 odpory, udělejte to stejně.

Pin procesoru dá proud maximálně kolem 20 mA. To je málo i pro velice slabé motorky, proto mezi pinem procesoru a svorkou motoru je zapojen obvod zvaný H-můstek což je vlastně něco jako výkonový zesilovač. Tento obvod, který často bývá na samostatné desce, musíme dnes otestovat a zkusit zapnout.

Postup je stejný jako u robotického motherboardu. Nejprve zapojíme celý modul, nejlépe odpojený od procesoru a hlavně BEZ MOTORŮ. Laboratorní zdroj nastavíme na maximální proud 50 až 100 mA. Opakuju opět, pokud nemáme laboratorní zdroj postavíme si primitivní zdroj z 78L05 nebo 78L12 podle toho, jaké napětí potřebujeme. Přitom pozorujeme, jestli se nám z H-můstku někde nekouří a jestli proud, který zcela odpojeným můstkem teče, je v „rozumných mezích“.

Pokud není něco v pořádku musíme H-můstek zkontrolovat. Jestli není někde zkrat, jestli napájecí napětí jde kam má, jestli piny integrovaných obvodů a součástek mají takový kontakt jaký mají mít atd. Pořád je to stejné a bude se to u každé elektronické desky dokola opakovat.

Pak musíme nastudovat, jak vlastně náš procesor má motor řídit, protože existuje nepřeberně možností, ze kterých se nejčastěji používají tyto tři:

  1. Řízení typu SIGN-MAGNITUDE – procesor má pro každý motor dva piny, jedním určuje směr dopředu/dozadu a druhým určuje jestli motor jede nebo stojí. Kmitáním tohoto pinu pomocí tzv. pulzně šířkové modulace alias PWM se pak řídí rychlost.
  1. Řízení typu LOCKED-ANTIHASE – z procesoru jdou do motoru taky dva piny označované nejčastěji jako A a B kde pokud A je 1 a B je 0 jede se dopředu, pokud A je 0 a B je 1 proud teče opačně a jede se dozadu.  Pokud A i B je 0 tak se stojí a často pokud A i B je 1 tak se spouští nějaká zajímavá funkce. Protože „motor stojí“ může znamenat dvě věci:
    • motor je zcela odpojený od napájení – tzv. freewheeling což česky znamená „volnoběžka“
    • motor je zkratován – což znamená, že brzdí

Mezi těmito možnostmi se často přepíná právě tím, jestli A i B jsou obě 0 nebo obě 1.

  1. kombinované řízení – v tom případě máme pro každý motor 3 piny A a B, které fungují úplně stejně jako v předchozím bodě a pak pin často zvaný ENABLE, tedy to samé co pin do kterého šlo PWM v bodě 1.  Takové rozhraní je nejuniverzálnější a takto jsou motory připojeny třeba přes velice oblíbený obvod L293D nebo SN754410.

Pokud nám můstek neshořel a máme ujasněno jak motory pustit, napíšeme si pro procesorovu desku jednoduchý prográmek:

010 ČEKEJ_STISK
020 ROŽNI
030 LEVÝ MOTOR VPŘED
040 ČEKEJ_STISK
050 LEVÝ MOTOR STOP
060 ZHASNI
070 ČEKEJ_STISK
080 ROŽNI
090 LEVÝ MOTOR VZAD
100 ČEKEJ_STISK
110 LEVÝ MOTOR STOP
120 ZHASNI
130 ČEKEJ_STISK
140 ROŽNI
150 PRAVÝ MOTOR VPŘED
160 ČEKEJ_STISK
170 PRAVÝ MOTOR STOP
180 ZHASNI
190 ČEKEJ_STISK
200 ROŽNI
210 PRAVÝ MOTOR VZAD
220 ČEKEJ_STISK
230 PRAVÝ MOTOR STOP
240 ZHASNI
250 GOTO 10

Poté, co máte tento prográmek napsaný, hrubě jej zkontrolujete tak, že procesorovou desku ZATÍM NEPŘIPOJUJEME k H-můstku (pokud to jde) a jenom vyzkoušíme jestli se LEDka na procesorové desce zhasíná a rozsvěcí.

Potom místo motorů připojíme k H-můstku naše antiparalelní LEDky a mačkáme tlačítko. Jestli všechno funguje jak má, pak se budou LEDky rozsvěcovat podle toho, kde v našem programu budeme. Teprve pak je dobré připojit motory, ale robota umístit tak, aby se kolečka točila ve vzduchu a pokud po celou dobu našich 4 dílů jsme vše nakonec přinutili fungovat jak má, je na čase ještě vyzkoušet čidla. Teprve pak má smysl programovat nějaký sofistikovaný program, který robota donutí dělat „něco užitečného“.

Mimochodem pro zkoušení čidel je přímo zásadně nutné mít z robota nějaký číselný výstup. Tedy aby se nám naměřené hodnoty buď hrnuly do počítače a zobrazovaly se na terminálu nebo aby měl robot displej, kde bude hodnoty zobrazovat sám. Jak takový výstup dat do PC zařídit, silně závisí na tom, jaký typ procesoru používáte proto bych podrobnosti nechal na autorech, kteří se v příslušných procesorech vyznají.

Doufám, že jste metodu „od jednoduchého ke složitému“ a „rozděl a panuj“ pochopili, a pokud bude přiští robot stávkovat, tak opravovat jej bude zábava a ne horor. A hlavně, než si začnete stěžovat ve Fóru Robodoupěte, nezapomeňte na starého Ámose a jeho „nejbližší pomocná ruka je na konci vlastního ramene“…