本文由树莓派爱好者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拒加)

最新文章

  1. Windows线程漫谈界面线程和工作者线程
  2. ionic卸载和更新
  3. 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
  4. Spark installation for windows
  5. 十六、mysql 分区之 简单sql优化1
  6. mac使用初级
  7. javascript——面向对象程序设计(1)
  8. CodeForces 689A -Mike and Cellphone
  9. mongoose post方法总结and疑点
  10. CJOJ 2040 【一本通】分组背包(动态规划)
  11. 【HTML】table元素
  12. Vue 路由心得总结
  13. C#基础知识之静态和非静态
  14. scrapy中css选择器初识
  15. ota升级动画背景色修改
  16. Linux下如何查看系统启动时间和运行时间(转)
  17. C# 中数据类型以及结构
  18. 执行RF测试只生成output.xml文件,不生成log和report文件
  19. [转]无网络环境,在Windows Server 2008 R2和SQL Server 2008R2环境安装SharePoint2013 RT
  20. Navicat Premium Mac 12 破解

热门文章

  1. JAVA基础-集合(二)
  2. npm 简单实用命令
  3. 线程池的使用及ThreadPoolExecutor的分析(一)
  4. 如何给网站添加SSL证书(免费)
  5. [hdu5632][BC#73 1002]Rikka with Array
  6. oracle 数据库——知识点总结(加示例)
  7. docker运行dubbo-admin
  8. JSP基础:JSP指令、JSP注释、JSP脚本、JSP声明、JSP表达式
  9. asp.net -mvc框架复习(3)-控制器和动作方法的任务分析
  10. 遇到安装app不识别的情况