国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

輪式機(jī)器人控制系統(tǒng)設(shè)計(jì)

2011-06-09 10:15:04楊春雷宋玉龍楊姍姍
電子設(shè)計(jì)工程 2011年24期
關(guān)鍵詞:低電平高電平計(jì)數(shù)器

楊春雷,宋玉龍,張 騰,楊姍姍

(1.西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710129;2.西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710129;3.西北工業(yè)大學(xué) 自動化學(xué)院,陜西 西安 710129)

移動機(jī)器人主要有輪式、履帶式、腿式、蛇形式、跳躍式和復(fù)合式。輪式機(jī)器人具有機(jī)構(gòu)簡單、驅(qū)動和控制相對方便、機(jī)動靈活等優(yōu)點(diǎn),被大量應(yīng)用于工業(yè)、農(nóng)業(yè)、反恐防爆、家庭、空間探測等領(lǐng)域[1]。本系統(tǒng)用兩個(gè)直流電機(jī)驅(qū)動4個(gè)輪子,用差動的方式實(shí)現(xiàn)機(jī)器人各種直線、曲線運(yùn)動。在各類機(jī)電系統(tǒng)中,直流電機(jī)具有良好的起動、制動和調(diào)速性能。最常用的直流調(diào)速技術(shù)是脈寬調(diào)制(Pulse Width Modulation,PWM)直流調(diào)速技術(shù),它具有調(diào)速精度高、響應(yīng)速度快、調(diào)速范圍寬和耗損低等特點(diǎn)[2]。本系統(tǒng)選用具有6個(gè)PWM通道的Atmega168單片機(jī)作為處理器,使用兩個(gè)定時(shí)器的快速PWM模式對電機(jī)進(jìn)行速度控制。

1 硬件設(shè)計(jì)

1.1 Atmega168特征

Atmega168是ATMEL公司的一款高性能、低功耗的8位AVR微控制器[3],采用先進(jìn)的精簡指令集架構(gòu)。Atmega168有3個(gè)定時(shí)/計(jì)數(shù)器:8位的定時(shí)/計(jì)數(shù)器 0、16位的定時(shí)/計(jì)數(shù)器1以及8位的定時(shí)/計(jì)數(shù)器3。每個(gè)定時(shí)器有2個(gè)PWM通道,因此共有6個(gè)PWM通道,它們對應(yīng)的PWM波輸出引腳分別為 PD6(OC0A)、PD5(OC0B)、PB1(OC1A)、PB2(OC1B)、PB3(OC2A)、PD3(OC2B)。

1.2 電路原理圖設(shè)計(jì)

圖1所示為Atmega168最小系統(tǒng)的原理圖,包括電源電路、復(fù)位電路和晶振電路。圖中復(fù)位電路制造出兩個(gè)復(fù)位信號,其中信號用于單片機(jī),RST信號用于ISP下載。

圖2所示為電機(jī)的雙H橋驅(qū)動電路原理圖,下面對重要部分作說明:

1)H橋電路 驅(qū)動電路采用功率 MOSFET(Metal-Oxide-Semiconductor Field Effect Transistor)構(gòu)成 H 橋驅(qū)動電路。如圖2所示,當(dāng)PWM1A為高電平、PWM1B為低電平時(shí),NMOS管U9和PMOS管U7導(dǎo)通,另外兩個(gè)截止,電機(jī)反轉(zhuǎn);當(dāng)PWM1A為低電平、PWM1B為高電平時(shí),NMOS管 U9和PMOS管U7截止,另外兩個(gè)導(dǎo)通,電機(jī)正轉(zhuǎn)。PWM2A和PWM2B同上。

圖1 Atmega168最小系統(tǒng)Fig.1 Atmega168 Minimum System

2)二極管D1~D8 因?yàn)殡姍C(jī)線圈在電路開閉瞬間產(chǎn)生的反向電動勢通過會高過電源,這樣對MOSFET和電路會有很大的影響甚至燒毀電機(jī),為避免這種情況發(fā)生,通常需要在MOSFET兩端并聯(lián)二極管[4]。

