【樹莓派】樹莓派小車(三)Python控制小車

正文之前

由于最近忙于復(fù)習(xí)趕考报嵌,所以暫時沒有拿起樹莓派小車,直到昨天否彩,終于空出時間來把代碼整理一下來和大家分享宏多。


正文

樹莓派小車系列之二中儿惫,講到了樹莓派的引腳定義方式有兩種:

  • PHYSICAL NUMBERING
  • GPIO NUMBERING

我采用的是第二種方式。

開始寫

1. 導(dǎo)入庫
import RPi.GPIO as GPIO
import time
2. 定義接口方式以及接口位置
GPIO.setmode(GPIO.BCM)
IN1 = 17
IN2 = 18
IN3 = 27
IN4 = 22
IN5 = 23
IN6 = 24 

IN1 - IN4為L298N接入伸但,IN5和IN6為紅外線模塊接入肾请。

車輪驅(qū)動方式:

IN1和IN2負(fù)責(zé)驅(qū)動車輪轉(zhuǎn)動(前進(jìn))。
IN3和IN4負(fù)責(zé)驅(qū)動車輪轉(zhuǎn)動(后退)更胖。

3. 初始化
def init():
    GPIO.setup(IN1, GPIO.OUT)
    GPIO.setup(IN2, GPIO.OUT)
    GPIO.setup(IN3, GPIO.OUT)
    GPIO.setup(IN4, GPIO.OUT)
    GPIO.setup(IN5, GPIO.IN)
    GPIO.setup(IN6, GPIO.IN)

連接L298N的接口設(shè)為輸出铛铁,因?yàn)樾枰敵龅男盘杹眚?qū)動電機(jī)。
連接紅外線模塊的接口為輸入却妨,因?yàn)樾枰斎氲男盘杹碜龀雠袛唷?/p>

4. 基礎(chǔ)方向行為
def up():
    GPIO.output(IN1, GPIO.HIGH)          //右側(cè)車輪前進(jìn)
    GPIO.output(IN2, GPIO.HIGH)          //左側(cè)車輪前進(jìn)
    GPIO.output(IN3, GPIO.LOW)
    GPIO.output(IN4, GPIO.LOW)


def down():
    GPIO.output(IN1, GPIO.LOW)
    GPIO.output(IN2, GPIO.LOW)
    GPIO.output(IN3, GPIO.HIGH)          //右側(cè)車輪后退
    GPIO.output(IN4, GPIO.HIGH)          //左側(cè)車輪后退


def turn_left():
    GPIO.output(IN1, GPIO.HIGH)          //右側(cè)車輪前進(jìn)
    GPIO.output(IN2, GPIO.LOW)
    GPIO.output(IN3, GPIO.LOW)
    GPIO.output(IN4, GPIO.LOW)


def turn_right():
    GPIO.output(IN1, GPIO.LOW)
    GPIO.output(IN2, GPIO.HIGH)          //左側(cè)車輪前進(jìn)
    GPIO.output(IN3, GPIO.LOW)
    GPIO.output(IN4, GPIO.LOW)

需要說明的是:由于不含舵機(jī)饵逐,轉(zhuǎn)彎的操作是單邊車輪驅(qū)動,帶動車身轉(zhuǎn)動

5. 紅外控制
init()

n = 5

while (n > 0):                                  //總共轉(zhuǎn)彎五次
    in_left = GPIO.input(IN5)                   //左側(cè)紅外線接收器
    in_right = GPIO.input(IN6)                  //右側(cè)紅外線接收器
    up()                                        //未遇到障礙時直行
    if (in_left == GPIO.LOW):
        down()
        time.sleep(1)
        turn_right()
        time.sleep(1)
        n = n - 1
        continue
    
    if (in_right == GPIO.LOW):
        down()
        time.sleep(1)
        turn_left()
        time.sleep(1)
        n = n - 1
        continue
    
    if (in_right == GPIO.LOW & in_left == GPIO.LOW):
        down()
        time.sleep(1)
        turn_right()               //如果兩側(cè)都有障礙彪标,就右轉(zhuǎn)(個人喜好)
        time.sleep(1)
        n = n - 1
        continue

stop()                      
GPIO.cleanup()                    //清空GPIO接口配置信息

如果前方遇到障礙倍权,就后退一秒,然后轉(zhuǎn)彎捐下,最后繼續(xù)直行账锹,直到遇到下一個障礙萌业。

需要說明的是time.sleep()的用法:
time.sleep(time) 表示的是經(jīng)過 time 秒后執(zhí)行下一步操作坷襟,就是休眠一段時間的意思。
如果不使用time.sleep()生年,將會一直執(zhí)行第一步操作婴程。

關(guān)于運(yùn)行:

  • 由于紅外傳感器的有效距離偏短(5cm左右),以及傳感器的安裝位置在車的底部抱婉,所以在車輛運(yùn)動時档叔,如果遇到凹凸不平的物體,有可能造成避障的延遲蒸绩。

運(yùn)行視頻

樹莓派小車

遇到凹凸不平的物體有些許碰撞(環(huán)境簡陋)

關(guān)于樹莓派信息的內(nèi)容就先告一段落衙四,等我做出安卓遙控app再來介紹,謝謝大家的關(guān)注患亿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末传蹈,一起剝皮案震驚了整個濱河市押逼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惦界,老刑警劉巖挑格,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沾歪,居然都是意外死亡漂彤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門灾搏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挫望,“玉大人,你說我怎么就攤上這事狂窑∈恐瑁” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵蕾域,是天一觀的道長拷肌。 經(jīng)常有香客問我,道長旨巷,這世上最難降的妖魔是什么巨缘? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮采呐,結(jié)果婚禮上若锁,老公的妹妹穿的比我還像新娘。我一直安慰自己斧吐,他們只是感情好又固,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著煤率,像睡著了一般仰冠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蝶糯,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天洋只,我揣著相機(jī)與錄音,去河邊找鬼昼捍。 笑死识虚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的妒茬。 我是一名探鬼主播担锤,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乍钻!你這毒婦竟也來了肛循?” 一聲冷哼從身側(cè)響起蛛株,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎育拨,沒想到半個月后谨履,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡熬丧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年笋粟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片析蝴。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡害捕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闷畸,到底是詐尸還是另有隱情尝盼,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布佑菩,位于F島的核電站盾沫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏殿漠。R本人自食惡果不足惜赴精,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绞幌。 院中可真熱鬧蕾哟,春花似錦、人聲如沸莲蜘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽票渠。三九已至逐哈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庄新,已是汗流浹背鞠眉。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留择诈,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓出皇,卻偏偏與公主長得像羞芍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子郊艘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容