利用Arduino互动平台进行的创新设计

利用Arduino互动平台进行的创新设计,第1张

  引言

  Arduino是一系列基于单片机人机互动产品开发平台,由于其具有高度的模块化特点,有时也叫它“电子积木”。它的硬件平台是开放的,任何人都可以在Arduino官方网站上下载最新PC++B设计进行复制。Arduino的硬件平台包括基于AVR单片机的主控制电路板,以及大量的各式输入/输出电子模块。输入/输出模块包括开关输入模块、温度压力传感器输入模块、超声测距传感器输入模块、各类显示输出模块、电机控制模块等,甚至还有以太网接入模块。由于Arduino具有丰富易用的模块,已经在各类机电创新设计比赛中得到广泛应用。在软件方面,Arduino有一个属于自己的基于Eclipse的IDE软件开发环境,开发语言采用类C++语言的高级语言,容易被使用者掌握。有大量的库文件可以通过互联网下载免费获得,大大简化了程序开发工作。由于Arduino丰富的外围模块、容易掌握的开发语言和环境,大量的库支持,使得基于Arduino的电子互动产品设计越来越多。从Arduino诞生的2005年到2011年,已有超过15万块的Arduino模板售出[1]。本文介绍了Arduino的硬件、软件,并给出了采用Arduino开发互动产品的实例,使初学者对它有一个基本的认识。

  1 Arduino硬件

  1.1 Arduino主控板

  Arduino的主控板采用AVR单片机,最新的版本是UNO,与之前的版本不同,它不再使用FTDI USB串行驱动芯片,而是把Atmega8U2编程为一个USB设备。相对于它的前几代,这带来了许多好处。首先是价格降低了,更重要的是这使得Arduino在PC端可以显示为一个USB设备,就像是一个鼠标或游戏 *** 作手柄,这开辟了Arduino的新用途[1]。总之,Arduino的主控板就是一个单片机控制板,在这一点上与其他单片机控制板并无本质的区别,但是由于其拥有丰富的系列产品、大量的开源软件,让Arduino得到了更为广泛的应用和支持。

  1.2 Arduino输出模块

  市场上已经出现了围绕Arduino Duemilanove开发的很多输出模块:有视觉输出的,如LED灯控制、LCD控制、触摸屏控制等;有声音输出的,如蜂鸣器和扬声器模块;还有物理系统的控制模块,如各类直流小马达步进电机、机器人舵机等。另外,还可以利用AVR单片机的PWM输出口进行D/A转换。这些模块大大拓展了Arduino作为一个单片机平台的用途。其中基于LN298设计的直流马达控制模块在各类机器人项目中采用得很多,这种模块能够同时控制两路直流马达,与ArduinoDuemilanove之间的连接也十分简便。输出单元的模块化使搭建基于Arduino系统的应用项目很方便。

  1.3 Arduino输入模块

  最一般的输入如各类按钮、位置行程开关等都有相应的模块可以购买。其他诸如超声测距、压力传感器温度传感器、倾角传感器等也有相应的模块可以直接应用。还有记录数据和通信用的模块、如SD卡模块,以太网接入模块等,这让Arduino不仅仅作为一个控制终端使用,还可以进行数据的存储和简单处理,以及与外界系统通信等,可见其输入模块资源丰富。从输入的信号来看,可以分为数字量的信号输入(如以上的开关模块等),模拟量的信号输入(如温度、压力传感器模块),通过总线网络方式的数据输入(如采用各类通信协议的传感器模块等)。

  2 Arduino软件

  2.1 Arduino编程语言

  Arduino编程语言是建立在C/C++语言基础上的。Arduino语言把AVR单片机(微控制器)相关的一些参数设置都参数化了,不用开发者去了解其底层,对AVR单片机了解不多的用户也可以容易地开发基于AVR的项目。需要注意的是,Arduino的语言与C语言运行机制还是有一些区别的,特别是在项目程序中必须包括setup和loop两个函数。setup函数在系统上电或复位后运行一次,因此一般用户在其中做一些初始化工作,如设定串口通信的波特率等,一些一次性的工作也可以放在这个函数中运行,如下文中的写SD卡文件的例子程序。Loop函数是Arduino软件项目的主体,系统上电并且运行完成setup函数后,就进入loop函数,并且该函数是一个无限循环的过程,这一点需要开发者特别注意,这与C语言的void main(){}是有很大区别的。loop函数相当于下面这样一个无限循环过程:

  while(1){

  用户程序

  }

  在系统setup执行之后,总是进入这个函数,开发者需要把自己的程序放在这个函数内运行。

  2.2 Arduino开发环境

  Arduino的开发环境很简洁,用户可以在其官方网站上免费下载使用,IDE如图1所示。可以看到,在一个简单的菜单和工具条下,就是IDE的编程窗口和一个串行通信监视窗口。其中工具条包含了保存打开文件、向Arduino板下载程序等主要功能,与一般的Windows软件并无不同。在编程窗口下是一个串口监视器窗口。因为Arduino开发板没有专门的显示平台,在许多程序的调试过程中需要Arduino传输给上位机一些信息以便于开发者判断程序的运行状况,或者得到程序的运行结果。这些结果可以通过串口监视器显示,开发者也可以通过该窗口向Arduino板发送一些信息,极大地方便了项目的开发。

   利用Arduino互动平台进行的创新设计,1.gif,第2张

  

  图1 Arduino的IDE

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2524457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存