上一节我们已经搭好了开发环境,接下来就可以写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文档。

参考源码

python3编程小车_控制小车相关推荐

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

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

  2. python3编程实战_生信编程实战第3题(python)

    image.png wget ftp://ftp.ensembl.org/pub/release-87/gtf/homo_sapiens/Homo_sapiens.GRCh38.87.chr.gtf. ...

  3. arduino 无人驾驶小车_无人驾驶小车的实现也没那么复杂

    无人驾驶小车的实现也没那么复杂​mp.weixin.qq.com 2020-01-02 19:10 本文作者:吴东昱,北京钢铁侠科技深度学习算法工程师,主要研究深度学习.无人驾驶等. 我在观察历届智能 ...

  4. python3编程入门_在类Unix系统上开始Python3编程入门

    >>> s 'Hello' >>> x = len(s) >>> print("The length of %s is %d" ...

  5. STM32循迹小车/Android蓝牙控制小车(三)

    STM32循迹小车/Android蓝牙控制小车(三) 循迹蓝牙小车的第三篇终于来了,这篇开篇先来介绍一下整个开发过程中得构思思路.本来这应该放在第一篇,但是实际思路会因为开发过程中遇到的问题而改变,到 ...

  6. python机器人编程——差速机器人小车的控制,控制模型、轨迹跟踪,轨迹规划、自动泊车(上)

    目录 一.前言 二.差速小车机器人的运动分析 三.正向运动控制模型推导 3.1问题描述 3.2符号定义 3.3算式推导 Step1 寻找数量关系,求出圆周半径,角度变化 Step2 获取相对坐标 St ...

  7. 2019年大学生智能车大赛室外光电组+在ROS下搭建仿真模拟环境,编程控制小车完成定位导航仿真

    2019年大学生智能车大赛室外光电组+在ROS下搭建仿真模拟环境,编程控制小车完成定位导航仿真 一.前言 二.准备工作 1.创建工作空间 2.下载racecar源代码包,并编译工程 三.启动仿真 1. ...

  8. 无线控制模块c语言编程,基于STM32F103ZET6无线语音控制小车设计与实现.doc

    基于STM32F103ZET6无线语音控制小车设计与实现 基于STM32F103ZET6无线语音控制小车设计与实现 摘要:本文以STM32F103ZET6单片机作为控制核心,通过LD3320语音识别模 ...

  9. 基于stm32的蓝牙遥控智能小车_基于51用蓝牙控制小车(提高篇)

    一,焊接51最小系统 一辆小车的基本功能就是让它能动起来,能通过手机蓝牙进行遥控,所以就需要用到L298N电机驱动模块,和HC-06蓝牙模块.下面就简单介绍一下这两个模块. 三,制作电机驱动模块 电机 ...

最新文章

  1. 类继承、组合和抽象类
  2. java 观察者模式示例_Java中的观察者设计模式-示例教程
  3. asp: menu 父级选中
  4. list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...
  5. c++ 遍历所有点且距离最短_图解:最短路径之迪杰斯特拉算法
  6. matlab电力系统潮流计算软件matpower_衡真课堂 | 电力系统稳态与暂态分析
  7. 使用C#列出所有中文汉字
  8. JAVA项目开发之文档篇
  9. c8500刷机 转帖
  10. React-Pdf使用过程心得
  11. web开发第三方登陆之facebook登陆
  12. 二叉树给我的人生感悟
  13. 笔记本创建wifi热点
  14. 怎么上传云班课的计算机作业,太棒了!云班课助你轻松玩转这9种作业!
  15. 【尚硅谷】Vue.js从入门到精通笔记
  16. JS中设计模式的深入理解
  17. 使用高德地图的逆向地址,获取坐标点
  18. vue中css写法_vue css 写法大全
  19. 马上2021年了线性表你还不知道原理?给老王整的明明白白
  20. SCI论文投稿会经历哪些状态?

热门文章

  1. JavaWeb之AjaxJSON
  2. spring cache相关注解介绍 @Cacheable、@CachePut、@CacheEvict
  3. 华为认证数通考试要改版了?什么情况?还好考了吗
  4. 求一个n*n矩阵对角线元素之和C语言,求一个n*n矩阵主对角线之和,次对角线元素之和.用指针完成...
  5. WLAN--什么是信道(Channel)
  6. Vistual Studio Code中Markdown使用数学公式
  7. RGB 和 CMYK 相互转换
  8. quartus 13.0 之四位全加器(不需要用modelism的歪门邪道)
  9. 2020年有寓意的领证日期_2020领证吉日
  10. 安装wordcloud库的方法