【西电A测:设计和制造一款自动货物分拣系统】
西電A測-自動(dòng)貨物分揀系統(tǒng)
題目介紹:有一個(gè)自動(dòng)貨物分揀系統(tǒng)的項(xiàng)目,系統(tǒng)由顏色識(shí)別系統(tǒng),履帶傳送系統(tǒng)和機(jī)械臂分揀系統(tǒng)構(gòu)成。該項(xiàng)目利用紅、綠、藍(lán)三色木塊代表不同貨物種類,能夠通過對貨物種類的自動(dòng)判斷,對不同貨物進(jìn)行智能分揀。
測試時(shí),將紅、綠、藍(lán)三色木塊間隔放在履帶上,要求在規(guī)定的秒數(shù)內(nèi)將木塊輸送到顏色識(shí)別區(qū)進(jìn)行自動(dòng)識(shí)別。如果當(dāng)前木塊是規(guī)定的目標(biāo)顏色,則啟動(dòng)機(jī)械臂進(jìn)行分揀,將其從履帶上取下放在測試前現(xiàn)場指定的位置。其他顏色木塊不做分揀,直接傳送到履帶末端。
前言
此文章針對XDer A測,寫在這里,供大家做A測時(shí)學(xué)習(xí)參考,本人代碼文件名后綴帶有l(wèi)wy,只在CSDN上發(fā)表過,其他平臺(tái)非本人上傳,轉(zhuǎn)載請包含出處。
STM32學(xué)習(xí)不易,系統(tǒng)學(xué)習(xí)STM32知識(shí)見B站正點(diǎn)/野火視頻。第一次寫blog,若有bug,請海涵,同時(shí)望及時(shí)告知更正。
目錄
- 西電A測-自動(dòng)貨物分揀系統(tǒng)
- 前言
- 一,軟件下載安裝
- 二,驅(qū)動(dòng)安裝
- 三,軟件基礎(chǔ)操作:
- 四,STM32L476介紹
- 五,lwy代碼重要部分的解釋
- 5.1 顏色識(shí)別TCS230
- 5.2 電機(jī)控制MX1616
- 5.3 機(jī)械臂舵機(jī)控制SSC32
- 六,步驟
- 七,注意事項(xiàng)
一,軟件下載安裝
本人使用CUBEMX+KEIL5,所以此教程需要安裝:
KEIL5,KEIL5中STM32L4庫,CUBEMX,CUBEMX中STM32L4的HAL庫包
下載到電腦文件為:Keil.STM32L4xx_DFP.2.6.1.pack。雙擊它,然后Next
正確安裝,成功后雙擊KEIL打開 device中顯示出STM32L4 Series:
找到STM32L4,安裝你想要的版本(選擇對應(yīng)版本前面的正方形框選中后,點(diǎn)擊下面INSTALL Now)
正確安裝后顯示為綠色(頁面如下):
二,驅(qū)動(dòng)安裝
安裝串口驅(qū)動(dòng)是為了使用串口通信模塊,使單片機(jī)的數(shù)據(jù)通過串口通信模塊,發(fā)送到電腦端;或者數(shù)據(jù)通過電腦發(fā)送給單片機(jī)。安裝老師A測群中文件:
此實(shí)驗(yàn)使用軟件SSC-32 Servo Sequencer Utility.exe,通過串口通信,將數(shù)據(jù)發(fā)送到綠色開發(fā)板用來控制機(jī)械臂轉(zhuǎn)動(dòng)的位置。
安裝步驟見:鏈接
安裝STLINK驅(qū)動(dòng)是為了可以正常下載程序燒錄到開發(fā)板,代碼通過STCLK 和STDIO引腳下載。
正確安裝stlink驅(qū)動(dòng)后,插上開發(fā)板,設(shè)備管理器,顯示如下:STM32 STLINK / STM32 Debug
3. Windows上下載串口調(diào)試助手:(非必須)
三,軟件基礎(chǔ)操作:
STLINK 下載程序:選擇圖示魔術(shù)棒Options for target
在下圖中點(diǎn)擊Debug
點(diǎn)擊下圖中Settings
選擇ST-LINK,SW。前述正確安裝STLINK驅(qū)動(dòng)后,在下圖SW Device中會(huì)顯示Device中顯示名稱(可能和我的信息不一樣)
四,STM32L476介紹
這個(gè)才是STM32L476的引腳順序,不是開發(fā)板上標(biāo)的字母,接線一定盯著上面這張圖!
上圖中,引腳接線整理如下:
開發(fā)板實(shí)物圖:可以參考需要接線的引腳
五,lwy代碼重要部分的解釋
后綴含lwy為本人自己添加的文件,內(nèi)部已添加注釋。
Main.c文件(不斷修改,可能和圖中一些細(xì)節(jié)不一樣):
5.1 顏色識(shí)別TCS230
對于TCS230來說,當(dāng)選定一個(gè)顏色濾波器時(shí),它只允許某種特定的原色通過,阻止其它原色的通過。例如:當(dāng)選擇紅色濾波器時(shí),入射光中只有紅色可以通過,藍(lán)色和綠色都被阻止,這樣就可以得到紅色光的光強(qiáng);同理,選擇其它的濾波器,就可以得到藍(lán)色光和綠色光的光強(qiáng)。通過這三個(gè)光強(qiáng)值,就可以分析出反射到TCS230傳感器上的光的顏色。TCS230傳感器有紅綠藍(lán)和清除4種濾光器,可以通過其引腳 S2 和 S3 的高低電平來選擇濾波器模式,如下圖。
L表示低電平,H表示高電平
當(dāng)被測物體反射光的紅、綠、藍(lán)三色光線分別透過相應(yīng)濾波器到達(dá)TAOS TCS230RGB感應(yīng)芯片時(shí),其內(nèi)置的振蕩器會(huì)輸出方波,方波頻率與所感應(yīng)的光強(qiáng)成比例關(guān)系,光線越強(qiáng),內(nèi)置的振蕩器方波頻率越高。TCS23傳感器有一個(gè)OUT引腳,它輸出信號(hào)的頻率與內(nèi)置振蕩器的頻率也成比例關(guān)系,它們的比率因子可以靠其引腳S0和S1的高低電平來選擇,如下圖。
在CUBEMX中配置時(shí)鐘樹,定時(shí)器TIM4 如下:
f0=TIM4時(shí)鐘Prescaler?CounterPeriod=80MHz2000?4000=10Hzf_0=\frac{TIM4時(shí)鐘}{Prescaler*CounterPeriod} =\frac{80MHz}{2000*4000} =10Hzf0?=Prescaler?CounterPeriodTIM4時(shí)鐘?=2000?400080MHz?=10Hz
解釋:上圖中配置TIM4時(shí)鐘=80MHz,開一個(gè)定時(shí)器TIM4,分頻后為10Hz,即間隔1/10Hz =0.1s觸發(fā)一次中斷,在中斷服務(wù)函數(shù)中改變顏色濾波器并進(jìn)行計(jì)算處理。
同時(shí)需要開啟一個(gè)定時(shí)器TIM3,采集顏色傳感器TCS230引腳OUT信號(hào),捕獲方波脈沖個(gè)數(shù):
HAL配置的參數(shù)在下圖代碼中可以體現(xiàn):
需要自己寫的TCS230顏色識(shí)別代碼如下(colorHALbylwy.c):
上述芯片原理介紹參考原文鏈接為:鏈接1
鏈接2
5.2 電機(jī)控制MX1616
電機(jī)通過PWM控制即改變方波占空比,占空比越大,速度越快。使用TIM2配置引腳PA0輸出PWM方波。
通過CUBEMX配置產(chǎn)生方波,方波頻率:
f1=TIM2時(shí)鐘Prescaler?CounterPeriod=80MHz2000?4000=10Hzf_1=\frac{TIM2時(shí)鐘}{Prescaler*CounterPeriod} =\frac{80MHz}{2000*4000} =10Hzf1?=Prescaler?CounterPeriodTIM2時(shí)鐘?=2000?400080MHz?=10Hz
需要自己寫的電機(jī)控制代碼如下:
其中函數(shù)HAL_TIM_SET_COMPARE用來設(shè)置傳送帶運(yùn)動(dòng)速度。
5.3 機(jī)械臂舵機(jī)控制SSC32
綠色開發(fā)板如下:
USB SSC32路舵機(jī)控制是專為人形機(jī)器人、蜘蛛機(jī)器人、機(jī)械手等多舵機(jī)使用而量身定做的多路舵機(jī)控制器。該控制器不但保留了原版的所有功能,還在原版的基礎(chǔ)上作了升級(jí),將原來的RS232串口改成了USB接口,方便電腦沒有串口的用戶使用。控制器還增加藍(lán)牙接口,可實(shí)現(xiàn)無線遠(yuǎn)程控制。USBSSC32路舵機(jī)控制控制方式包括實(shí)時(shí)、定時(shí)、定速控制等。
單個(gè)舵機(jī)和舵機(jī)群運(yùn)動(dòng)命令:
# <ch> P <pw> S <spd>… # <ch> P <pw> S <spd> T <time><cr>
<ch> :舵機(jī)通道號(hào),值為0 – 31。
<pw> :脈沖寬度,單位微秒(us),值為500 – 2500。
<spd> :單通道的運(yùn)動(dòng)速度,單位us/秒。(可選)
<time> :所有通道的速度,單位毫秒(ms),最大65535。(可選)
<cr> :結(jié)束回車符,ASCII碼中的13。(必選)
<esc> :取消當(dāng)前的命令,ASCI碼中的27。
舵機(jī)0,1,2,3,4,5移動(dòng)到1500位置,同時(shí)在1000ms內(nèi)完成,這個(gè)命令能協(xié)調(diào)多個(gè)舵機(jī)的速度,即使多個(gè)舵機(jī)的初始位置相差很遠(yuǎn),都可以使他們同時(shí)開始轉(zhuǎn)動(dòng)并同時(shí)停止到指定位置上。P后面的數(shù)字代表舵機(jī)的絕對角度,每組設(shè)備參數(shù)不同,需要借助軟件SSC-32 Servo Sequencer Utility調(diào)整,需要自己寫的機(jī)械臂抓取代碼如下(ssc32hal.c):
軟件SSC-32 Servo Sequencer Utility頁面:
SSC32舵機(jī)詳細(xì)介紹見:鏈接
六,步驟
七,注意事項(xiàng)
(對于新手,注意事項(xiàng)挺多的,累了,有機(jī)會(huì)就添加)
目錄
- 西電A測-自動(dòng)貨物分揀系統(tǒng)
- 前言
- 一,軟件下載安裝
- 二,驅(qū)動(dòng)安裝
- 三,軟件基礎(chǔ)操作:
- 四,STM32L476介紹
- 五,lwy代碼重要部分的解釋
- 5.1 顏色識(shí)別TCS230
- 5.2 電機(jī)控制MX1616
- 5.3 機(jī)械臂舵機(jī)控制SSC32
- 六,步驟
- 七,注意事項(xiàng)
總結(jié)
以上是生活随笔為你收集整理的【西电A测:设计和制造一款自动货物分拣系统】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript 实现空间直角坐标系
- 下一篇: 售后管理系统常见系统角色分析