0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino开源平台的软硬件设计介绍

电子设计 来源:郭婷 作者:电子设计 2019-03-05 08:13 次阅读

与GNU,Linux和其他开源软件改变编程世界的方式大致相同,支持Arduino的开源硬件平台开始重写许多嵌入式应用程序的参与规则。 Arduino开源电子原型开发平台最初是为自己动手(DIY)和业余爱好者社区开发的,它基于灵活,易用的硬件和软件。虽然在艺术家,修补匠和其他创意类型中仍然广受欢迎,但其低成本,以及快速增长的免版税众包IP生态系统正在赢得许多商业开发者的忠诚度。在这个简短的调查中,我们将回顾Arduino背后的硬件和软件,以及它正在供电的一些应用程序。

图1:MakerBot的Thing-O-Matic 3D打印机价格仅为传统数控机床的一小部分,使用Arduino处理器板来控制其步进电机,热敏打印头和其他机电元件。该产品将廉价的ABS长丝原料转变为成品,用于原型制作或小批量生产,尺寸公差接近0.02 mm。 (由MakerBot Industries提供)

Arduino历史

Arduino不是一个特定的产品或技术,而是围绕Atmel的megaAVR系列8位MCU成长的硬件,软件,工具和人力资源的生态系统。其紧凑的电路板,C ++派生的编程语言和编程环境很大程度上归功于哥伦比亚艺术家和程序员Hernando Barrag于2003年创建的Wiring开源原型平台的多功能性和易用性。 Barrag的目标是简化爱好者,艺术家,研究人员和其他非工程师的电子系统开发,同时提供对经验丰富的开发人员所需的所有铃声,口哨和黑客的轻松访问。基于ATmega1281和ATmega2561微控制器,紧凑,廉价的Wiring/WiringMini处理器板已经被用于创建从交互式玩具和足球机器人到扫描电子显微镜控制器的所有东西。

Arduino平台最初由Massimo Banzi和David Cuartielles于2005年在意大利开发,作为学生设计项目的工具。它扩展了接线平台的功能,增加了一些新的编程功能和标准互连系统,允许CPU板连接到各种可互换的附加模块(称为屏蔽)。

Arduino硬件

与其前身一样,Arduino开源硬件平台基于Atmel的多功能ATmega MCU系列(图2)。 ATmega改进的哈佛式AVR处理器内核结合了丰富的指令集和32个通用工作寄存器。所有32个寄存器都直接连接到算术逻辑单元(ALU),允许在一个指令周期内访问两个独立的寄存器。 ATmega MCU提供4 K或8 KB的系统内可编程闪存(具有读写功能)以及EEPROM(256/512/512/1 KB)和SRAM(512/1 K/1)的各种组合K/2千字节)。

Arduino开源平台的软硬件设计介绍

图2:Atmels的ATmega MCU的框图。 (由Atmel Microelectronics提供)

AVR CPU具有强大的硬件功能和I/O功能。虽然有些MCU的配置略有不同,但大多数设备包括:

23通用I/O线

6通道或8通道10位ADC

六个PWM通道

串行可编程USART

一个面向字节的2线串行接口

一个SPI串口

三个灵活的定时器/计数器(带比较模式)

带有独立振荡器的实时计数器

带内部振荡器的可编程看门狗定时器

所有形状因子场合

Arduino手机中装有越来越多的处理器板,这些处理器板是为适应特定的外形或应用而开发的。大多数设计包括稳压电源和一组连接,以评估其总线信号和面向控制的I/O.由Arduino团队创建的最受欢迎的板之一是Uno(图3)。该板包括一个16 MHz晶体振荡器,一个USB连接,一个电源插孔,一个ICSP接头和一个复位按钮。它的片上稳压器允许它通过AC-DC适配器或电池供电,或通过USB电缆连接供电。

图3:Arduino Uno板。 (由Arduino.cc提供)

Uno Board的I/O母针连接器可以访问MCU的14个数字输入/输出引脚和6个模拟输入。六个I/O引脚可用作PWM输出,从照明调光器到电机控制器等各种功能都非常方便。这些连接器还可以添加辅助板,称为屏蔽,可以包含额外的电子设备和I/O连接。

