为Arduino创建驱动程序块,乐高,和其他目标
正如你可能知道的,很容易在一组运行仿真软件模型目标硬件支持。金宝app金宝app这是可能的因为R2012a。
即使我们添加更多的目标和支持更多的功能为每个目标与每一个新版本,金宝app它仍然是有可能的,你将需要一个驱动程序不包括在模型支持包。金宝app如果你急需一个为您的硬件驱动程序,您可以构建它自己。
让我们看到这是如何工作的用一个例子从一个乐高NXT我的工作。
乐高的光传感器
乐高NXT工具包附带一个光传感器包括一个红色LED,可以打开或关闭。在仿真软件支持包,您可以控制块的光从一个复选框参数对话框。金宝app金宝app
对于我们的项目,我们使用这种传感器线后机器人。使我们的算法更健壮,我们认为这将是有趣的打开和关闭灯光,同时跟踪,积极过滤环境光。
第一步:确定你的驱动的代码生成
LEGO MINDSTORMS NXT的仿真软件的支持金宝app,你可以找到许多小例子展示金宝app机器人可以在c程序在默认情况下,它们位于C: \ MATLA金宝appB \ SupportPackages \ R2013a \ nxtOSEK \ samples_c。在其中的一个例子中,我发现一个函数初始化机器人看起来像:
这个函数ecrobot_set_light_sensor_active正是我从司机需要生成块。我也认为一个相应的功能ecrobot_set_light_sensor_inactive存在把灯关掉,我发现这些函数中声明的文件命名ecrobot_interface.h。
第2步—创建一个函数
这里有两个选择创建功能
步骤2 -选项1:功能建筑块
我的同事詹坎发表了一篇很好的提交MATLAB中央题为设备驱动程序显示如何使用s函数生成器包括代码块你步骤1中发现模型。
他提交包含详细的程序和屏幕截图来引导你通过循序渐进的过程。如果你吓倒编写一个函数,我建议使用他的s函数生成器技术。
步骤2 -选项2:编写一个函数和一个薄层色谱文件
如果你像我一样,想要了解正在发生的事情当你点击的魔法构建在s函数构建块,第二个选项是给你的。
首先,我们需要认识到,除非你模型的交互作用与环境传感器/致动器,在模拟,司机块通常什么也不做。所有的块必须指定端口的数量和参数,及其维度,即使他们什么也不做。在我的例子中,我创建了一个与输入端口尺寸1 s函数,指定是否应该打开或关闭光。这是整个代码的功能。
指定生成的代码块,你需要使用目标语言编译器。
具体地说,这意味着您需要编写一个薄层色谱文件块。为此,我建议从的例子开始sfundemos。
在这个例子中我们需要TLC做两件事:告诉编译器,包括ecrobot_interface.h,叫ecrobot_set_light_sensor_active和ecrobot_set_light_sensor_inactive。这就是它看起来的样子。
注意,我使用BlockTypeSetup包含的头文件输出定义块输出方法。
现在轮到你了
下载这个乐高的例子或类似的例子Arduino的目标并开始创建自己的司机块!
- 类别:
- 代码生成,
- S-functions
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。