本文由樹莓派愛好者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
)

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()
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)
附上小車電腦控制端鏈接:鏈接:http://pan.baidu.com/s/1jHXZvD0 密碼:0lbv
好了接下來就可以玩自己制作的視頻小車了
需要安卓控制端可以聯系郵箱:649258008@qq.com(QQ拒加)