制作樹(shù)莓派wifi遙控和自動(dòng)避障小車(chē)

了解更多,請(qǐng)關(guān)注我的微信公眾號(hào):mellong

<h1 id="1">寫(xiě)在前面</h1>

前幾年買(mǎi)了樹(shù)莓派,當(dāng)時(shí)主要是想用來(lái)做客廳多媒體盒,不過(guò)實(shí)際使用下來(lái)有點(diǎn)卡,速度不盡人意。雖然后來(lái)?yè)Q了class10的SD卡速度有點(diǎn)提升,但也很少拿去看電影了,多數(shù)時(shí)間是用來(lái)做下載機(jī)。

其實(shí)之前也有聽(tīng)說(shuō)可以做很多有趣的東西,我最感興趣就是做個(gè)遙控小車(chē),一直有這個(gè)想法,就是沒(méi)有實(shí)際行動(dòng)。最近在網(wǎng)上又看到類(lèi)似的遙控車(chē),突然間又來(lái)了興致,這次決心很大,立即就找了下資料,并且在淘寶上買(mǎi)了配件。趁著周末有時(shí)間,花了半天時(shí)間組裝好了,又花了半天改了程序支持自動(dòng)避障,還做了個(gè)iPad/iPhone的手機(jī)端遙控app。自己又是擺道具又是錄視頻的,忙得不亦樂(lè)乎。廢話少說(shuō),現(xiàn)在進(jìn)入正題!

<h2 id="1.1">視頻效果</h2>

這是后來(lái)做的加了三路尋軌功能的視頻,后面文章會(huì)繼續(xù)介紹:

http://player.youku.com/player.php/sid/XMTI4Nzk0NjMyOA==/v.swf

<h1 id="2">需要的材料</h1>

  1. 樹(shù)莓派小車(chē)底盤(pán),這個(gè)上淘寶一搜一大堆,我買(mǎi)的四驅(qū)的,有帶亞克力兩層車(chē)板。
  2. 三種杜邦線,每一種買(mǎi)十條就可以了,我當(dāng)時(shí)怕不夠用,每一種都買(mǎi)了20條。
  3. 移動(dòng)電源,這個(gè)家里之前有一個(gè)飛毛腿的,要買(mǎi)雙usb輸出的。
  4. 樹(shù)莓派
  5. L298N電機(jī)驅(qū)動(dòng)板模塊
  6. 紅外避障模塊和超聲波測(cè)距模塊,如果想做避障功能就需要買(mǎi)這個(gè)傳感器,買(mǎi)兩個(gè)(開(kāi)始的時(shí)候不知道,我只買(mǎi)了一個(gè)紅外避障模塊...)。
  7. USB無(wú)線網(wǎng)卡

上面的花費(fèi)下來(lái),不計(jì)樹(shù)莓派、USB無(wú)線網(wǎng)卡和移動(dòng)電源,大概花了90元左右。

<h1 id="3">材料組裝</h1>

<h2 id="3.1">小車(chē)底盤(pán)</h2>
材料到手之后,先組裝車(chē)底盤(pán),安裝說(shuō)明書(shū)把第一層組裝好,馬達(dá)連線見(jiàn)下圖,線我是用杜邦線一分為二去接的。

image

注意走線是上下交叉連接。

<h2 id="3.2">與L298N驅(qū)動(dòng)模塊連線</h2>

模塊兩邊有各有兩個(gè)out接口分布連接兩邊馬達(dá),四個(gè)IN接口連接樹(shù)莓派的四個(gè)GPIO接口,連上后記得自己連接的接口編號(hào)就可以,寫(xiě)代碼的時(shí)候需要。

<h2 id="3.3">供電</h2>

我使用之前買(mǎi)的移動(dòng)電源供電,自帶有兩個(gè)USB接口,一個(gè)接樹(shù)莓派,一個(gè)接L298N驅(qū)動(dòng)模塊。也可以自己買(mǎi)電池盒進(jìn)行串聯(lián)供電。
接模塊的電源我使用usb線剪的,其中黑線是接地,紅線接VCC。

<h1 id="4">遙控程序</h1>

遙控主要是通過(guò)樹(shù)莓派的GPIO設(shè)置高低電平信號(hào)來(lái)控制小車(chē)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止,具體可以參考代碼和下面GPIO的接口說(shuō)明。值得注意的是,1對(duì)應(yīng)的樹(shù)莓派電路板背面焊錫為方形的針腳。

image

<h3 id="4.1">web版</h3>
web版可以直接使用王恒的版本:
https://github.com/wujiwh/piCar

主要修改自己接的GPIO接口和對(duì)應(yīng)的方向。

<h3 id="4.2">iOS版</h3>
簡(jiǎn)單寫(xiě)了iOS客戶端,服務(wù)端是用王恒的版本改的:
RaspiCar

<h3 id="4.3">自動(dòng)避障版</h3>
由于只買(mǎi)了一個(gè)紅外避障模塊,于是只能單邊避障,這里是代碼:

#!/user/bin/env python
 
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(12,GPIO.OUT)
GPIO.setup(15,GPIO.OUT)
GPIO.setup(16,GPIO.OUT)
GPIO.setup(7,GPIO.IN)

def t_stop():
    GPIO.output(11, False)
    GPIO.output(12, False)
    GPIO.output(15, False)
    GPIO.output(16, False)

def t_down():
    GPIO.output(11, True)
    GPIO.output(12, False)
    GPIO.output(15, True)
    GPIO.output(16, False)

def t_up():
    GPIO.output(11, False)
    GPIO.output(12, True)
    GPIO.output(15, False)
    GPIO.output(16, True)

def t_right():
    GPIO.output(11, False)
    GPIO.output(12, True)
    GPIO.output(15, True)
    GPIO.output(16, False)

def t_left():
    GPIO.output(11, True)
    GPIO.output(12, False)
    GPIO.output(15, False)
    GPIO.output(16, True)


while True:
    in_right= GPIO.input(7)
    if in_right == False:
        t_left()
    else:
        t_up()

<h1 id="5">最后</h1>

完成效果圖:

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容