当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]PSOC™6 Wi-Fi BT原型工具包是一款开发板,具有PSOC™6(可编程片上系统)微控制器,这是一种功能强大且灵活的芯片,可用于广泛的应用。以下是我们用这种芯片完成的一些项目:鳄鱼肱二头肌训练器、慕尼黑啤酒节智能啤酒斯坦或自平衡机器人。

你有没有想过到底是什么在移动RC飞机的副翼或3d打印的机械手?你在YouTube上看到的许多很酷的移动项目都是由廉价的业余伺服电机秘密驱动的。

在这个protip中,我们将使用PSOC™6 Wi-Fi BT原型工具包和几行MicroPython制作两个常见的伺服器旋转和扫描。

顺便说一下:

PSOC™6 Wi-Fi BT原型工具包是一款开发板,具有PSOC™6(可编程片上系统)微控制器,这是一种功能强大且灵活的芯片,可用于广泛的应用。以下是我们用这种芯片完成的一些项目:鳄鱼肱二头肌训练器、慕尼黑啤酒节智能啤酒斯坦或自平衡机器人。

引出线

第一步是将您的板连接到伺服电机和PC。rc -伺服电机一般有三种输出:

•最暗的电线连接到GND。

•中间的一个连接到VCC(检查您的数据表所需的电压)。

•最轻的连接到任何支持PWM通信的引脚(我们将在稍后讨论)。在这种情况下,我们选择了pin 9.7,但是你可以使用任何一个你喜欢的,你只需要相应地改变代码。

要连接到PC,请将micro-USB插入左上方的连接器(KitProg3 USB连接器)。

设置MicroPython

如果这是您第一次在PSOC™6原型工具包上使用MicroPython,您需要首先将软件闪存到微控制器上。我们已经准备了一个protip和一篇文章来解释如何在PSOC™6上使用MicroPython。

伺服电机与PWM通信

什么是PWM, PWM通信是如何工作的?

PWM代表“脉冲宽度调制”,是微控制器与伺服电机和其他组件通信的一种方式。每个电机都有一个频率作为设定参数(检查相应电机的数据表),微控制器向电机发送一个脉冲,因此每周期T = 1/f一次。

输入是由信号在T期间被设置为高(脉冲宽度)的时间长短来接收的,通常在电机特定范围内。调制(改变)脉冲宽度将改变你的电机输出。

不同的伺服器有不同的方式来解释这些数据,今天我们将看两个使用SG90(位置伺服)和MG995(连续伺服)的例子。

与PSOC™6的一般通信

连接板和使用thony IDE

我们将使用ony IDE来运行代码。要连接到微控制器并使用MicroPython,请创建一个新文件,并按Tools > Options > Interpreter。在那里,将解释器设置为MicroPython(通用),端口设置为KitProg3 USB-UART @您的COM端口(在本例中为COM4)。

设置引脚和PWM

首先,您需要从机器库中导入PWM库。然后,通过声明引脚(本例中为引脚9.7)、设置PWM频率并初始化脉冲宽度,将引脚设置为PWM引脚。starting_pw将在后面根据我们使用的电机来定义。

提示:设置脉冲宽度

有许多不同的方法来设置脉冲宽度,例如:使用PWM库中定义的两个函数。如上所示,第一个使用duty_ns()函数以纳秒为单位设置脉冲宽度。第二个是通过使用duty_u16()函数发送一个无符号16位整数来设置它。这表示占空比(电流脉冲宽度与周期的比率),其值范围从周期的0%(0位)到周期T的100%(2^16 = 65,536位)。

查看更多关于PWM控制与PSOC™6 Wi-Fi BT原型工具包在这里!

例1:位置马达

一般

定位电机以脉冲宽度作为输入,并将其映射到一定角度,如下图所示:

参数

我们的电机有这些参数:

•Angle_max = 180°

•Angle_min = 0°

•频率= 50hz;周期= 20ms

•Pw_min = 0.5 ms:我们的最小脉冲宽度为0.5 ms或500000 ns,这将使我们的电机设置为最小角度。

•Pw_max = 2.5 ms:我们的最大脉冲宽度为2.5 ms或2500000 ns,这将设置我们的电机到我们的最大角度。

代码

我们的目标是创建一个名为set_motor_to_angle()的函数,该函数将所需的角度作为输入,将其转换为脉冲宽度,并将其发送给电机。为了做到这一点,我们将定义一个辅助函数angle_to_ns()来完成所有的脉冲宽度计算。

例2:连续电机

一般

连续电机将脉冲宽度映射到电机的速度,如下图所示:

参数

这里使用的电机有以下参数:

•Pw_min = 1ms:顺时针方向全速旋转(正转速)。

•Pw_max = 2ms:表示逆时针全速旋转(负速度)。

•gradient = -777846 ns/Hz:表示脉冲宽度/转速的比值。我们将在函数中使用它来映射旋转速度到脉冲宽度。你可以从数据表中得到这个数字,也可以自己计算出来。

•pw_stationary = (pw_max-pw_min)/2 + pw_min = 1.5 ms:这是电机速度为0 Hz时的脉冲宽度值(当它静止时)。我们需要这个(或图上的任何其他点),因为一个线性函数需要一个梯度和一个点来完全定义。

计算梯度

我们的第一个假设是我们的速度脉宽比近似线性,这大大简化了我们的计算。为了重建图形,我们需要测量一些数据点并使用它们计算梯度。实际的函数将以a*x + b的格式使用梯度(a)和图上的一个点(b)。

提示:测量转速

这可以通过将电机设置为一定的脉冲宽度并用手机相机拍摄来完成。把它放在某个东西旁边,帮助跟踪它的运动,让它旋转10-20次,以尽量减少错误,提高精度。然后一帧一帧地回放镜头,看看所有这些回合花了多长时间,并计算:(回合数)/(时间)来获得每秒的旋转。

代码

我们的目标是创建一个名为set_motor_to_speed()的函数,它将我们期望的速度作为输入,将其转换为脉冲宽度,并将其发送给电机。为了做到这一点,我们将定义一个辅助函数speed_to_ns()来完成所有的脉冲宽度计算。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