详情请进入 湖南阳光电子学校 已关注:人 咨询电话:0731-85579057 微信号:yp941688, yp94168
通辽进口轴承哪家好 像 Raspberry Pi 这样的单板计算机 (SBC) 只需数小时就能轻松构建复杂的机器,而不必使用一颗裸微控制器从头开始。 为了展示使用现代 SBC 有多简单,此“Easy Build”课程将引导您完成构建直线平台并进行编码所需的步骤。这里的直线平台是一个能够以直线方向执行来回运动的,由系统工程师或研究人员用来完成重复性任务的平台。
除了引导您完成这些步骤外,我们还将附上用于演示随附视频中直线平台的代码,以及帮助您启动的项目物料清单。
为什么选择直线平台?
我们启动此项目的初衷是,展示设定 Raspberry Pi 微型计算机来执行稍复杂的任务是如此容易。 尽管我们不会满足于几个闪光灯,但我们也不想尝试并计算轨道力学。 终我们决定控制步进电机致动的直线平台。 毕竟,驱动步进电机正好介于闪烁的 LED 与计算三个天体的多体问题之间。
我们将项目分成三个部分:电子硬件、软件和机械构造。
电子硬件
图 1:显示从 Raspberry Pi Model B 到限位开关的所有硬件元素的完整系统布局(左上角)。 (使用 凯利讯半导体 绘制的原理图)
目前为止,这些内容还非常简单、直接。 很显然,除了 Raspberry Pi 2 (Rpi) 外,我们还需要步进电机、步进电机驱动器以及上述两个器件的电源。 之后,我们确定了需要的输入。 后,我们确定了以下项目:
- 左移按钮
- 右移按钮
- 高/低速开关
- 左限位开关
- 右限位开关
我们将电路布置到 B&K Precision GS-830 试验板上。 顾名思义,它拥有 830 个连接点以及一个总线条。
图 2:如图所示,滑动架挤靠在限位开关上,其中蓝色盒子就是限位开关,且在丝杠下方还有一个柱塞。
输入从左,还是从右,完全随意。 我们只需对两个相反方向命名。 请注意,该限位开关使用上拉电阻器接线为“正常高”。 我们这样做是为了给这些输入提供一些抗噪能力。 Raspberry Pi 具有惊人的灵敏度,我们发现,紧凑型荧光灯等外部噪声源和继电器线圈等电感器有时可以在 Pi 上触发输入。
对于步进电机,我们选择了 NMB Technologies Corporation 的 23KM-K2(图 3)。 我们使用的步进驱动器是 Geckodrive 的 G210X。 Geckodrive 比市场上许多廉价的非品牌驱动器要昂贵一些,但它们可以提供流畅、无故障的步进控制。 同样,我们手头已经有了一个这样的步进驱动器。 大多数类似 G210x 这样的廉价步进电机驱动器是通过 DIRECTION 引脚和 STEP 引脚来控制的。 这很适合简单的项目:我们只需将这些引脚直接连接到 Rpi 上未使用的 GPIO 引脚即可。
图 3:对于步进电机,我们选择了 NMB Technologies Corp. 的 23KM-K2 标准混合电机。 (来源:凯利讯半导体)
我们还将 Geckodrive 的 ENABLE 引脚接至 Rpi。 这样做使得驱动器仅在程序运行时才“开启”并向电机线圈供电。 否则,即使驱动器未收到执行任何操作的任何指令,驱动器仍会在我们向整个电路供电后立即将功率转储至电机。
将功率转储至电机线圈造成两个结果。 首先,它会促使电机产生制动效果。 电机会主动抵制任何旋转其轴的尝试。 这在某些情况下是希望达到的效果;比如当您将滑动架移到某个点并且希望将其锁定到位,使其不会被撞离位置。
第二个结果是我们希望避免的,即电机会在原地不断升温。 此电路在我们编辑和测试代码的过程中一直保持通电状态。 如果我们不停用驱动器,它会不断向我们的电机转储功率。 步进电机通常都会变热,但我们 好不要让其在等待指令的过程中自行加热。
图 4:36 VDC XP Power SHP350 系列 36 V 开关式电源用于替换 24 V 电源为系统供电,以增加电机转速。 (来源:凯利讯半导体)
初,我们为电机连接 24 VDC 电源, 之后我们决定提高转速,于是找到了 36 VDC 电源,即 XP Power 的 SHP350 单输出、350 W AC-DC 电源。 这将在 24 V 电源的基础上显著提升电机转速。
Gecko 驱动器会限制通过电机线圈的 大电流。 您可以在端子 11 和 12 之间使用电阻器来设置电流限制,也可以使用驱动器上的 DIP 开关。 顺便提一下,同一组 DIP 开关还用于控制驱动器的微步进模式。 我们将在软件部分对此做进一步讨论。
软件
软件程序显示在本页面的底部。 此时我们决定选择使用两个程序:一个程序用于手动控制平台;另一个程序负责让直线平台滑动架在限位开关之间来回穿梭。 所有代码均使用 IDLE 3.2.1 以 Python 语言编写。 我们之所以使用 Python,是因为它是 Rpi 的默认语言。 IDLE 是随 Raspbian 一起提供的 Python 精简版系统开发环境。
为什么使用 Python? 不要让新语言吓住了您。 Python 与 C 非常相似,即使您不会编写 Python 代码,但只要熟悉 C,就几乎肯定能够阅读和理解程序内容。
我们的手动控制程序要执行的操作几乎一目了然,代码也未作任何说明。 具体而言,电机加速的问题。 步进电机必须逐渐提高转速。 我知道,许多读者会说,他们以前见过或控制过步进电机,电机转速完全取决于向其输入的脉冲频率。 也许是这样,但我敢打赌,这些情况下的电机负载肯定很小,甚至根本没有任何负载。
而我们的直线平台中的电机肯定带有负载。 承载的步进电机必须达到一定的转速,否则电机将会失速。 将脉冲输入到其驱动器时,步进电机只会在原地断续运转。 这也是我们在软件中置入加速程度的原因。 加速度需要足够快,使观察者不容易观察到从静止到 高转速的过程,但不能太快以至于失速。
加速程序一开始很慢地旋转电机(步进电机在低速下具有 高的扭矩),以向系统施加 大扭矩,从而克服惯性和“静摩擦力”。 之后,此程序会快速缩短步进脉冲之间的时间,直至达到 高转速。 扭矩会随着转速的提高而减小,但到此时,如果调节得当,系统中的机械阻力已被克服。
简单地介绍一下“静摩擦力”一词的含义。 此术语的真正解释远远超出了此项目分析的目的。 但我们可以采用类比的方法加深了解。 想象一下握住机器的旋钮或手轮,并尝试旋转。 通常,在旋转时必须克服一个初始阻力。 一旦克服这个阻力,旋转旋钮或手轮就会变得容易多了,现在需要的扭矩也要小得多。 在本文中,该初始阻力便是静摩擦力。 这种现象在利用滑台执行操作的机床(例如车床或铣床)中特别明显。
我们的确注意到,Python 也有一个显著的局限。 我们对为电机驱动器提供输出的步进引脚进行切换的速度存在限制。 到某一点后,我们在 5 s 步进脉冲之间加入的延迟不论多小都无关紧要,因为 Python 代码中的命令执行之间存在固有的延迟。 我们没有完全弄清这一问题的缘由,也不知道如何解决此问题。 好的办法是采取变通方案,这也是我们将电机驱动器设为 Full_Step 模式的原因。
如果使用任何类型的微步进,我们需要将 大脉冲率(取决于 Python 的具体情况)除以我们将驱动器切换到的微步数。
因此,对于半步进电机,需要将 高转速除以二。 使用 1/10 微步进时,我们需要将 高转速除以 10! 如果您追求更流畅、波动较小的动作,微步进方式是不错的选择,但对此项目而言则不必如此。
关于微步进的说明
我们在此项目中所用的双极步进电机类型几乎总是设计为每转 200 步。 也就是说,200 个“全”步将会旋转电机轴一周。 现在,比方说,我们将电机驱动器设置成 微步进。 我们这样做会将电机的每个满步分成 4 个更小的步。 电机驱动器收到的每个 STEP 脉冲会将电机轴旋转 满步。 这意味着,我们现在必须发送 800 个脉冲到驱动器才能将轴旋转一整转。
1/10 微步呢? 现在,您需要发送 2000 个脉冲才能完成一整转。 咋一看,这看起来不错。 这样做增加了电机的位置分辨率。 是的,但不完全如此:您可以采取多小的步幅存在物理限制。 而且,微步越多,您所获得的可用扭矩越小。
手动控制程序分解
首先,我们导入了时间和 GPIO 库。 然后,我们为每个变量设置引脚以及这些引脚的输入/输出。
方向按钮和速度开关设置为使用内部下拉电阻。 限位开关设置为使用内部上拉电阻。
转速和加速变量在开始时设置,并可全局更改,以调节运行程序中的电机转速和加速度。
程序仅运行一个“while”循环作为主循环,扫描“左”和“右”按钮。
按其中一个按钮后,rampUp() 子程序就会立即执行电机,沿所按按钮的方向加速至 高转速。
只要按下按钮,程序就会留在 rampUp() 程序中。 松开按钮后,rampUp() 程序将会跳入 rampDown() 程序,将电机减速至停止。 rampDown() 会持续减速,直至用完减速步数。 然后程序会返回到主循环,以检查方向按钮。 转速开关有两个设置,高和低。 此开关会将速度变量更改为对应的速度变量。
在按下左或右方向按钮以及发出步进脉冲时,步进程序还会检查确认是否已启用两个限位开关之一。 当移动平台触及限位开关时,电机就会停止,改变方向,并执行与原始行进方向相反的 50 步 (decelPulseCount) 移动。 这会将滑动架移至足够远离限位开关的位置,以免再次触及限位开关。
来回穿梭程序
从 Raspberry Pi 运行该程序后,直线平台会立即在一个方向上以固定的速度移动,直至触及其中一个限位开关。 平台随即改变方向,逐步提速,并继续在另一个方向上移动,直至其触及平台行程另一侧的限位开关,周而复始。 移动速度可通过手动控制程序中所用的相同开关,在预设的高速度或低速度之间切换。
机械构造
图 5:直线平台的 终构造使用现货零件组装而成,括 1.5 英寸铝型材以及一根 8 螺纹/英寸的丝杠(8 头)。
直线平台完全由现货零件制成:用于框架的 1.5 英寸铝型材、夹具、轴、电机底座,以及 0.5 英寸直径的 8 螺纹/英寸的丝杠(8 头)。 八头表示螺纹具有 8 条平行螺纹,类似于橙汁容器盖。 终,丝杠每转动一整转,机械系统就会移动 1 英寸。 我们这样做是为了让直线平台操作视频更生动一些。 我们有 10 螺纹/英寸、单螺纹丝杠,但这会导致移动速度非常慢。 步进电机的局限在于其 大转速实际上很慢。
滑动架架在一对 20 mm 直线轴及配对的轴承上。 针对所用的 NEMA 23 双极步进电机,我们选择了一个通用的 NEMA 23 安装支架。 问问图片和视频您可以看到,我们使用齿轮和正时皮带将机械动力从电机传递到轴末端,以便在出现振动或机械静摩擦时能够调节齿轮比。 一些实验表明,电机和轴之间的比率为 1:1 效果很好。
对于位于丝杠从动端的轴台,我们必须做一些设计工作和加工(图 6)。 轴台是支撑轴的一个机械元件,在本例中仅传输旋转运动并阻止直线运动(至少在理论上如此)。 我们能否在没有轴台的情况下完成项目? 存在这种可能。 我们本可以将丝杠直接连接到步进电机的输出轴,但如果我们选择这种做法,我们的系统将很不稳定。 因此,我们在直线平台上设计并制造了一个直接连接到 20 mm 直线轴的轴台。
图 6:为延长设计寿命,使用轴台支撑轴并且仅传输旋转运动,同时阻止直线运动(至少在理论上如此)。 (来源:凯利讯半导体)
步进电机内的轴承通常仅设置为处理侧向力,而非轴向力。 随着时间的推移,,在滑动架来回穿梭的过程中,这些电机轴承将受到不应有的应力。 终会损坏电机。 我们不清楚多久会发生这种情况。 但我们不希望电机在项目中途出现磨损,因此我们制造轴台时使用一些推力轴承、一个滚针轴承和一根 1/4 英寸的轴。 滚针轴承(红色)在轴台右侧中间位置固定 1/4 英寸轴,止推轴承(蓝色)负责处理从丝杠传输的任何轴向力。
后,我们对限位开关进行定位,让滑动架在撞上其机械行程极限之前便能触发该开关。 此时,滑动架的撞击不会导致物理损毁,但肯定会开始磨损正时皮带和齿轮,因此我们会尽力避免这种情况。
以下就是运行中的完整项目:
结论
Raspberry Pi Model B 等 SBC 可以让工程师和研究人员更轻松地设计并实现可行且实用的系统。 此 Easy Build 分步指南通过一个实用的实例,详细指导读者完成直线平台的设计全过程,同时针对过程中的组件选择和设计决策,提供了深入浅出的分析。 除物料清单和相关代码外,您在实现下一个创意时也可借鉴该实例。
。临沧焊工考证培训学校,临沧焊工考证培训班,临沧焊工考证学校,临沧学焊工考证的学校,临沧焊工考证培训哪里好,临沧焊工考证培训学校,临沧焊工考证短期培训班,临沧焊工考证培训学校地址,临沧学焊工考证培训,临沧焊工考证培训哪里好,临沧焊工考证培训班,临沧焊工考证技术培训.(整理:临沧焊工考证培训学校)
湖南阳光电子学校教学特色