圖2 雙H橋驅(qū)動電路Fig.2 Dual H bridge drive circuit

1.3 印刷電路板設(shè)計(jì)

為了使機(jī)器人有較大的驅(qū)動能力,必須在設(shè)計(jì)PCB時(shí)注意電機(jī)相關(guān)電源線的線寬,要有能力經(jīng)過較大電流。然而由于MOS管引腳焊盤間距的限制,線寬不可能太大,為此采用焊盤布線。如圖3右邊H橋驅(qū)動電路部分所示,與MOS管源極、漏極相連的大電流線均是由焊盤拉制成的,可以通過在焊接時(shí)增加錫量來提升過大電流的能力。這樣制出的電路板可以承受10 A以上驅(qū)動電流。

2 軟件設(shè)計(jì)

2.1 開發(fā)軟件及配置

1)開發(fā)環(huán)境構(gòu)建

文中選用AVR Studio 4+WinAVR構(gòu)建開發(fā)環(huán)境。AVR Studio 4是官方的開發(fā)環(huán)境,可使用匯編語言進(jìn)行開發(fā),使用其他語言需第三方軟件協(xié)助,集軟硬件仿真、調(diào)試、編程下載于一體。它是唯一的調(diào)試器。WinAVR是基于GCC編譯器的開源軟件,補(bǔ)充AVR Studio 4的不足,用于C語言開發(fā)。

圖3 驅(qū)動控制電路PCB圖[5]Fig.3 Drive and control circuit PCB

2)修改 Makefile

WinAVR基于GCC,因此就免不了使用makefile來實(shí)現(xiàn)自動編譯,打開一個(gè)已有的Makefile進(jìn)行修改即可。將MCU改為Atmega168,F(xiàn)_CPU改為12MHz(電路板上使用晶振的頻率),SRC改為工程中C源文件的名字 (如SRC=file1.c file2.c file3.c)。另存為新的Makefile文件并放在工程文件夾中。

2.2 定時(shí)器PWM模塊使用

圖4所示為定時(shí)/計(jì)數(shù)器 0的控制寄存器 TCCR0A、TCCR0B 的位定義。其中 COM0A1、COM0A0、COM0B1、COM0B0為比較輸出模式(Compare Output Mode)位,決定了在計(jì)數(shù)器TCNT0與輸出比較寄存器OCR0A、OCR0B值相同時(shí),引腳OC0A、OC0B 輸出電平的高低;WGM02、WGM01、WGM00 為波形發(fā)生模式(Waveform Generation Mode)位,決定定時(shí)/計(jì)數(shù)器 0 工作模式;CS02、CS01、CS00 為時(shí)鐘選擇 (Clock Select)位,決定定時(shí)/計(jì)數(shù)器0所用時(shí)鐘對主時(shí)鐘的分頻比;FOC0A、FOC0B為引腳OC0A、OC0B強(qiáng)制輸出,此處不用。

定時(shí)/計(jì)數(shù)器有 4種工作模式:普通模式、CTC(Clear Timer on Compare Match)模式、快速PWM模式、相位修正PWM模式。模式的設(shè)置方法如圖表1所示。本系統(tǒng)采用模式3,計(jì)數(shù)最大值為0xFF的快速PWM模式。

圖4 定時(shí)/計(jì)數(shù)器0控制寄存器Fig.4 Timer/Counter 0 Control Register

表1 定時(shí)/計(jì)數(shù)器0工作模式設(shè)置Tab.1 Timer/Counter 0 work mode settings

2.3 程序原理及實(shí)現(xiàn)

圖2中H橋驅(qū)動電路中,PWM1A若為高電平,PWM1B則必須為低電平,否則反之。故PWM1A與PWM1B波形應(yīng)是互相反相的。PWM2A、PWM2B也是如此。對于快速PWM模式,通過比較輸出模式位的設(shè)置可以得到反轉(zhuǎn)和非反轉(zhuǎn)兩個(gè)正好互相反相的PWM波信號。

