智能機器人小車創(chuàng)意設(shè)計制作指導手冊.doc

上傳人:小** 文檔編號:13546988 上傳時間:2020-06-20 格式:DOC 頁數(shù):32 大?。?.34MB
收藏 版權(quán)申訴 舉報 下載
智能機器人小車創(chuàng)意設(shè)計制作指導手冊.doc_第1頁
第1頁 / 共32頁
智能機器人小車創(chuàng)意設(shè)計制作指導手冊.doc_第2頁
第2頁 / 共32頁
智能機器人小車創(chuàng)意設(shè)計制作指導手冊.doc_第3頁
第3頁 / 共32頁

下載文檔到電腦,查找使用更方便

8 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《智能機器人小車創(chuàng)意設(shè)計制作指導手冊.doc》由會員分享,可在線閱讀,更多相關(guān)《智能機器人小車創(chuàng)意設(shè)計制作指導手冊.doc(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 智能機器人小車 創(chuàng)意設(shè)計制作指導手冊 江蘇省天一中學人工智能社團 指導老師:鄧一波 俞金炎 二零一一年三月 目 錄 一,機器人概述 二,機器人小車硬件結(jié)構(gòu)解析 三,機器人小車編程語言及環(huán)境 四,智能機器人小車安裝,調(diào)試 五,智能機器人小活動方案及創(chuàng)意案例 第一章 機器人概述 1,機器人技術(shù)的發(fā)展 1.1機器人的由來 機器人 是20世紀才出現(xiàn)的新名詞。1920年,捷克劇作家Capek在他的《羅薩姆萬能機器人公司(R.U.R

2、)》劇本中,第一次提出了機器人(robot)這個詞。robot是從古代斯拉夫語robota一詞演變而來的。robota本是強制勞動的意思,Capek在二十世紀工業(yè)革命后技術(shù)和生產(chǎn)快速發(fā)展的背景下,根據(jù)它造出具有"奴隸機器"含義的新詞robot。它反映著人類希望制造出象人一樣會思考,有勞動 的機器代替自己工作的愿望。但在當時,機器人一詞也僅僅具有科幻意義,并不具備現(xiàn)實意義,真正使機器人成為現(xiàn)實是 20世紀工業(yè)機器人出現(xiàn)以后。 人類發(fā)展到20世紀,隨著社會分工的細化,從事簡單重復(fù)工作的人們強烈渴望有某種能代替自己工作的機器出現(xiàn),在 這方面的研究,美國的英格伯格和德沃爾走在了前面。

3、 1954年,電子學家德沃爾獲得了一項"可編程序機械手"的專利,這是一種象人手臂的機械手,它按程序進行工作,這種程序可以根據(jù)不同工作需要來編制,因此,具有通用性和靈活性,由此,熱衷于機器人研究的物理學家英格伯格想到,如果能制造出這種機器,可象人一樣學習別人干活的動作,之后便能自動重復(fù)進行操作。于是,在1958年,英格伯格和德沃爾聯(lián)手制造出第一臺真正實用的工業(yè)機器人,并很快得到了應(yīng)用。 隨后,他們成立了世界上第一家機器人制造工廠——尤尼梅遜公司,并將第一批機器人稱為"尤尼梅物",意思是"萬能自動",英格伯格因此被稱為"工業(yè)機器人之父",1984年,他還預(yù)言:"我要使機器人擦地板,做飯,洗刷我

4、的汽車和檢查安全"。 機器人發(fā)展的三個發(fā)展階段 隨著人們對機器的研究,機器人也在進步,按其發(fā)展過程機器人可分為三代:第一代是示教再現(xiàn)型機器人:"尤尼梅特"和"沃爾薩特蘭"這兩種最早的工業(yè)機器人是示教再現(xiàn)型機器人的典型代表。它由人操縱機械手做一遍應(yīng)當完成的動作或通過控制器發(fā)出指令讓機械手臂動作,在動作過程中機器人會自動將這一過程存入記憶裝置。當機器人工作時,能再現(xiàn)人教給它的動作,并能自動重復(fù)的執(zhí)行。這類機器人不具有外界信息的反饋能力,很難適應(yīng)變化的環(huán)境。 第二代是有感覺的機器人:它們對外界環(huán)境有一定感知能力,并具有聽覺、視覺、觸覺等功能。機器人工作時,根據(jù)感覺器官(傳感器)獲得的信息,靈

5、活調(diào)整自己的工作狀態(tài),保證在適應(yīng)環(huán)境的情況下完成工作。如:有觸覺的機械手可輕松自如地抓取雞蛋,具有嗅覺的機器人能分辨出不同飲料和酒類。 第三代是具有智能的機器人:智能機器人是靠人工智能技術(shù)決策行動的機器人,它們根據(jù)感覺到的信息,進行獨立思維、識別、推理,并作出判斷和決策,不用人的參與就可以完成一些復(fù)雜的工作。日本研制的能演奏數(shù)首曲目?quot;瓦伯特"2號機器人,已達到5歲兒童的智能水平。目前,智能機器人已在許多方面具有人類的特點,隨著機器人技術(shù)不斷發(fā)展與完善,機器人的智能水平將越來越接近人類。 1.2 機器人的定義 機器人(Robot)是自動執(zhí)行工作的機器裝置。它既可以接受

6、人類指揮,又可以運行預(yù)先編排的程序,也可以根據(jù)以人工智能技術(shù)制定的原則綱領(lǐng)行動。它的任務(wù)是協(xié)助或取代人類工作的工作,例如生產(chǎn)業(yè)、建筑業(yè),或是危險的工作。 1.3 機器人學的進展 機器人的償還期理論促進對機器人產(chǎn)業(yè)的投資。日本后來居上,成為“機器人王國” 機器人產(chǎn)業(yè)在全世界迅速發(fā)展應(yīng)用范圍遍及工業(yè)、科技和國防各個領(lǐng)域。形成新的學科-----機器人學 機器人向智能化方向發(fā)展 2, 機器人結(jié)構(gòu)與分類 2.1 機器人系統(tǒng)的結(jié)構(gòu) 機器人一般由執(zhí)行機構(gòu)、驅(qū)動裝置、檢測裝置和控制系統(tǒng)和復(fù)雜機械等組成。   執(zhí)行機構(gòu)即機器人本體,其臂部一般采用空間開鏈連桿機構(gòu),其中的運動副(轉(zhuǎn)動副或移動副)常

7、稱為 關(guān)節(jié),關(guān)節(jié)個數(shù)通常即為機器人的自由度數(shù)。根據(jù)關(guān)節(jié)配置型式和運動坐標形式的不同,機器人執(zhí)行機構(gòu)可分為直角坐標式、圓柱坐標式、極坐標式和關(guān)節(jié)坐標式等類型。出于擬人化的考慮,常將機器人本體的有關(guān)部位分別稱為基座、腰部、臂部、腕部、手部(夾持器或末端執(zhí)行器)和行走部(對于移動機器人)等。   驅(qū)動裝置是驅(qū)使執(zhí)行機構(gòu)運動的機構(gòu),按照控制系統(tǒng)發(fā)出的指令信號,借助于動力元件使機器人進行動作。它輸入的是電信號,輸出的是線、角位移量。機器人使用的驅(qū)動裝置主要是電力驅(qū)動裝置,如步進電機、伺服電機等,此外也有采用液壓、氣動等驅(qū)動裝置。   檢測裝置的作用是實時檢測機器人的運動及工作情況,根據(jù)需要反饋給

8、控制系統(tǒng),與設(shè)定信息進行比較后,對執(zhí)行機構(gòu)進行調(diào)整,以保證機器人的動作符合預(yù)定的要求。作為檢測裝置的傳感器大致可以分為兩類:一類是內(nèi)部信息傳感器,用于檢測機器人各部分的內(nèi)部狀況,如各關(guān)節(jié)的位置、速度、加速度等,并將所測得的信息作為反饋信號送至控制器,形成閉環(huán)控制。另一類是外部信息傳感器,用于獲取有關(guān)機器人的作業(yè)對象及外界環(huán)境等方面的信息,以使機器人的動作能適應(yīng)外界情況的變化,使之達到更高層次的自動化,甚至使機器人具有某種“感覺”,向智能化發(fā)展,例如視覺、聲覺等外部傳感器給出工作對象、工作環(huán)境的有關(guān)信息,利用這些信息構(gòu)成一個大的反饋回路,從而將大大提高機器人的工作精度。 控制系統(tǒng)有兩種方式。

9、一種是集中式控制,即機器人的全部控制由一臺微型計算機完成。另一種是分散(級)式控制,即采用多臺微機來分擔機器人的控制,如當采用上、下兩級微機共同完成機器人的控制時,主機常用于負責系統(tǒng)的管理、通訊、運動學和動力學計算,并向下級微機發(fā)送指令信息;作為下級從機,各關(guān)節(jié)分別對應(yīng)一個CPU,進行插補運算和伺服控制處理,實現(xiàn)給定的運動,并向主機反饋信息。根據(jù)作業(yè)任務(wù)要求的不同,機器人的控制方式又可分為點位控制、連續(xù)軌跡控制和力(力矩)控制。 2.2 機器人的分類 誕生于科幻小說之中一樣,人們對機器人充滿了幻想。也許正是由于機器人定義的模糊,才給了人們充分的想象和創(chuàng)造空間。 家務(wù)型機器人:能幫助人們

10、打理生活,做簡單的家務(wù)活。 操作型機器人:能自動控制,可重復(fù)編程,多功能,有幾個自由度,可固定或運動,用于相關(guān)自動化系統(tǒng)中。 程控型機器人:按預(yù)先要求的順序及條件,依次控制機器人的機械動作。 示教再現(xiàn)型機器人:通過引導或其它方式,先教會機器人動作,輸入工作程序,機器人則自動重復(fù)進行作業(yè)。 數(shù)控型機器人:不必使機器人動作,通過數(shù)值、語言等對機器人進行示教,機器人根據(jù)示教后的信息進行作業(yè)。 感覺控制型機器人:利用傳感器獲取的信息控制機器人的動作。 適應(yīng)控制型機器人:能適應(yīng)環(huán)境的變化,控制其自身的行動。 學習控制型機器人:能“體會”工作的經(jīng)驗,具有一定的學習功能,并將所“

11、學”的經(jīng)驗用于工作中。 智能機器人:以人工智能決定其行動的機器人。 我國的機器人專家從應(yīng)用環(huán)境出發(fā),將機器人分為兩大類,即工業(yè)機器人和特種機器人。所謂工業(yè)機器人就是面向工業(yè)領(lǐng)域的多關(guān)節(jié)機械手或多自由度機器人。而特種機器人則是除工業(yè)機器人之外的、用于非制造業(yè)并服務(wù)于人類的各種先進機器人,包括:服務(wù)機器人、水下機器人、娛樂機器人、軍用機器人、農(nóng)業(yè)機器人、機器人化機器等。在特種機器人中,有些分支發(fā)展很快,有獨立成體系的趨勢,如服務(wù)機器人、水下機器人、軍用機器人、微操作機器人等。目前,國際上的機器人學者,從應(yīng)用環(huán)境出發(fā)將機器人也分為兩類:制造環(huán)境下的工業(yè)機器人和非制造環(huán)境下的服務(wù)與仿人型機器人

12、,這和我國的分類是一致的。 空中機器人又叫無人機器,近年來在軍用機器人家族中,無人機是科研活動最活躍、技術(shù)進步最大、研究及采購經(jīng)費投入最多、實戰(zhàn)經(jīng)驗最豐富的領(lǐng)域。80多年來,世界無人機的發(fā)展基本上是以美國為主線向前推進的,無論從技術(shù)水平還是無人機的種類和數(shù)量來看,美國均居世界之首位。 3,機器人學與人工智能的關(guān)系 機器人學與人工智能有十分密切的關(guān)系。人工智能的近期目標在于研究智能計算機及其系統(tǒng),以模仿和執(zhí)行人類的某些智力功能,如判斷、推理、理解、識別、規(guī)劃、學習和其他問題求解。這一研究抓住了創(chuàng)造力的首要問題----人類智能。人工智能使目前主要用于數(shù)值計算的計算機變得更

13、加富有生氣,并用它來表達最復(fù)雜的生物世界----人腦智能。人們的努力遠非獲得完全成功,但是已經(jīng)在許多研究領(lǐng)域取得進展。例如,在規(guī)劃、博弈、問題求解、語言與語音理解、視覺圖像識別、定理證明、知識表示與描述等方面,已取得不少研究成果。 1996年2月10~17日,為了紀念世界上第一臺電子計算機誕生50周年,IBM的“深藍”同國際象棋世界冠軍卡斯帕羅夫在美國費城舉行六局大賽。結(jié)果 卡斯帕羅夫以4:2獲勝。 1997年5月3~11日, “深藍”再次挑戰(zhàn)卡斯帕羅夫,此時“深藍”的運算速度達每秒2億次,比上次提高了一倍。結(jié)果“深藍”3.5:2.5獲勝。 目前對機器人學的研究主要還是以控制理論的反饋

14、概念為基礎(chǔ)的。也就是說,迄今為止,機器人上的"智能"是由于應(yīng)用反饋控制而產(chǎn)生的。但是,反饋控制技術(shù)本身并不是建立在人工智能技術(shù)的基礎(chǔ)上的,而屬于古典工程控制理論范疇。 一方面,機器人學的進一步發(fā)展需要人工智能基本原理的指導,并采用各種人工智能技術(shù); 另一方面,機器人學的出現(xiàn)與發(fā)展又為人工智能的發(fā)展帶來了新的生機,產(chǎn)生了新的推動力,并提供一個很好的試驗與應(yīng)用場所。也就是說,人工智能想在機器人學上找到實際應(yīng)用,并使問題求解、搜索規(guī)劃、知識表示和智能系統(tǒng)等基本理論得到進一步發(fā)展。 粗略地說,由計算機(機器)來模仿人類的智能行為,就是人工智能,或稱為機器智能。而下一代新的機器人就是應(yīng)

15、用各種人工智能技術(shù)的機器人,所以叫做智能機器人。 智能機器人 盡管目前在工業(yè)上運行的90%以上的機器人都談不上有什么智能,機器人執(zhí)行的許多任務(wù)也根本不需要運用傳感器; 但是,隨著機器人技術(shù)的迅速發(fā)展和自動化程度的進一步提高,對機器人的功能提出了更高的要求,特別是需要各種具有不同程度智能的機器人和機器人化裝置。 最近20年已生產(chǎn)出一批具有傳感裝置(如視覺、觸覺和聽覺等)的機器人以及少數(shù)具有與環(huán)境進行"對話"能力的交互機器人(interactive robot)。這些機器人就屬于智能機器人,它們能夠執(zhí)行一些過去無法解決的工作任務(wù)。 智能機器人已在自主系統(tǒng)和柔性加工系

16、統(tǒng)中得到日益廣泛的應(yīng)用。自主機器人能夠設(shè)定自己的目標,規(guī)劃并執(zhí)行自己的動作,使自己不斷適應(yīng)環(huán)境的變化。柔性加工系統(tǒng)由機器人工段(robotic work cell)或柔性工段組成。每個機器人工段能夠完全自動地完成一系列操作、裝卸、運輸或加工。把機器人工段與其他工段相連接,就形成一個柔性組合式機器人生產(chǎn)系統(tǒng),簡稱柔性加工系統(tǒng)。 第二章 機器人小車硬件結(jié)構(gòu)解析 1,智能機器人小車概述: TY-1智能機器人小車是由江蘇省天一中學人工智能社團師生共同設(shè)計,研發(fā),制作的一款多功能,智能化,可編程機器人。該機器

17、人以小車作為基本活動載體,搭配一塊功能強大的控制電路板,在配備各種傳感器的情況下可實現(xiàn)足球,滅火,探險等多種可變復(fù)雜功能。另外,對比于當前許多商品機器人,該機器人又具有結(jié)構(gòu)小巧,造價低廉的特點。所以,該機器人可作為中學生普及機器人知識,培養(yǎng)實踐動手能力的良好載體。通過學生親身參與到設(shè)計,制作的全過程中,使學生從更深的此層次上加深對機器人的理解,培養(yǎng)學生科學興趣和愛好。 該智能機器人小車外觀如圖一所示: 圖一 TY-1智能機器人小車基本參數(shù): 整體尺寸:130mm*155mm*110mm(長*寬*高) 整車重量:450g 工作電壓:DC 7~12V 典型工作電壓:DC 7.2V

18、 工作電流:300~ 峰值電流:1A 行動速度:20~250mm/ 2,智能機器人小車結(jié)構(gòu)解析: TY-1智能機器人小車基本構(gòu)成主要包括小車車架、機器人控制板和傳感器組成。 TY-1智能機器人小車車架主要包括左右減速電、左右驅(qū)動輪子、車架固定板、萬向輪、固定螺絲等幾個部分組成。 2.1減速電機: 減速電機采用普通直流電機,結(jié)合機械減速箱制作而成。價格低廉。由于采用塑料齒輪,不適合高扭矩的場合,但用于小功率機器人小車非常適合。 減速電機基本參數(shù): 1,工作電壓: 3V~12V DC(建議工作電壓在6到8V左右)。 2,最大扭矩: 800gf cm

19、 min(3V時)。 3,轉(zhuǎn)速比: 1:48。 4,負載電流: 70mA (250mA MAX)(3V時)。 5,轉(zhuǎn)速15f/min(3V時)。 2.2車輪: 輪子直徑約65MM,厚度約28MM,輪轂采用高強度塑料,輪胎采用黑色橡膠。 2.3萬向輪: 萬向輪采用具有滑動轉(zhuǎn)向軸承的平面萬向輪,轉(zhuǎn)動靈活。輪子采用尼龍制造,經(jīng)久耐磨,質(zhì)量可靠。 2.4電源: 小車電源采用六節(jié)5號堿性電池,電池電壓為9V。小車電源采用六節(jié)5號五號鎳氫可充電電池,電池電壓為7.2V。 3,智能機器人小車控制板: 控制板是機器人小車核心部件之一。小車的智能化主要是由控制板來實現(xiàn)

20、的??刂瓢宓闹饕饔檬峭ㄟ^運行在板載微控制芯片中的用戶程序,來完成檢測、采集傳感器所接受到的外界信號,并根據(jù)程序編制的控制算法對信號進行處理后來控制電機的轉(zhuǎn)動,從而完成小車的運動控制。 所以,微控制芯又是控制板的核心部件。它是一個小型的CPU,執(zhí)行指令,完成機器人小車的控制任務(wù)。本控制板所采用的是美國Atmel公司生產(chǎn)的單周期,低功耗微控制芯片ATmega8。ATmega8單片機是高性能、低功耗的 8 位微處理器,8K 字節(jié)的系統(tǒng)內(nèi)可編程Flash,512 字節(jié)的EEPROM,1K字節(jié)的片內(nèi)SRAM,非常豐富的內(nèi)部設(shè)備,在構(gòu)成系統(tǒng)是不需要添加復(fù)雜的外圍芯片設(shè)備,因此適合低成本智能小車的應(yīng)用需

21、要。ATmega8是基于增強的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間, ATmega8 的數(shù)據(jù)吞吐率高達1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 AVR 內(nèi)核具有豐富的指令集和32 個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。ATmega8 有如下特點:8K 字節(jié)的系統(tǒng)內(nèi)可編程Flash( 具有同時讀寫的能力,即RWW),512 字節(jié) EE

22、PROM,1K 字節(jié) SRAM,32 個通用I/O 口線,32 個通用工作寄存器,三個具有比較模式的靈活的定時器/ 計數(shù)器(T/C), 片內(nèi)/ 外中斷,可編程串行USART,面向字節(jié)的兩線串行接口, 10 位6 路 (8 路為TQFP 與MLF 封裝)ADC,具有片內(nèi)振蕩器的可編程看門狗定時器,一個SPI 串行端口,以及五種可以通過軟件進行選擇的省電模式。工作于空閑模式時CPU 停止工作,而SRAM、T/C、 SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時器繼續(xù)運行,允許用戶保持一個時間基準,而其余功能模塊處于休

23、眠狀態(tài); ADC 噪聲抑制模式時終止CPU 和除了異步定時器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時的開關(guān)噪聲; Standby 模式下只有晶體或諧振振蕩器運行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力。本芯片是以Atmel 高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi)ISP Flash 允許程序存儲器通過ISP 串行接口,或者通用編程器進行編程,也可以通過運行于AVR 內(nèi)核之中的引導程序進行編程。引導程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲區(qū)(ApplicationFlash Memory)。在更新應(yīng)用Flash存儲區(qū)時引導Flash區(qū)

