28
Středoškolská odborná činnost 2005/2006 Obor 10 – elektrotechnika, elektronika, telekomunikace a technická informatika Univerzální jednočipový modul pro řízení krokových motorů Autor: Jan Fíla SPŠ Trutnov, Školní 101, 541 01 Trutnov, 3. ročník Konzultant práce Ing. Petr Velech SPŠ Trutnov, Školní101, 541 01 Trutnov Trutnov, 2006 Královehradecký kraj

St ředoškolská odborná činnost 2005/2006 · 2006-12-17 · St ředoškolská odborná činnost 2005/2006 Obor 10 – elektrotechnika, elektronika, telekomunikace a technická

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Středoškolská odborná činnost 2005/2006

Obor 10 – elektrotechnika, elektronika, telekomunikace a technická informatika

Univerzální jednočipový modul pro řízení krokových motorů

Autor: Jan Fíla SPŠ Trutnov, Školní 101, 541 01 Trutnov, 3. ročník Konzultant práce Ing. Petr Velech SPŠ Trutnov, Školní101, 541 01 Trutnov

Trutnov, 2006 Královehradecký kraj

Prohlašuji tímto, že jsem soutěžní práci vypracoval samostatně pod vedením Ing. Petra Velecha a uvedl v seznamu literatury veškerou použitou literaturu a další informační zdroje včetně internetu.

Ve Dvoře Králové nad Labem 9. 3. 2006 .............................................. podpis autora

- 3 -

Jan Fíla Seifertova 2597 Dvůr Králové nad Labem

Anotace

Předložená práce se zabývá využitím jednočipových mikroprocesorů řady 51 pro řízení

pohonů realizovaných pomocí krokových motorů. Součástí práce je popis způsobu ovládání a řízení krokových motorů. Vlastní aplikace je odladěna v prostředí MicroScope. Dále je zde

využit program Atmel Flip pro programování obvodů řady 51 s IPS sběrnicí, která umožňuje programování přímo v aplikaci. Výsledkem práce je sestavení funkčního modelu, který se skládá z modulu mikropočítače, napájecího zdroje, snímače koncové polohy a vlastního

pohonu. Součástí práce je i výkresová dokumentace DPS a fotodokumentace.

- 4 -

Univerzální jednočipový modul pro řízení krokových motorů.

Vypracoval: Jan Fíla

• Úvod • Metodika

o Teorie řízení motorů � Algoritmus buzení cívek

o Vývojové nástroje � Program Atmel Flip � µScope

o Software � Popis inicializace sériového kanálu a čítače/časovače

� Popis odskoků přerušení • Výsledky

o Hardware � Výkres DPS druhé verze � Snímač koncové polohy � Modul mikropo čítače � Popis napájecího zdroje � Popis zapojení resetu a oscilátoru

o Skutečná konstrukce � Mechanická část zařízení

• Závěr • Zdroje informací

- 5 -

Úvod Moje práce byla motivována zájmem o automatizační techniku a mikroprocesory. Tento zájem byl podnícen i exkurzemi v automatizovaných výrobních provozech (například VDO, Siemens). Při návrhu vlastního zařízení jsem musel nejdříve shromáždit materiály týkající se procesoru, krokového motoru, LCD displeje a převodníku napěťových úrovní pro komunikaci s počítačem PC. Tyto materiály jsem získal převážně z internetových stránek, odborných publikací, časopisu Praktická elektronika, ale také z hodin odborných předmětů mojí střední školy. Potom jsem navrhl pomocí programu Sprint Layout v4.0 desku plošných spojů řídící jednotky a desku pro budiče krokových motorů. Podle této předlohy jsem fotocestou vyrobil desku plošných spojů. U třetí verze prototypu zařízení jsem využil jak „klasických elektronických součástek“ tak i součástek SMD. Pro demonstraci funkce jsem v mechanické části zařízení použil části známé stavebnice Merkur.

- 6 -

Řízení krokového motoru Ze starého pevného disku jsem získal krokový motorek- má čtyři vývody (spojené vždy dvě a dvě vinutí), proto se jedná o bipolární krokový motor. Rotor je permanentní magnet, do

