python小车行走_[PYTHON系列教程]→控制小车
上一节我们已经搭好了开发环境,接下来就可以写Python程序来控制小车了。首先用EV3主机、大型伺服马达和超声波传感器搭建一个小车:可以自由发挥,我的小车完成后长这样:下一步,我们用程序控制小车。首
上一节我们已经搭好了开发环境,接下来就可以写Python程序来控制小车了。首先用EV3主机、大型伺服马达和超声波传感器搭建一个小车:
可以自由发挥,我的小车完成后长这样:
下一步,我们用程序控制小车。首先根据马达和传感器接入的位置初始化如下:
motor = Motor(Port.B) # 接在B口
ultrasonic = UltrasonicSensor(Port.S4) # 接在4号口
然后,设置初始速度0表示静止:
speed = 0
通过传入1、-1和0分别表示加速、减速和停止:
def setSpeed(acc):
global speed
if acc < 0:
speed = max(0, speed - 1)
elif acc > 0:
speed = min(3, speed + 1)
else:
speed = 0
if speed > 0:
motor.run(speed * 90) # 设置每秒转N个90度
else:
motor.stop()
因为小车的初始速度为0,我们可以设定响应右键加速,左键减速,中键停止,上键停止并退出,用一个无限循环实现功能如下:
while True:
if not any(brick.buttons()): # 没有按任何按键
wait(10)
else:
if Button.LEFT in brick.buttons():
setSpeed(-1)
elif Button.RIGHT in brick.buttons():
setSpeed(1)
elif Button.CENTER in brick.buttons():
setSpeed(0)
elif Button.UP in brick.buttons():
setSpeed(0)
break
wait(500)
if ultrasonic.distance() < 200: # 检测到障碍物不足200毫米时
setSpeed(0)
因为EV3的控制API并没有提供回调,所以只能通过无限循环主动轮询。使用无限循环时需要注意,务必在每次循环内部通过wait()暂停若干毫秒,否则很容易耗尽CPU。最后,我们通过超声波传感器返回的距离判断是否自动停车。
加上声光特效后,来看看实际效果:
EV3的Python接口全部在pybricks包中,要查看完整的API,请在VS Code新建EV3工程时选择“Open user guide and examples”,即可在本地浏览器打开API文档。
参考源码
python小车行走_[PYTHON系列教程]→控制小车相关推荐
- ESP8266从点灯到遥控小车(三)——组装小车,0代码开发APP控制小车
ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 文章目录 ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 所需组件 一.小车所需组件 ...
- python自动化测试视频教程_精品系列-悠悠Python自动化测试学习视频,资源教程下载...
课程名称 精品系列-悠悠Python自动化测试学习视频,资源教程下载 课程目录 第1课-http协议上 .mp4 第1课-http协议下.mp4 第2课-fiddler抓包与测试上.mp4 第2课-f ...
- python图形编程基础-Python从基础到入门系列教程
本教程集合了Python基础&系统管理,从基础到入门,带你走进Python世界!对Python有兴趣的可以学习一下哦基础系列:1.课程简介2.Python下载和安装3.IDLE使用简介4.第1 ...
- python基础教程菜鸟教程-Python从基础到入门系列教程
本教程集合了Python基础&系统管理,从基础到入门,带你走进Python世界!对Python有兴趣的可以学习一下哦基础系列:1.课程简介2.Python下载和安装3.IDLE使用简介4.第1 ...
- python技术晨讲_python系列教程14
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好的理解人工智能技术,我让助理负责分享这套python系列教程,希望能帮到大家! 好了,是开始 ...
- python 中指针_【系列】Python源码剖析(base 2.7.18)Note之初见“对象”
P姓"对象"到底长什么样?且听我来扒一下~ 1.1.1对象机制基石--PyObject Python中一切皆对象,即面向对象理论中的"类"和"对象&q ...
- python keyboard模块_[python] PyMouse、PyKeyboard用python操作鼠标和键盘
1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quartz, ...
- python 病毒 基因_#Python#提取基因对应的蛋白质名
提取基因对应的蛋白质官方名 最开始,是需要将基因跟其编码的蛋白质对应起来,找遍了各种数据库都没发现有相关的注释文件,Uniprot作为处理蛋白质的大佬,结果里都有,肯定有办法能够满足需求. 搜索TP5 ...
- pwm调速流程图小车_51单片机智能小车《pwm调速按键控制小车动作》
//P1.0-P1.7分别对应小车1N1-1N8. #include //头文件 #define uint unsigned int //宏定义 #define uchar un ...
最新文章
- 青岛大学计算机学院生物信息研究组(苏晓泉团队)招生与招聘启事
- mnn linux编译
- 有关 Session 操作的几个误区
- [UWP]了解IValueConverter
- 定义交货输出条件类型(Output Types)
- linux 下载rpm包到本地,createrepo:创建本地YUM源
- 大话设计模式—策略模式
- 我如何不再是一个可怕的“10 倍经理”?
- java语言的运行平台,威力加强版
- Tomcat之Directory Listing
- 基于OpenStack的云测试平台
- 《论工业社会及其未来》—泰德.卡辛斯基
- 关于路由器的配置参数
- zsh: command not find解决办法
- 《操作系统》2022年期末A卷
- python json文件操作_JSON文件及Python对JSON文件的读写操作
- 汽车大数据洞察:慧数汽车发布《车评白皮书2019》
- python集成开发环境中可使用什么快捷键运行程序_在Python集成开发环境中,可使用()快捷键运行程序。...
- 上海国家会计学院(SNAI)亚利桑那州立大学(ASU)合作办学EMBA项目打造兼具金融财务和服务管理专长的领袖人才!
- 经济学计算机会成本和贸易区直的题,《国际经济学》计算题及答案