24、(Boot Flash Memory)的程序繼續(xù)運行,實現(xiàn)了RWW 操作。 通過將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成在一個芯片內(nèi),ATmega8 成為一個功能強大的單片機,為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。ATmega8 具有一整套的編程與系統(tǒng)開發(fā)工具,包括:C 語言編譯器、宏匯編、 程序調(diào)試器/ 軟件仿真器、仿真器及評估板。 3.1智能機器人小車控制板接口說明: 智能機器人小車控制板實物如下圖所示??刂瓢鍘в?個電源輸入口,由于輸入DC 7~12VDE 工作電壓。1個九針串口,用于用戶程序下載到板載控制器Atmega8。14個三線數(shù)字信號輸入

25、輸出口,用于外接數(shù)字信號傳感器或數(shù)字信號驅(qū)動設(shè)備。6個三線模擬信號輸入口,用于外接模擬信號傳感器的信號輸入。2個電機接口,用于外接控制直流電機。2個二線電機控制接口,其中一線用于控制電機的轉(zhuǎn)動方向,一線用于控制電機的轉(zhuǎn)動速度(功率值)。 智能機器人小車控制板接口詳細說明: 接口名稱 作用 說明 電源插座 為控制板提供電源 DC 7~12V,插頭外內(nèi)電極為正,外電極為負 程序下載串口 用戶機器人程序下載 速率9600波特,8位數(shù)據(jù),1位停止位 數(shù)字I/O口 數(shù)字傳感器信號輸入,或輸出數(shù)字控制信號。 D0~D13,三線接口,提供+5V、電源地和數(shù)字信號線。其中D9、D