kterého jsou vyfrézovány drážky- představují kroky motoru. Rotor je vyroben z šestnácti cívek. Tento motor je nutné řídit můstkovým zapojením (H-můstek). Bipolární motory mají větší kroutící moment - tudíž i větší spotřebu. Naopak unipolární mají jednodušší ovládání - na každou cívku stačí pouze jeden spínací prvek. Při použití tranzistorů, jako spínacích prvků, je nutné chránit jejich přechod diodou proti velkému napětí, které se indukuje na cívce při odpojení od napájecího napětí.

Silové účinky jsou spojené s proudem, a proto při nízkých otáčkách má motor větší kroutící moment. Naopak při vysokých otáčkách, vlivem přechodových jevů, má motor menší kroutící moment a může vynechávat kroky. Budič motoru - vzhledem k možnostem jsem z běžných tranzistorů postavil budící můstek. Uvažuji nad zjednodušením h-můstku pomocí tranzistorů MOSFET.

Vstupy D0, D1, D2, D3 je možné řídit přímo proudem z portů mikropočítače.

- 7 -

Foto krokového motoru, připevnění tažného provázku .

Algoritmus buzení cívek Cívky je nutné zapínat postupně v určité pořadí.

Krok 1 Krok 2 Krok 3 Krok 4 D1 1 0 0 1 D2 0 1 1 0 D3 1 1 0 0 D4 0 0 1 1

Bipolární dvoufázové buzení. D1 equ P1.0 D2 equ P1.1 D3 equ P1.2 D4 equ P1.3 Definice symbolů.

krok1: clr D2 setb D1 clr D4 setb D3 ret ;********************************** krok2: clr D1 setb D2 clr D4 setb D3 ret ;********************************** krok3: clr D1 setb D2 clr D3 setb D4 ret ;********************************** krok4: clr D2 setb D1 clr D3 setb D4 ret

Podprogram pro řízení

- 8 -

Program Atmel Flip

Program Flip umožňuje přímé programování vnitřní paměti mikroprocesoru Pozor je nutné spustit Bootloader v mikropočítači. Stačí nastavit číslo portu, já využívám standardní rychlost 115200 (při krystalu 11,0592 MHz) Pokud je vše v pořádku, tak se zobrazí hlavní okno programu Flip.

- 9 -

spustí výše uvedené dialogové okno nastavení parametrů komunikace

načte program nebo data do bufferu programu Flip

naprogramuje procesor Dále je zde možné vybrat paměť programu (CODE) nebo EEPROM. Jako výhodné se při odlaďování programu jeví stálé propojení propojky Prog. Po resetu se mikropočítač přepne do programovacího režimu, naprogramuji novou verzi a poté použiji

tlačítko , tím se můj program spustí. Při další úpravě programu stačí jen stisknout tlačítko reset. Pozor tato verze programu nerespektuje naši rodnou řeč, a proto je nutné soubory, ale hlavně složky pojmenovat bez háčků a čárek.

- 10 -

Program µScope Program µScope je kompletní vývojové a ladící prostředí pro X51. Vzhledem k probíhající výuce v hodinách mikroprocesorové techniky jsem zvolil právě tento vývojový prostředek.

Omezenou verzi programu je možné stáhnout na domovské stránce programu (www.promislbc.cz). Ve škole jsem využíval licenci zakoupené školou právě pro výuku mikroprocesorové techniky. V tomto programu jsem program pouze napsal a zkompiloval a data (.hex) poté nahrál pomocí výše uvedeného programu Atmel Flip.

- 11 -

Popis inicializace sériového kanálu a čítače/časovače inic: mov SCON,#52h ; dvojkově 01010010 –Mód 1- 8-bitový UART (časovač 1)

b7 b6 b5 b4 b3 b2 b1 b0

SM0 SM1 SM2 REN TB8 RB8 TI RI

Registr SCON mov TMOD,#20h ;dvojkově 01010010 –Mód 1- 16-bitový časovač

časovač 1 časovač 0

b7 b6 b5 b4 b3 b2 b1 b0

