上一节我们已经搭好了开发环境,接下来就可以写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系列教程]→控制小车相关推荐

  1. ESP8266从点灯到遥控小车(三)——组装小车,0代码开发APP控制小车

    ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 文章目录 ESP8266从点灯到APP遥控小车(三)--组装小车,0代码开发APP控制小车 所需组件 一.小车所需组件 ...

  2. python自动化测试视频教程_精品系列-悠悠Python自动化测试学习视频,资源教程下载...

    课程名称 精品系列-悠悠Python自动化测试学习视频,资源教程下载 课程目录 第1课-http协议上 .mp4 第1课-http协议下.mp4 第2课-fiddler抓包与测试上.mp4 第2课-f ...

  3. python图形编程基础-Python从基础到入门系列教程

    本教程集合了Python基础&系统管理,从基础到入门,带你走进Python世界!对Python有兴趣的可以学习一下哦基础系列:1.课程简介2.Python下载和安装3.IDLE使用简介4.第1 ...

  4. python基础教程菜鸟教程-Python从基础到入门系列教程

    本教程集合了Python基础&系统管理,从基础到入门,带你走进Python世界!对Python有兴趣的可以学习一下哦基础系列:1.课程简介2.Python下载和安装3.IDLE使用简介4.第1 ...

  5. python技术晨讲_python系列教程14

    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好的理解人工智能技术,我让助理负责分享这套python系列教程,希望能帮到大家! 好了,是开始 ...

  6. python 中指针_【系列】Python源码剖析(base 2.7.18)Note之初见“对象”

    P姓"对象"到底长什么样?且听我来扒一下~ 1.1.1对象机制基石--PyObject Python中一切皆对象,即面向对象理论中的"类"和"对象&q ...

  7. python keyboard模块_[python] PyMouse、PyKeyboard用python操作鼠标和键盘

    1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quartz, ...

  8. python 病毒 基因_#Python#提取基因对应的蛋白质名

    提取基因对应的蛋白质官方名 最开始,是需要将基因跟其编码的蛋白质对应起来,找遍了各种数据库都没发现有相关的注释文件,Uniprot作为处理蛋白质的大佬,结果里都有,肯定有办法能够满足需求. 搜索TP5 ...

  9. pwm调速流程图小车_51单片机智能小车《pwm调速按键控制小车动作》

    //P1.0-P1.7分别对应小车1N1-1N8. #include           //头文件 #define uint unsigned int  //宏定义 #define uchar un ...

最新文章

  1. 青岛大学计算机学院生物信息研究组(苏晓泉团队)招生与招聘启事
  2. mnn linux编译
  3. 有关 Session 操作的几个误区
  4. [UWP]了解IValueConverter
  5. 定义交货输出条件类型(Output Types)
  6. linux 下载rpm包到本地,createrepo:创建本地YUM源
  7. 大话设计模式—策略模式
  8. 我如何不再是一个可怕的“10 倍经理”?
  9. java语言的运行平台,威力加强版
  10. Tomcat之Directory Listing
  11. 基于OpenStack的云测试平台
  12. 《论工业社会及其未来》—泰德.卡辛斯基
  13. 关于路由器的配置参数
  14. zsh: command not find解决办法
  15. 《操作系统》2022年期末A卷
  16. python json文件操作_JSON文件及Python对JSON文件的读写操作
  17. 汽车大数据洞察:慧数汽车发布《车评白皮书2019》
  18. python集成开发环境中可使用什么快捷键运行程序_在Python集成开发环境中,可使用()快捷键运行程序。...
  19. 上海国家会计学院(SNAI)亚利桑那州立大学(ASU)合作办学EMBA项目打造兼具金融财务和服务管理专长的领袖人才!
  20. 经济学计算机会成本和贸易区直的题,《国际经济学》计算题及答案

热门文章

  1. 视频号运营玩法;以及视频号引流变现赚钱。丨国仁网络资讯
  2. 微信公众号开发 - 事件处理和回复消息
  3. 收集的几个国外好用的免费PS素材网站,国内可访问而且免费
  4. spring史上最全笔记
  5. lnmp 一键安装包 安装tp5.1 404,500等相关问题
  6. 反编译微信小程序(图文详细傻瓜式)
  7. 基于SpringBoot + Vue的个人博客系统16——文章的修改和删除
  8. 3小时做完3天工作,她是用了什么办法做到的?
  9. WebSphere管理控制台端口号如何查看
  10. 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)G - 幼儿园战争...