26、10、D11還具有PWM信號輸出能力,用于控制電機等設(shè)備的功率值。如果微控制器用ATmega168替換,D3、D5、D6也具有PWM信號輸出能力,其他相同。數(shù)字信號電平范圍為0~+5V。 模擬I/O口 外接模擬信號傳感器的信號輸入。 A0~A5, 三線接口,提供+5V、電源地和模擬信號線。模擬信號電平范圍為0~+5V。超夠或許會損壞器件。 電機接口 外接控制直流電機 J30 用于控制一號直流電機。J31用于控制二號直流電機。 電機控制接口 控制電機轉(zhuǎn)動方向和轉(zhuǎn)速 MOTO1用于一號電機控制信號的輸入,其中 DIR1用于和數(shù)字接口連接,控制一號電機的轉(zhuǎn)動方向(高電平為正,低電

27、平為反)。PWM1用于和具有PWM輸出功能的數(shù)字接口連接用于控制電機的轉(zhuǎn)速(功率值)。變化范圍為0~255.。MOTO2同MOTO1. J32 ISP 控制器Bootloader的燒寫 燒寫啟動程序 SERIAL ON 串口使能 跳線在0-1之間時不允許串口工作,但可以停止串口電路,用于節(jié)能。跳線在1-2之間時允許串口工作,下載程序。 J3AUTOSESET 程序下載自動復(fù)位 當加上跳線開關(guān)時用戶程序在下載過程中可以實現(xiàn)在東南否則要手動進行。 3.2智能機器人小車控制板原理說明: 智能機器人小車電源部分如下圖所示,電源插座P1接入外部電源,D1為防止電源反接二極管,C