GATE C/T M1 M0 GATE C/T M1 M0

Registr TMOD mov TH1,#0fdh ;odpovídá rychlosti 9600b/s při kmitočty krystalu 11,0592MHz setb TR1 ;zapíná časovač 1 setb EA ;povoluje přerušení setb ES ;povoluje přerušení od sériového kanálu ;************************************************** ******************

- 12 -

Výkres DPS, osazovací výkres

obrazec desky plošných spojů- strana součástek

osazovací výkres, Pozor nejdříve osadit propojku pod µPC !

Návrh desek plošných spojů byl vytvořen pomocí programu Sprint Layout v4.0. Kompletní výkres je umístěn v souboru CD:\KIT_2.LAY .

- 13 -

Fotocestou vyrobená deska plošných spojů, připravená k osazení.

Již osazený modul. Důležité části: modrý konektor napájení (zapojen přes redukci k adaptéru 12V/1A), stabilizátor 7805, zelená LED- svítí při zapnutém napájení, tlačítko reset, trimr k nastavení kontrastu LCD, modrá LED připojena na P1.0 - aktivní je v nule, spodní lišty: 3 piny RS232 (GND,OUT,IN), +5V, port P2, GND, Prog, port P0, GND horní dvouřadá lišta - port P3, 10pin pro LCD (4bit režim)

- 14 -

Zapojení konektoru sériového rozhraní

Sériové rozhraní je vyvedeno na třípinový konektor (GND, RxD ,TxD). K těmto pinům připojuji konektor pro propojení s RS232. V současné době pracuji na vývoji bezdrátového modulu. Cílem je postavit univerzální periferii připojitelnou nejen k tomuto modulu, ale také k počítači PC, tím by bylo možné bezdrátově přenášet data z PC do PC nebo z µPC do PC a naopak. Pro tento účel lze použít velmi zajímavý obvod od firmy RMF, TR3000- 433,92Mhz. Firma Microrisc s.r.o prodává tento obvod za cenu 450Kč.

Foto podobného obvodu (pouzdro je stejné, jiná frekvence).

Dalším kandidátem je nRF905 od firmy Nordic. Cena je 5,90 USD.

Foto obvodu nRF905

Pájení nebude ani v jednom případě jednoduché. Vzhledem k ceně je přijatelnější nRF905 (cca.: 130Kč u MES Praha). Jako převodník TTL/CMOS použiji opět obvod MAX232A ale v SMD provedení, písmeno „A“ v názvu znamená možnost použití místo obvyklých kondenzátorů 1µF kondenzátory s hodnotou jen 100 nF. Tyto kondenzátory v provedení SMD jsou méně náročné na místo než elektrolytické (také v provedení SMD).

- 15 -

Redukce pro RS232 (v konečném provedení bude konektor přišroubován na panel)

Redukce pro IR přijímač dálkového ovládání.

- 16 -

Schéma zapojení pro čidlo dálkového ovládání. Při provozu je nutné TxD nastavit do logické

nuly a data snímat na RxD.

- 17 -

Snímač koncové polohy

V režimu kalibrace je sepnut tranzistor Q1- svítí LED dioda D3 (indikační) a zároveň D2 (v optozávoře). Pokud světlo dopadá na fotodiodu D1, tak je její odpor menší než při zastínění (přerušen paprsek- High).

- 18 -

Foto při dojezdu, optozávora.

Optozávora se zapíná pouze při kalibraci. Napětí 5V je spínáno tranzistorem BC546B. Sériově s infra diodou je zapojen ochranný rezistor a signalizační LED dioda.

- 19 -

Modul mikropo čítače

Použil jsem známý AT89S51ED2 (nástupce 51):

☺ Paměť programu 64 Kb ☺ 1Kb leader pro ISP ☺ RAM 256 bytů ☺ XRAM 1792 bytů ☺ Integrovaná EEPROM 2048 bytů ☺ Napájecí napětí 2,7 až 5,5 V

