<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于STC12C5A60S2的教育機器人的設(shè)計

          基于STC12C5A60S2的教育機器人的設(shè)計

          作者: 時間:2011-09-16 來源:網(wǎng)絡(luò) 收藏

          目前許多高等教育院校采用進行課堂教學(xué)和培養(yǎng)學(xué)生的創(chuàng)新能力。本文設(shè)計的通過紅外光電傳感器陣列檢測路面信息并利用模糊自整定PID算法將采集的路面信息和電機運行數(shù)據(jù)進行實時處理,實現(xiàn)的智能巡航并將機器人的狀態(tài)顯示輸出。

            1 機器人的組成及工作原理

            機器人由硬件和軟件兩部分組成。采用STC12CSA60S2單片機作為系統(tǒng)控制的核心部件,完成路面信息檢測、直流電機控制、電機轉(zhuǎn)速檢測、數(shù)碼管顯示、蜂鳴器報警以及鍵盤輸入等功能,硬件系統(tǒng)框圖如圖1所示。

            

          基于STC12C5A60S2的教育機器人的設(shè)計

            軟件部分主要完成路況檢測、PID電機控制、輸入輸出人機接口,可實現(xiàn)各種機器人巡航動作、智能循跡等功能。

            2 STC12系列單片機

            本文采用的單片機是是宏晶科技生產(chǎn)的STC12系列單片機。該單片機是單時鐘/機器周期(1T),具有高速、低功耗、超強抗干擾和無法解密諸多優(yōu)點。指令代碼完全兼容傳統(tǒng)8051,速度快8-12倍。工作電壓為3.3 V~5.5 V(5V單片機),有6個16位定時器,兼容普通8051的定時器或4個外部中斷,具有看門狗和EEPROM功能,并且內(nèi)部集成MAX810專用復(fù)位電路。

            3 硬件設(shè)計

            3.1 系統(tǒng)電源

            由于電機在啟動瞬間電流很大,要求電源有足夠大的驅(qū)動能力,因此系統(tǒng)采用雙電源供電方式。利用LM7805將12 V鋰電池組電壓轉(zhuǎn)換為5 V穩(wěn)壓電源給單片機最小系統(tǒng)電路、路面檢測電路、數(shù)碼管顯示電路和電機測速電路供電。而電機驅(qū)動電路直接由另外一組鋰電池輸出的12 V電壓直接供電。

            3.2 電機驅(qū)動電路

            本系統(tǒng)使用的直流電機額定電壓為12 V,額定轉(zhuǎn)速為300 rpm。電機驅(qū)動電路采用專用芯片L298N作為電機驅(qū)動芯片。用該芯片作為電機驅(qū)動,不僅穩(wěn)定性好,大大地簡化驅(qū)電路,而且驅(qū)動能力大,有利于電機轉(zhuǎn)速的穩(wěn)定。電機驅(qū)動電路如圖2所示。

            

          基于STC12C5A60S2的教育機器人的設(shè)計


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: STC12C5A60S2 教育機器人

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();