freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

六足步行機(jī)器人設(shè)計(jì)畢業(yè)論文-在線瀏覽

2024-08-10 11:46本頁(yè)面
  

【正文】 的口)都接出來(lái),備預(yù)留口。(5)該開(kāi)發(fā)板也可以作為通用單片機(jī)開(kāi)發(fā)板用。(1)電機(jī)可以和主板控制器共電源,也可以單獨(dú)供電,通過(guò) J29 的通斷可以決定。不管采用哪種方式,對(duì)電機(jī)供電時(shí),穩(wěn)壓到 6V 比較妥當(dāng)。(2)主處理器和電機(jī)有沒(méi)有上電,可以看發(fā)光二極管 DD3 有沒(méi)有點(diǎn)亮。電源噪聲會(huì)給電路造成危害,因此在各級(jí)電源的兩端加 10uf 電容以濾波(圖中 CCC7) ;電機(jī)干擾要避免,在電機(jī)電源線間接 的電容可以有效去除(圖中 CC8) ,并且避免機(jī)器人中出現(xiàn)不接地的金屬件,否則會(huì)充當(dāng)天線的角色。有發(fā)射管和接收管分開(kāi)和一體的兩種,但發(fā)射與接受一體的紅外傳感器對(duì)短距離測(cè)量效果佳(25mm 左右) ,不適合儼然龐然大物的六足機(jī)器人。這種傳感器比較便宜,紅外發(fā)射管: 元/個(gè)(優(yōu)質(zhì) 元/個(gè)) ;紅外接收管: 元/個(gè)。這么多傳感器分開(kāi)在蠻大面積的邊緣,必須至少有 6 對(duì)收發(fā)傳感器,6 個(gè)傳感器小電路,連線的紛雜可想而知,連線多也會(huì)增加電路的不可靠性。該模塊可以提供從 精確的距離測(cè)量。在不可能“以數(shù)量求質(zhì)量”的情形下,必須另辟蹊徑。用步進(jìn)電機(jī)還是伺服電機(jī)?步進(jìn)電機(jī)可以轉(zhuǎn)過(guò) 360 度角,使用一個(gè)超聲波模塊即可。已經(jīng)確定方案中必定存在 6v 穩(wěn)壓模塊,過(guò)多的電壓轉(zhuǎn)換消耗系統(tǒng)功率,必然造成效率低下。 但是絕對(duì)位置量輸出的舵機(jī)只能轉(zhuǎn)動(dòng) 180 度,要想測(cè)得一周的情況需要 2 個(gè)超聲波模塊。 圖 超聲波模塊有四條引線,分別為:VCC:接 5V 直流電源。SIG2:觸發(fā)脈沖??刂品椒ㄊ牵簭?SIG2 輸入觸發(fā)脈沖(高電平的典型值為 10us)后,模塊自動(dòng)發(fā)射 5 個(gè) 40khz 的超聲波,緊接著模塊自動(dòng)把 SIG1 置高電平,直到收到回聲后才把 SIG1 置低,如果超時(shí),模塊自動(dòng)復(fù)位。另外傳感器設(shè)計(jì)中用到了指南針模塊,目的是通過(guò)方位確定達(dá)到系統(tǒng)模擬閉環(huán)的效果,并且可以為機(jī)器人日后完成更復(fù)雜的任務(wù)做準(zhǔn)備。下圖 為指南針模塊的引腳和原理。圖 指南針模塊引腳和原理由圖 的總體框圖,可知傳感器電路作為一個(gè)單獨(dú)的構(gòu)件,擁有自己的處理器。如下圖所示,傳感器電路分為穩(wěn)壓部分、單片機(jī)、傳感器接口部分、JTAG 及串口通訊四個(gè)部分。同樣指南針模塊的高電平應(yīng)為 5v 左右,而這里達(dá)不到。圖 傳感器電路圖對(duì)于第二個(gè)弊端,由圖 就很容易看出來(lái),而對(duì)于第二個(gè)弊端,下面詳細(xì)探討一下,并找出了解決方案。表 指南針模塊技術(shù)資料解決的辦法是:電源改接 5V,輸入信號(hào)三極管升壓(下圖) ,輸出信號(hào)分壓進(jìn)單片機(jī)。之所以選用這款芯片,主要是因?yàn)樗艹休d較大電流負(fù)載(3A) ,滿足 18 個(gè)伺服電機(jī)工作的需要。圖 穩(wěn)壓芯片 LM2596ADJ 資料圖 25966V 電路實(shí)現(xiàn)2596 的輸出電壓 Vout=Vref*(1+R2/R1)這里 Vref=,R1=1K,只要將 R2 調(diào)到 ,就能使輸出電壓 Vout=6V。(2)LM2596ADJ 選用直插封裝,而不用貼片,為的是容易散熱,并且必須在 2596ADJ 后面安裝散熱片。(4)電感 L1 的取值認(rèn)真參考 LM2596 用戶手冊(cè),實(shí)驗(yàn)中 33uH68uH 表現(xiàn)都不錯(cuò)。 安裝調(diào)試過(guò)程中的問(wèn)題及解決問(wèn)題一:主控制板上的 LM111733 的 1VIN、3GND 引腳顛倒。而在開(kāi)始焊上這部分后加電檢查時(shí),發(fā)現(xiàn) 2 腳 VOUT 沒(méi)有電壓輸出。解決方案:焊接 LM111733 時(shí)字朝下反焊。問(wèn)題二:主控制板上 JTAG 上 1TDO、3TDI 顛倒,下不了程序。顯示信息為找不到可下載器件,分析原因可能是 JTAG 下載器(也是自己焊的)、連接線或者主板上 JTAG接口的問(wèn)題。解決方案:將下載線 3 線割開(kāi)反過(guò)來(lái)連接。JTAG 和下載線都是好的,單片機(jī)突然不能下程序了,提示語(yǔ)是熔絲燒斷!而且這樣的事情竟然在小組內(nèi)六足機(jī)器人和四足機(jī)器人的主控制板上均發(fā)生了兩次,也就是燒掉了四片 149!熔絲燒斷的 149 雖然不能下載程序,但是片內(nèi)的程序還可以讓機(jī)器人按照設(shè)定運(yùn)動(dòng)。解決方案:第一次燒掉片子時(shí),將片子用熱風(fēng)吹下來(lái)重新焊上新片子。尋找其他的解決方案,得知有一種下載器Boot Strap Loader,是 JTAG 不能下載時(shí)的彌補(bǔ)方法。這種下載器使用串口,只要簡(jiǎn)單地引出幾條線接上,軟件也很容易掌握。還有單片機(jī)選型時(shí)可以換其他型號(hào),如 MSP430F13X。直到第一片 149 燒掉之后,分析可能是尖尖的焊點(diǎn)劃破薄薄的絕緣漆引起部分短路造成的。那么絕緣板加的是不是多余的?筆者認(rèn)為絕緣板加上絕不是多余,如果沒(méi)有絕緣板,焊點(diǎn)劃破絕緣漆引起短路是很有可能的,防范還是必要的。下圖為 18 個(gè)電機(jī)編號(hào):圖 電機(jī)編號(hào)由上圖,將電機(jī)分為 6 個(gè)小組,編號(hào)是從 0 到 5,每一小組電機(jī)包括實(shí)現(xiàn)不同作用的三個(gè)電機(jī)。再根據(jù)每根線連的具體端口,就得到了下面的表:[13] [4] [3][10] [9] [16][15] [17] [8][5] [1] [0][2] [12] [14][11] [7] [6]表 端口編號(hào)對(duì)應(yīng)表 行走動(dòng)作算法及動(dòng)作細(xì)化必須分工合作,3 只腿脫離地面運(yùn)動(dòng)的時(shí)候必須有三只腿支撐地面。這樣編號(hào)為 0、4 的為一組,5 為另一組。這就是設(shè)計(jì)動(dòng)作時(shí)最初的想法最初動(dòng)作簡(jiǎn)化得到的五步法很粗陋,動(dòng)作也不協(xié)調(diào),但是它對(duì)于動(dòng)作的形成有直接的作用??梢钥闯?,這里沒(méi)有加臂電機(jī)的動(dòng)作,放第一組腿和抬第二組腿在一個(gè)動(dòng)作里,必然造成動(dòng)作的僵硬。但是結(jié)果出來(lái)卻不盡如人意,機(jī)器人只是在原地扭動(dòng),絲毫前進(jìn)不了。這個(gè)案例在以后的設(shè)計(jì)中時(shí)刻提醒我:一定要注意細(xì)節(jié),每個(gè)電機(jī)動(dòng)作的細(xì)微之處與其他電機(jī)或許是不同的。接下來(lái)要做的就是更加細(xì)化動(dòng)作,使機(jī)器人的運(yùn)動(dòng)更加協(xié)調(diào)連貫。下面具體講一下八步法的實(shí)現(xiàn),結(jié)合程序中的一些定義。確定一個(gè)軸向,比如以第 4 小組為軸向。2C 前腿上抬至某處 Terminal_UP_2。 第二步:抬第一組腳,并旋轉(zhuǎn)第一組臂。3B、3A 后腳反方向抬至某處 Terminal_DW_3。1A (處于軸向右邊)逆時(shí)針旋轉(zhuǎn)至某處 Terminal_ATCLK_1。2C 前腿回到中心位置 Center_Position_2。 第四步:抬第二組腿5C、5B、5A 上抬至某處 Terminal_UP_2。6B、6C 抬起至某處 Terminal_UP_3。4B (處于軸向左邊)順時(shí)針旋轉(zhuǎn)至某處 Terminal_CLK_1。 第六步:蹬第一組腳,并旋轉(zhuǎn)第一組臂回原位。3B、3A 后腳向后蹬地Center_Position_3。1A (處于軸向右邊)順時(shí)針旋轉(zhuǎn)回初始位置Center_Position_1。5C、5B、5A 回到初始位置 Center_Position_2。6B、6C 前腳向前扒地 Center_Position_3。4B (處于軸向左邊)逆時(shí)針旋轉(zhuǎn)回原位 Center_Position_1。 這里的有關(guān)變量的定義為:define Center_Position_1 308 //臂電機(jī)的中心位置量。define Center_Position_3 320 //腳電機(jī)的中心位置量。define Step_2 130 //腿電機(jī)轉(zhuǎn)動(dòng)的偏角。define Terminal_UP_3 Center_Position_3 + Step_3 //腳電機(jī)上抬的終點(diǎn)量。define Terminal_UP_2 Center_Position_2 Step_2 //腿電機(jī)上抬的終點(diǎn)量(常用) 。define Terminal_ATCLK_1 Center_Position_1 + Step_1 //臂電機(jī)逆時(shí)針轉(zhuǎn)動(dòng)的終點(diǎn)量。 顯然是把這些量作為全局變量在主函數(shù)的開(kāi)始預(yù)定義。Unsigned int PWM_Duty[18] = { Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_1, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_2, Center_Position_3, Center_Position_3, Center_Position_3, Center_Position_3, Center_Position_3, Center_Position_3}。好處是方便編程,但是由于安裝等問(wèn)題,即使同樣作用的電機(jī)也會(huì)有差異性,這種差異性如果在軟件上來(lái)修正是比較恰當(dāng)?shù)?,效果也?huì)更好。  這樣編程出來(lái),前進(jìn)的動(dòng)作蠻完美。定義出下面幾個(gè)變量,由 Mode的值來(lái)計(jì)算其他變量的值。在上面的以第 4 小組為軸向的例子中,看看怎樣用變量來(lái)代替原來(lái)確定的電機(jī)(由編號(hào)來(lái)表示) 。pwm_02C pwm_12B pwm_22A pwm_33Cpwm_43B pwm_53A pwm_61B pwm_71Apwm_85A pwm_95B pwm_105C pwm_116Apwm_126B pwm_136C pwm_144B pwm_154C表 一般性變量代替表 然后要做的事就是根據(jù) Mode 的值計(jì)算出這些變量的值。void Compute_pwmN(void){ pwm_0 = Mode + 6。 if(Mode 2) { pwm_1 = pwm_0 + 2。 pwm_4 = pwm_3 + 2。 pwm_6 = Mode + 2。 //保證 pwm_7 在軸向右邊 } else if(Mode 3) { pwm_1 = pwm_0 4。 pwm_4 = pwm_3 4。 pwm_6 = Mode 4。 //保證 pwm_7 在軸向右邊 } else { pwm_1 = pwm_0 + 2。 pwm_4 = pwm_3 + 2。 pwm_6 = Mode + 2。 //保證 pwm_7 在軸向右邊 } if(Mode = 3) Mode_couple = Mode 3。 pwm_8 = Mode_couple + 6。//Mode_couple 定義與軸向相對(duì)的腿,以此好計(jì)算出第二組腿。 if(Mode_couple 2) { pwm_9 = pwm_8 + 4。 pwm_12 = pwm_11 + 4。 pwm_14 = Mode_couple + 4。 //pwm_15:軸向的右邊 } else if(Mode_couple 3) { pwm_9 = pwm_8 2。 pwm_12 = pwm_11 2。 pwm_14 = Mode_couple 2。 //pwm_15:軸向的右邊 } else { pwm_9 = pwm_8 2。 pwm_12 = pwm_11 2。 pwm_14 = Mode_couple 2。 //pwm_15 軸向的右邊 } }這樣前進(jìn)一步的動(dòng)作細(xì)化(分為八步)程序可以寫(xiě)出來(lái)了。PWM_Duty[0] PWM_Duty[17]的順序?qū)?yīng)圖 的編號(hào)序列。 //設(shè)置標(biāo)志 flag,目的是動(dòng)作分步。 //設(shè)置標(biāo)志 elong,目的是延長(zhǎng)步與步之間的時(shí)間,使動(dòng)作舒緩。// // PWM_Duty[Mode] = Center_Position_1 + 15。 //修正尾舵中心值 if(elong 3) elong ++。 PWM_Duty[pwm_1] = Terminal_UP_2。 flag++。 } else if(flag == 2) //第二步,抬第一組腳+旋轉(zhuǎn)第一組臂 { PWM_Duty[pwm_3] = Terminal_UP_3。 //后腳 DW 上抬 PWM_Duty[pwm_5] = Terminal_DW_3。 PWM_Duty[pwm_7] = Terminal_ATCLK_1。 elong = 0。本來(lái)第三步和第四步合在一起,但是那
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1