版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 單片機(jī)控制舵機(jī)附:單片機(jī)控制8路舵機(jī)程序,串口通訊上位機(jī)程序(C#)一、 設(shè)計(jì)內(nèi)容綜述機(jī)械臂主要由手部和運(yùn)動(dòng)機(jī)構(gòu)組成。手部是用來抓持工件的部件,運(yùn)動(dòng)機(jī)構(gòu)使手部完成各種轉(zhuǎn)動(dòng)、移動(dòng)或復(fù)合運(yùn)動(dòng)來實(shí)現(xiàn)規(guī)定的動(dòng)作。為了抓取空間中任意位置和方位的物體,需有6個(gè)自由度,用六個(gè)舵機(jī)來控制。由單片機(jī)產(chǎn)生六路占空比可調(diào)的PWM信號來控制機(jī)械手的運(yùn)動(dòng)。利用上位機(jī)與單片機(jī)通信,改變占空比從而控制機(jī)械臂。為了使機(jī)械手運(yùn)動(dòng)時(shí)保持一定的連貫性,同時(shí)刻到達(dá)指定位置,機(jī)械手不同部位運(yùn)動(dòng)的速度應(yīng)該不同,轉(zhuǎn)一個(gè)小角度時(shí)舵機(jī)的速度應(yīng)該慢一些,從而達(dá)到柔性控制。 二、所使用的關(guān)鍵器件和基本參數(shù)舵機(jī)TR213:1.速度:0.15秒/6
2、0度(4.8V);0.12秒/60度(6.0V) 2.扭矩:13kgcm 3.范圍:180 4.控制精度:0.5 5.精度:精度高,步進(jìn)角度很小 MAX232: 1.符合所有的RS-232C技術(shù)標(biāo)準(zhǔn) 2.只需要單一 +5V電源供電,片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V-3.功耗低,典型供電電流5mA 4.內(nèi)部集成兩個(gè)RS-232C驅(qū)動(dòng)器,兩個(gè)RS-232C接收器三、工作原理說明及計(jì)算1、PC機(jī)與單片機(jī)通信在工業(yè)控制系統(tǒng)中,各種數(shù)據(jù)的采集和執(zhí)行機(jī)構(gòu)的控制都是由下位機(jī)來完成。由于單片機(jī)具有體積小、價(jià)格低廉、可應(yīng)用于惡劣工業(yè)環(huán)境的特點(diǎn),在分布式控制系統(tǒng)中大多采
3、用單片機(jī)作為下位機(jī)來進(jìn)行數(shù)據(jù)采集和現(xiàn)場控制。在這些應(yīng)用中,單片機(jī)只是直接面向被控對象底層。而對采集到的數(shù)據(jù)進(jìn)行進(jìn)一步分析和處理的工作是由功能強(qiáng)大的主控PC機(jī)來完成的。因此,PC機(jī)和單片機(jī)之間就有著大量的數(shù)據(jù)交換。 通常PC機(jī)和單片機(jī)之間的通信是通過串行總線RS-232實(shí)現(xiàn)的。因此采用一種以MAX232為核心的通信接口電路。該接口電路適用于由一臺PC機(jī)與多個(gè)單片機(jī)串行通信的設(shè)計(jì),其原理和方法同樣適用于PC機(jī)與其它單片機(jī)之間的串行數(shù)據(jù)通信。 RS-232C該框圖中,起著重要作用的是RS-232C通信接口電路。它是上位機(jī)和下位機(jī)之間信息傳遞的樞紐,一切數(shù)據(jù)的傳輸必需由它完成,上位機(jī)利用它的RS-23
4、2串行口,為此,采用了RS-232串行通信來接收或上傳數(shù)據(jù)和指令。但RS-232信號的電平和單片機(jī)串口信號的電平不一致,必須進(jìn)行二者之間的電平轉(zhuǎn)換。在此電路中,采用MAX232實(shí)現(xiàn)TTL邏輯電平和RS-232電平之間的相互轉(zhuǎn)換。 MAX232由單一的+5V電源供電,只需配接5個(gè)高精度10F/50V的鉭電容即可完成電平轉(zhuǎn)換。轉(zhuǎn)換后的串行信號TXD、RXD直接與PC機(jī)的串行口連接。如此設(shè)計(jì),既可發(fā)揮出PC強(qiáng)大的計(jì)算和顯示功能,又可以體現(xiàn)出單片機(jī)靈活的控制功能,有利于對現(xiàn)場信號的實(shí)時(shí)采集、處理和監(jiān)控。串口通訊軟件2、舵機(jī)的結(jié)構(gòu)舵機(jī)簡單的說就是集成了直流電機(jī)、電機(jī)控制器和減速器等,并封裝在一個(gè)便于安裝
5、的外殼里的伺服單元。能夠利用簡單的輸入信號比較精確的轉(zhuǎn)動(dòng)給定角度的電機(jī)系統(tǒng)。舵機(jī)安裝了一個(gè)電位器(或其它角度傳感器)檢測輸出軸轉(zhuǎn)動(dòng)角度,控制板根據(jù)電位器的信息能比較精確的控制和保持輸出軸的角度。這樣的直流電機(jī)控制方式叫閉環(huán)控制,所以舵機(jī)更準(zhǔn)確的說是伺服馬達(dá),英文servo。舵機(jī)的主體結(jié)構(gòu)有五個(gè)部分:外殼、減速齒輪組、電機(jī)、電位器、控制電路。工作原理:控制電路接受來自信號線的控制信號,控制電機(jī)轉(zhuǎn)動(dòng),電機(jī)帶動(dòng)一系列齒輪組,減速后傳動(dòng)至輸出舵盤。舵機(jī)的輸出軸和位置反饋電位計(jì)是相連的,舵盤轉(zhuǎn)動(dòng)的同時(shí),帶動(dòng)位置反饋電位計(jì),電位計(jì)將輸出一個(gè)電壓信號到控制電路板,進(jìn)行反饋,然后控制電路板,根據(jù)所在位置決定電
6、機(jī)的轉(zhuǎn)動(dòng)方向和速度,從而達(dá)到目標(biāo)停止。舵機(jī)的輸入線共有三條,紅色中間,是電源線,一邊黑色的是地線,這輛根線給舵機(jī)提供最基本的能源保證,主要是電機(jī)的轉(zhuǎn)動(dòng)消耗。電源有兩種規(guī)格,一是4.8V,一是6.0V,分別對應(yīng)不同的轉(zhuǎn)矩標(biāo)準(zhǔn),即輸出力矩不同,6.0V 對應(yīng)的要大一些;另外一根線是控制信號線,一般為桔黃色。舵機(jī)的控制信號為周期是20ms 的脈寬調(diào)制(PWM)信號,其中脈沖寬度從,相對應(yīng)舵盤的位置為0180 度,呈線性變化。也就是說,給它提供一定的脈寬,它的輸出軸就會保持在一個(gè)相對應(yīng)的角度上,無論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個(gè)另外寬度的脈沖信號,它才會改變輸出角度到新的對應(yīng)的位置上。舵機(jī)內(nèi)部有一
7、個(gè)基準(zhǔn)電路,產(chǎn)生周期20ms,寬度1.5ms 的基準(zhǔn)信號,有一個(gè)比較器,將外加信號與基準(zhǔn)信號相比較,判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動(dòng)信號。由此可見,舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,轉(zhuǎn)動(dòng)范圍不能超過180 度,適用于那些需要角度不斷變化并可以保持的驅(qū)動(dòng)當(dāng)中。舵機(jī)的外殼一般是塑料的,特殊的舵機(jī)可能會有金屬鋁合金外殼。金屬外殼能夠提供更好的散熱,可以讓舵機(jī)內(nèi)的電機(jī)運(yùn)行在更高功率下,以提供更高的扭矩輸出。金屬外殼也可以提供更牢固的固定位置。FUTABA-S3003 型舵機(jī)的內(nèi)部電路 標(biāo)準(zhǔn)舵機(jī)示意圖 舵機(jī)輸出轉(zhuǎn)角與輸入信號脈沖寬度的關(guān)系正是因?yàn)槎鏅C(jī)有很多優(yōu)點(diǎn),所以應(yīng)用已經(jīng)擴(kuò)展到各種機(jī)電產(chǎn)品中來,在機(jī)器人
8、控制中應(yīng)用也越來越廣泛。3、用單片機(jī)來控制舵機(jī)舵機(jī)的控制信號是一個(gè)脈寬調(diào)制信號,所以很方便和數(shù)字系統(tǒng)進(jìn)行接口。只要能產(chǎn)生標(biāo)準(zhǔn)的控制信號的數(shù)字設(shè)備都可以用來控制舵機(jī)。我們使用單片機(jī)產(chǎn)生舵機(jī)的控制信號來進(jìn)行控制的方法,編程語言為C51。單片機(jī)有兩個(gè)(或兩個(gè)以上)內(nèi)部計(jì)數(shù)器,我們就用它來產(chǎn)生周期20 ms 的脈沖信號,根據(jù)需要,改變輸出脈寬。脈沖信號的輸出是靠定時(shí)器的溢出中斷函數(shù)來處理,時(shí)間很短,因此在精度要求不高的場合可以忽略。因此如果忽略中斷時(shí)間,從另一個(gè)角度來講就是主程序和脈沖輸出是并行的,因此,只需要在主程序中按要求改變A值,例如讓A從500 變化到2500,就可以讓舵機(jī)從0 度變化到180
9、 度。另外舵機(jī)的轉(zhuǎn)動(dòng)需要時(shí)間的,因此,程序中A值的變化不能太快,不然舵機(jī)跟不上程序。根據(jù)需要,選擇合適的延時(shí),用一個(gè)遞增循環(huán),可以讓舵機(jī)很流暢的轉(zhuǎn)動(dòng),而不會產(chǎn)生像步進(jìn)電機(jī)一樣的脈動(dòng)。這些還需要實(shí)踐中具體體會。舵機(jī)的速度決定于你給它的信號脈寬的變化速度。一般來講,舵機(jī)最大轉(zhuǎn)動(dòng)速度在4.8V 時(shí)為0.23s/60 度,也就是說,如果你要求的速度比這個(gè)快的話,舵機(jī)就反應(yīng)不過來了;如果要求速度比這個(gè)慢,可以將脈寬變化值線性到你要求的時(shí)間內(nèi),做一個(gè)循環(huán),逐漸的增加脈寬值,就可以控制舵機(jī)的速度了。當(dāng)然,具體這個(gè)量到底是多少,就需要做試驗(yàn)了,不然的話,不合適的話,舵機(jī)就會向步進(jìn)電機(jī)一樣一跳一跳的轉(zhuǎn)動(dòng)了。還有
10、一點(diǎn)很重要,就是舵機(jī)在每一次脈寬值改變的時(shí)候總會有一個(gè)轉(zhuǎn)速由零增加再減速為零的過程,這就是舵機(jī)會產(chǎn)生像步進(jìn)電機(jī)一樣運(yùn)動(dòng)的原因。如果系統(tǒng)中需要控制幾個(gè)舵機(jī)的準(zhǔn)確轉(zhuǎn)動(dòng),可以用單片機(jī)和計(jì)數(shù)器進(jìn)行脈沖計(jì)數(shù)產(chǎn)生P W M 信號。脈沖計(jì)數(shù)可以利用51 單片機(jī)的內(nèi)部計(jì)數(shù)器來實(shí)現(xiàn),由于時(shí)間及專業(yè)限制,我們暫時(shí)使用這種方法。當(dāng)系統(tǒng)的主要工作任務(wù)就是控制多個(gè)舵機(jī)的工作,并且使用的舵機(jī)工作周期均為20ms 時(shí)。要求硬件產(chǎn)生的多路P W M 波的周期也相同。使用51 單片機(jī)的內(nèi)部定時(shí)器產(chǎn)生脈沖計(jì)數(shù)。一般工作正脈沖寬度小于周期的1/8 。這樣可以在1個(gè)周期內(nèi)分時(shí)啟動(dòng)各路P W M 波的上升沿。再利用定時(shí)器中斷T0 確定
11、各路PWM 波的輸出寬度。定時(shí)器中斷T1 控制20ms 的基準(zhǔn)時(shí)間。第1 次定時(shí)器中斷T0 按20ms 的1/8(由于數(shù)比較好算,所以用1/8) 設(shè)置初值,并設(shè)置輸出I/O 口,第1 次T0 定時(shí)中斷響應(yīng)后,將當(dāng)前輸出I/O 口對應(yīng)的引腳輸出置高電平,設(shè)置該路輸出正脈沖寬度,并啟動(dòng)第2 次定時(shí)器中斷,輸出I/O口指向下一個(gè)輸出口。第2 次定時(shí)器定時(shí)時(shí)間結(jié)束后,將當(dāng)前輸出引腳置低電平,設(shè)置此中斷周期為20ms 的1/8 減去正脈沖的時(shí)間,此路P W M 信號在該周期中輸出完畢,往復(fù)輸出。在每次循環(huán)的第16次(2 *8=16)中斷實(shí)行關(guān)定時(shí)中斷T0的操作,最后就可以實(shí)現(xiàn)8路(實(shí)際上六路就可以完成機(jī)
12、械臂的控制)舵機(jī)控制信號的輸出。但是從軟件系統(tǒng)的穩(wěn)定性和程序結(jié)構(gòu)的合理性看,宜使用外部的計(jì)數(shù)器,還可以提高CPU 的工作效率。采用單片機(jī)和8253、8254 這樣的計(jì)數(shù)器芯片的PWM 信號產(chǎn)生電路是可靠的。基于8253 產(chǎn)生PWM 信號的程序主要包括三方面內(nèi)容:一是定義8253寄存器的地址,二是控制字的寫入,三是數(shù)據(jù)的寫入軟件。所以當(dāng)系統(tǒng)需要產(chǎn)生多路P W M 信號時(shí),使用上述方法可以減少電路降低成本,也可以達(dá)到較高的精度。調(diào)試時(shí)注意到由于程序中脈沖寬度的調(diào)整是靠調(diào)整定時(shí)器的初值,中斷程序也被分成了8個(gè)狀態(tài)周期,并且需要嚴(yán)格的周期循環(huán),而且運(yùn)行其他中斷程序代碼的時(shí)間需要嚴(yán)格把握。在實(shí)際應(yīng)用中,
13、采用51單片機(jī)簡單方便地實(shí)現(xiàn)了舵機(jī)控制需要的P W M 信號,對機(jī)器人舵機(jī)控制的測試表明舵機(jī)控制系統(tǒng)工作穩(wěn)定,P W M 占空比(0.52.5ms 的正脈沖寬度)和舵機(jī)的轉(zhuǎn)角(-90 90 )線性度較好。4、上位機(jī)上位機(jī)是指人可以直接發(fā)出控制命令的計(jì)算機(jī),一般是PC。下位機(jī)是直接控制設(shè)備獲取設(shè)備狀況的計(jì)算機(jī),一般是PLC/單片機(jī)之類的。上位機(jī)發(fā)出的命令首先給下位機(jī),下位機(jī)再根據(jù)此命令解釋成相應(yīng)時(shí)序信號直接控制相應(yīng)設(shè)備。下位機(jī)不時(shí)讀取設(shè)備狀態(tài)數(shù)據(jù)(一般為模擬量),轉(zhuǎn)換成數(shù)字信號反饋給上位機(jī)。為了在短時(shí)間內(nèi)完成上位機(jī)編程,我們使用C#來制作串口通訊上位機(jī)。C#(C Sharp)是微軟為.NET F
14、ramework量身訂做的程序語言,C#擁有C/C+的強(qiáng)大功能以及Visual Basic簡易使用的特性,是第一個(gè)組件導(dǎo)向的程序語言,和C+與Java一樣亦為對象導(dǎo)向程序語言。四、調(diào)試中遇到問題及解決方法在進(jìn)行串口調(diào)試過程中,我們發(fā)現(xiàn)電腦經(jīng)常出現(xiàn)找不到串口的情況,無論重新安裝驅(qū)動(dòng),還是重新啟動(dòng),都只是維持很短暫的時(shí)間,然后又出現(xiàn)上述情況。經(jīng)檢查應(yīng)該是硬件的問題,我們估計(jì)是單片機(jī)學(xué)習(xí)板的串口連接脫焊導(dǎo)致的。我們還發(fā)現(xiàn)學(xué)習(xí)板的P0及P5口被其他的原件占用,無法直接從這兩個(gè)口輸出PWM信號,所以控制機(jī)械臂的接口只能跳過這兩個(gè),選用其他的。 在調(diào)試控制舵機(jī)時(shí),因?yàn)樽铋_始用的舵機(jī)已經(jīng)壞了,所以無論怎么調(diào)
15、試,舵機(jī)都無法轉(zhuǎn)動(dòng)。拿到新的舵機(jī)后,我們最先用信號發(fā)生器產(chǎn)生脈沖信號,測試舵機(jī)轉(zhuǎn)動(dòng)角度的范圍,發(fā)現(xiàn)并不是0-180,而是150度。雖然角度小了些,但還是能正常轉(zhuǎn)動(dòng)的。作為初期的練習(xí)控制舵機(jī),基本滿足要求,所以就沒再換新的。由于機(jī)械臂的配合及機(jī)械物件連接不連貫,經(jīng)常出現(xiàn)卡殼的狀況,我們經(jīng)過擰緊螺絲后,有所改善,但還是不夠理想,希望以后可以買到更好的硬件。在調(diào)試的過程中,發(fā)現(xiàn)舵機(jī)的扭矩不是很大,可能是因?yàn)槎鏅C(jī)過多,電流太小,無法達(dá)到額定扭矩,所以電路最好是制作一個(gè)驅(qū)動(dòng)電路,以提高機(jī)械臂性能。在進(jìn)行程序調(diào)試時(shí)經(jīng)常會出現(xiàn)問題,這與我們對程序的學(xué)習(xí)不夠,有著直接的關(guān)系。在經(jīng)過我們組成員一個(gè)學(xué)期的努力下,
16、終于把程序完成,并不斷改進(jìn)。五、個(gè)人體會及心得本學(xué)期我們組在進(jìn)行項(xiàng)目研究方面花費(fèi)了很長時(shí)間,同時(shí)也遇到了很多困難,也學(xué)到了很多。由于專業(yè)的差異,我們研究的范圍注定只局限于項(xiàng)目之內(nèi),即使這樣我們的進(jìn)度也是不盡如人意。主要原因還是在編程方面,雖然我們組成員都過了二級,但是還缺乏實(shí)際的動(dòng)手編程經(jīng)驗(yàn),還需要加強(qiáng)這方面的能力。和以前做作業(yè)不同,本學(xué)期的項(xiàng)目需要每個(gè)隊(duì)員的合作。有明確的分工,才會有效率,不能只等著別人。希望在下學(xué)期的努力學(xué)習(xí)下,能夠?qū)⑽覀兘M的項(xiàng)目成功的完成,學(xué)習(xí)到一些感興趣的知識,不給自己留下遺憾。單片機(jī)控制8路舵機(jī)程序:; T1 serial port to high T2 pwmPWM
17、OUT0BITP0.0PWMOUT1BITP0.1PWMOUT2BITP0.2PWMOUT3BITP0.3PWMOUT4BITP0.4PWMOUT5BITP0.5PWMOUT6BITP0.6PWMOUT7BITP0.7T2CONDATA0C8HTF2BITT2CON.7EXF2BITT2CON.6RCLKBITT2CON.5TCLKBITT2CON.4EXEN2BITT2CON.3TR2BITT2CON.2C_T2BITT2CON.1CP_RL2BITT2CON.0T2BITP1.0T2EXBITP1.1RCAP2LDATA0CAHRCAP2HDATA0CBHTL2DATA0CCHTH2DAT
18、A0CDHET2BITIE.5PT2BITIP.5/PWMWIDEQU048H; 16048H05FH ; First low 8bits then high 8bitschannelEQU032H;phaEQU033H;/ORG0000HLJMPMAINORG000BHLJMPT0_ISRORG002BHLJMPT2_ISRORG0100HMAIN:MOVSP, 60HMOV96H, #00HMOV8EH, #00H; InitSETB EA; enable interruptSETBET2CLR TCLKCLR RCLKMOV SCON, #050H; 8bit serialMOV TL2
19、, #000H MOV TH2, #000HMOV RCAP2L, #03CH; 2.5msMOV RCAP2H, #0F6HCLRTF2SETBTR2CLR ES; disable serial interruptCLR TI; clear serial FLAGMOV TMOD, #21HMOVTH0, #000H; make time for T0_ISR to runCLR TF0SETB ET0CLR TR0MOVTL1,#0F3HMOVTH1,#0F3HSETBTR1CLR AMOV pha,AMOVA, #035HMOVPWMWID+00H, AMOVPWMWID+02H, AM
20、OVPWMWID+04H, AMOVPWMWID+06H, AMOVPWMWID+08H, AMOVPWMWID+0AH, AMOVPWMWID+0CH, AMOVPWMWID+0EH, AMOVA, #0FAHMOVPWMWID+01H, AMOVPWMWID+03H, AMOVPWMWID+05H, AMOVPWMWID+07H, AMOVPWMWID+09H, AMOVPWMWID+0BH, AMOVPWMWID+0DH, AMOVPWMWID+0FH, A; CommunicationCOMMU:JNB RI, COMMUCLR RIMOV channel,SBUFMOV SBUF,c
21、hannelMOV A,channelJNB ACC.7, COMMUJBACC.6, COMMUJNB RI, $ANL channel, #07FHMOV A, #PWMWIDADD A, channelADDA, channelMOV R0, AMOVR1, SBUFCLRCMOVA, #0FFHSUBBA, R1; ADDCA, #12HMOVSBUF, AMOV R0, ACLRRIJNBRI, $MOVR1, SBUFMOVA, #0FFHSUBBA, R1INCR0MOVSBUF, AMOVR0, ACLR RISJMP COMMUT0_ISR:PUSHACCCLRTR0MOVA
22、,phaRLAMOVDPTR, #TABLEJMPA+DPTRTABLE:SJMPS0SJMPS1SJMPS2SJMPS3SJMPS4SJMPS5SJMPS6SJMPS7S0:CLRPWMOUT0POPACCRETIS1:CLRPWMOUT1POPACCRETIS2:CLRPWMOUT2POPACCRETIS3:CLRPWMOUT3POPACCRETIS4:CLRPWMOUT4POPACCRETIS5:CLRPWMOUT5POPACCRETIS6:CLRPWMOUT6POPACCRETIS7:CLRPWMOUT7POPACCRETIT2_ISR:CLRTF2PUSH ACCINC phaANL
23、pha, #07HMOVA,phaRLAMOVDPTR,#TABLE2JMPA+DPTRTABLE2:SJMPSS0SJMPSS1SJMPSS2SJMPSS3SJMPSS4SJMPSS5SJMPSS6SJMPSS7SS0:MOVTH0,PWMWID+01HMOVTL0,PWMWID+00HSETBPWMOUT0SETBTR0POPACCRETISS1:MOVTH0,PWMWID+03HMOVTL0,PWMWID+02HSETBPWMOUT1SETBTR0POPACCRETISS2:MOVTH0,PWMWID+05HMOVTL0,PWMWID+04HSETBPWMOUT2SETBTR0POPAC
24、CRETISS3:MOVTH0,PWMWID+07HMOVTL0,PWMWID+06HSETBPWMOUT3SETBTR0POPACCRETISS4:MOV TH0, PWMWID+09HMOV TL0, PWMWID+08HSETBPWMOUT4SETBTR0POPACCRETISS5:MOV TH0, PWMWID+0BHMOV TL0, PWMWID+0AHSETBPWMOUT5SETBTR0POPACCRETISS6:MOV TH0, PWMWID+0DHMOV TL0, PWMWID+0CHSETBPWMOUT6SETBTR0POPACCRETISS7:MOVTH0,PWMWID+0
25、FHMOVTL0,PWMWID+0EHSETBPWMOUT7SETBTR0POPACCRETIEND上位機(jī)程序(C#):using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Cois public partial class Cois : Form private byte P = new byte4; private byte checker; pu
26、blic Cois() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) init(); private void Message() throw new NotImplementedException(); private void init() GetPortName(); this.CBx_baud.Text = global:Cois.Properties.Settings.Default.BaudRate; private void GetPortName() string portN
27、ames = System.IO.Ports.SerialPort.GetPortNames(); CBx_port.Items.Clear(); foreach (string name in portNames) CBx_port.Items.Add(name); if (!CBx_port.Items.Contains(CBx_port.Text) try this.CBx_port.Text = (string)CBx_port.Items0; catch this.CBx_port.Text = global:Cois.Properties.Settings.Default.Port
28、Name; private void CBx_port_SelectedIndexChanged(object sender, EventArgs e) serialPort.PortName = CBx_port.Text; private void CBx_baud_SelectedIndexChanged(object sender, EventArgs e) serialPort.BaudRate =Convert.ToInt32( CBx_baud.Text); private void write(int number) byte CMD = new byte3; CMD0 = (
29、byte)number; CMD0 |= (byte)0x80; switch(number) case 0: CMD1 = (byte) (Servo0.Value+17)%256); CMD2 = (byte)(Servo0.Value +17)/ 256); serialPort.Write(CMD, 0, 3); break; case 1: CMD1 = (byte)(Servo1.Value+17)%256); CMD2 = (byte)(Servo1.Value+17) / 256); serialPort.Write(CMD, 0, 3); break; case 2: CMD
30、1 = (byte)(Servo2.Value+17)%256); CMD2 = (byte)(Servo2.Value +17)/ 256); serialPort.Write(CMD, 0, 3); break; case 3: CMD1 = (byte)(Servo3.Value+17)%256); CMD2 = (byte)(Servo3.Value+17) / 256); serialPort.Write(CMD, 0, 3); break; case 4: CMD1 = (byte)(Servo4.Value+17)%256); CMD2 = (byte)(Servo4.Value
31、+17) / 256); serialPort.Write(CMD, 0, 3); break; case 5: CMD1 = (byte)(Servo5.Value+17)%256); CMD2 = (byte)(Servo5.Value+17) / 256); serialPort.Write(CMD, 0, 3); break; case 6: CMD1 = (byte)(Servo6.Value+17)%256); CMD2 = (byte)(Servo6.Value+17) / 256); serialPort.Write(CMD, 0, 3); break; case 7: CMD
32、1 = (byte)(Servo7.Value+17)%256); CMD2 = (byte)(Servo7.Value+17) / 256); serialPort.Write(CMD, 0, 3); break; private void Btn_connect_Click(object sender, EventArgs e) if (serialPort.IsOpen) Btn_connect.Text = Unconnected; Btn_connect.CheckState = System.Windows.Forms.CheckState.Unchecked; serialPor
33、t.Close(); else try serialPort.Open(); catch Btn_connect.CheckState = System.Windows.Forms.CheckState.Unchecked; if (serialPort.IsOpen) Btn_connect.Text = Connected; Btn_connect.CheckState = System.Windows.Forms.CheckState.Checked; write(0); write(1); write(2); write(3); write(4); write(5); write(6)
34、; write(7); private void CBx_port_DropDown(object sender, EventArgs e) GetPortName(); private void Servo0_MouseUp(object sender, MouseEventArgs e) /if (serialPort.IsOpen) write(0); private void Servo1_MouseUp(object sender, MouseEventArgs e) /if (serialPort.IsOpen) write(1); private void Servo2_MouseUp(object sender, MouseEventArgs e) /if (serialPort.IsOpen) write(2); private void Servo3_MouseUp(object sender, MouseEventArgs e) /if (seria
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年文化傳媒許可使用合同2篇
- 二零二四年度協(xié)議離婚程序中的法律問題與優(yōu)缺點(diǎn)合同3篇
- 2025年個(gè)人停車場車位租賃合同標(biāo)準(zhǔn)版本(2篇)
- 2025年個(gè)人合作經(jīng)營合同常用版(三篇)
- 專業(yè)版2024中介擔(dān)保租賃合同書修訂資訊版B版
- 投標(biāo)合同承諾書模板
- 二零二五年度電梯門套綠色環(huán)保材料采購合同4篇
- 二零二四年度裝修合同簽訂前工期管理與進(jìn)度控制3篇
- 二零二五年度城市綜合體場地管理及商業(yè)運(yùn)營合同4篇
- 2025年上海市物業(yè)維修工程委托審價(jià)合同常用版(三篇)
- 蛋糕店服務(wù)員勞動(dòng)合同
- 土地買賣合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專題一-微專題10-同構(gòu)函數(shù)問題-專項(xiàng)訓(xùn)練【含答案】
- 新能源行業(yè)市場分析報(bào)告
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫含答案解析
- 2024-2030年中國烘焙食品行業(yè)運(yùn)營效益及營銷前景預(yù)測報(bào)告
- 巖土工程勘察.課件
- 60歲以上務(wù)工免責(zé)協(xié)議書
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 2022年7月2日江蘇事業(yè)單位統(tǒng)考《綜合知識和能力素質(zhì)》(管理崗)
- 沈陽理工大學(xué)《數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
評論
0/150
提交評論