使用Analog Devices开发套件进行免编码/少编码硬件原型开发

制造/封装

515人已加入

描述

https://www.mouser.com/applications/no-code-low-code-hardware-prototyping-analog-devices/
 

引言
Analog Devices AD-SWIOT1L-SL(12)是一个开发平台,旨在帮助工程师为可联网的智能安全设备开发原型。该套件非常适合在工业现场环境中使用,具有原型开发工作所需的一切,包括硬件本身、外壳、电缆和软件等。





1:Analog Devices的AD-SWIOT1L-SL是用于开发联网工业应用的强大平台。(图源:贸泽电子)




2:AD-SWIOT1L-SL的框图(图源:Analog Devices)

 
AD-SWIOT1L-SL通过单对以太网 (SPE) 连接到网络,使用单根双绞线传输数据,因此非常适合空间有限的工业环境。该套件包括一个10BASE-T1L至USB转接板,可将AD-SWIOT1L-SL连接到计算机进行开发。

AD-SWIOT1L-SL平台兼容用于配置设备和可视化数据的Analog Devices Scopy软件工具集。Scopy是一款强大的多功能软件应用程序,用于搭配各种Analog Devices硬件平台工作。它主要用于实验室的信号分析、数据可视化和调试。Scopy提供图形用户界面 (GUI),使用户能够与示波器、信号发生器和逻辑分析仪等硬件设备进行交互,从而简化信号的捕获与分析过程。它还可以将JavaScript代码上传到被测设备,以便对GPIO引脚进行基本编程,我们将在演示项目中使用这种方法。
Scopy具有几个重要特性:

GUI:Scopy的GUI使用户可以轻松控制和可视化来自AD-SWIOT1L-SL的数据。直观的设计方便用户快速设置和执行测量、查看波形以及分析信号。

软件定义示波器:Scopy使AD-SWIOT1L-SL可以充当双通道示波器,具有触发、时基调整和各种显示模式等功能。

数字I/O:该软件可控制和监视AD-SWIOT1L-SL的数字输入与输出引脚,因此可用于数字信号分析和逻辑测试。

灵活性和定制化:该软件支持脚本编写和自动化,允许用户创建自定义测量设置并自动执行重复性任务。对于需要进行复杂分析的高级用户来说,此项功能非常有用。

跨平台兼容性:Scopy支持多种操作系统,包括Windows、macOS和Linux,确保不同计算环境的用户都能使用。

Scopy与AD-SWIOT1L-SL平台的组合为过程控制和工业自动化解决方案的原型开发提供了强大而灵活的工具集。而且,这些工具还为学生、教育工作者以及业余爱好者提供了极好的教学和实验素材。
在本项目中,我们将使用AD-SWIOT1L-SL开发板、两个非接触式水传感器和一个水泵来保持水箱的适当水位。当下方传感器检测不到水(即水箱处于低水位状态)时,水泵将触发并向水箱内注水,直到上方传感器检测到水(即水箱处于高水位状态)。
物料清单和工具
截至发布之日,总BOM(1)成本约为450美元(不含运费和税费)。
 
1. 物料清单

贸泽元器件编号 元器件说明 数量
584-AD-SWIOT1L-SL Analog Devices AD-SWIOT1L-SL开发平台 1
209-AKM45US24 XP Power 24V直流电源,2A 输出 1
426-SEN0204 DF Robot非接触式水传感器 2
485-3191 Adafruit功率继电器FeatherWing 1

 
要完成本项目,您还需要访问项目的GitHub存储库。
除BOM中的物料外,还需要以下工具:

水箱(必备)

水泵,24V直流,最大电流2A(必备)

热胶等粘合剂

小型十字和一字螺丝刀

剪线钳/剥线钳

剪刀

热缩管

小尖嘴钳

数字万用表

高速互联网连接,Windows 10 PC或更新版本的电脑(必备)

 
硬件准备
Analog Devices AD-SWIOT1L-SL开发平台采用MAX32650低功耗Arm® Cortex®-M4微控制器,具有128MB外部RAM和8MB外部闪存。安全功能由MAXQ1065安全协处理器提供支持。此开发板还集成了AD74413R四通道、软件可配置的输入和输出,以及MAX14906四通道工业数字输出/数字输入 IC,可在四个通道上多路复用多个模拟和数字功能。这些通道可通过软件独立配置,以用于:

电流输出或输入

电压输出或输入

数字输出或输入

电阻温度探测器 (RTD) 测量

对于需要大电流能力的应用,系统可由外部24V电源供电,任何配置为数字输出的通道均可输出高达1.2A的电流。
板载ADIN1110 MAC/PHY提供一个10 Mbps单对10BASE-T1L以太网接口,可实现远程数据采集和设备配置。该接口还可通过单对以太网供电 (SPoE) 技术以及LTC9111受电设备 (PD) 控制器为系统供电。这样即可通过同一根电缆为系统同时提供电力和数据,从而显著简化布线基础设施并降低成本。
现在,我们先为四个AD74413R通道中的每个通道分配所需的功能。我们将把其中一个配置为电压输出,为两个传感器提供5V电源和GND连接(2)。
 