Arduino Nano是一款稍微紧凑的电路板,基于ATmega328或ATmega168,专门设计用于掉到面包板上(图4a)。对于空间更高的应用,Arduino Mini(图4b)也可用。其他变体包括用于小型电路的面包板区域或板载通信功能,如蓝牙以太网(图4c)。 Arduino系列中最独特的成员之一是LilyPad,专为“智能服装”和电子纺织品设计的板(图4d)。可清洗/可穿戴处理器板可缝合到织物上,并使用导电线连接到类似安装的电源,传感器和执行器。

图4:Arduino平台的流行变体包括Nano(4a),Mini(4b),Arduino以太网(4c)和可清洗/可穿戴LilyPad(4d)。 (由Arduino.cc提供)

大多数“官方”Arduino板设计都可以作为预组装板,快速构建套件以及通常作为裸板使用。商业设计师(和硬核DIY用户)可以从开源硬件CAD文件中推出自己的主板,并下载Arduino软件,以便在开源许可协议下使用。

Arduino编程

Arduino硬件平台由开源软件包支持,该软件包由集成开发环境(IDE),标准编程语言编译器和直接在板上运行的引导加载程序组成。

软件开发是使用Arduino IDE执行的,这是一个基于Processing编程语言和Wiring项目的用Java编写的跨平台应用程序。虽然最初设计用于向不熟悉软件开发的艺术家和其他新手介绍编程,但它具有的功能和扩展使更多有经验的程序员感到舒适和高效。代码编辑器包括语法突出显示,括号匹配和自动缩进等功能,并且只需单击即可编译和上载程序到板。

Arduino程序是用C/C ++编写的,虽然用户只需要定义两个函数来制作一个可运行的程序:

setup() - 一个函数运行一次在可以初始化设置的程序开始时

loop() - 一个重复调用的函数,直到电路板关闭电源

IDE还包括一个C/C ++函数库,支持最常见的输入/输出操作。

Arduino.cc网站免费提供完整的IDE,大量扩展和示例代码,以及一套有关编程的综合教程。

I/O扩展(屏蔽)

几乎所有的Arduino电路板都可以使用称为“屏蔽”的夹层式附加卡轻松扩展,这些插卡通过简单的0.10“引脚连接到MCU的总线和I/O信号头。屏蔽的可堆叠混合和匹配连接系统使用市场上的几个制造商或众多引脚兼容的扩展屏蔽套件中的一个提供的商用预组装板,可以轻松添加I/O或其他扩展电路。

Arduino平台引起了业余爱好者和商业嵌入式社区的兴趣,产生了大量专用屏蔽,包括中继板,高分辨率多通道D/A或A/D转换器,交流或直流电源控制器和电机控制器(图5)。由于市场上有几种以太网屏蔽,因此将Arduino板连接到有线网络很容易。

图5:额定工作电压高达30 V和2.8 A峰值输出,这款商用Arduino电机控制屏可驱动两个直流电机机器人或运动控制应用。 (由RuggedCircuits提供)

为Arduino设计添加无线功能也很容易。可以使用支持ZigBee,蓝牙和801.11无线协议的屏蔽。还有几个屏蔽包含一个完整的基于GSM的蜂窝收发器,支持GPRS服务,并使用计算机USB端口提供的电压在Arduino Uno和Mega板上运行。

