Skip to content
LegoFind

LegoFind

乐高机械组(Technic)、机器人资源分享。

  • Powered Up 教程
  • BOOST 教程
  • 乐高相关网站
  • 机械组套装
  • 教育及机器人套装
  • 机械组资源
  • 留言板
  • Toggle search form

乐高 Powered Up 编程进阶教程(一):车辆基本控制、转向精度处理、方向初始化找中。

Posted on 2021年7月3日2022年2月3日 By 黑猫 乐高 Powered Up 编程进阶教程(一):车辆基本控制、转向精度处理、方向初始化找中。有2条评论

乐高机械组(Technic)中最常见的就是各种各样的车辆了,无论是官方套装还是各种MOC,都少不了各种车辆的身影。因此,车辆的前进、后退、转向等基本控制功能,是Powered up编程应用中最常见的功能模块。下面就车辆基本控制工程在Powered Up编程中的实现方式,做一个简单介绍。

一、前进、后退控制

车辆的前进、后退控制在Powered Up中的编程实现方式比较简单,最常见的方式就是利用对电机的转速和转动方向的控制来实现的,下面是编程实例(本例中控制前进后退的电机连接在端口B)。

1、在控制界面放置一个滑动控制器和一个指针仪表盘,如下图。滑动控制器用来控制电机,指针仪表盘用来显示电机转速。

图1

2、利用滑动控制器(本例中编号为0)对电机转速和转动方向进行控制的编程实现如下。在这里要注意使用无限循环模块,来不断地查询滑动控制器当前的设定值。如果没有无限循环模块,则程序只能执行1次,无法做到对电机进行实时控制。

图2

3、利用指针仪表盘(本例中编号为1)对电机转速进行显示的编程实现如下。同样要注意使用无限循环模块,以不断地实时查询当前电机转速并更新显示。

图3

二、转向控制

转向控制与前进后退控制的原理相似,是通过控制电机的转动方向和转动角度来实现的。但是转向控制编程除了实现基本的转向控制功能外,还需要考虑转向范围、转向速度控制、方向自动回正、方向初始化校正、电机控制精度等问题,因此编程实现过程比前进、后退控制复杂一些。

本教程中我们就实现基本转向功能的几个程序进行说明,包括基本转向控制、电机控制精度问题、方向初始化校正等(转向范围、转向速度控制等会在后边的教程中分享),下面是编程实例(本例中控制方向的电机连接在端口D)。

1、在控制界面增加一个横向用于控制方向的滑动控制器。

图4

2、可以利用与前进后退控制相类似的方式,通过一个电机角度控制模块(如下图,模块说明点此查看)来实现基本转向控制。

图5

但这样存在几个小问题,其中的一个问题(其他问题会在后面的教程中分享)就是电机的控制精度问题。由于电机控制精度存在一定的误差,电机的实际到达位置很难精确的与设定值完全相等,一般是存在2度左右的误差,导致电机会不停的在目标位置周围微调。为了克服上面的问题,需要在程序中设置一个偏差允许量(本例中设置为3度,可根据情况调整),即电机实际位置与目标设定位置的角度偏差小于等于该偏差允许量时,则认为已到达目标位置,电机不再动作。编程实现如下。

图6

(1)编号为5的触发执行模块,是为了等待初始化自动找中程序(见后面的程序)执行结束后,再执行此程序,避免程序间冲突。

(2)将电机的响应速度设置为0.1,以便提高电机响应速度,这有利于让车辆更容易控制,减少转向延时。

(3)中间的计算模块,是判断电机实际位置与控制器指令位置的偏差,并取绝对值,当该值大于3时,才继续对电机位置进行调整。

3、完成上面的程序后,转向控制的功能就算实现了。但由于电机默认开机后的位置为0度位置,如果在开机时车辆方向没有在正中,会导致一直跑偏。因此如果不想每次开机前都手动调正方向,需要增加一个方向自动回正程序,具体如下(本例中控制方向的电机连接在端口D)。

图7

程序的实现原理是在开机后分别强制电机向两个方向各转动一定角度(本例中为200度,可根据测量实际情况修改),通过计算两个方向电机的实际转动角度,来计算当前电机的位置,从而执行回正执行。上述程序具体过程如下:

(1)强制电机转动200度,而后将电机的实际转动位置记录在变量a里。