28、1、C3為濾波電容,VIN為電機驅(qū)動電源標簽,電機驅(qū)動電源從該處引出。U1為LM7805五伏穩(wěn)壓集成塊。C2 ,C4是輸出濾波電容,+5V標簽是控制板5V穩(wěn)壓電源的引出點。D2是電源指示發(fā)光二極管。 智能機器人小車程序下載串口如右圖所示,該電路是由分立元件構(gòu)成的串口電路。其中J1為串口使能選擇開關(guān)SERIAL ON,當跳線開關(guān)置于1-2之間時,串口電路切斷+5V電源,串口電路不可使用,可以降低電源消耗。當跳線開關(guān)置于2-3之間時,串口電路接通+5V電源,串口電路可以正常使用,用于用戶小車控制程序下載。J3為程序下載過程中的自動復(fù)位跳線開關(guān),當加上跳線開關(guān)時用戶程序在下載過程中可以實現(xiàn)在東

29、南否則要手動進行。雖然該電路采用價格低廉的分立元件,單時間使用效果很好,工作非常穩(wěn)定。 智能機器人小車電機驅(qū)動電路如右圖所示。該電路由電機驅(qū)動集成電路L293D結(jié)合一些外圍電路構(gòu)成。其中J30 MOTO1用于一號電機控制信號的輸入,DIR1用于和數(shù)字接口連接,控制一號電機的轉(zhuǎn)動方向(高電平為正,低電平為反)。PWM1用于和具有PWM輸出功能的數(shù)字接口連接用于控制電機的轉(zhuǎn)速(功率值)。變化范圍為0~255。MOTO2同MOTO1。 智能機器人小車控制電路如下圖所示,該電路以耗微控制芯片(單片機)ATmega8為核心。其中,J32為控制器Bootloader啟動程序的燒寫。J32

