掌控未来,就从Windows远程Arduino开始!
项目简介
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上操作!该应用是开源的,下载并部署它,你的探索之旅即刻启程!
- 将StandardFirmata上传至Arduino,记下其设置的波特率。
- 从Windows商店下载Windows远程Arduino体验,或直接在Visual Studio下载源码进行部署。
- 连接设备时确保选择正确的波特率。蓝牙设备可能需要特定的波特率,StandardFirmata和Windows远程Arduino两者间的设置需一致。
开始你的远程Arduino项目
只需五步,你就可以创建自己的项目!
- 向Arduino上传StandardFirmata
- 创建项目或使用示例项目
- 选择连接方法。串行通信如USB和蓝牙有一些设置需要检查,还有关于如何配置蓝牙设备的完整指南。也可以使用以太网或WiFi,但需要额外的硬件。
- 验证Windows解决方案中的
package.appxmanifest
文件是否包含了必要的设备功能。 - 查看使用说明,开始编写你的远程Arduino代码!
功能特性
Windows远程Arduino开箱即用的功能包括:
- GPIO — 模拟和数字I/O
- digitalWrite — 数字写入
- digitalRead — 数字读取
- analogWrite — 模拟写入
- analogRead — 模拟读取
- pinMode — 设置任何引脚的模式
- 事件监听 — 当值变化或报告时接收事件
- I2C/TwoWire — 发送/接收通过I2C与其他设备的数据
- 自定义协议 — 通过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
- Uno
- Leonardo
- Mega
DFRobot
- Bluno
- 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打开无限可能!
鸿蒙开发工具大赶集
本仓将收集和展示鸿蒙开发工具,欢迎大家踊跃投稿。通过pr附上您的工具介绍和使用指南,并加上工具对应的链接,通过的工具将会成功上架到我们社区。012hertz
Go 微服务 HTTP 框架,具有高易用性、高性能、高扩展性等特点。Go01每日精选项目
🔥🔥 每日精选已经升级为:【行业动态】,快去首页看看吧,后续都在【首页 - 行业动态】内更新,多条更新哦~🔥🔥 每日推荐行业内最新、增长最快的项目,快速了解行业最新热门项目动态~~029kitex
Go 微服务 RPC 框架,具有高性能、强可扩展的特点。Go00Cangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。Cangjie057毕方Talon工具
本工具是一个端到端的工具,用于项目的生成IR并自动进行缺陷检测。Python040PDFMathTranslate
PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/DockerPython06mybatis-plus
mybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com 低代码组件库 http://aizuda.comJava03国产编程语言蓝皮书
《国产编程语言蓝皮书》-编委会工作区018- DDeepSeek-R1探索新一代推理模型,DeepSeek-R1系列以大规模强化学习为基础,实现自主推理,表现卓越,推理行为强大且独特。开源共享,助力研究社区深入探索LLM推理能力,推动行业发展。【此简介由AI生成】。Python00
热门内容推荐
最新内容推荐
项目优选









