连接蓝牙键盘,实现像遥控小车一样的效果

环境:安装pynput库

使用方法:运行程序,按键WASD,实现前进左右后退

# coding:utf-8
import RPi.GPIO as gpio
import time, sys
from pynput import keyboard# 定义引脚
in1 = 12
in2 = 16
in3 = 18
in4 = 22# 设置GPIO口为BOARD编号规范
gpio.setmode(gpio.BOARD)# 设置GPIO口为输出
gpio.setup(in1, gpio.OUT)
gpio.setup(in2, gpio.OUT)
gpio.setup(in3, gpio.OUT)
gpio.setup(in4, gpio.OUT)# 设置PWM波,频率为500Hz
pwm1 = gpio.PWM(in1, 500)
pwm2 = gpio.PWM(in2, 500)
pwm3 = gpio.PWM(in3, 500)
pwm4 = gpio.PWM(in4, 500)
pwm1.start(0)
pwm2.start(0)
pwm3.start(0)
pwm4.start(0)# 定义向前
def go():pwm1.ChangeDutyCycle(50)pwm2.ChangeDutyCycle(0)pwm3.ChangeDutyCycle(50)pwm4.ChangeDutyCycle(0)# gpio.output(in1, gpio.HIGH)# gpio.output(in2, gpio.LOW)# gpio.output(in3, gpio.HIGH)# gpio.output(in4, gpio.LOW)# 定义向右
def right():pwm1.ChangeDutyCycle(50)pwm2.ChangeDutyCycle(0)pwm3.ChangeDutyCycle(30)pwm4.ChangeDutyCycle(0)# gpio.output(in1, gpio.HIGH)# gpio.output(in2, gpio.LOW)# gpio.output(in3, gpio.LOW)# gpio.output(in4, gpio.HIGH)# 定义向左
def left():pwm1.ChangeDutyCycle(30)pwm2.ChangeDutyCycle(0)pwm3.ChangeDutyCycle(50)pwm4.ChangeDutyCycle(0)# gpio.output(in1, gpio.LOW)# gpio.output(in2, gpio.HIGH)# gpio.output(in3, gpio.HIGH)# gpio.output(in4, gpio.LOW)# 定义向后
def back():pwm1.ChangeDutyCycle(0)pwm2.ChangeDutyCycle(50)pwm3.ChangeDutyCycle(0)pwm4.ChangeDutyCycle(50)# gpio.output(in1, gpio.LOW)# gpio.output(in2, gpio.HIGH)# gpio.output(in3, gpio.LOW)# gpio.output(in4, gpio.HIGH)# 定义停止
def stop():pwm1.ChangeDutyCycle(0)pwm2.ChangeDutyCycle(0)pwm3.ChangeDutyCycle(0)pwm4.ChangeDutyCycle(0)# gpio.output(in1, gpio.LOW)# gpio.output(in2, gpio.LOW)# gpio.output(in3, gpio.LOW)# gpio.output(in4, gpio.LOW)def on_press(key):try:if key.char == 'w':go()if key.char == 'a':left()if key.char == 's':back()if key.char == 'd':right()except AttributeError:print('special key {0} pressed'.format(key))def on_release(key):stop()if key == keyboard.Key.esc:return False# 键盘监听
while True:with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:listener.join()pwm1.stop()
pwm2.stop()
pwm3.stop()
pwm4.stop()
gpio.cleanup()