30、、J33為D0~D13十四個數(shù)字I/O口,用于數(shù)字傳感器信號輸入,或輸出數(shù)字控制信號。J34為A0~A5模擬六個模擬I/O口外,用于外接模擬信號傳感器的信號輸入。S1為手動復(fù)位按鈕。其他都是一些輔助電路,原理簡單,不再贅述。 4,智能機器人小車光電傳感器: 機器人小車實現(xiàn)各種復(fù)雜功能的基礎(chǔ)是首先要實現(xiàn)小車的自動導航。在本活動中小車導航時是通過小車的巡線來實現(xiàn)的。下車巡線簡單可靠,容易操作。本光電傳感器通過發(fā)光二極管D2發(fā)射可見光,在物體表面反射后被光敏三極管接受到。控制板通過檢測光敏三極管兩端的電壓值來判斷物體表面的顏色。 第三章 機器人小車編

31、程語言及環(huán)境 由于本次活動的機器人控制器所采用的微控制器型號和網(wǎng)絡(luò)上廣泛流行的Arduino開源互動平臺項目完全一致,所以在機器人開發(fā)語言和編程環(huán)境上面完全可以借用該平臺的一切資源。一來可以降低機器人小車設(shè)計制作的難度,更主要的是Arduino開源互動平臺是一個資源非常廣泛,支持者和愛好者眾多的優(yōu)秀平臺。 1,Arduino語言 Arduino語言是建立在C/C++基礎(chǔ)上的,其實也就是基礎(chǔ)的C語言,Arduino語言只不過把AVR單片機(微控制器)相關(guān)的一些參數(shù)設(shè)置都函數(shù)化,不用我們?nèi)チ私馑牡讓?,讓我們不了解AVR單片機(微控制器)的朋友也能輕松上手。 在與Arduin

32、o DIYER接觸的這段時間里,發(fā)現(xiàn)有些朋友對Arduino語言還是比較難入手,那么這里我就簡單的注釋一下Arduino語言(本人也是半罐子水,有錯的地方還請各位指正)。 1.1, 基礎(chǔ)C語言 1.1.1關(guān)鍵字: if...else 必須緊接著一個問題表示式(expression),若這個表示式為真,緊連著表示式后的代碼就會被執(zhí)行。若這個表示式為假,則執(zhí)行緊接著else之后的代碼. 只使用 if不搭配else是被允許的。 范例: if (val == 1) { digitalWrite(LED,HIGH); } for 用來明定一段區(qū)域代碼重復(fù)指行的次數(shù)。 范例

33、: for (int i = 0; i < 10; i++) { ("ciao"); } switch case if敘述是程序里的分叉路口,switch case 是更多選項的路口。Swith case 根據(jù)變量值讓程序有更多的選擇,比起一串冗長的if敘述,使用swith case可使程序代碼看起來比較簡潔。 范例 :switch (sensorValue) { case 23: digitalWrite(13,HIGH); break; case 46: digitalWrite(12,HIGH); break; default: // 以上條

34、件都不符合時,預(yù)設(shè)執(zhí)行的動作 digitalWrite(12,LOW); digitalWrite(13,LOW); } while 當while之后的條件成立時,執(zhí)行括號內(nèi)的程序代碼。 范例 : // 當sensor值小于512,閃爍LED燈 sensorValue = analogRead(1); while (sensorValue < 512) { digitalWrite(13,HIGH); delay(100); digitalWrite(13,HIGH); delay(100); sensorValue = analogRead(1)

35、; } do... while 和while 相似,不同的是while前的那段程序代碼會先被執(zhí)行一次,不管特定的條件式為真或為假。因此若有一段程序代碼至少需要被執(zhí)行一次,就可以使用do…while架構(gòu)。 范例 :do { digitalWrite(13,HIGH); delay(100); digitalWrite(13,HIGH); delay(100); sensorValue = analogRead(1); } while (sensorValue < 512); break 讓程序代碼跳離循環(huán),并繼續(xù)執(zhí)行這個循環(huán)之后的程序代碼。此外,在break也

36、用于分隔switch case 不同的敘述。 范例 : //當sensor值小于512,閃爍LED燈 do { // 按下按鈕離開循環(huán) if (digitalRead(7) == HIGH) break; digitalWrite(13,HIGH); delay(100); digitalWrite(13,HIGH); delay(100); sensorValue = analogRead(1); } while (sensorValue < 512); continue 用于循環(huán)之內(nèi),它可以強制跳離接下來的程序,并直接執(zhí)行下一個循環(huán)。 范例

37、 : for (light = 0; light < 255; light++) { // 忽略數(shù)值介于 140 到 200之間 if ((x > 140) && (x < 200)) continue; analogWrite(PWMpin, light); delay(10); } return 函數(shù)的結(jié)尾可以透過return回傳一個數(shù)值。 例如,有一個計算現(xiàn)在溫度的函數(shù)叫 computeTemperature(),你想要回傳現(xiàn)在的溫度給temperature變量,你可以這樣寫: int temperature = computeTemperature(

38、); int computeTemperature() { int temperature = 0; temperature = (analogRead(0) + 45) / 100; return temperature; } goto 1.1.2語法符號: ; (分號) Arduino 語言每一行程序都是以分號為結(jié)尾。這樣的語法讓你可以自由地安排代碼,你可以將兩個指令放置在同一行,只要中間用分號隔開。 (但這樣做可能降低程式的可讀性。) 范例: delay(100); {} (大括號) 大括號用來將程式代碼分成一個又一個的區(qū)塊,如以下范例