2. AD74413R引脚分配

AD74413R通道 用途
1 电压输出 (5V)
2 数字输入(下方水传感器)
3 数字输入(上方水传感器)
4 继电器控制

 
连接水传感器
在这个项目中,我们使用两个非接触式水传感器来检测水箱的低水位和高水位。非接触式传感器在改造现有基础设施时非常有用,因为它们能用非破坏性方式安装。这也方便了传感器的维护和修理。
这种非接触式传感器通过测量液体接近时电容的变化来检测水。当水接近时,其电容会影响传感器的基线电容。控制器芯片会将这种变化转换为电信号。如果变化超过阈值,则表明水已到达传感器位置。输出将被发送到高电平,同时还将触发内置的LED指示灯。
使用以下步骤为水传感器接线(3):

将AD74413R通道2连接到水传感器的VIN引脚(棕色线)。

将AD74413R通道2的GND引脚连接到水传感器的GND引脚(蓝色线)。

将水传感器的OUT引脚(黄色线)连接到AD74413R的通道2数字输入引脚。

根据检测到水时需要常开 (NO) 还是常闭 (NC) 输出,连接模式选择引脚。对于常开操作,请将黑线断开。对于常闭操作,请将黑线连接至GND引脚。我们将使用常开输出,因此将黑线断开。

对第二个水位传感器重复步骤1到4。唯一的区别是在步骤2和3中将第二个传感器连接到通道3。




3:项目的线路图。(图源:Green Shoe Garage)

 
连接水泵
水泵需要外部24V直流电源,因此我们必须使用继电器控制板来激活它。水泵将从AD-SWIOT1L-SL开发板上的一个数字引脚接收指令和控制信号。我们将把AD74413R的通道4指定为数字输出,并将其连接到继电器控制板的控制引脚输入端。
使用以下步骤为继电器连线:

将通道4的数字引脚连接至继电器控制板的控制输入端。

将通道4的GND引脚连接至继电器控制板的GND引脚。

将24V直流电源的正极连接至继电器控制板的NO(常开)端子。

将水泵的正极连接至继电器控制板的COM端子。

将水泵的负极连接至24V直流电源的负极。

软件开发
本项目将使用Scopy和Microsoft Visual Studio Code,它们都适用于Windows、macOS和Linux。但在本文中,我们将使用Windows。
要为项目创建JavaScript文件,可以使用纯文本编辑器或Visual Studio Code。
注意:截至本文撰写之时,Scopy的初级版本与AD-SWIOT1L-SL开发套件不兼容。因此,您需要下载Scopy AD-SWIOT1L-SL插件。

Scopy设置
下载并安装Scopy后,启动该应用程序。
由于AD-SWIOT1L-SL开发板没有板载USB,因此需要通过10BASE-T1L至USB转接板将其连接到主机。使用随附的橙色电缆连接转接板和AD-SWIOT1L-SL开发板(4)。然后,使用micro-USB电缆将转接板连接到主机。



4:使用转接板将AD-SWIOT1L-SL连接到主机进行编程。(图源:Analog Devices)

如果应用程序没有自动检测到AD-SWIOT1L-SL,请在URI字段中输入IP地址169.254.97.40,然后单击Verify5)。如果成功检测到开发板,它就会列在应用程序的顶部。然后单击Connect启动设置窗口(6)。





5:如果应用程序没有自动检测到AD-SWIOT1L-SL,请在URI字段中输入IP地址169.254.97.40,然后单击Verify。(图源:Green Shoe Garage)




6:添加AD-SWIOT1L-SL开发板并在Scopy中配置功能非常简单。(图源:Green Shoe Garage)

重要函数与变量
本节介绍了几个重要函数与变量,并提供了我们将加载到Scopy中的自定义代码。
 
launcher.reset()
此函数初始化硬件,并让AD-SWIOT1L-SL做好运行脚本的准备。
 
dio.running
此变量可按如下方式启用或禁用I/O通道:

将此变量设置为TRUE表示启用I/O。

将此变量设置为FALSE表示禁用I/O。

 
dio.dir[X]
将此变量设置为TRUE时,I/O通道被设置为OUTPUT。
将此变量设置为FALSE时,I/O通道被设置为INPUT。
 
dio.out[X]
将此变量设置为TRUE时,I/O通道输出被设置为HIGH。
将此变量设置为FALSE时,I/O通道输出被设置为LOW。
 
osc.channels[X].enabled
将此变量设置为TRUE时,示波器通道输出被设置为HIGH。
将此变量设置为FALSE时, 示波器通道输出被设置为LOW。
 
osc.channels[0].volts_per_div = 1
用于设置示波器垂直轴的变量,以每格伏特为单位。
 
var ppX = osc.channels[0].peak_to_peak
函数peak_to_peak()可捕捉所轮询通道的瞬时峰峰电压值。
 
