首页
/ 掌控未来,就从Windows远程Arduino开始!

掌控未来,就从Windows远程Arduino开始!

2024-05-30 09:10:20作者:裘晴惠Vivianne

项目简介

Windows远程Arduino是一个强大的开源Windows运行时组件库,旨在让开发者通过蓝牙、USB、WiFi或以太网控制Arduino板。无论你是C++/CX、C#还是JavaScript开发者,只要将这个组件引入你的项目,就能在任何WinRT语言中直接使用其功能。它基于Firmata协议,而该协议已在Arduino IDE的预装库中实现。

查看许可协议

简而言之 尝试Windows远程Arduino体验版应用, 开始你的远程Arduino项目之旅

简单试用

Windows远程Arduino是软件与物理世界的桥梁,借助Windows 10的强大功能,我们可以为Windows手机、Surface Pro 3、桌面电脑甚至是Raspberry Pi 2打开新世界的大门。只需将设备配对到Arduino,就可以用指尖触碰现实!

我们还推出了一款名为Windows远程Arduino体验的通用Windows应用,无需编写代码即可探索GPIO、模拟输入和PWM功能,包括在Windows IoT Core设备如Raspberry Pi 2上操作!该应用是开源的,下载并部署它,你的探索之旅即刻启程!

  1. 将StandardFirmata上传至Arduino,记下其设置的波特率
  2. 从Windows商店下载Windows远程Arduino体验,或直接在Visual Studio下载源码进行部署。
  3. 连接设备时确保选择正确的波特率。蓝牙设备可能需要特定的波特率,StandardFirmata和Windows远程Arduino两者间的设置需一致。

开始你的远程Arduino项目

只需五步,你就可以创建自己的项目!

  1. 向Arduino上传StandardFirmata
  2. 创建项目或使用示例项目
  3. 选择连接方法。串行通信如USB和蓝牙有一些设置需要检查还有关于如何配置蓝牙设备的完整指南。也可以使用以太网或WiFi,但需要额外的硬件
  4. 验证Windows解决方案中的package.appxmanifest文件是否包含了必要的设备功能
  5. 查看使用说明,开始编写你的远程Arduino代码!

功能特性

Windows远程Arduino开箱即用的功能包括:

  1. GPIO — 模拟和数字I/O
    • digitalWrite — 数字写入
    • digitalRead — 数字读取
    • analogWrite — 模拟写入
    • analogRead — 模拟读取
    • pinMode — 设置任何引脚的模式
    • 事件监听 — 当值变化或报告时接收事件
  2. I2C/TwoWire — 发送/接收通过I2C与其他设备的数据
  3. 自定义协议 — 通过Firmata SysEx命令实现自定义协议

微控制器

Arduino系列是一种基于开放平台的微控制器,设备简单可编程,可以处理GPIO等基本任务,以及更复杂的I2C通信协议。利用简单的Arduino“草图”,你可以快速将传感器和其他设备接入Arduino,赋予硬件指令。

然而,像Arduino这样的微控制器受到单线程性质的限制。Windows远程Arduino则将物理控制的全部功能与Windows设备(如多线程、原生文件系统、简便的互联网访问等)的强大软件能力结合在一起,开启新的可能性。

Windows 10

Windows 10推出了通用Windows平台(UWP)的概念。这意味着开发者可以开发一个适用于所有运行Windows 10设备的解决方案,包括Windows Phone 10和Raspberry Pi 2。只需在你的解决方案中包含Windows远程Arduino库,就能把任何Windows设备变成Arduino的远程编程界面!现在,你可以利用Windows 10操作系统的力量,通过多线程、数据存储、互联网访问和自然用户体验,为Arduino开辟全新的高级功能和创新项目。

支持的主板

以下列出了一些经过充分测试,使用本库所有连接方法的主板。未列出的主板并不意味着不兼容,只是尚未经过测试和验证。实际上,大多数主板都能与Windows远程Arduino配合使用,只要它们能够运行StandardFirmata或其他理解Firmata协议的草图。

Arduino

  1. Uno
  2. Leonardo
  3. Mega

DFRobot

  1. Bluno
  2. Bluno Beetle

软件架构

实现采用三层结构设计,每层都作为Windows运行时组件的入口点。大多数制造商可以只使用最顶层(RemoteWiring),它的接口几乎与Arduino Wiring完全相同,提供了基础的GPIO和通过I2C与其他设备通信的指令。大部分制造商可能永远不需要更多的东西。然而,对于要创建复杂行为的想法,制作者可以选择直接与Firmata层交互。

层级

架构中有三个层级;它们是接口、协议和传输。每一层都是下面层级的消费者,因此依赖于它们。然而,一层永远不会依赖其上面的任何层。分层构造使得可以随时更换或直接使用任意一层的实现。按照层级顺序,它们分别是:

  • RemoteWiring(接口)
  • Firmata(协议)
  • Serial(传输)

例如,Firmata层会翻译RemoteWiring层请求到Firmata协议,然后传递给Serial层,由其将数据传送到Arduino(反之亦然)。Firmata层不知道Serial实现的具体情况,也不知道实际使用的传输方式。相反,Firmata层完全不知道RemoteWiring层的存在,因此可以用于非常高级的项目需求!

RemoteWiring

RemoteWiring层的主要接口类是RemoteDevice,这是大多数情况下应该使用的主API入口点。它提供了一个几乎与Arduino Wiring API相同的接口,如果你自己写过Arduino草图,应该很熟悉。然而,几乎所有通过这一层的调用都会被导向下方的Firmata层,所以只有在项目需要非常高级的行为时才需要绕过或扩展这一层!

Firmata

Firmata的实现直接来源于Firmata仓库,做了最小程度的修改(例如移除arduino/hardware依赖),并被封装在一个透明的Windows运行时组件库类中,称为UwpFirmata。 包装器没有改变或添加功能,只提供了参数平滑(例如char * -> String)和范式转换(例如callbacks -> events)。这一层完全独立于上方的RemoteWiring层,因此可以作为一个完全功能的Firmata实现!

UwpFirmata利用Windows操作系统的一个优势是可以在后台线程读取输入,而不是局限于单一的执行线程。大多数情况下,这个线程是由库自行创建和管理的。但是,如果你选择自己构建Firmata层(即创建UwpFirmata对象),可以选择启用此功能或者自己处理。如果项目不需要从Arduino读取输入(或想要自己处理输入),可以去高级使用部分了解更多信息。

探索你的创造力,用Windows远程Arduino打开无限可能!

热门项目推荐
相关项目推荐

项目优选

收起
Python-100-DaysPython-100-Days
Python - 100天从新手到大师
Python
609
115
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
286
79
mdmd
✍ WeChat Markdown Editor | 一款高度简洁的微信 Markdown 编辑器:支持 Markdown 语法、色盘取色、多图上传、一键下载文档、自定义 CSS 样式、一键重置等特性
Vue
111
25
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
60
48
RuoYi-Cloud-Vue3RuoYi-Cloud-Vue3
🎉 基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统
Vue
45
29
go-stockgo-stock
🦄🦄🦄AI赋能股票分析:自选股行情获取,成本盈亏展示,涨跌报警推送,市场整体/个股情绪分析,K线技术指标分析等。数据全部保留在本地。支持DeepSeek,OpenAI, Ollama,LMStudio,AnythingLLM,硅基流动,火山方舟,阿里云百炼等平台或模型。
Go
1
0
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
205
57
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
184
34
RuoYi-VueRuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
182
44
frogfrog
这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体。
Java
8
0