39、所示,在loop()函數(shù)的前、后,必須用大括號括起來。 范例: void loop(){ n("cial"); 程式的注釋就是對代碼的解釋和說明,編寫注釋有助于程式設(shè)計師(或其他人)了解代碼的功能。 Arduino處理器在對程式碼進行編譯時會忽略注釋的部份。 Arduino 語言中的編寫注釋有兩種方式。 //單行注釋: 這整行的文字會被處理器忽略 /*多行注釋: 在這個范圍內(nèi)你可以 。寫一整首詩 */ 1.1.3運算符: = + 相加 - 相減 * 相乘 / 相除 % 余數(shù)除法 == 等于 !=不等于 <

40、小于 > 大于 <= 小于等于 >= 大于等于 && 交集 || 聯(lián)集 ! 反相 ++ 累加 遞減 += -= *= /= 1.1.4Arduuino復(fù)合運算符 += , -= , *= , /= 對一個變量和另一個參數(shù)或變量完成一個數(shù)學運算。+=(以及其他)可以縮短語法長度。 Syntax語法 x += y; // 等價于 x = x + y; x -= y; // 等價于 x = x - y; x *= y; // 等價于 x = x *

41、 y; x /= y; // 等價于 x = x / y; Parameters參數(shù) x:任何變量類型 y:任何變量類型或常數(shù) Examples范例 x = 2; x += 4; // x現(xiàn)在為6 x -= 3; // x現(xiàn)在為3 x *= 10; // x現(xiàn)在為30 x /= 2; // x現(xiàn)在為15 Syntax語法 x++; // increment x by one and returns the old value of x // 將x的值加1并返回原來的x的值

42、。 ++x; // increment x by one and returns the new value of x // 將x的值加1并返回現(xiàn)在的x的值。 x-- ; // decrement x by one and returns the old value of x // 將x的值減1并返回原來的x的值。 --x ; // decrement x by one and returns the new value of x // 將x的值減1并返回現(xiàn)在的x的值。 Parameters參數(shù) x: an

43、integer or long (possibly unsigned) x:一個整數(shù)或長整數(shù)(可以無符號) Returns返回 The original or newly incremented / decremented value of the variable. 返回變量原始值或增加/消耗后的新值。 Examples范例 x = 2; y = ++x; // x now contains 3, y contains 3 // x現(xiàn)在為3,y為3 y = x--; // x cont

44、ains 2 again, y still contains 3 // x現(xiàn)在仍然為2,y將為3 1.1.5數(shù)據(jù)類型: boolean 布林 布爾變數(shù)的值只能為真(true)或是假(false) char 字符 單一字符例如 A,和一般的計算機做法一樣Arduino 將字符儲存成一個數(shù)字,即使你看到的明明就是一個文字。 用數(shù)字表示一個字符時,它的值有效范圍為 -128 到127。 注意:有兩種主流的計算機編碼系統(tǒng)ASCII 和UNICODE。ASCII 表示了127個字符, 用來在序列終端機和分時計算器之間傳輸文字。 UN

45、ICODE可表示的字符量比較多,在現(xiàn)代計算機操作系統(tǒng)內(nèi)它可以用來表示多國語言。 在位數(shù)需求較少的信息傳輸時,例如意大利文或英文這類由拉丁文,阿拉伯數(shù)字和一般常見符號構(gòu)成的語言,ASCII仍是目前主要用來交換信息的編碼法。 byte 字節(jié)類型 儲存的數(shù)值范圍為0到255。如同字符一樣字節(jié)型態(tài)的變量只需要用一個字節(jié)(8位)的內(nèi)存空間儲存。 int 整數(shù) 整數(shù)數(shù)據(jù)型態(tài)用到2字節(jié)的內(nèi)存空間,可表示的整數(shù)范圍為 –32,768 到 32,767; 整數(shù)變量是Arduino內(nèi)最常用到的數(shù)據(jù)型態(tài)。 unsigned int 無符號整數(shù)(絕對值) 無號整數(shù)同樣利用2

46、字節(jié)的內(nèi)存空間,無號意謂著它不能儲存負的數(shù)值,因此無號整數(shù)可表示的整數(shù)范圍為0 到 65,535。 long 長整數(shù) 長整數(shù)利用到的內(nèi)存大小是整數(shù)的兩倍,因此它可表示的整數(shù)范圍從 –2,147,483,648 到 2,147,483,647。 unsigned long 無符號長整數(shù) 無號長整數(shù)可表示的整數(shù)范圍為0 到 4,294,967,295。 float 浮點數(shù) 浮點數(shù)就是用來表達有小數(shù)點的數(shù)值,每個浮點數(shù)會用掉四字節(jié)的RAM,注意芯片內(nèi)存空間的限制,謹慎的使用浮點數(shù) 。 double 雙字節(jié)浮點 也叫雙精度浮點數(shù),可表達最大值

47、為 1.3157 x 10308。 string 字符串 字符串用來表達文字信息,它是由多個ASCII字符組成(你可以透過序串端口發(fā)送一個文字訊息或者將之顯示在液晶顯示器上)。字符串中的每一個字符都用一個組元組空間儲存,并且在字符串的最尾端加上一個空字符以提示Ardunio處理器字符串的結(jié)束。下面兩種宣告方式是相同的。 例如: char string1[] = "Arduino";//7字符+1空字符 char string2[8] = "Arduino"; // 與上行相同 array 數(shù)組 一串變量可以透過索引去直接取得。假如你想要儲存不同程

48、度的LED亮度時,你可以宣告六個變量light01,light02,light03,light04,light05,light06,但其實你有更好的選擇,例如宣告一個整數(shù)數(shù)組變量如下: int light[6] = {0 , 20 , 50 , 75 , 100} "array" 這個字為沒有直接用在變量宣告,而是[]和{}宣告數(shù)組。 1.1.6 控制指令 數(shù)據(jù)類型轉(zhuǎn)換: char() byte() int() long() float() 常量:在Arduino語言中事先定義了一些具特殊用途的保留字。 HIGH | LOW 表示數(shù)字IO口的電

49、平,HIGH 表示高電平(1), LOW 表示低電平(0)。 HIGH 和LOW 也用來表示你開啟或是關(guān)閉了一個Arduino的腳位(pin) INPUT | OUTPUT 表示數(shù)字IO口的方向,INPUT 表示輸入(高阻態(tài)),OUTPUT 表示輸出(AVR能提供5V電壓 40mA電流)。 true | false true 表示真(1),false表示假(0)。 變數(shù): 變量用來指定Arduino 內(nèi)存中的一個位置,變量可以用來儲存數(shù)據(jù),程序人員可以透過腳本代碼去不限次數(shù)的操作變數(shù)的值。 因為Arduino 是一個非常簡易的微處理器,但你要宣告一個

50、變量時必須先定義他的數(shù)據(jù)型態(tài),好讓微處理器知道準備多大的空間以儲存這個變量值。 1.2, Arduino 語言結(jié)構(gòu) 以上為基礎(chǔ)c語言的關(guān)鍵字和符號,有c語言基礎(chǔ)的都應(yīng)該了解其含義,這里也不作過多的解釋。 1.2.1結(jié)構(gòu): 聲明變量及接口名稱(int val;int ledPin=13;)。 void setup() 在程序開始時使用,在這個函數(shù)范圍內(nèi)放置初始化Arduino 板子的程式,主要程式開始撰寫前, 使Arduino 板子裝置妥當?shù)闹噶羁梢猿跏蓟兞?、管腳接口模式、啟用庫等(例如:pinMode(ledPin,OUTPUT);)。 void l

