创建一个定制的Arduino插件库
学习如何编写一个定制的Arduino®插件库。使用DHT22温度和湿度传感器作为一个例子,学习如何创建插件库与MATLAB接口Arduino硬件®。一个定制的Arduino插件允许您使用您的Arduino硬件和附加盾牌或传感器很容易在MATLAB。
作品简介:
这个视频展示了如何创建一个定制的Arduino插件库。作为一个例子,我将向您展示如何编写一个插件库DHT22温度和湿度传感器。
一个插件库允许您与Arduino硬件接口MATLAB代码。
在我们开始之前,确保您已经安装了MATLAB Arduino支持包并下载第三方Arduino库您将使用并拖动到金宝appArduino /库文件夹。根据您的操作系统,默认文件夹路径可能不同。
附加的库,你只需要编写两个文件:一个c++头文件下载到Arduino,和第二个文件是一个MATLAB类发送命令Arduino和得到响应。
有三个步骤来创建一个插件。第一步是设置文件夹。下一步是编写c++头文件。最后一步编写MATLAB附加类文件。
文件夹:
首先,您必须创建一个名为“+ arduinoioaddons”的文件夹与子文件夹的名字与一个“+”开始。这就是你将MATLAB类文件,另一个名为“src”的子文件夹的c++头文件。
c++头文件
现在让我们看看如何编写c++头文件。
一定要包括“LibraryBase。h”扩展所需的类创建您的插件库。
还包括任何定制所需头文件代码。就我个人而言,我包括“DHT.h”。
接下来,定义一组命令id以备后用,从MATLAB处理命令。
正如你所看到的,我这四个命令id定义传感器。
现在,定义您的附加组件类和继承LibraryBase因为它是一个插件所需的框架。
您还可以定义类所需的任何成员。
的构造函数,确保匹配你的类名,然后定义您的附加组件库的名称。
下覆盖commandHandler方法,每次调用MATLAB Arduino发送一个命令。我们过去的命令ID, dataIn,大小的数据。
Arduino使用命令ID来确定哪种方法来执行。在这里你可以用第三方的方法。就我个人而言,我的包装方法Adafruit DHT图书馆。
从MATLAB发送一个命令时,您可以在这里使用传递数据。在这个例子中,我有MATLAB发送传感器ID和销对象创建新的传感器。
所需的框架,为每一个命令,您必须将数据发送回sendResponseMsg MATLAB使用方法()。
如果你想要调试信息,您还可以定义调试字符串并将信息发送回MATLAB使用debugPrint ()。
在我的代码,我做同样的命令ID的所有:创建、删除、读取温度和湿度。
MATLAB插件类
现在您需要编写MATLAB类。你+ Adafruit文件夹中创建的文件。
这个类必须继承LibraryBase。这些属性设置为相同的命令id用于头文件。
这些属性也需要框架。取代LibraryName库,添加任何依赖的第三方库,并改变这些来匹配你的c++头文件和类名。
你也可以添加更多属性,这取决于你需要为您的附加组件。
编写一个构造函数来初始化插件。您必须指定Arduino对象作为附加对象的家长,从LibraryBase继承。
在这里,我做一些错误处理。然后我初始化销属性,配置了销到数字输入,和称为方法创建传感器。
为每个方法你想执行Arduino,您必须使用sendCommand ()。你必须通过命令ID,库名,Arduino和任何必要的数据。我通过传感器ID和终端。
从Arduino接收数据,保存返回的数据从sendCommand ()。例如,在readHumidity方法,我保存湿度值返回。
运行
写这两个文件后,在命令窗口中使用目录()添加的位置添加-在文件夹中。您可以通过使用命令listArduinoLibraries检查,看看你的图书馆是可用的。
Arduino硬件连接到MATLAB使用Arduino()方法与港口,,和图书馆。调试消息,使用“TraceOn”,真的。
= arduino (“com8”、“Uno”,‘库’,‘Adafruit / DHT22’,‘TraceOn’,真的)
现在连接到传感器使用插件()方法。在我的例子中,我将通过Arduino对象,图书馆,和销。
s =插件(' Adafruit / DHT22 ', ' A0 ')
我们可以叫readTemperature (s)和readHumidity (s)方法从传感器读取测量并使用MATLAB中的数据。
这是所有您需要做的编写自己的插件库。
更多的帮助,请参阅文档如何创建一个自定义插件Arduino的图书馆。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。