树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)
本文由树莓派爱好者ITJoker 编辑,转载请注明出处。本人也有新浪博客同样是树莓派爱好者ITJoker


sudo nano start.py
然后Ctrl+x再输入Y加回车即可。
再然后我们继续执行下列命令!
sudo nano csb.py
输入命令:
sudo python 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)
树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)(一)的更多相关文章
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- python - socket通信笔记
参考: 通过编写聊天程序来熟悉python中多线程和socket的用法:https://www.cnblogs.com/mingjiatang/p/4905395.html python socket ...
- 树莓派小车By 树莓派爱好者ITJoker(通过C socket通信实现树莓派视频小车)(二)
前面的方法可以参照(一)来配置GPIO口. 下面是代码...仅供参考,转载请注明出处. 1. 先输入以下指令,再复制代码,Ctrl+X 输入Y 回车 保存. sudo nano start.c ...
- Python Socket通信黏包问题分析及解决方法
参考:http://www.cnblogs.com/Eva-J/articles/8244551.html#_label5 1.黏包的表现(以客户端远程操作服务端命令为例) 注:只有在TCP协议通信的 ...
- Python Socket通信例子
一.TCP 通信 服务端 #!/usr/bin/env python # -*- coding: utf-8 -*- # server_tcp.py import socket so = socket ...
- Python Socket 通信
参考: http://www.cnblogs.com/alex3714/articles/5830365.html Socket A network socket is an endpoint of ...
- 程序媛计划——python socket通信
定义 socket 是进程间的一种通信方式,可以实现不同主机间的数据传输 #写服务期端程序server.py #实现服务器向客户端连接 #!/usr/bin/env python #coding:ut ...
- Python socket通信之FTP
Python中利用socket进行server端和client端通信是网络编程的基础,是最简单的传输范例. (懂网络的请自动跳过这一部分) 首先,要想通信,必须建立连接,建立连接的过程,需要clien ...
- Python socket 通信功能简介
常用的地址家族AF_UNIX:基于文件,实现同一主机不同进程之间的通信AF_INET:基于网络,适用于IPv4AF_INET6:基于网络,使用于IPv6 常见的连接类型SOCK_STREAM:即TCP ...
随机推荐
- Educational Codeforces Round 21 D.Array Division(二分)
D. Array Division time limit per test:2 seconds memory limit per test:256 megabytes input:standard i ...
- Java 大数类BigInteger和BigDecimal的基本函数
在Java中有两个类BigInteger和BigDecimal分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数).主要用于高精度计算中.这两个类使得java中的大数,高精度运 ...
- ThoughtWorks University之旅 —— 印度游记
ThoughtWorks University是ThoughtWorks为新加入的员工提供的入职培训项目之一,会将世界各地office新入职的员工一起带到印度浦那,参加一次为期5周的培训,内容涵盖了公 ...
- ASP.NET没有魔法——ASP.NET MVC & 分层 代码篇
上一篇文章对如何规范使用ASP.NET进行了介绍,本章内容将根据上一篇得出的结论来修改博客应用的代码. 代码分层 综合考虑将博客应用代码分为以下几个层次: ○ 模型:代表应用程序中的数据模型,与数据库 ...
- cesium编程入门(七)3D Tiles,模型旋转
cesium编程入门(七)3D Tiles,模型旋转 上一节介绍了3D Tiles模型的位置移动,和贴地的操作,这一节来聊一聊模型的旋转, 参考<WebGl编程指南>的第四章 假设在X轴和 ...
- vhost:一种 virtio 高性能的后端驱动实现
什么是 vhost vhost 是 virtio 的一种后端实现方案,在 virtio 简介中,我们已经提到 virtio 是一种半虚拟化的实现方案,需要虚拟机端和主机端都提供驱动才能完成通信,通常, ...
- UserView--第一种方式set去重,基于Spark算子的java代码实现
UserView--第一种方式set去重,基于Spark算子的java代码实现 测试数据 java代码 package com.hzf.spark.study; import java.util.Ha ...
- 从零开始学习前端开发 — 15、CSS3过渡、动画
一.css3过渡 语法: transition: 过渡属性 过渡时间 延迟时间 过渡方式; 1.过渡属性(transition-property) 取值:all 所有发生变化的css属性都添加过渡 e ...
- 使用python爬取百度贴吧内的图片
1. 首先通过urllib获取网页的源码 # 定义一个getHtml()函数 def getHtml(url): try: page = urllib.urlopen(url) # urllib.ur ...
- Win7如何分享局域网并设置共享文件夹账户和密码
https://jingyan.baidu.com/article/ceb9fb10ddf6c08cad2ba017.html 在办公或者其他场所,我们需要分享自己的文件给朋友或者同事,但又不想同一局 ...