圖5 電機(jī)驅(qū)動程序流程Fig.5 Motor drive program flow

如圖5所示為電機(jī)驅(qū)動程序的流程。程序中使用了兩個(gè) 8位定時(shí)器(定時(shí)器 0和定時(shí)器 2),通過 PD6(OC0A)、PD5(OC0B)、PB3 (OC2A)、PD3 (OC2B)4個(gè)引腳輸出信號PWM1A、PWM1B、PWM2A和PWM2B。下面對流程中各個(gè)步驟進(jìn)行詳細(xì)說明:

1)端口初始化:

將端口方向寄存器 DDRx(Data Direction Register)中對應(yīng)引腳 PD6(OC0A)、PD5(OC0B)、PB3(OC2A)、PD3(OC2B)的比特位設(shè)為1,從而使這些引腳處于輸出模式。

2)定時(shí)器0、2初始化:

定時(shí)器0、2的設(shè)置方法是一樣的,下面僅對定時(shí)器0的設(shè)置作詳細(xì)說明:

①WGM02、WGM021、WGM00 取 011, 即快速 PWM 模式,計(jì)數(shù)器最大值為0xff。

②COM0A1、COM0A0取10,為非反轉(zhuǎn)模式,即當(dāng)計(jì)數(shù)器TCNT0的值與輸出比較寄存器OCR0A的值相同匹配時(shí),OC0A引腳輸出低電平,當(dāng)計(jì)數(shù)器TCNT0計(jì)數(shù)值溢出回到0時(shí),OC0A引腳輸出高電平。

③COM0B1、COM0B0取11,為反轉(zhuǎn)模式,即當(dāng)計(jì)數(shù)器TCNT0的值與輸出比較寄存器OCR0B的值相同匹配時(shí),OC0B引腳輸出高電平,當(dāng)計(jì)數(shù)器TCNT0計(jì)數(shù)值溢出回到0時(shí),OC0B引腳輸出低電平??梢钥闯?,當(dāng)OCR0B的值與OCR0A設(shè)成一樣時(shí),OC0B的輸出波形正好與OC0A的反相。

④時(shí)鐘選擇位CS02、CS01、CS00取001,則定時(shí)/計(jì)數(shù)器使用的時(shí)鐘頻率沒有經(jīng)過主時(shí)鐘預(yù)分頻,即等于晶振主時(shí)鐘頻率。

⑤計(jì)數(shù)寄存器初值TCNT0設(shè)為0x00,則計(jì)數(shù)器從0加計(jì)數(shù)到255,溢出后又直接從0加計(jì)數(shù)到255,如此往復(fù)。

⑥輸出比較寄存器OCR0A=OCR0B=100,當(dāng)TCNT0計(jì)數(shù)值等于100時(shí),則引腳OC0A、OC0B輸出電平發(fā)生改變。此數(shù)值決定了直流電機(jī)的轉(zhuǎn)速,在整個(gè)機(jī)器人程序系統(tǒng)中,當(dāng)由機(jī)器人的策略子程序給出合適的值。

3)死循環(huán):

一般單片機(jī)程序都要主函數(shù)執(zhí)行死循環(huán),以避免程序執(zhí)行到不可預(yù)知的地方。

2.4 下載目標(biāo)代碼

選擇AVR Studio的菜單欄Project|Configuration Options即可打開工程設(shè)置,確保Create Hex File前的復(fù)選框被選中,然后編譯上述C程序,若無錯(cuò)誤即可生成.hex文件用于下載。

將ISP下載線與單片機(jī)端和計(jì)算機(jī)端都連接好,打開一款A(yù)VR下載軟件,在下載之前要設(shè)置一下熔絲位。新的Atmega168單片機(jī)時(shí)鐘源選擇熔絲位是配置在 “校準(zhǔn)的內(nèi)部RC振蕩器”狀態(tài)的,改成“外部8 mHz以上石英晶振”狀態(tài)[6]。然后即可將.hex文件下載到單片機(jī)Flash中。

