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