function check_tank()
此函数包含运行水泵系统所需的自定义代码。它检查上下传感器的状态,并向继电器控制板发送相应的控制信号。
function check_tank(){
    var lower_sensor_status = dio.out[1]
    var upper_sensor_status = dio.out[2]
 
    if (lower_sensor_status == 0) {   // lower sensor detects NO water
        dio.out[3] = true             // Turn pump ON
    }
 
    if (upper_sensor_status == 1) {   // upper sensor detects water
        dio.out[3] = false            // Turn pump OFF
    }
 
    msleep(1000)
    dio.running = false
}
 
function set_oscilloscope()
此函数初始化Scopy的软件定义示波器。子函数模仿物理示波器界面上所需的控制功能。
function set_oscilloscope(){
   
    /* Enable Oscilloscope Channel 1  */
    osc.channels[0].enabled = true
    osc.channels[1].enabled = true
    osc.channels[2].enabled = true
    osc.channels[3].enabled = true
   
    /* Set Volts/Div to 1V/div */
    osc.channels[0].volts_per_div = 1
    osc.channels[1].volts_per_div = 1
    osc.channels[2].volts_per_div = 1
    osc.channels[3].volts_per_div = 1
   
    /* Set Time Base to 1 ms */
    osc.time_base = 0.001
   
    /* Set Time Position to 0s */
    osc.time_position = 0
   
    /* Run Oscilloscope */
    osc.running = true
}
 
function main()
这是系统初始化后运行的主循环。可在此添加其他子函数,以扩展系统功能。
function main(){
    set_dio()
    check_tank()
    msleep(1000)
    set_oscilloscope()
    msleep(1000)
    var pp1 = osc.channels[0].peak_to_peak
    var pp2 = osc.channels[0].peak_to_peak
    var pp3 = osc.channels[0].peak_to_peak
    var pp4 = osc.channels[0].peak_to_peak
    printToConsole(pp1)
    printToConsole(pp2)
    printToConsole(pp3)
    printToConsole(pp4)
}
固件上传、最后的组装和故障排除
现在您已了解固件的结构和功能,请使用Scopy的调试器工具上传脚本。
要在Scopy中打开调试器,首先必须确保它在Instrument菜单中可见:

关闭Scopy应用程序。

导航至C:\Users\\AppData\Roaming\ADI。

打开Scopy ini文件。

将启动器组中的debugger属性从false更改为true7)。

关闭文件并重新打开Scopy。





7:必须通过配置Scopy应用程序安装文件夹中的.ini文件来启用调试模式。(图源:Analog Devices)

重新启动Scopy后,按照Scopy Scripting Guide中的说明加载脚本(8)。



8:可通过调试器菜单向开发板添加脚本。(图源:Analog Devices)

装配

将上下传感器安装到要监控的水箱上。确保传感器牢固地安装在水箱外表面,并尽可能平整。

将水源连接至水泵。

将软管连接到水泵出口,然后将开口端放入水箱。

确保电子设备和电源与水源和水箱保持安全距离。

故障排除
如果您发现自己的项目出现问题,可以参考我们在开发过程中发现的一些故障排除技巧:

确保继电器控制板的接线方式与软件反映出来的一致。也就是说,根据继电器是以NO还是NC方式使用,软件会在通道4的控制输出中反映出来(高电平有效还是低电平有效)。

确保电源能够提供泵运行所需的电流。检查泵和电源数据手册中的规格,以确保兼容性。

使用Scopy信号范围功能查看I/O通道对输入变化的反应。

如果水位传感器没有因液体存在而触发,请断开传感器电源,打开传感器外壳,使用螺丝刀调节灵敏度,然后重新连接电源。

确保传感器与AD-SWIOT1L-SL开发板之间的所有连接牢固且接线正确。仔细检查2中的接线图。

听一听机械继电器开关时是否有咔嗒声。如果听不到,继电器可能没有接收到信号,或者已经损坏。

确保所有组件(AD-SWIOT1L-SL开发板、继电器板、水泵和电源)共用一个接地端,以避免形成接地环路并确保正常运行。

暂时将水泵直接连至24伏电源,确保其正常运行。这样可以帮助确定是水泵的问题还是继电器控制电路的问题。

结语
Analog Devices AD-SWIOT1L-SL是一款功能强大的开发套件,用于为智能、安全的工业设备开发原型,而这些设备可以连接到支持10Base T1L技术的网络。
附带的Scopy软件让用户可以通过GUI与硬件设备进行交互,无需复杂的编程。这让没有编程经验或编程经验有限的人更容易开发功能原型。Scopy脚本环境提供了简单的预写代码块和可视化工具来简化开发,不需要用户大量编码。这种环境可以开发出比免编码更加复杂的应用,并且减少了对丰富编码专业知识的要求。Analog Devices的AD-SWIOT1L-SL和Scopy工具带来的免编码/少编码开发优势包括:

更快的开发速度:无需大量编码,可以更快地开发应用程序。

提高可用性:这些平台使非技术用户能够创建解决方案,而无需依赖专业程序员。

降低成本:减少对专业开发人员的需求可以降低开发成本。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分