樹莓派小車By 樹莓派愛好者ITJoker(通過python socket通信實現樹莓派視頻小車)(一)新博客:https://www.itjoker.cn


本文由樹莓派愛好者ITJoker 編輯,轉載請注明出處。本人也有新浪博客同樣是樹莓派愛好者ITJoker

所需材料:樹莓派2B或者2B以上,L2985n驅動板,若干排線,電池及電池盒,usb無線網卡(免驅動),usb攝像頭(免驅動)。
所需環境:raspberry-gpio-python,以及安裝mjpg-streamer及所需的環境。(這里就不多說了,等日后博主有時間增加這些環境的配置內容)
好了接下來開始我們的行動。
首先,開始我們先用4根母對母杜邦線分別連接L2985n的IN1,IN2,IN3,IN4然后對上樹莓派的GPIO接口11,12,13,15。(IN1=12,IN2=11,IN3=13,IN4=15)
IN1,IN2控制的是OUT1,OUT2的馬達
IN3,IN4控制的是OUT3,OUT4的馬達
(注意,馬達接線要左邊的與左邊的交叉相接,即左前輪和左后輪交叉相接。以此類推右邊也是如此。)
樹莓派PIN腳圖借鑒下樹莓派實驗室的。(由於博主懶,詳細的接線方法沒上圖。)

 

接線完畢后,通過網絡上的方法用ssh 進入到樹莓派
輸入命令:(將服務端代碼復制上去)
sudo nano start.py

然后Ctrl+x再輸入Y加回車即可。

再然后我們繼續執行下列命令!

sudo nano csb.py

  

輸入命令:

sudo python start.py

即可運行!

附下小車服務端控制代碼及超聲波模塊代碼:(請勿用於其他用途,使用時請注明轉載處及作者:樹莓派愛好者ITJoker 樹莓派小車By <wbr>樹莓派愛好者ITJoker(通過python <wbr>socket通信實現樹莓派視頻小車)
start.py
###########################################
#Writer: ITJoker                          #
#Time: 2018.3.10                          #
#Version:2.0                              #
#Trig=GPIO 2                              #
#Echo=GPIO 3                              #
###########################################
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from socket import *
import csb
import time
def t_init():
        GPIO.setmode(GPIO.BOARD)
        GPIO.setwarnings(False)
        GPIO.setup(11,GPIO.OUT)
        GPIO.setup(12,GPIO.OUT)
        GPIO.setup(13,GPIO.OUT)
        GPIO.setup(15,GPIO.OUT)
def chaoshenbo():
        csb.setup()
        a=csb.checkdist()
        GPIO.cleanup()
        conn.send(str(a))
def t_stop():
        GPIO.output(11, False)
        GPIO.output(12, False)
        GPIO.output(13, False)
        GPIO.output(15, False)
        GPIO.output(3, False)
        GPIO.output(2, False)
        time.sleep(1)
        GPIO.cleanup()
def t_up():
        t_init()
        GPIO.output(11, True)
        GPIO.output(12, False)
        GPIO.output(13, True)
        GPIO.output(15, False)
        time.sleep(1)
        GPIO.cleanup()
        chaoshenbo()
def t_down():
        t_init()
        GPIO.output(11, False)
        GPIO.output(12, True)
        GPIO.output(13, False)
        GPIO.output(15, True)
        time.sleep(1)
        GPIO.cleanup()
        chaoshenbo()
def t_right():
        t_init()
        GPIO.output(11, False)
        GPIO.output(12, True)
        GPIO.output(13, True)
        GPIO.output(15, False)
        time.sleep(1)
        GPIO.cleanup()
        chaoshenbo()
def t_left():
        t_init()
        GPIO.output(11, True)
        GPIO.output(12, False)
        GPIO.output(13, False)
        GPIO.output(15, True)
        time.sleep(1)
        GPIO.cleanup()
        chaoshenbo()
#########################################################
def commands (cmd):
    print cmd
    if cmd == 'd':
      t_down()
    elif cmd == 's':
      t_stop()
    elif cmd == 'u':
      t_up()
    elif cmd == 'l':
      t_left()
    elif cmd == 'r':
      t_right()
HOST ='192.168.43.97' #the ip of raspberry pi
PORT =8888           #the port of raspberry pi
s= socket(AF_INET, SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5)
print ('listening on',PORT)
while 1:
    conn, addr = s.accept()
    print ('Connected ok! By ',addr)
    while 1:
            command= conn.recv(20).replace('\n','')
            if command == 'g':
              conn.close
              break
            elif not command:break
            commands(bytearray(command)) #command
    conn.close()
View Code

csb.py

#! /usr/bin/python
# -*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
def checkdist():
        #發出觸發信號
        GPIO.output(2,GPIO.HIGH)
        #保持10us以上
        time.sleep(0.000015)
        GPIO.output(2,GPIO.LOW)
        while not GPIO.input(3):
                pass
        #發現高電平時開時計時
        t1 = time.time()
        while GPIO.input(3):
                pass
        #高電平結束停止計時
        t2 = time.time()
        #返回距離,單位為米
        return (t2-t1)*340/2
def setup():
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
        GPIO.setup(3,GPIO.IN)
        time.sleep(2)
View Code
附上小車電腦控制端鏈接:鏈接:http://pan.baidu.com/s/1jHXZvD0 密碼:0lbv
好了接下來就可以玩自己制作的視頻小車了
需要安卓控制端可以聯系郵箱:649258008@qq.com(QQ拒加)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM