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 网络编程相关推荐

  1. 树莓派python编程小车_树莓派小车教程(三)——软件代码

    原标题:树莓派小车教程(三)--软件代码 树莓派小车教程(三)--软件代码 2017-07-07 琳小豆 HelloWorld少儿编程 树莓派小车教程 (三) 在上一次教程中,我们已经完成了硬件连接. ...

  2. 树莓派视觉跟踪小车_树莓派智能小车结合摄像头opencv进行物体追踪

    在开发树莓派智能小车的路上已经走了一年多时间了,起初做了以下简单的远程控制和避障功能,后来慢慢加入黑线循迹以及语音识别,物体识别的功能.前段时间在刷新闻头条的时候,偶然看到一外国大牛做的树莓派目标追踪 ...

  3. android控制树莓派蓝牙,树莓派智能车AlphaBot教程12:蓝牙控制

    一.安装蓝牙依赖库 升级安装蓝牙相关软件包 cpp代码:sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y ...

  4. 智能循迹小车_校园智能车障碍断路方案浅谈

    点击上方蓝字 关注小黑记事本 小黑提要: 华软嵌协举办的第十届校园智能车比赛即将开赛,组委会今年在赛道元素上进行了一次大创新,加入了没有出现过的障碍与断路新元素,对于参赛的选手是一个不小的挑战,而选手 ...

  5. 树莓派python编程优点_树莓派为什么会使用python编程?为什么有时python运行效率不高?...

    在许多编程语言中,Python的语法也有很大不同.Python使用空格或缩进来分隔不同的代码块.C语言和其他语言使用花括号来区分不同的代码块,例如if语句,Python使用冒号和缩进来定义代码块.这也 ...

  6. python树莓派经典书籍推荐_树莓派教程书籍推荐:带你玩转Raspberry Pi

    随着<星球大战><复仇者联盟><NASA>等科幻电影的热映,人工制作装置也更加受到人们关注,与这些电影有关的一切设备都显得非常有科技感,格调很高.本期树莓派教程书籍 ...

  7. python物联网驱动_树莓派驱动的物联网滴灌系统

    MAKER:Technovation/译:趣无尽 Cherry(转载请注明出处) 本次介绍的是一个由树莓派驱动的物联网滴灌系统,比往期<用树莓派制作一款自动浇灌系统>的功能更加完备. 利用 ...

  8. 树莓派python gpio图形_树莓派GPIO功能学习

    前言 树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派的学习可以分为linux系统学习和linux驱动学习,利用树莓派制作LED流水灯应该算是驱动学习吧.树莓派来自国外,国外嵌入式开源领域具备良 ...

  9. python舵机控制程序_树莓派PWM控制舵机的两种方式

    PWM控制舵机简介 通常情况下,伺服电机(舵机)是由一个标准的直流系统和一个内部反馈控制装置(一个减速齿轮和电位计)来组成的.伺服电机(舵机)的主要作用是将齿轮轴旋转到一个预定义的方向上.伺服电机(舵 ...

  10. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

最新文章

  1. Wannafly挑战赛22
  2. Flask学习 视频网站搭建(Python-flask视频网站搭建)
  3. md发布test-1 md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-
  4. LeetCode动态规划 跳跃游戏II
  5. Python实现计算机屏幕任意区域截图
  6. 初入前端框架bootstrap--Web前端
  7. 嵌入式linux加载引导内核和根文件系统的方法
  8. Android学习笔记之Bitmap位图的缩放
  9. HTTP协议学习总结三(常见http响应头)
  10. 计算机主机hdmi接口是什么意思,hdmi接口有什么用,教您电脑hdmi接口有什么用
  11. JS中判断某个字符串/数组中是否包含某个值
  12. CATIA二次开发过程中几个问题
  13. matlab使用pcode加密
  14. ntp linux 是什么意思,【NTP】Linux NTP
  15. python面向对象试题_python面向对象程序设计-中国大学mooc-试题题目及答案
  16. pyrosetta下载及安装(linux服务器)
  17. 入门 | 一文简述深度学习优化方法——梯度下降
  18. 轻微课学画画好不好:我的体验反馈
  19. 程序员 的 编程格言 (中英)
  20. 数字IC设计 - 数字IC实现途径

热门文章

  1. Android知识点复习1(Activity与Fragment)
  2. sqlserver两种分页方法比较
  3. Linux学习笔记9_终端提示符编辑方法(修改颜色,路径,时间)
  4. Windows Server 2012 R2 服务器管理器介绍和配置使用
  5. 【转】Java集合间的相互转换
  6. 一封来自老男孩的学生的辞职信!
  7. verilog语法学习心得
  8. 关于djangorestframework
  9. ubuntu shell 直接输入密码
  10. stata中计算公式命令_Stata:runby - 一切皆可分组计算!