与Linux从开源社区迁移到商业软件市场的方式大致相同,Arduino的低成本和多功能性开始在商业硬件开发商中建立忠诚的追随者。虽然许多初始应用程序是由业余爱好者和学者开发的,但预计用于创建它们的Arduino技术将很快进入商业产品。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27033

    浏览量

    201393
  • 电机
    +关注

    关注

    139

    文章

    8312

    浏览量

    142072
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184832
收藏 人收藏

    评论

    相关推荐

    支持过程级动态软硬件划分的RSoC设计与实现

    目前,可重构计算平台所支持的动态软硬件划分粒度多处于线程级或指令级,但线程级划分开销太大,而指令级划分又过于复杂,因此很难被用于实际应用之中。本文设计并实现了一种支持过程级动态软硬件划分的可重构片上
    发表于 05-28 13:40

    基于Altera FPGA的软硬件协同仿真方法介绍

    摘要:简要介绍软硬件协同仿真技术,指出了在大规模FPGA开发中软硬件协同仿真的重要性和必要性,给出基于Altera FPGA的门级软硬件协同仿真实例。 关键词:系统级芯片设计;
    发表于 07-04 06:49

    NI软硬件平台在汽车ECU开发和测试中的应用是什么?

    NI软硬件平台在汽车ECU开发和测试中的应用是什么?
    发表于 05-12 06:14

    何为Arduino

    控制板)和Arduino集成开发环境(Arduino IDE)组成,可以理解ArduinoArduino软硬件
    发表于 07-23 06:02

    如何利用Arduino实现无线遥控灯的设计

    目录项目软硬件平台及开发环境1.硬件平台2.软件平台2.1平台
    发表于 11-24 07:30

    如何构建Arduino官方开发环境

    电子原型平台Arduino平台硬件(各种型号的Arduino控制板)和Arduino集成开发
    发表于 12-24 06:44

    Purple Pi R1 开发板软硬件资源介绍

    Purple Pi R1 开发板软硬件资源介绍*附件:Purple Pi R1 开发板软硬件资源介绍.pdf
    发表于 09-06 14:27

    单片机测控系统的软硬件平台技术

    本文探讨了一种用于工业测控系统的单片机软硬件综合设计方法——软硬件平台技术,重点阐述了其基本原理、设计思想、实现方法,并给出了一个单片机测控系统软硬件开发
    发表于 08-13 09:38 12次下载

    基于USB的串行通信软硬件设计

    本文是基于USB的串行通信软硬件设计的详细介绍
    发表于 10-17 17:38 127次下载
    基于USB的串行通信<b class='flag-5'>软硬件</b>设计

    SOPC的嵌入式软硬件协同设计平台实现

    对基于FPGA的SOPC软硬件协同设计方法进行了研究,在此基础上,详细设计了系统硬件平台,并对硬件平台
    发表于 12-22 11:01 1346次阅读
    SOPC的嵌入式<b class='flag-5'>软硬件</b>协同设计<b class='flag-5'>平台</b>实现

    基于FPGA芯片的软硬件平台的使用

    基于FPGA芯片的软硬件平台的使用
    发表于 07-01 09:35 20次下载

    为什么要从“软硬件协同”走向“软硬件融合”?

    软件和硬件需要定义好交互的“接口”,通过接口实现软硬件的“解耦”。例如,对CPU来说,软硬件的接口是指令集架构ISA:ISA之下的CPU处理器是硬件,指令集之上的各种程序、数据集、文件
    的头像 发表于 12-07 14:23 1924次阅读

    软硬件开源,航芯方案分享 | 旋钮温控器方案

    航芯旋钮温控器方案,软硬件开源,干货满满!
    发表于 03-02 10:48 399次阅读
    <b class='flag-5'>软硬件</b>全<b class='flag-5'>开源</b>,航芯方案分享 | 旋钮温控器方案

    软硬件融合的概念和内涵

    跟很多朋友交流,当提到软硬件融合的时候,他们会这么说:“软硬件融合,难道不是显而易见吗?我感觉在二三十年前就已经有这个概念了。”在他们的想法里,其实:软硬件融合等同于软硬件协同,甚至等
    的头像 发表于 10-17 14:36 535次阅读
    <b class='flag-5'>软硬件</b>融合的概念和内涵

    基于CW32单片机做的软硬件开源项目

    今天就再给大家分享一个基于CW32单片机做的软硬件开源项目,其中包括RTOS、GUI、蓝牙、电源管理等众多常用功能。
    的头像 发表于 10-19 10:17 569次阅读
    基于CW32单片机做的<b class='flag-5'>软硬件</b><b class='flag-5'>开源</b>项目