3 結(jié) 論

本文從硬件和軟件兩方面詳細(xì)講述了輪式機(jī)器人直流電機(jī)驅(qū)動板整個(gè)系統(tǒng)的開發(fā)原理和過程。其中,硬件部分介紹了驅(qū)動電路的設(shè)計(jì)原理圖,并給出了支持電機(jī)大電流、大功率運(yùn)轉(zhuǎn)條件下PCB的畫法。軟件部分首先介紹了AVR單片機(jī)開發(fā)環(huán)境的構(gòu)建以及新建工程所需的配置,然后詳述了用2個(gè)定時(shí)器的快速PWM模式產(chǎn)生4路PWM信號的方法,最后說明了ISP下載所需配置和下載方法。使用6節(jié)強(qiáng)力鎳氫電池,系統(tǒng)實(shí)際運(yùn)行可達(dá)到15 A的驅(qū)動電流,達(dá)到預(yù)期目的。

[1]朱磊磊,陳軍.輪式移動機(jī)器人研究綜述[J].機(jī)床與液壓,2009,37(8):242-247.ZHU Lei-lei,CHEN Jun.Wheeled mobile robot research[J].Machine Tool&Hydraulics,2009,37(8):242-247.

[2]張立勛,沈錦華,路敦民,等.AVR單片機(jī)實(shí)現(xiàn)的直流電機(jī)PWM調(diào)速控制器[J].機(jī)械與電子,2004,4:29-32.ZHANG Li-xun, SHEN Jin-hua, Lu Dun-min, et al.Pulse width modulation speed controller of DC motor based on AVR Microcontroller[J].Machinery and Electronics,2004,4:29-32.

[3]Atmel Corporation.8-bit AVR Microcontroller with 8K Bytes In-System Programmable Flash:ATmega48、ATmega88、ATmega168[M].USA:Atmel Corporation,2004.

[4]陳萬米,張冰,朱明,等.智能足球機(jī)器人系統(tǒng)[M].北京:清華大學(xué)出版社,2009.

[5]談世哲.PROTEL DXP2004電路設(shè)計(jì)基礎(chǔ)與典型范例[M].北京:電子工業(yè)出版社,2007.

[6]江海波,王卓然,耿德根,等.深入淺出AVR—從Atmega48/88/168開始[M].北京:中國電力出版社,2008.

猜你喜歡
低電平高電平計(jì)數(shù)器
數(shù)字電路中“邏輯非”的用法辨析
煤氣與熱力(2022年2期)2022-03-09 06:29:30
一種基于FPGA的PWM防錯(cuò)輸出控制電路
鐵道車輛高/低電平信號智能發(fā)生器設(shè)計(jì)
TS-03C全固態(tài)PDM中波發(fā)射機(jī)開關(guān)機(jī)控制電路原理及故障分析
科技傳播(2019年15期)2019-08-22 08:07:44
2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
DM 50KW中波廣播發(fā)射機(jī)欠推動故障分析
PDM 1kW中波廣播發(fā)射機(jī)保護(hù)電路分析
計(jì)數(shù)器競爭冒險(xiǎn)及其處理的仿真分析
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
河南科技(2014年10期)2014-02-27 14:09:30
鄂州市| 黑水县| 那坡县| 闵行区| 稻城县| 筠连县| 宾阳县| 泌阳县| 成武县| 通河县| 黄山市| 昌黎县| 五峰| 西安市| 合江县| 白城市| 卢龙县| 登封市| 沙湾县| 盘山县| 饶平县| 北辰区| 南京市| 永福县| 称多县| 古蔺县| 镇雄县| 新疆| 界首市| 文昌市| 肇庆市| 广水市| 耒阳市| 商丘市| 泰安市| 兰西县| 喀什市| 武隆县| 如东县| 姚安县| 略阳县|