树莓派python编程小车_树莓派智能车AlphaBot教程11:Python 网络编程
cpp代码:import threading
import SocketServer
import RPi.GPIO as GPIO
from SocketServer import StreamRequestHandler as SRH
from AlphaBot import AlphaBot
from PCA9685 import PCA9685
from time import ctime
Ab = AlphaBot()
pwm = PCA9685(0x40)
pwm.setPWMFreq(50)
BUZ = 4
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(BUZ,GPIO.OUT)
#Set the Horizontal servo parameters
HPulse = 1500 #Sets the initial Pulse
HStep = 0 #Sets the initial step length
pwm.setServoPulse(0,HPulse)
#Set the vertical servo parameters
VPulse = 1500 #Sets the initial Pulse
VStep = 0 #Sets the initial step length
pwm.setServoPulse(1,VPulse)
host = '192.168.10.235'
port = 8000
addr = (host,port)
def beep_on():
GPIO.output(BUZ,GPIO.HIGH)
def beep_off():
GPIO.output(BUZ,GPIO.LOW)
class Servers(SRH):
def handle(self):
global HStep,VStep
print 'got connection from ',self.client_address
self.wfile.write('connection %s:%s at %s succeed!' % (host,port,ctime()))
while True:
data = self.request.recv(1024)
if not data:
break
if data == "Stop":
HStep = 0
VStep = 0
Ab.stop()
elif data == "Forward":
Ab.forward()
elif data == "Backward":
Ab.backward()
elif data == "TurnLeft":
Ab.left()
elif data == "TurnRight":
Ab.right()
elif data == "Up":
VStep = -5
elif data == "Down":
VStep = 5
elif data == "Left":
HStep = 5
elif data == "Right":
HStep = -5
elif data == "BuzzerOn":
beep_on()
elif data == "BuzzerOff":
beep_off()
else:
value = 0
try:
value = int(data)
if(value >= 0 and value <= 100):
print(value)
Ab.setPWMA(value);
Ab.setPWMB(value);
except:
print("Command error")
print data
#print "recv from ", self.client_address[0]
self.request.send(data)
def timerfunc():
global HPulse,VPulse,HStep,VStep,pwm
if(HStep != 0):
HPulse += HStep
if(HPulse >= 2500):
HPulse = 2500
if(HPulse <= 500):
HPulse = 500
#set channel 2, the Horizontal servo
pwm.setServoPulse(0,HPulse)
if(VStep != 0):
VPulse += VStep
if(VPulse >= 2500):
VPulse = 2500
if(VPulse <= 500):
VPulse = 500
#set channel 3, the vertical servo
pwm.setServoPulse(1,VPulse)
global t #Notice: use global variable!
t = threading.Timer(0.02, timerfunc)
t.start()
t = threading.Timer(0.02, timerfunc)
t.setDaemon(True)
t.start()
print 'server is running....'
server = SocketServer.ThreadingTCPServer(addr,Servers)
server.serve_forever()
树莓派python编程小车_树莓派智能车AlphaBot教程11:Python 网络编程相关推荐
- 树莓派python编程小车_树莓派小车教程(三)——软件代码
原标题:树莓派小车教程(三)--软件代码 树莓派小车教程(三)--软件代码 2017-07-07 琳小豆 HelloWorld少儿编程 树莓派小车教程 (三) 在上一次教程中,我们已经完成了硬件连接. ...
- 树莓派视觉跟踪小车_树莓派智能小车结合摄像头opencv进行物体追踪
在开发树莓派智能小车的路上已经走了一年多时间了,起初做了以下简单的远程控制和避障功能,后来慢慢加入黑线循迹以及语音识别,物体识别的功能.前段时间在刷新闻头条的时候,偶然看到一外国大牛做的树莓派目标追踪 ...
- android控制树莓派蓝牙,树莓派智能车AlphaBot教程12:蓝牙控制
一.安装蓝牙依赖库 升级安装蓝牙相关软件包 cpp代码:sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y ...
- 智能循迹小车_校园智能车障碍断路方案浅谈
点击上方蓝字 关注小黑记事本 小黑提要: 华软嵌协举办的第十届校园智能车比赛即将开赛,组委会今年在赛道元素上进行了一次大创新,加入了没有出现过的障碍与断路新元素,对于参赛的选手是一个不小的挑战,而选手 ...
- 树莓派python编程优点_树莓派为什么会使用python编程?为什么有时python运行效率不高?...
在许多编程语言中,Python的语法也有很大不同.Python使用空格或缩进来分隔不同的代码块.C语言和其他语言使用花括号来区分不同的代码块,例如if语句,Python使用冒号和缩进来定义代码块.这也 ...
- python树莓派经典书籍推荐_树莓派教程书籍推荐:带你玩转Raspberry Pi
随着<星球大战><复仇者联盟><NASA>等科幻电影的热映,人工制作装置也更加受到人们关注,与这些电影有关的一切设备都显得非常有科技感,格调很高.本期树莓派教程书籍 ...
- python物联网驱动_树莓派驱动的物联网滴灌系统
MAKER:Technovation/译:趣无尽 Cherry(转载请注明出处) 本次介绍的是一个由树莓派驱动的物联网滴灌系统,比往期<用树莓派制作一款自动浇灌系统>的功能更加完备. 利用 ...
- 树莓派python gpio图形_树莓派GPIO功能学习
前言 树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派的学习可以分为linux系统学习和linux驱动学习,利用树莓派制作LED流水灯应该算是驱动学习吧.树莓派来自国外,国外嵌入式开源领域具备良 ...
- python舵机控制程序_树莓派PWM控制舵机的两种方式
PWM控制舵机简介 通常情况下,伺服电机(舵机)是由一个标准的直流系统和一个内部反馈控制装置(一个减速齿轮和电位计)来组成的.伺服电机(舵机)的主要作用是将齿轮轴旋转到一个预定义的方向上.伺服电机(舵 ...
- python树莓派串口通信实例_树莓派通过串口发送数据
可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...
最新文章
- Wannafly挑战赛22
- Flask学习 视频网站搭建(Python-flask视频网站搭建)
- md发布test-1 md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-
- LeetCode动态规划 跳跃游戏II
- Python实现计算机屏幕任意区域截图
- 初入前端框架bootstrap--Web前端
- 嵌入式linux加载引导内核和根文件系统的方法
- Android学习笔记之Bitmap位图的缩放
- HTTP协议学习总结三(常见http响应头)
- 计算机主机hdmi接口是什么意思,hdmi接口有什么用,教您电脑hdmi接口有什么用
- JS中判断某个字符串/数组中是否包含某个值
- CATIA二次开发过程中几个问题
- matlab使用pcode加密
- ntp linux 是什么意思,【NTP】Linux NTP
- python面向对象试题_python面向对象程序设计-中国大学mooc-试题题目及答案
- pyrosetta下载及安装(linux服务器)
- 入门 | 一文简述深度学习优化方法——梯度下降
- 轻微课学画画好不好:我的体验反馈
- 程序员 的 编程格言 (中英)
- 数字IC设计 - 数字IC实现途径