Tento mikrokontrolér je oblíbený zejména kvůli jednoduchému programování v aplikaci (ISP)- pokud se při restartu uzemní pin PSN, mikropočítač nezačne vykonávat program z programové paměti, ale jen z malého místa, kde je umístěn tzv.: BOOTLODER , ten po sériové lince komunikuje s počítačem PC. Použitím programu ATMEL FLIP jednouše nahrajeme data do programové paměti (nemusíme vlastnit vůbec žádný programátor). Protože PC využívá z důvodu komunikace na větší vzdálenosti jiné logické úrovně než TTL nebo CMOS, je nutné použít převodník logických úrovních (MAX 232). Pro jeho funkci stačí čtyři elektrolytické kondenzátory.

Popis vývodů MAX 232

- 20 -

Popis napájecího zdroje Na desce řídícího mikropočítače je také umístěn stabilizátor 7805.

Schéma zapojení napájecí části. Zdroj 12V je ve skutečnosti nahrazen adaptérem 12V/1A.

Stabilizátor je zapouzdřen v pouzdře TO220. V případě připojení většího množství dalších obvodů je nutné stabilizátor umístit na chladič. Na kladném vstupu napájecího napětí je umístěna univerzální dioda – proti otočení polarity (využíván síťový adaptér s výstupem 12V/1A). Přítomnost napájecího napětí je indikována zelenou LED diodou (D3). Filtrační kondenzátory v provedení SMD jsou, z důvodu ochrany proti rušení, umístěny těsně u µPC, u konektoru pro LCD displej.

- 21 -

Popis zapojení resetu a oscilátoru

Schéma zapojení resetovacího a taktovacího obvodu

Oscilátor byl navržen podle katalogového listu výrobce procesoru. Důležité jsou vývody RxD, TxD a PSN. RxD a TxD jsou zapojeny do převodníku napěťových úrovní (viz. výše). PSN je přes rezistor připojen na tlačítko (jumper-Prog) na zem. Krystal je umístěn v precizní lámací liště se třemi vývody (střední není využit)- proto je velice snadné měnit pracovní kmitočet oscilátoru. Zvolil jsem krystal 11,0592MHz.

RxD TxD

- 22 -

Mechanická část zařízení Byla použita stavebnice Merkur, krokový motor a koncová optozávora je také z vysloužilé disketové mechaniky.

Foto celé konstrukce (vlevo řídící část s LCD, vpravo budiče krokového motoru).

- 23 -

Foto modelového vozíku.

Foto LCD displeje, číslo určuje polohu od zkalibrovaného bodu, šipka představuje směr

posunu.

- 24 -

Foto osazené desky plošných spojů jedné poloviny budiče pro krokový motor.

Vlevo dole: vstup napájecího napětí, uprostřed výstupy pro cívku. Vpravo: vstup pro řídící

signály (D0,D1,GND).

- 25 -

Předchozí verze řídící jednotky.

Vstupně výstupní porty mikrokontroléru AT89C51ED2, indikační led.

- 26 -

V popředí obvod MAX232 + kondenzátory 1µF, dále krystal a stabilizátor 7805.

- 27 -

Závěr

Tato práce měla za cíl navrhnout a realizovat funkční model pohonné jednotky pro další využití v nejrůznějších aplikacích. Po několika pokusech, kdy byly upravovány jednotlivé části, se mi skutečně podařilo zrealizovat funkční model pohonné jednotky. Tuto jednotku bych rád do budoucna využil pro řízení robota, který hodlám zkonstruovat. Vzhledem k rychlosti technologického rozvoje je možné, že i v této pohonné jednotce ještě dojde k drobným změnám.

- 28 -

Zdroje informací Použitá literatura:

• SKALICKÝ Petr, Mikroprocesorové řady 8051, 2. rozšířené vydání, BEN - technická literatura, 14.3.2002, ISBN 80-86056-39-2

• HRBÁČEK Jiří, Komunikace mikrokontroléru s okolím 2, 1. vydání, BEN - technická literatura, 14.3.2002, ISBN 80-86056-73-2

• KAINKA Burkhard, Elektronika s podporou PC, 1. české vydání, HEL, 2.7.2004, ISBN 80-86167-22-4