91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用鍵盤控制樹莓派RC汽車

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-15 16:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:組件

在繼續(xù)本教程之前,請確保您具有以下組件:

?Raspberry Pi Model B(http://www.adafruit.com/products/998)

?MicroSD卡(http://www.adafruit.com/products/102)

?Pi補鞋匠的分線和電纜(http://www.adafruit.com/products/914)

?任意尺寸的面包板(http://www.adafruit.com/products/239)

?M/M電線(http://www.adafruit.com/products/153) Wires(http://www.adafruit.com/products/266)

?原型Pi板(http://www.adafruit.com/produ cts/801)

?L293D芯片(http://www.adafruit.com/products/807)

?帶直流電動機的中型RC汽車

?藍牙鍵盤

?烙鐵和電線

步驟2:先決條件

在繼續(xù)本教程之前,請確保滿足以下先決條件:

?帶有GPIO電纜和面包板的組裝式補鞋匠

?烙鐵體驗

?升級的操作系統(tǒng)。您可以通過進入終端來實現(xiàn)此目的:

sudo apt-get upgrade

?最新的GPIO庫。您可以通過進入終端來實現(xiàn)此目的:

sudo apt-get update

sudo apt-get install python-dev

sudo apt-get install python-rpi.gpio

步驟3:L293D芯片

硬件設(shè)置中最重要的部分是L293D芯片。使用適當?shù)拇a,該芯片可讓您控制兩個獨立的直流電動機的速度和方向。了解該芯片的工作方式及其每個引腳的功能對您至關(guān)重要。 “ + V”引腳(8)為電動機供電,而“ + V”引腳(16)為芯片邏輯供電。每個“ IN”引腳(2、7、10、15)都需要連接到GPIO引腳,而“ OUT”引腳(3、6、11、14)則為兩個直流電動機提供輸出。

第4步:硬件

了解了L293D芯片的原理之后,就該將其與其他組件一起組裝了,放在面包板上。已為您提供了原理圖。請注意L293D芯片的方向。

您可能會注意到圖中的LED。這些代表遙控車上的前燈或霓虹燈底燈。如果您的汽車缺少這些功能,請忽略原理圖的這一部分。

第5步:軟件

下面是您需要的python代碼這個程序工作。完成后將程序另存為rc_car.py。

將RPi.GPIO導入為io

io.setmode(io.BCM)

import sys,tty,termios,time

#這兩個代碼塊為RC車上的兩個直流電動機配置PWM設(shè)置。它定義用于輸入的兩個GPIO

#引腳,啟動PWM并將

#電動機的速度設(shè)置為0

motor1_in1_pin = 4

motor1_in2_pin = 17 setup(motor1_in1_pin ,io.OUT)

io.setup(motor1_in2_pin,io.OUT)

motor1 = io.PWM(4,100)

motor1.start(0)

motor1.ChangeDutyCycle(0)

motor2_in1_pin = 24

motor2_in2_pin = 25

io.setup(motor2_in1_pin,io.OUT)

io.setup(motor2_in2_pin,io.OUT)

motor2 = io.PWM(4,100)

motor2 .start(0)

motor2.ChangeDutyCycle(0)

#定義將用于RC車上LED的GPIO引腳,并將輸出設(shè)置為false .setup( 18,io.OUT)

io.output(18,F(xiàn)alse)

io.setup(23,io.OUT)

io.output(23,F(xiàn)alse)

#getch方法可以確定用戶通過訪問系統(tǒng)文件在鍵盤上按下了哪個鍵

#然后它將作為變量返回按下的鍵

def getch():

fd = sys.stdin .fileno()

old_settings = termios.tcgetattr(fd)

試試:

tty.setraw(sys.stdin.filen o())

ch = sys.stdin.read(1)

最后:

termios.tcsetattr(fd,termios.TCSADRAIN,old_settings)

return ch

#此部分代碼定義用于確定電動機是否需要正轉(zhuǎn)或反轉(zhuǎn)的方法。通過將

#GPIO引腳之一設(shè)置為true,將另一個設(shè)置為false,可以實現(xiàn)不同的方向。如果

#兩個引腳的狀態(tài)都匹配,則電動機將不會旋轉(zhuǎn)。

def motor1_forward():

io.output(電動機1_in1_pin,True)

io.output(電動機1_in2_pin,F(xiàn)alse)

def motor1_reverse():

io.output(motor1_in1_pin,F(xiàn)alse)

io.output(motor1_in2_pin,True)

def motor2_forward():

io.output(motor2_in1_pin,True)

io.output(motor2_in2_pin,F(xiàn)alse)

def io.output(motor2_in1_pin,F(xiàn)alse)

io.output(motor2_in2_pin,True)

#此方法將打開/關(guān)閉燈用戶

#按下特定鍵時關(guān)閉。然后它將更改燈的狀態(tài)

#,以便在下次調(diào)用時知道是打開還是關(guān)閉燈。

def toggleLights():

全局lightStatus

if(lightStatus == False):

io.output(18,True)

io.output(23,True)

lightStatus = True

else:

io.output(18, False)

io.output(23,F(xiàn)alse)

lightStatus = False

#此方法將切換轉(zhuǎn)向

電機的方向。該方法將根據(jù)用戶按下的鍵確定用戶是否要

#向左或向右轉(zhuǎn),然后

#然后進行適當?shù)恼{(diào)整。它可以用作toggle

#,因為程序無法同時讀取

#上的多個按鍵。車輪的可能位置是?!坝摇?,“中心”和“左”。然后它將更新輪子的

#狀態(tài)以在下次調(diào)用它時進行訪問。

def toggleSteering(direction):

global wheelStatus

if(direction ==“ right”):

if(wheelStatus ==“ centre”):

motor1_forward()

motor1.ChangeDutyCycle(99)

wheelStatus =“ right”

elif(wheelStatus ==“ left”):

motor1.ChangeDutyCycle(0)

wheelStatus =“中心”

if(方向==“左”):

if(wheelStatus ==“中心”):

motor1_reverse()

motor1 .ChangeDutyCycle(99)

wheelStatus =“左”

elif(wheelStatus ==“右”):

motor1.ChangeDutyCycle(0)

wheelStatus =“ centre”

#設(shè)置PWM固定為false,以便電動機在用戶按下第一個鍵之前不會移動

#。io.output(電動機1_in1_pin,F(xiàn)alse)

io.output(電動機1_in2_pin,F(xiàn)alse)

io.output(電動機2_in1_pin ,F(xiàn)alse)

io.output(motor2_in2_pin,F(xiàn)alse)

#燈光和轉(zhuǎn)向狀態(tài)的全局變量

lightStatus = False

wheelStatus =“ centre” 《?!酚脩鬶作為界面

print(“ w/s:加速”)

print(“ a/d:轉(zhuǎn)向”)

print(“ l:燈”)

print(“ x:退出” )

#無限循環(huán)直到用戶按下

#退出鍵

而True時才結(jié)束:

#調(diào)用鍵盤字符檢索方法并將其保存

#放入變量

= getch()

#按下“ w”鍵時汽車將向前行駛

if(char ==“ w”):

motor2_forward()

motor2.ChangeDutyCycle(99)

#按下“ s”鍵時汽車將倒車

if(char ==“ s”):

motor2_reverse()

motor2.ChangeDutyCycle(99)

?!?a “鍵將向左轉(zhuǎn)向

if(char ==” a“):

toggleSteering(”左“)

?!?d“鍵將向右轉(zhuǎn)向

if(char = =“ d”):

toggleSteering(“ right”)

##“ l”鍵將打開/關(guān)閉LED燈

if(char ==“ l”):

toggleLights()

?!?x”鍵將中斷循環(huán)并退出程序

if(char ==“ x”):

print(“ Program Ended”)

break

#在每個循環(huán)的結(jié)尾加速電機將停止

#等待其下一個命令

motor2.ChangeDutyCycle(0)

#鍵盤字符變量將設(shè)置為空白,準備好

#保存下一個按下的鍵

char =“”

#程序?qū)⒃诮K止

io.cleanup()

之前停止所有GPIO活動,步驟6:測試和配置

要測試代碼,您必須以超級用戶身份運行它才能訪問引腳。鍵入以下內(nèi)容:

sudo python rc_car.py

按W和S鍵向前和向后移動汽車

按A和D鍵向左和向右切換轉(zhuǎn)向

按L

在準備退出程序時按X鍵。

步驟7:焊接

現(xiàn)在是時候?qū)⒘慵附拥皆桶迳弦栽黾悠淠陀眯?,然后在過程中將板焊接到連接電池組和電機的汽車上。切記不要將任何引腳與焊料連接在一起,因為會交叉信號。最好對電線進行顏色編碼以方便參考。

最終產(chǎn)品應(yīng)與以下內(nèi)容相似:

第8步:盡情享受您的新駭客RC汽車

責任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鍵盤
    +關(guān)注

    關(guān)注

    4

    文章

    874

    瀏覽量

    41966
  • 遙控車
    +關(guān)注

    關(guān)注

    9

    文章

    82

    瀏覽量

    25141
  • 樹莓派
    +關(guān)注

    關(guān)注

    122

    文章

    2080

    瀏覽量

    110569
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    零成本鋼鐵俠手套!樹莓+OpenCV 秒變手勢遙控器!

    大家好,這是一個樹莓和OpenCV的連載專題。使用樹莓與OpenCV實現(xiàn)姿態(tài)估計和面部特征點追蹤使用樹莓
    的頭像 發(fā)表于 08-16 16:16 ?1375次閱讀
    零成本鋼鐵俠手套!<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>+OpenCV 秒變手勢遙控器!

    如何使用樹莓與OpenCV實現(xiàn)面部和運動追蹤的云臺系統(tǒng)?

    使用樹莓和OpenCV實時掃描并存儲二維碼使用樹莓和OpenCV實現(xiàn)物體與動物識別使用樹莓
    的頭像 發(fā)表于 08-14 17:45 ?1880次閱讀
    如何使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>與OpenCV實現(xiàn)面部和運動追蹤的云臺系統(tǒng)?

    樹莓屏幕怎么選?

    樹莓很多人都用過,但屏幕的倒不是很多。不少都是直接遠程操作,或者直接接身邊的顯示設(shè)備了。但我覺得給開發(fā)板配一個屏幕還是很能提升使用體驗的。這次我就介紹一下樹莓
    的頭像 發(fā)表于 08-08 14:59 ?1581次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>屏幕怎么選?

    樹莓操作系統(tǒng):版本、特性及設(shè)置完整指南!

    樹莓操作系統(tǒng)是什么?樹莓操作系統(tǒng)是由樹莓基金會專為樹莓
    的頭像 發(fā)表于 07-28 18:26 ?1534次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>操作系統(tǒng):版本、特性及設(shè)置完整指南!

    工業(yè)樹莓的高光時刻!樹莓工業(yè)級 HMI 列陣!

    上海晶珩作為樹莓官方設(shè)計合作伙伴和代理商,基于樹莓技術(shù)開發(fā)了一系列工業(yè)級人機界面(HMI)產(chǎn)品,廣泛應(yīng)用于工業(yè)自動化、樓宇控制、智能制造
    的頭像 發(fā)表于 07-23 18:36 ?898次閱讀
    工業(yè)<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的高光時刻!<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>工業(yè)級 HMI 列陣!

    樹莓挖掘5種頂級加密貨幣!

    挖掘的最佳加密貨幣可通過CPU或硬盤挖掘獲得。這些加密貨幣采用“抗ASIC”算法,樹莓能夠處理并解決這些算法。我將為您介紹適合在樹莓派上挖掘的最佳加密貨幣,以
    的頭像 發(fā)表于 07-21 16:34 ?1553次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b>挖掘5種頂級加密貨幣!

    樹莓打造無人機,你需注意的事項!

    能否將樹莓裝入無人機?使用樹莓打造無人機是可行的。樹莓充當無人機的“大腦”,將飛行
    的頭像 發(fā)表于 07-14 17:49 ?2152次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b>打造無人機,你需注意的事項!

    樹莓6 傳聞:發(fā)布日期與規(guī)格!

    每當我想再為我的收藏增添一款樹莓時,總會在是立即購買還是等待硬件更強大的下一代之間猶豫不決。但新樹莓型號的發(fā)布往往容易被錯過,尤其是在你的信息流被病毒式傳播的貓咪視頻占據(jù)時。因此,
    的頭像 發(fā)表于 07-11 16:21 ?2582次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>6 傳聞:發(fā)布日期與規(guī)格!

    20個任何人都能完成的樹莓酷炫項目!

    不知道如何利用你買的樹莓?這個小設(shè)備真的能當臺式電腦嗎?能當服務(wù)器嗎?能當廣播電臺嗎?當然可以!為了幫助你入門,我們精心挑選了這份樹莓
    的頭像 發(fā)表于 07-03 17:10 ?4522次閱讀
    20個任何人都能完成的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>酷炫項目!

    樹莓小技巧:無需鍵盤或顯示器,如何通過WiFi設(shè)置樹莓?

    樹莓是一款小巧便攜的USB供電計算機,可以隱藏起來用于小型項目,如網(wǎng)絡(luò)服務(wù)器或家庭自動化。通常,設(shè)置樹莓需要鍵盤和顯示器來編輯和查看
    的頭像 發(fā)表于 06-26 15:41 ?1640次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>小技巧:無需<b class='flag-5'>鍵盤</b>或顯示器,如何通過WiFi設(shè)置<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>?

    樹莓分類器:樹莓識別不同型號的樹莓!

    在本教程系列的第一部分中,您將學習如何使用樹莓AI攝像頭來檢測不同的樹莓型號。本系列由DavidPlowman創(chuàng)建,他是樹莓
    的頭像 發(fā)表于 06-13 16:39 ?1394次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>分類器:<b class='flag-5'>用</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b>識別不同型號的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>!

    樹莓“揪出”家里的耗電怪獸!

    在本應(yīng)用中,我們將使用樹莓設(shè)置一個CE電流監(jiān)測器,并通過網(wǎng)頁界面顯示電路的電流讀數(shù)。本項目使用的組件硬件組件樹莓2ModelBx112通道20安培電流監(jiān)測
    的頭像 發(fā)表于 06-04 15:33 ?1740次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“揪出”家里的耗電怪獸!

    樹莓“吉尼斯世界記錄”:將樹莓的性能發(fā)揮到極致的項目!

    樹莓是一款功能強大、體積小巧且高度可定制的設(shè)備,多年來,我們見證了它被應(yīng)用于眾多領(lǐng)域。無論是將其裝入3D打印的經(jīng)典游戲機外殼,還是簡單地將它隱藏起來作為家庭文件服務(wù)器,我們都報道過在社區(qū)里
    的頭像 發(fā)表于 05-22 16:53 ?1601次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“吉尼斯世界記錄”:將<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的性能發(fā)揮到極致的項目!

    樹莓 Zero 打造的智能漫游車!

    使用PXFMini和樹莓Zero打造您自己的自主漫游車。本項目所用組件硬件組件ErleRoboticsPXFmini×1樹莓Zero×1樹莓
    的頭像 發(fā)表于 05-13 16:39 ?1170次閱讀
    <b class='flag-5'>用</b> <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游車!

    樹莓4 打造專屬流媒體控制臺!

    樹莓體驗DIY智能科技!如今市面上有各種各樣的流媒體控制臺,但購買現(xiàn)成的哪有自己從零開始制作的有趣呢?至少,這似乎是樹莓
    的頭像 發(fā)表于 05-11 08:33 ?651次閱讀
    <b class='flag-5'>用</b> <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>4 打造專屬流媒體<b class='flag-5'>控制</b>臺!