摘 要:介紹無(wú)人機(jī)利用樹莓派和飛控系統(tǒng)的硬件結(jié)合,采用Python語(yǔ)言進(jìn)行編程,完成無(wú)人機(jī)機(jī)械手爪控制系統(tǒng)設(shè)計(jì),該系統(tǒng)不需復(fù)雜的硬件接線和編程便能完成無(wú)人機(jī)手爪的控制,并能根據(jù)設(shè)定時(shí)間值或視覺(jué)系統(tǒng)采集到的數(shù)值進(jìn)行手爪打開和閉合控制,從而實(shí)現(xiàn)智能化控制的目的。
關(guān)鍵詞:樹莓派;Python語(yǔ)言;手爪控制
中圖分類號(hào):TP39 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j.issn.1003-6970.2021.02.013
本文著錄格式:覃小慰.基于樹莓派和Python的無(wú)人機(jī)機(jī)械手爪控制系統(tǒng)設(shè)計(jì)[J].軟件,2021,42(02):044-045+051
Design of UAV Paw Control System Based on Raspberry Pi and Python
QIN Xiaowei
(Guangxi Advanced Technical School of Science and Commerce, Liuzhou? Guangxi? 545000)
【Abstract】:Flight control system of the unmanned aerial vehicle (uav) using the raspberry pie and combination of hardware, using the Python programming language, complete the uavs gripper control system design, the system does not need complex hardware wiring and programming can complete control of unmanned aerial vehicle (uav) gripper, and can according to the set time value or collected in the visual system numerical control the gripper opening and closing, so as to realize the purpose of intelligent control.
【Key words】:raspberry pi;the python language;gripper control
在一些救援過(guò)程中,因限制于環(huán)境影響,只能采取空投的方式將救援物資傳送到投放地或傳送給受災(zāi)人員。傳統(tǒng)的空投方式住住是借助直升機(jī)開展,通過(guò)直升機(jī)搭載物資進(jìn)行高空投放。然而,采用直升機(jī)投放物資的方式成本高且易受環(huán)境影響,在對(duì)地情況不明的情況下進(jìn)行投放也易對(duì)地面人員造成傷害。本無(wú)人機(jī)機(jī)械手爪控制系統(tǒng)具有穩(wěn)定性好、精度高,適用于在不同的場(chǎng)合抓取不同的物品。
1 系統(tǒng)結(jié)構(gòu)組成
無(wú)人機(jī)手爪控制系統(tǒng)主要由Raspberry Pi(樹莓派[1])、Pixhawk飛控、機(jī)械手爪、機(jī)架、螺旋槳、無(wú)刷電機(jī)、電子調(diào)速器、電池、遙控器、接收機(jī)、GPS和圖傳數(shù)傳組成。由程序員采用Python語(yǔ)言編寫無(wú)人機(jī)控制程序并存入Raspberry Pi(樹莓派),無(wú)人機(jī)在電源開啟后,程序在Raspberry Pi(樹莓派)中經(jīng)過(guò)運(yùn)算輸出控制信號(hào)給Pixhawk飛控,Pixhawk飛控按照Raspberry Pi(樹莓派)傳過(guò)來(lái)的信號(hào)去控制電調(diào)、舵機(jī)、燈光等設(shè)備。
2 硬件構(gòu)成
2.1 Raspberry Pi4
Raspberry Pi(中文譯名“樹莓派”)由注冊(cè)于英國(guó)的慈善組織Raspberry Pi基金會(huì)開發(fā),Eben·Upton/?!ざ蚱疹D為項(xiàng)目帶頭人。Raspberry Pi又稱卡片式電腦,外形只有信用卡大小,卻具有電腦的所有基本功能。
Raspberry Pi4(樹莓派4代)是一款性價(jià)比高、體積小的可編程迷你計(jì)算機(jī),被譽(yù)為世界上最流行最便宜的小型電腦,Linux操作系統(tǒng)。樹莓派4代基于BCM2711構(gòu)建,完全重新實(shí)現(xiàn)了28nm的BCM283X,采用更1.5GHz 4核64位 ARM Cortex-A72 CPU內(nèi)核取代Cortex-A53,內(nèi)存有1GB、2GB、4GB LPDDR4 SDRAM三個(gè)版本可選,藍(lán)牙5.0,從而使性能較樹莓派3B+提高了2到4倍。
2.2 Pixhawk飛控
DS18B20是采用TO-92形式封裝的數(shù)字溫度傳感器,接線引腳為3個(gè),溫度測(cè)量范圍為-55℃~+125℃,測(cè)溫分辨率達(dá)0.0625℃,工作狀態(tài)可為無(wú)外部電源供電和外部電源供電兩種模式,使用時(shí)可單片和多片并聯(lián)。DS18B20只需一根單線與單片機(jī)進(jìn)行雙向通信,占用微處理器端口少,溫度測(cè)量模塊DS18B20通過(guò)DQ引腳與AT89S52的P3.3口進(jìn)行連接通信。
2.3 Python編程語(yǔ)言
Python[2]是一種面向?qū)ο蟮膭?dòng)態(tài)類型的計(jì)算機(jī)編程語(yǔ)言,最初設(shè)計(jì)用于編寫自動(dòng)化腳本,后來(lái)隨著版本的不斷更新和語(yǔ)言新功能的添加,越來(lái)越多用于獨(dú)立的、大型項(xiàng)目的開發(fā)。Python語(yǔ)言具有語(yǔ)法簡(jiǎn)單、開源、標(biāo)準(zhǔn)庫(kù)和第三庫(kù)眾多、功能強(qiáng)大等特點(diǎn),非常適合人工智能和大數(shù)據(jù)的系統(tǒng)控制。
2.4 機(jī)械手爪
采用的輕型機(jī)械手爪,主要包括固定框架、傳動(dòng)齒輪、滑塊、手爪臂、舵機(jī)和固定螺母等。通過(guò)控制舵機(jī)旋轉(zhuǎn)角度,從而控制機(jī)械手爪臂張開和關(guān)閉的角度。該無(wú)人機(jī)輕型手爪結(jié)構(gòu)輕便,夾持力穩(wěn)定,控制系統(tǒng)結(jié)構(gòu)簡(jiǎn)潔,安裝適應(yīng)性好,能較好的抓取物資。
2.5 舵機(jī)
舵機(jī)[3]又稱伺服馬達(dá),主要用于角度控制,由控制器發(fā)送PWM(脈沖寬度調(diào)制)信號(hào)給舵機(jī),驅(qū)動(dòng)馬達(dá)轉(zhuǎn)動(dòng),同時(shí)由位置檢測(cè)器返回位置信號(hào),最終形閉環(huán)控制。舵機(jī)通常由5V電源、GND和控制線三根構(gòu)成。舵機(jī)采用脈沖寬度調(diào)制技術(shù)(PWM),主要由來(lái)自控制線的持續(xù)脈沖產(chǎn)生,脈沖的長(zhǎng)短決定舵機(jī)轉(zhuǎn)動(dòng)的角度。舵機(jī)基準(zhǔn)脈沖信號(hào)周期為20ms,脈沖寬度為1.5ms(一般而言,脈沖寬度為1ms~2ms),這個(gè)基準(zhǔn)信號(hào)定義的位置為中間位置。當(dāng)舵機(jī)接收到小于1.5ms的脈沖,輸出軸會(huì)以中間位置為標(biāo)準(zhǔn),逆時(shí)針轉(zhuǎn)動(dòng)一個(gè)角度。反之,當(dāng)舵機(jī)接收到大于1.5ms的脈沖,輸出軸會(huì)以中間位置為標(biāo)準(zhǔn),順時(shí)針轉(zhuǎn)動(dòng)一個(gè)角度,如圖1所示。
3 硬件連接
將Pixhawk飛控上Telem2口的四根線引出與樹莓派的數(shù)控傳輸端相連接,一是將兩個(gè)設(shè)備的電源+5V和GND連接,二是將兩個(gè)設(shè)備的TX數(shù)據(jù)發(fā)送端和RX數(shù)據(jù)接收端交叉連接,如圖2所示。
4 軟件系統(tǒng)設(shè)計(jì)
4.1 主程序控制
Dronekit 是用于控制無(wú)人機(jī)的Python庫(kù),它提供控制無(wú)人機(jī)的API,其代碼獨(dú)立于飛控,單獨(dú)運(yùn)行于計(jì)算機(jī)上,通過(guò)串口或無(wú)無(wú)線方式經(jīng)MAVLINK協(xié)議與飛控通信。加載Dronekit庫(kù)后,采用TCP連接方式與無(wú)人機(jī)進(jìn)行數(shù)據(jù)交互。無(wú)人機(jī)手爪開合角度由舵機(jī)伺服系統(tǒng)控制,在程序中通過(guò)設(shè)定PWM參數(shù)值即可。
4.2 系統(tǒng)設(shè)計(jì)程序源碼
from dronekit import connect,VehicleMode,Command,LocationGlobal,LocationGlobalRelative
from pymavlink import mavutil
import time
import math
vehicle = connect("tcp:192.168.31.148:5760",wait_ready=True)
print("無(wú)人機(jī)連接成功")
def set_servo(pwm_value):
msg=vehicle.message_factory.command_long_ encode(0,0,? mavutil.mavlink.MAV_CMD_DO_SET_SERVO,? # command? 0, 7, pwm_value,0,0,0,0,0)
vehicle.send_mavlink(msg)
def open_craw():
set_servo(1050)
def close_craw():
set_servo(1900)
for i in range(10):
open_craw()
time.sleep(1)
close_craw()
time.sleep(1)
5 結(jié)語(yǔ)
基于樹莓派和Python語(yǔ)言編程控制的無(wú)人機(jī)機(jī)械手爪控制系統(tǒng),具有結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、精度高等多項(xiàng)功能,適用于在不同的場(chǎng)合抓取不同的物品。本系統(tǒng)機(jī)械手爪張合范圍為0°~180°,經(jīng)現(xiàn)場(chǎng)測(cè)試分辨率較高,實(shí)際應(yīng)用中收到了相當(dāng)好的效果,在無(wú)人機(jī)運(yùn)用機(jī)械手抓取物品中具有較高的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 劉繼元.基于樹莓派的物連網(wǎng)應(yīng)用[J].探索與觀察,2019(6):25-27.
[2] 余詠勝,易桂軒.基于Python的無(wú)人機(jī)影像定位信息處理技術(shù)[J].城市勘測(cè),2018(5):32-35.
[3] 張吉智.舵機(jī)遠(yuǎn)距離數(shù)字控制[D].武漢:武漢交通職業(yè)學(xué)院,2012.