6.1 概述
掌控板3.0支持C/C++编程, 既可以使用官方的arduino IDE也可以在vscode下安装PlatformIO插件,构建开发环境,vscode+platformIO无论代码编辑还是编译速度,都优于arduino IDE,推荐使用此环境。
6.1.1 PlatformIO简介
PlatformIO是一个开源的物联网开发生态系统,主要用于嵌入式系统开发,为开发者提供了便捷高效的开发环境。以下是详细介绍:
- 特点优势:
跨平台兼容性好:可在Windows、Linux、macOS等操作系统上使用,支持超过350个嵌入式设备、20多个开发平台及10多个框架,如STM32、ESP32、Arduino等。
开发流程简化:自动下载所需工具链,开发者无需手动组装工具链、编译器和库依赖,点击编译按钮即可自动引入所有必要依赖。
调试功能强大:具备全面的调试环境,支持多种调试探针和目标系统,可通过预定义配置快速调试项目,还能切换到混合模式反汇编视图等进行深入调试。
支持远程开发:允许开发者在喜爱的本地环境中,利用远程机器的计算能力和连接设备进行开发,可在远程机器上运行测试,无需额外软件、SSH等。
- 核心组件:
PlatformIO IDE:可作为插件集成到Visual Studio Code、Atom等编辑器中,提供代码编辑、编译、上传和调试等功能。
PlatformIO Core:基于Python的命令行工具,可独立使用,能实现编译、上传、测试和管理项目依赖等功能。
PlatformIO Library Manager:方便用户通过PlatformIO程序库网站或命令行工具,搜索、安装和更新第三方库。
PlatformIO Boards Manager:支持众多开发板,可方便地配置和选择不同硬件平台进行开发。
PlatformIO Frameworks:提供对Arduino、Mbed、STM32Cube等多个嵌入式框架的支持。
- 使用方法:
安装:若使用VSCode或Atom,可通过插件市场安装PlatformIO IDE插件;命令行用户可通过`pip install -U platformio`安装PlatformIO Core。
初始化新项目:使用`platformio init`命令创建新的项目结构。
配置项目:在`platformio.ini`文件中设置开发板、框架等项目选项。
编译和上传:使用`platformio run`编译项目,使用`platformio run –target upload`上传到硬件设备。
调试:支持通过GDB或OpenOCD进行硬件调试。
以下是一些PlatformIO相关的社区:
[PlatformIO官方社区]:https://community.platformio.org PlatformIO官方提供的社区平台,开发者可以在这里进行技术讨论、寻求帮助、分享项目经验等,是获取PlatformIO相关支持和资源的重要渠道。
[CSDN上的PlatformIO相关板块]:https://www.csdn.net/ CSDN上有许多关于PlatformIO的博客文章、问答等内容,开发者可以通过搜索“PlatformIO”获取相关信息,也可以参与讨论和交流。
[OSCHINA社区PlatformIO项目页面]:https://www.oschina.net/project/widgets/_project_list?p=5&recommend=false&sort=view&tag=417 OSCHINA是中文开源技术交流社区,其PlatformIO项目页面有相关的技术讨论和资源分享,适合国内开发者交流。
6.1.2 arduino简介
Arduino 是一款开源电子原型平台,自 2005 年诞生以来,凭借其简单易用、灵活性高和开源共享的特点,迅速成为电子爱好者、学生、设计师及工程师们进行电子原型开发的热门工具。
1、核心组成
硬件:主要是各种型号的 Arduino 开发板,常见的有 Arduino Uno、Mega、Nano、Due 等。这些开发板以微控制器为核心(如早期多采用 Atmel AVR 系列,后来也有使用 ARM 架构等),配备了数字输入/输出引脚、模拟输入引脚、USB 接口、电源接口等,方便连接各种传感器、执行器等外部设备。
软件:包括 Arduino IDE(集成开发环境),它提供了简单的编程界面,支持使用类 C/C++ 的编程语言进行开发。用户可以通过 IDE 编写代码、编译并上传到开发板中。也可以使用VSCode等其他编辑器进行开发。
2、主要特点
开源性:硬件设计图纸和软件代码都是开源的,任何人都可以自由查看、修改和分享,这促进了全球开发者社区的形成和发展,大家可以共享各种项目案例和解决方案。
易用性:编程语法简单易懂,相比传统的嵌入式开发,降低了入门门槛,即使是没有太多编程和电子知识的人,也能快速上手。
灵活性:支持丰富的扩展模块(称为“ shields ”),如以太网 shield、WiFi shield、显示屏 shield 等,通过这些模块可以轻松实现各种功能,满足不同项目的需求。
跨平台性:Arduino IDE 可以在 Windows、Mac OS 和 Linux 等多种操作系统上运行,方便用户在不同的环境下进行开发。
3、应用领域
教育领域:是学生学习电子技术、编程和物联网知识的理想工具,通过实际操作可以加深对理论知识的理解。
创客项目:创客们利用 Arduino 制作出各种创意作品,如智能机器人、智能家居设备、环境监测装置等。
工业原型:在工业产品开发初期,工程师可以使用 Arduino 快速制作原型,验证产品的功能和可行性,降低开发成本和周期。
艺术创作:艺术家将 Arduino 与各种艺术形式结合,创作出动感雕塑、互动装置等艺术作品,赋予艺术更多的科技感和互动性。
4、社区与资源
Arduino 拥有庞大的全球社区,用户可以在社区中交流经验、分享项目、解决问题。同时,还有丰富的学习资源,如官方文档、教程、书籍、视频等,帮助新手快速入门和提升技能。
总之,Arduino 为电子原型开发提供了一个便捷、高效的平台,它不仅推动了电子技术的普及,也激发了人们的创新精神,在各个领域都有着广泛的应用和发展前景。
以下是一些知名的Arduino社区:
[Arduino官方论坛]:https://forum.arduino.cc/ Arduino官方提供的社区平台,有丰富的文档、软件下载资源,用户可以在这里进行技术讨论、分享项目经验、报告软件或硬件问题,还能获取官方教程以及关于Arduino产品和服务的最新信息。
[Arduino中文社区]:http://www.arduino.cn/ 国内Arduino爱好者自发组织的非官方、非盈利性社区,也是国内专业的Arduino讨论社区,这里有各种Arduino相关的教程、项目、想法和资料,方便爱好者交流学习。
[DF创客社区Arduino论坛]:https://mc.dfrobot.com.cn/ 有齐全的Arduino学习资料、教程、驱动下载和硬件套件,还包含国内丰富的Arduino开源硬件、套件及零部件的使用说明和经验交流内容,有助于初学者快速入门。
[极客迷Arduino论坛]:https://www.geekfans.com/forum-104-1.html 提供Arduino爱好者使用交流经验和常见问题解答等内容,是爱好者互相学习和解决问题的平台之一。
[Reddit上的Arduino板块]:https://www.reddit.com/r/arduino/ 全球Arduino爱好者聚集的地方,用户可以在这里讨论Arduino开发的相关话题,分享项目、教程和资源,还能参与每周的项目展示、AMA(问我任何事)等活动,获取行业专家和经验丰富的开发者的建议。
[Arduino Educators Community]:https://www.arduino.cc/education/educator-community 专为教育工作者设立的社区,包括大学教育工作者、职业和技术教师等,他们可以在这里参与研讨会、测试新产品、提供反馈,还能获得设计产品和服务的机会以及免费的Arduino产品等。
[GitHub上的Arduino相关项目社区]:https://github.com/topics/arduino 许多Arduino开发者会将自己的项目代码、库文件等上传到GitHub,用户可以在这里获取丰富的项目资源、代码示例,与其他开发者协作,共同解决技术难题。
[Arduino Playground]:http://playground.arduino.cc/ 这是一个由用户贡献的教程宝库,包含各种代码示例、项目想法和深入的技术讨论,适合开发者深入学习和探索Arduino相关知识。