51、oop() 在setup()函數(shù)之后,即初始化之后,loop() 讓你的程序循環(huán)地被執(zhí)行。使用它來運轉(zhuǎn)Arduino。連續(xù)執(zhí)行函數(shù)內(nèi)的語句,這部份的程式會一直重復(fù)的被執(zhí)行,直到Arduino 板子被關(guān)閉。 1.2.2功能 數(shù)字 I/O pinMode(pin, mode) 數(shù)字IO口輸入輸出模式定義函數(shù),將接口定義為輸入或輸出接口,用在setup()函數(shù)里,pin表示為0~13接口名稱, mode表示為INPUT或OUTPUT。即“ pinMode(接口名稱,OUTPUT或INPUT)”。 范例 : pinMode(7,INPUT); // 將腳位 7 設(shè)定

52、為輸入模式 digitalWrite(pin, value) 數(shù)字IO口輸出電平定義函數(shù),將數(shù)字接口值至高或低、開或關(guān),pin表示為0~13,value表示為HIGH或LOW,即digitalWrite(接口名稱, HIGH或LOW)。但腳位必須先透過pinMode明示為輸入或輸出模式digitalWrite才能生效。比如定義HIGH可以驅(qū)動LED。 范例 : digitalWrite(8,HIGH); //將腳位 8設(shè)定輸出高電位 int digitalRead(pin) 數(shù)字IO口讀輸入電平函數(shù),讀出數(shù)字接口的值,pin表示為0~13,value表示為HI

53、GH或LOW,即digitalRead(接口名稱)。比如可以讀數(shù)字傳感器。當感測到腳位處于高電位時時回傳HIGH,否則回傳LOW。 范例 : val = digitalRead(7); // 讀出腳位 7 的值并指定給 val 1.2.3模擬 I/O int analogRead(pin) 模擬IO口讀函數(shù),從指定的模擬接口讀取值,Arduino對該模擬值進行10-bit的數(shù)字轉(zhuǎn)換,這個方法將輸入的0-5電壓值轉(zhuǎn)換為 0到1023間的整數(shù)值。pin表示為0~5(Arduino Diecimila為0~5,Arduino nano為0~7)。即“analogRead

54、(接口名稱)”,比如可以讀模擬傳感器(10位AD,0~5V表示為0~1023)。 范例 : val = analogRead(0); //讀出類比腳位 0 的值并指定給 val變數(shù) analogWrite(pin, value) 數(shù)字IO口PWM輸出函數(shù),給一個接口寫入模擬值(PWM波)。改變PWM腳位的輸出電壓值。對于 ATmega168芯片的Arduino(包括Mini或BT),該函數(shù)可以工作于 3, 5, 6, 9, 10和 11號接口,即“analogWrite(接口名稱, 數(shù)值)”,pin表示3, 5, 6, 9, 10, 11,value表示為0~255。比如可用于電機

55、PWM調(diào)速或音樂播放。 例如:輸出電壓2.5伏特(V),該值大約是128。 范例 : analogWrite(9,128); // 輸出電壓約2.5伏特(V) 1.2.4 擴展 I/O shiftOut(dataPin, clockPin, bitOrder, value) SPI外部IO擴展函數(shù),通常使用帶SPI接口的74HC595做8個IO擴展,把資料傳給用來延伸數(shù)位輸出的暫存器,此函式通常使用在延伸數(shù)位的輸出。函式使用一個腳位表示資料、一個腳位表示時脈。dataPin為數(shù)據(jù)口,clockPin為時鐘口,bitOrder用來表示位元間移動的方式,為數(shù)據(jù)傳輸方向(

56、MSBFIRSTMSBFIRSTMSBFIRSTMSBFIRST高位在前,LSBFIRSTLSBFIRSTLSBFIRSTLSBFIRST低位在前),value會以byte形式輸出,表示所要傳送的數(shù)據(jù)(0~255),另外還需要一個IO口做74HC595的使能控制。 范例 : shiftOut(dataPin, clockPin, LSBFIRST, 255); unsigned long pulseIn(pin, value) 脈沖長度記錄函數(shù),設(shè)定讀取腳位狀態(tài)的持續(xù)時間,返回時間參數(shù)(us),例如使用紅外線、加速度感測器測得某一項數(shù)值時,在時間單位內(nèi)不會改變狀態(tài)。pin表示

57、為0~13,value為HIGH或LOW。比如value為HIGH,那么當pin輸入為高電平時,開始計時,當pin輸入為低電平時,停止計時,然后返回該時間。 范例 : time = pulsein(7,HIGH); // 設(shè)定腳位7的狀態(tài)在時間單位內(nèi)保持為HIGH 1.2.5時間函數(shù) unsigned long millis() 返回時間函數(shù)(單位ms), 回傳晶片開始執(zhí)行到目前的毫秒,該函數(shù)是指,當程序運行就開始計時并返回記錄的參數(shù),該參數(shù)溢出大概需要50天時間。 范例: duration = millis()-lastTime; // 表示自"lastTime"至