【代码】树莓派小车蓝牙键盘遥控方向行驶相关推荐

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

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

  2. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外遥控实验

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...

  3. 安卓端APP遥控树莓派小车

    一.基本原理 在android端写一个小小的控制器来通过局域网来控制树莓派小车的行驶,基本思路是在树莓派上写一个socket服务器,android端写一个socket客户机,两边约定好命令的指令(例如 ...

  4. 用玩游戏的方式操控树莓派小车之[代码部分].2

    目录: 目录 目录: 前言: 心路历程: 编程部分: 第一部分: 第二部分: 前言: 书接上回啊,上回不是说到,我想通过用操作游戏的方式来操作这个小车.那么这个编程部分呢,就分为两部分,第1部分就是怎 ...

  5. 树莓派小车的4G遥控与视频回传(内网穿透)

    目录 1.项目简介 2.工具 3.步骤 1.手机端 (1)设置ip和端口 (2)遥控界面 2.树莓派 (1)给树莓派配置公网环境 (2)树莓派进行内网穿透 (3)树莓派UDP监听 (4)树莓派视频回传 ...

  6. 树莓派小车python代码_【树莓派】树莓派小车(二)树莓派、小车和红外线模块连接...

    上一篇文章介绍了小车底盘以及驱动板的安装,这一次来讲一讲树莓派与驱动板以及红外线模块的安装. 树莓派的GPIO引脚定义: 树莓派的GPIO引脚共分为两种类型,一种是PHYSICAL NUMBERING ...

  7. 树莓派小车识别场地内特定颜色的直线并据此修正方向的方法

    树莓派小车识别场地内特定颜色的直线并据此修正方向的方法 树莓派颜色识别原理 检测水平线偏差问题说明 检测水平线偏差原理 关于确定映射函数f()的补充说明: 树莓派颜色识别原理 请参看我的这篇文章树莓派 ...

  8. 【opencv-ANNs】简单自动驾驶树莓派小车

    关键词:#树莓派小车 #opencv #神经网络 #自动驾驶 #python3 概要:设计一个可以自动驾驶的小车,能实时分析摄像头采集到的数据,完成左右转向的判断和执行,使其可以保持在车道上. 原理简 ...

  9. 树莓派小车教程(二)之——基于Tornado框架的网页控制小车(按键+鼠标点击)

    项目场景: 前两天笔者写了一份手把手树莓派小车教程(一)之--小车跑起来的教程.当时只是让小车能动起来,不过项目中的小车肯定是需要一个用户界面能够操控的. 能看到这一部分的读者们可能基本都会简单的控制 ...

最新文章

  1. 20172318 2017-2018-2 《程序设计与数据结构》实验3报告
  2. 学网络好帮手:路由器模拟软件RouteSim3.31
  3. 【Python】青少年蓝桥杯_每日一题_11.11_统计英文字母、空格、数字、其他字符的个数
  4. python全局名称空间_python之名称空间知识点整理
  5. 图论中的基础概念总结
  6. OpenSUSE下支持托盘的邮件客户端Sylpheed
  7. C#LeetCode刷题之#7-反转整数(Reverse Integer)
  8. java三次登录锁定_Java基础知识点有哪些 如何快速步入Java行业
  9. 对Spring Boot还陌生吗?
  10. 5.VMware View 5.0安装与部署-安装view agent与模版
  11. Eclipse 下载安装
  12. RBF神经网络和拟合实例
  13. 时间序列之平稳时间序列预测、趋势型序列预测、复合型序列预测
  14. selenium模拟登录163邮箱
  15. 支付系统---银行卡收单业务
  16. Wechall Challenges Writeup 知识拓展
  17. Java编程英语单词大全_java编程常用英语单词
  18. Python--基础语法知识
  19. linux运行pppd,linux pppd 连接成功 还是 没有网
  20. 招商银行信用卡中心18秋招题解

热门文章

  1. 微信小程序(30):自定义组件-slot
  2. 《诗经》诗无邪 —— 风篇
  3. MBA案例分析(行销与营销之营销一)
  4. 频率响应分析--伯德图(matlab中bode函数的使用)
  5. 联想g490安装linux网卡,联想g490配置和参数详解
  6. 计算机软件著作权怎么申请登记
  7. 如何设置窗口函数中窗口的大小
  8. 阿里数据中台七年演化史——行在口述干货
  9. 关于0.2%费率的微信支付,你需要了解一下。
  10. 太及时了!13个Spring Boot练手项目,用好了,升职涨薪不用愁