永远闪耀,无处不在。第2部分


当前版本的处理器模块

板有关自制自行车照明控制系统的材料的第二部分已经到来。让我提醒您,我决定建立一个RS-485网络,在其中有控制和执行设备,而主设备是一台计算机,在该计算机上运行实现逻辑的程序。在继续描述系统逻辑之前,我将讨论由于第一部分对原型的讨论和测试而导致的硬件方面的改进和范式转换

Dopilirovanie

首先,通过与Arduino和许多其他项目的类比,决定将腺体模块化。我发现我的主(处理器)模块比功能模块包含更多的组件,因此它将是母模块。然后将“屏蔽”插入其中。在电路方面,进行了以下更改:

1)添加了电源稳定器(AMS1117-5.0)。
2)改变了微控制器的电源接线。
3)考虑到工业制造,主模块的板已离婚,但第二层铜的使用量最少-您可以在家制作单层板并设置跳线。
4)添加了端点跳线,以终止最后一个设备上的线路。
5)添加了RST锁定跳线,以阻止微控制器的复位。
6)与第3节相似,编码器的子板和LED条形驱动器被离婚。
7)我正在等待印刷电路板的第一个试用订单,而只有主要模块(ITEAD Studio)。


LED条形驱动器

Vanity围绕RS-485 的子板

现在我转到网络主站。就铁而言,那里的一切都很简单-至少我是这么认为的。我拿了一个USB-UART适配器,将一块装有MAX485的小板和几个电阻连接到该板上,然后开始工作。他踩了一把出色的耙子,有据可查,但对于初学者来说,这并不完全明显。

MAX485需要在接收(固定引脚〜RE和DE上为低电平)和发送(高电平)之间切换。在简单的逻辑指导下,我使用了转换器的DTR输出(在CP2102上)来控制该模式,以编程方式将其拉出。丢脸了该系统以某种方式只能在接收和发送之间的大延迟上工作。都是因为DTR切换缓慢。多慢,我什么都没测量,所以我只提供了使用示波器进行更合理的rake研究的链接

从相同的材料上,我理解以下内容:使用FT232会带来最少的痛苦,因为它得出的结论是,当将芯片配置为默认值时,它仅用于切换RS-485模式。简而言之,通过UART传输时,它上面会显示一个高电平。因此,从克隆箱中提取了中文克隆Arduino Nano,〜RST短接地了,将导线焊接到FT232的第13脚,整个东西都连接到了MAX485。它像时钟一样工作。当然,在系统的“战斗”版本中,不会使用这种设计-中国业界很高兴提供类似的现成板。

系统逻辑

最后,从大师的角度来看整个过程。它与可以控制或执行的设备对象一起使用。管理者分为真实(“铁”),虚拟和计时器。行政人员只能是真实的。

当实施更复杂的系统管理时,特别是在将Web界面附加到虚拟控制设备时,将需要虚拟控制设备。它们也可以方便地与我尚未想到的东西集成。是的,在这里,也许我必须说,通常这样的“设备”就在系统内部。

设备是Device类的对象。最少的属性集是名称,类型和用法标志。此外,根据类型,可以添加总线上的地址,从设备的名称,控制优先级,寄存器的初始值和一些其他属性。该类的主要方法涉及使用实际设备-这是读写寄存器。

现在,或多或少地决定了系统的程序结构,我们就可以开始实施了。当前,有以下内容:
1)Comm485模块,其中包含Conn类的描述。类方法是打开和关闭连接,发送和接收数据包以及检查校验和。
2)Device485模块包含上述Device类。
3)主软件模块。


编码器子板

实际上,在主模块中实现了两件事。首先是根据配置文件创建Device类的必要对象。第二个直接是系统的逻辑。

在此过程中,

目前有以下工作:

1)编制涉及的执行器清单。
2)对于每位艺术家,将编译一份涉及的控制设备列表。
3)具有最高优先级的控制设备的寄存器值记录在执行器和控制的寄存器中,它们的优先级较低。

也就是说,假设我们有一个低优先级的编码器(熨斗)和一个高优先级的虚拟控制设备。在待机模式下,虚拟设备被禁用。当您需要在不从沙发上抬起第五个点的情况下调节灯光时,会激活虚拟设备(短时间)以为演奏者和编码器提供新参数。

但是最有可能的是,在对软件进行了少量改动之后,主要模式将如下:有两个优先级相同的控制设备。更改其中一个的寄存器时,会将值写入没有更改的执行者和另一个管理者的寄存器中。

实际上,现在。该项目可在github上找到。,在主机文件夹中,您可以看到令人赞叹的Python代码。有两个模块(Comm485,Device485),主程序(主机)和cfg文件夹,配置文件位于其中:设置UART连接和设备列表。

延续必将随之而来。

PS作为哈布(Habr)移民的受害者,在许多可能性上都是有限的。

Source: https://habr.com/ru/post/zh-CN381907/


All Articles