58、當下的時間 delay(ms) 延時函數(shù)(單位ms),延時一段時間,暫停晶片執(zhí)行多少毫秒, delay(1000)為一秒。 范例: delay(500); //暫停半秒(500毫秒) delayMicroseconds(us) 延時函數(shù)(單位us)暫停晶片執(zhí)行多少微秒。 delayMicroseconds(1000); //暫停1豪秒 1.2.6數(shù)學函數(shù) min(x, y) 求最小值 ,回傳兩數(shù)之間較小者 范例: val = min(10,20); // 回傳10 max(x, y) 求最大值 ,回傳兩數(shù)之間較大者 范例: val = max

59、(10,20); // 回傳20 abs(x) 計算絕對值 ,回傳該數(shù)的絕對值,可以將負數(shù)轉(zhuǎn)正數(shù)。 范例: val = abs(-5); // 回傳5 constrain(x, a, b) 約束函數(shù),下限a,上限b,判斷x變數(shù)位于a與b之間的狀態(tài)。x若小于a回傳a;介于a與b之間回傳x本身;大于b回傳b 范例: val = constrain(analogRead(0), 0, 255); // 忽略大于255的數(shù) map(value, fromLow, fromHigh, toLow, toHigh) 約束函數(shù),value必須在fromLow與toLow之

60、間和fromHigh與toHigh之間。將value變數(shù)依照fromLow與fromHigh范圍,對等轉(zhuǎn)換至toLow與toHigh范圍。時常使用于讀取類比訊號,轉(zhuǎn)換至程式所需要的范圍值。 例如: val = map(analogRead(0),0,1023,100, 200); // 將analog0 所讀取到的訊號對等轉(zhuǎn)換至100,200之間的數(shù)值。 pow(base, exponent) 開方函數(shù),base的exponent次方。回傳一個數(shù)(base)的指數(shù)(exponent)值。 范例: double x = pow(y, 32); // 設(shè)定x為y的32次方

61、 sq(x) 平方 sqrt(x) 開根號 回傳double型態(tài)的取平方根值。 范例: double a = sqrt(1138); // 回傳1138平方根的近似值 33. 1.2.7三角函數(shù) sin (rad) 回傳角度(radians)的三角函數(shù)sine值。 范例: double sine = sin(2); // 近似值 0. cos(rad) 回傳角度(radians)的三角函數(shù)cosine值。 范例: double cosine = cos(2); //近似值-0. tan(rad) 回傳角度(radia

62、ns)的三角函數(shù)tangent值。 范例: double tangent = tan(2); //近似值-2. 1.2.8隨機數(shù)函數(shù) randomSeed(seed) 隨機數(shù)端口定義函數(shù),seed表示讀模擬口analogRead(pin)函數(shù) 。 事實上在Arduino里的亂數(shù)是可以被預(yù)知的。所以如果需要一個真正的亂數(shù),可以呼叫此函式重新設(shè)定產(chǎn)生亂數(shù)種子。你可以使用亂數(shù)當作亂數(shù)的種子,以確保數(shù)字以隨機的方式出現(xiàn),通常會使用類比輸入當作亂數(shù)種子,藉此可以產(chǎn)生與環(huán)境有關(guān)的亂數(shù)(例如:無線電波、宇宙雷射線、電話和螢光燈發(fā)出的電磁波等)。 范例: randomSeed(an

63、alogRead(5)); // 使用類比輸入當作亂數(shù)種子 long random(max) 隨機數(shù)函數(shù),返回數(shù)據(jù)大于等于0,小于max。 范例: long randnum = random(11); // 回傳 0 -10之間的數(shù)字 long random(min, max) 隨機數(shù)函數(shù),返回數(shù)據(jù)大于等于min,小于max。 范例: long randnum = random(0, 100); // 回傳0 – 99 之間的數(shù)字 1.2.9外部中斷函數(shù) attachInterrupt(interrupt, , mode) 外部中斷只能用到

64、數(shù)字IO口2和3,interrupt表示中斷口初始0或1,表示一個功能函數(shù),mode:LOWLOWLOWLOW低電平中斷,CHANGECHANGECHANGECHANGE有變化就中斷,RISINGRISINGRISINGRISING上升沿中斷,F(xiàn)ALLINGFALLINGFALLINGFALLING 下降沿中斷。 detachInterrupt(interrupt) 中斷開關(guān),interrupt=1 開,interrupt=0 關(guān)。 1.2.10中斷使能函數(shù) interrupts() 使能中斷 10noInterrupts() 禁止中斷 1.2.11串

65、口收發(fā)函數(shù) (speed) 串口定義波特率函數(shù),設(shè)置串行每秒傳輸數(shù)據(jù)的速率(波特率),可以指定Arduino從電腦交換訊息的速率,通常我們使用9600 bps。,speed表示波特率,如9600,19200等。在同計算機通訊時,使用下面這些值:300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600或 115200 bps(每秒位元組)。。你也可以在任何時候使用其它的值,比如,與0號或1號插口通信就要求特殊的波特率。用在setup()函數(shù)里 范例: (9600) int able() 判斷緩沖器狀態(tài)?;?/p>

66、傳有多少位元組(bytes)的資料尚未被read()函式讀取,如果回傳值是0代表所有序列埠上資料都已經(jīng)被read()函式讀取。 范例: int count = able(); int () 讀串口并返回收到參數(shù)。 ()——讀取持續(xù)輸入的數(shù)據(jù)。讀取1byte的序列資料 范例: int data = (); () 清空緩沖器。 有時候因為資料速度太快,超過程式處理資料的速度,你可以使用此函式清除緩沖區(qū)內(nèi)的資料。經(jīng)過此函式可以確保緩沖區(qū)(buffer)內(nèi)的資料都是最新的。 范例: (); (data) 從串行端口輸出數(shù)據(jù)。(數(shù)據(jù))默認為十進制等于(數(shù)據(jù),DEC)。 (data, encoding) 經(jīng)序列埠傳送資料,提供編碼方式的選項。(數(shù)據(jù),數(shù)據(jù)的進制)如果沒有指定,預(yù)設(shè)以一般文字傳送。 范例: (75); // 列印出 "75" (75, DEC); //列印出 "75" (75, HEX); // "4B" (75 的十六進位) (75, OCT); // "113" (75 in的八進位) (75,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