我最近才开始接触Arduino应用技术,到现在为止采用Uno板做了两个简单作品。我深深的喜欢上Arduino的技术开发模式。它让电子设计变得更加容易,能在更广的范围内,让具备不同技能的人士参与进来,那怕他们只具备有限的电子专业知识。
我一直在为我们未来的Arduino项目探索一种方案,能实现真正高效的用户图形接口。大概4个月前我决定把我们Xped公司的部分高端技术嵌入到一个适用Arduino的扩展插件上。两个月后,我研发出它的alpha样板,用于测试。
这里给出一张当初项目开始时的真实照片。左上角是我们购买的一个NFC开发板,其他两个是具有外壳的产品电路板。这两个产品应用于我们的其他一系列项目。
根据我们的设计目标,我把这三块板相关线路连接起来。我规划一下,我们的最终产品 - Arduino插件将具备以下主要功能特征:
实验验证工作持续2-3周后,我们拥有了足够的固件代码( firmware)和测试硬件。在这基础上,我们进一步研发出一款线路板,就是我们将要发售的这个Arduino插件。这里附上最原始的一块印刷电路板,上面并未焊接元器件。
很快我们的成品生产出来了,它插接在Arduino Uno底板上,并能正常工作。
如果设备浏览器尚未运行,把智能手机轻轻触碰一下设备,相应的网页将自动打开,手机的NFC功能就开始使用。
https://www.youtube.com/watch?feature=player_embedded&v=xWsCPwkl1qI
从下面这个视频可以看到,我们能很容易做到把手机和设备进行通信联接。启动设备浏览器,把手机轻轻触碰设备,NFC功能就发挥作用了。
https://www.youtube.com/watch?feature=player_embedded&v=OSV90EJbXMk
ADRC系统能让你自定义规则,让设备之间能够互动,实现各种功能。这就是所谓的机器对机器(M2M)技术。
https://www.youtube.com/watch?feature=player_embedded&v=COxRa2I590E
你可以使用多个遥控器,或不同的遥控器,而他们能同步显示设备的状态。下面的视频展示了三个遥控器控制一台设备,其中有一个是运行在桌面电脑上的应用软件。
https://www.youtube.com/watch?feature=player_embedded&v=5QsuiFFm5SA
不知大家是否熟悉Qt和用户图形界面(GUI)应用开发,其实在很多方面跟Java SWING技术开发类似。本应用程序使用三种主要的窗口控件:容器控件,控制控件,布局控件。我们在智能手机开发上采用Qt技术和XML语言。我们把该XML语言命名为资源标记语言(Resource Markup Language),简称RML。根据你的设计,你可以使用RML语言构建那怕是非常复杂的用户界面。
这里提供更多例子:
简单例子(控制LED灯开关):
<screen name="main-page" margins="4">
<devicebox title="$(NICKNAME)" layout="horizontal" spacing="4" margins="4" skin="wood">
<xpcontrolbox bind="on" layout="horizontal" leftmargin="20" rightmargin="20" stretch="1">
<localetitle><en>LED</en></localetitle>
<xpsvgtoggleswitch bind="on" skin="Beryl"/>
</xpcontrolbox>
<spacer stretch="4"/>
</devicebox>
</screen>
稍复杂例子:
相对复杂例子(采用stylesheets定义和多屏):
当前提供以下窗口控件:
布局/容器类型
不久前我尝试利用Arduino来控制低成本的机器人。我发现Zumo Robot比较合适,购买了一对。几天前,我只花了20分钟去编辑一个RML文件,并编写了控制Zumo的软件代码。这里有实验的一个短片。
https://www.youtube.com/watch?feature=player_embedded&v=QTZ8_iYCUMg
想了解我们的扩展插板如何把ADRC系统和Arduino项目连接起来,请看下图 :
现在ADRC插板仍然处在alpha测试阶段,beta版很快将会进入测试。
我一直在为我们未来的Arduino项目探索一种方案,能实现真正高效的用户图形接口。大概4个月前我决定把我们Xped公司的部分高端技术嵌入到一个适用Arduino的扩展插件上。两个月后,我研发出它的alpha样板,用于测试。
这里给出一张当初项目开始时的真实照片。左上角是我们购买的一个NFC开发板,其他两个是具有外壳的产品电路板。这两个产品应用于我们的其他一系列项目。
根据我们的设计目标,我把这三块板相关线路连接起来。我规划一下,我们的最终产品 - Arduino插件将具备以下主要功能特征:
- 近场通信,英文简称NFC(Near Field Communications)。NFC技术已经应用于无线支付,比如PayWave和PayPass。大部分最近和最新生产的智能手机都支持NFC技术。
- 个人小范围网络,英文简称PAN(Personal Area Networking)。它在网路链路的MAC层采用802.15.4通信协议,其通信距离优于蓝牙(Bluetooth)。
- 芯片植入哈希加密,用于安全操作,比如非接触方式的无线固件(firmware)升级。
- 采用ARM 32位微控制器 STM32F103R8 Cortex M3。
- 256 KB的扩展FLASH内存。
- 提供文件系统,用于数据和文件存储。
实验验证工作持续2-3周后,我们拥有了足够的固件代码( firmware)和测试硬件。在这基础上,我们进一步研发出一款线路板,就是我们将要发售的这个Arduino插件。这里附上最原始的一块印刷电路板,上面并未焊接元器件。
很快我们的成品生产出来了,它插接在Arduino Uno底板上,并能正常工作。
我们现在提供一个库文件给用户,让他们能容易的进行产品二次开发。这里是第一个通过实验测试的案例。在这项目中,我们使用一个无外壳的小直流马达驱动四个三维打印机生成的齿轮。插件插在Arduino底板上,连接并控制马达。
如果设备浏览器尚未运行,把智能手机轻轻触碰一下设备,相应的网页将自动打开,手机的NFC功能就开始使用。
https://www.youtube.com/watch?feature=player_embedded&v=xWsCPwkl1qI
从下面这个视频可以看到,我们能很容易做到把手机和设备进行通信联接。启动设备浏览器,把手机轻轻触碰设备,NFC功能就发挥作用了。
https://www.youtube.com/watch?feature=player_embedded&v=OSV90EJbXMk
https://www.youtube.com/watch?feature=player_embedded&v=COxRa2I590E
你可以使用多个遥控器,或不同的遥控器,而他们能同步显示设备的状态。下面的视频展示了三个遥控器控制一台设备,其中有一个是运行在桌面电脑上的应用软件。
https://www.youtube.com/watch?feature=player_embedded&v=5QsuiFFm5SA
这里提供更多例子:
简单例子(控制LED灯开关):
<screen name="main-page" margins="4">
<devicebox title="$(NICKNAME)" layout="horizontal" spacing="4" margins="4" skin="wood">
<xpcontrolbox bind="on" layout="horizontal" leftmargin="20" rightmargin="20" stretch="1">
<localetitle><en>LED</en></localetitle>
<xpsvgtoggleswitch bind="on" skin="Beryl"/>
</xpcontrolbox>
<spacer stretch="4"/>
</devicebox>
</screen>
稍复杂例子:
相对复杂例子(采用stylesheets定义和多屏):
当前提供以下窗口控件:
布局/容器类型
- box(普通盒子)
- groupbox(可包含多类型窗口)
- devicebox(能接收设备状态)
- signalbox(能接收信号强度)
- controlbox(容纳普通控件)
- separator(用于隔断)
- spacer(用于距离间隔)
- label(文本)
- checkbox(选择框)
- pushbutton(按钮)
- svgbutton(SVG图片按钮)
- svgtoggleswitch(SVG选择开关)
- svgslideswitch(SVG滑动开关)
- slider(滑动调节)
- scrolldial(指针型仪表)
- scrollwheel(滚动轮)
- scrolldialwheel(滚动控制,仪表显示)
- 5waybutton(5按钮组合)
- 3waybutton(3按钮组合)
- 2waybutton(2按钮组合)
- rockerbutton(二选一按钮)
- radiogroup(选择型按钮)
- progress(渐进条)
- led(灯)
- 7seg
- dialgauge(仪表)
- lineedit(文字输入)
- listbox(列表)
不久前我尝试利用Arduino来控制低成本的机器人。我发现Zumo Robot比较合适,购买了一对。几天前,我只花了20分钟去编辑一个RML文件,并编写了控制Zumo的软件代码。这里有实验的一个短片。
https://www.youtube.com/watch?feature=player_embedded&v=QTZ8_iYCUMg
想了解我们的扩展插板如何把ADRC系统和Arduino项目连接起来,请看下图 :
现在ADRC插板仍然处在alpha测试阶段,beta版很快将会进入测试。

No comments:
Post a Comment