(2)强制电机转动-200度,而后将电机的实际转动位置记录在变量b里。

(3)计算b+(a-b)÷2的值,将结果记录在变量c,该结果即为电机需要回正的调整角度。

(4)调慢电机的响应速度(本例中设置为2)并执行回正操作。

(5)恢复电机的响应速度(0.1),并将电机当前位置设置为0度位置。

机械组资源

文章导航

Previous Post: LEGO Powered Up APP无法控制42114套装中位置电机(Large Angular Position Motor)的问题
Next Post: 如何在Studio中导入缺少的乐高零件

Comments (2) on “乐高 Powered Up 编程进阶教程(一):车辆基本控制、转向精度处理、方向初始化找中。”

  1. 观察者说道:
    2022年1月27日 23:59

    您好 首先感谢你的分享,有一个问题想问一下,按照图上模块搭建发现转向回正有很大的延迟,请问调整哪个模块能让转向快速回正。谢谢

    回复
    1. 黑猫说道:
      2022年2月3日 21:46

      感谢你的留言,新年快乐!抱歉春节事多没能及时回复,关于你的问题,我回看了下文章,发现文章中有两个问题(再次抱歉文章写的比较仓促):
      1、图6偏差允许量设定程序中,左侧的滑动控制器编号应为2。
      2、图6下面第二段我提到了将电机的响应速度设置为0.1,但在图6中并没有体现这一部分程序。
      建议检查一下这两个问题,如果只是转向延迟大的话我初步判可能是电机响应速度的问题,具体方法我会节后第一时间在文章里补充一下,如果着急可以看一下:https://www.legofind.com/archives/537,里面有关于电机响应速度设置的模块说明。

      回复

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

常用网址

Rebrickable
MOC分享网站。
LEGO官网图纸下载
官方图纸下载地址。
BrickLink
零件、人仔、套装买卖。
BrickSet
LEGO数据库网站。
Brothers-Brick
LEGO资讯第一门户。
EuroBricks
全球第一LEGO论坛。
LDraw零件
LDraw零件模型下载。
BrickOwl
零件、人仔、套装买卖。
BrickEconomy
LEGO价格及趋势分析。
Studio
LEGO虚拟拼搭软件。
BrickInsights
LEGO套装评分网站。
MecaBricks
3D在线LEGO拼搭工具。
LEGO官网设备指南
LEGO官方APP汇总。
LDD
LEGO虚拟拼搭软件。
BrickFanatics
LEGO资讯网站。
pyBricks
LEGO Python编程。
  • 乐高图纸 (76)
  • 套装评测 (13)
  • 机器人资源 (33)
  • 机器人资讯 (2)
  • 机械组资源 (28)
  • 机械组资讯 (28)
  1. 黑猫发表在乐高机械组官方套装Studio模型(IO文件)资源分享2023年4月12日

    没太明白,上面的资源都是可以直接下载的没…

  2. 黑猫发表在乐高 Powered Up 编程入门教程(二):传感器模块2023年4月12日

    很高兴能帮助到你,希望后续多多交流

  3. fwfdjq23发表在乐高机械组官方套装Studio模型(IO文件)资源分享2023年3月5日

    压缩包管理密码能发我吗 ,fwfdjq2…

  4. 匿名发表在乐高 Powered Up 编程入门教程(二):传感器模块2023年3月5日

    刚发现这个宝藏网站,解决了我很多问题。那…

  5. 黑猫发表在乐高机械组官方套装Studio模型(IO文件)资源分享2023年2月28日

    这种不规则零件零件库里有时候没有,不太好…

Powered Up模块说明

Powered Up 教程一
流程模块
Powered Up 教程二
传感器模块
Powered Up 教程三
电机模块
Powered Up 教程四
自定义控制模块
Powered Up 教程五
声光模块
Powered Up 教程六
数据操作模块

LEGO Boost 模块说明

LEGO Boost教程一
流程模块
LEGO Boost教程二
传感器模块
LEGO Boost教程三
遥控模块模块
LEGO Boost教程四
电机模块
LEGO Boost教程五
声光模块
LEGO Boost教程六
数据操作模块
友情链接  |   DNF资料站   |   Brick4   |   孙老四   |   乐乐镇的故事

Copyright © 2023 LegoFind.

Powered by PressBook WordPress theme