人工智能
Arduino
Arduino 编程积木互动教程
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
Arduino
## Arduino是什么? Arduino是一个开放源码电子原型平台,拥有灵活、易用的硬件和软件。Arduino专为设计师,工艺美术人员,业余爱好者,以及对开发互动装置或互动式开发环境感兴趣的人而设的。  Arduino可以接收来自各种传感器的输入信号从而检测出运行环境,并通过控制光源,电机以及其他驱动器来影响其周围环境。板上的微控制器编程使用Arduino编程语言(基于Wiring)和Arduino开发环境(以Processing为基础)。Arduino可以独立运行,也可以与计算机上运行的软件(例如,Flash,Processing,MaxMSP)进行通信。Arduino开发 IDE 接口基于开放源代码,可以让您免费下载使用开发出更多令人惊艳的互动作品。 Arduino是人们连接各种任务的粘合剂。要给Arduino下一个最准确的定义,最好用一些实例来描述。 您想当咖啡煮好时,咖啡壶就发出“吱吱”声提醒您吗? 您想当邮箱有新邮件时,电话会发出警报通知您吗? 想要一件闪闪发光的绒毛玩具吗? 想要一款具备语音和配送功能的X教授蒸汽朋克风格轮椅吗? 想要一套按下快捷键就可以进行实验测试蜂音器吗? 想自制一个《银河战士》手臂炮吗? 想自制一个心率监测器,将每次骑脚踏车的记录存进存储卡吗? 想过自制一个能在地面上绘图,能在雪中驰骋的机器人吗? Arduino都可以为您实现。  这个最经典的开源硬件项目,诞生于意大利的一间设计学校。Arduino的核心开发团队成员包括:Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis和Nicholas Zambetti。 据说Massimo Banzi的学生们经常抱怨找不到便宜好用的微控制器,2005年冬天,Massimo Banzi跟朋友David Cuartielles讨论了这个问题,David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。几乎任何人,即使不懂电脑编程,也能用Arduino做出很酷的东西,比如对感测器作出回应,闪烁灯光,还能控制马达。 随后Banzi,Cuartielles,和Mellis把设计图放到了网上。保持设计的开放源码理念,因为版权法可以监管开源软体,却很难用在硬体上,他们决定采用Creative Commons许可。Creative Commons(CC)是为保护开放版权行为而出现的类似GPL的一种许可(license)。在Creative Commons许可下,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得Arduino团队的许可。然而,如果你重新发布了引用设计,你必须说明原始Arduino团队的贡献。如果你调整或改动了电路板,你的最新设计必须使用相同或类似的 Creative Commons许可,以保证新版本的Arduino电路板也会一样的自由和开放。唯一被保留的只有Arduino这个名字。它被注册成了商标。如果有人想用这个名字卖电路板,那他们可能必须付一点商标费用给Arduino的核心开发团队成员。你可以参考Arduino官方网站,你会找到各种创意作品的源码,当然也有很多机器人应用实例代码,例如直流电机PWM 调速、舵机控制、超声波测距、红外传感器寻迹等,相信它能使你早日实现机器人DIY 的梦想。 ### Arduino名称的由来 意大利北部一个如诗如画的小镇「Ivrea」,横跨过蓝绿色Dora Baltea河,它最著名的事迹是关于一位受压迫的国王。公元1002年,国王Arduin成为国家的统治者,不幸的是两年后即被德国亨利二世国王给废掉了。今日,在这位无法成为新国王的出生地,cobblestone街上有家叫「di Re Arduino」的酒吧纪念了这位国王。Massimo Banzi经常光临这家酒吧,而他将这个电子产品计划命名为Aruino以纪念这个地方。 ## UNO R3 Uno,源于意大利语,代表第一的意思。DFRobot秉着忠于原著,又高于原著的理念,还原出一个原汁原味的Arduino。 UNO R3的升级 DFRduino UNO R3完全兼容Arduino UNO R3版本。同样使用了更强大的ATmega16U2替代了8U2。(或者说是之前版本的FTDI板)这允许更快的转换速度和更大内存,使得UNO R3版本在Linux或者Mac下不需要安装任何驱动程序,(Windows系统需要inf文件)并且有能力外接键盘,鼠标,摇杆等。 UNO R3还增加了AREF边上的SDA和SCL端口。此外,RESET边上还有两个新的端口。一个端口是IOREF,它能够使扩展板适应主板的电压。另一个空的端口预留给将来扩展的可能。UNO R3能够兼容任何现存扩展板并且能用它额外的端口适应新的扩展板。 更稳定的RESET电路。RESET键位置也变了,被移到了靠近USB接口的板角处,更方便按。 ATmega16U2代替了8U2,这并不意味着有16K flash的R3能让你的code跑的更快,这个更新为是USB接口芯片服务的,理论上它让UNO能模拟USB HID,比如 MIDI/Joystick/Keyboard。 注意事项:为了正确安装在某些电脑上,DFRduino Uno R3需要Arduino 1.0的驱动文件夹。我们已经测试过并且确定R3能够在老版本的IDE上编程。然而,在一台电脑上第一次运行R3,你将需要Arduino 1.0. 如果你对新版本IDE变化感兴趣,请查看Arduino官网 Arduino 1.0的版本记录。 ### 产品参数 微控制器:ATmega328(DIP封装) 工作电压:5V 输入电压:接上USB时无须外部供电或外部7V~12V DC输入 输出电压:5V DC输出和3.3V DC输出 时钟频率:16 MHz Bootloader:Arduino Uno 支持USB接口协议及供电(不需外接电源) 支持ISP下载功能 数字I/O端口: 14(6个PWM输出口) 模拟输入端口: 6 直流电流 I/O端口: 40mA 直流电流 3.3V端口: 50mA Flash 内存:32 KB (ATmega328) SRAM :2 KB (ATmega328) EEPROM: 1 KB (ATmega328) 尺寸:75 x 54 x 15 毫米(2.95 x 2.13 x 0.59 英寸) 环保:符合 Rohs 标准 ### UNO电路图  ### 引脚说明   先来简单的看下Arduino UNO。下图中有标识的部分为常用部分。图中标出的数字口和模拟口,即为常说的I/O。 数字口有0~13,模拟口有0~5。 除了最重要的I/O口外,还有电源部分。UNO可以通过两种方式供电方式,一种通过USB供电,另一种是通过外接 6~12V的DC电源。除此之外,还有4个LED灯和复位按键,稍微说下4个LED。ON是电源指示灯,通电就会亮 了。L是接在数字口13上的一个LED,在下面一节会有个样例来说明的。TX、RX是串口通讯指示灯,比如我们在 下载程序的过程中,这两个灯就会不停闪烁。 我们用Arduino做的小制作都可以 称为是一个简单的自动控制装置。 一个简单自动控制的装置,通常会 有三个元素,输入、控制和输出。 输入设备来搜集信号,控制器对接 收到的信号进行处理、最后再由输 出设备输出信号。我们以人来说, 五感就是输入信号,把信号送到大 脑,大脑再做出反应,输出的就是 人的行为。  而在Arduino的世界里也同样有输 入、控制与输出。Arduino的五感 是通过各式各样的传感器来实现 的。Arduino控制器好比是人的大 脑,来反应和处理信号。最后输出 主要有声、光(Led)、动(直流 电机、舵机)等表现形式。 做个简单的比喻吧!有个人叫你, 你随即就回答:“听到了”。这 里,你的耳朵就是输入设备,你的 大脑就是控制设备,嘴巴就是你的 输出设备。那整个过程我们如何通 过Arduino来实现呢? 最简单的,通过一个声音传感器, 一听到有声音,Arduino就会接受 到一个信号,然后,Arduino就让 蜂鸣器“吱”一声表示回答。来分 析下,这里,声音传感器就是输入 设备,Arduino就是控制设备,最 后蜂鸣器就是输出设备。 ==思考==:能否识别出套件中哪些可做输 入设备,哪些可做输出设备? ==输入设备 – 传感器== 传感器是一种物理装置或生物器官,能够探测、感受外 界的信号、物理条件(如光、热、湿度)或化学组成 (如烟雾),并将探知的信息传递给其他装置或器官。 传感器的作用是将一种能量转换成另一种能量形式,所 以不少学者也用“换能器-Transducer”来称谓“传 感器-Sensor”。 ==传感器的接口== 传感器的接口 传感器接口分为三种,先了解下,分为: 数字接口 模拟接口 协议接口(数字) 协议接口也是数字接口的一种,常用的有I2C, Serial,SPI。 ==控制设备 – Arduino== 不用多说,控制设备就是Arduino的控制器。我们这里 选用的是Arduino UNO。前面说了控制器好比人的大 脑的作用,用来处理事情。 ==输出设备 – 执行器== 执行器也有很多种,最常见的是“动”。好比人的动 作,任何动作我们需要借助电机来完成。有了电机才能 让东西“动”起来。其他的还有“声音”,“光”表现 形式。蜂鸣器和喇叭就可以实现声音的输出。 ==代码与硬件之间的关系== 前面说的输入设备、控制器、输出设备都是指硬 件。固然重要,就像人的躯体。那人的思想是不是 更重要,思想才是控制人行为的根源。大脑其实就 是思想的载体,两者缺一不可的。有没有联想到Ar- duino中了?代码的作用就是思想的作用。虽然我们 有控制器,但它不知道怎么去做,需要我们告诉 它,而我们告诉它的方式就是通过代码。知道代码 的重要性了吗? ==电子世界的“数字”与“模拟”== 前面说了,输入设备需要采集信号,再把这个信息 给到Arduino,Arduino再给信号输出设备。三个设 备之间通过信号联系在了一起。代码是处理这些信 号的。下面了解下电子世界的信号是怎么样的?输 入设备与控制器是以什么形式“交流”的呢?同样 控制器又是怎么与输出设备“沟通”的呢?这里我 们需要知道电子世界的两种“语言”——数字信号 与模拟信号。 电子世界的数字与模拟与我们平常说的数字与模拟 不同。这里的数字,并不是代表的阿拉伯数字的意 思。这里的模拟,也不是我们日常认为的真实事物 的虚拟。这里需要你颠覆对数字与模拟原有的概 念,电子世界将给你一个新的诠释。不要问为什 么,因为这已经是约定俗成的东西了。 ==数字信号与模拟信号的区别== 说下模拟信号与数字信号的区别: 数字(Digital Signal): 只有2个值(0V和5V)。运用在 Arduino中 ,就是高 (HI GH) 或者低(LOW), “HIGH”是“1”,对应为5V。“LOW”是“0”, 对应为0V。 模拟(Analog Signal): 在一定范围内,有无限值。在 Arduino中模拟口中,已经将0V到5V之间的值映射为 0~1023范围内的值。比如,0对应为0V,1023对应 为5V,512对应为2.5V。  **==左边的Digital Signal是数字信号, 右边的Analog Signal是模拟信号==** ***==DFRobot中的“数字”与“模拟”==*** DFRobot套件中,我们有两种方法可以区分传感器 为数字还是模拟。 (1)绿色线为数字信号的传感器,蓝色线为模拟 信号的传感器。 (2)板子上会印有“D”或者“A”的字样, “D”代表“数字”,“A”代表“模拟”。  **==IO 传感器扩展板 V7.1==** 顺便来介绍下IO传感器扩展板,先看下扩展板 的功能图。我们这里主要就是用来连接传感器。  ==前面说了DF的传感器会有“D”和“A”的字 样。扩展板上也同样有对应的“D”与“A”的 字样,对应插上就可以了。==  而IO扩展板的最大的好处之一,就是相对于控制板上的仅限的几个电源接口,扩展板大大了增加了电源接口和GND 接口,不用担心,如果连接多个传感器时,会出现电源接口不够用的情况。 在板子上,数字引脚和模拟引脚下面都会有对应一排“红色”排阵,以及一排“黑色”排阵。这就是扩展出来的电 源接口。红色排阵是与电源相连的,黑色排阵对应与GND相通。 特别说明下DF中的颜色区分: 绿色:数字信号(Digital Signal) 蓝色:模拟信号(Analog Signal) 红色:电源 黑色:GND 这一节主要了解,是什么让东西“活”起来了,整个过程是 怎么样的?不仅是需要我们的硬件设备,还需要我们的软件 来驱使它来工作。从下一篇开始,我们动手玩了。 ### 电源 Arduino UNO可以通过3种方式供电,而且能自动选择供电方式 1、外部直流电源通过电源插座供电 2、电池连接电源连接器的GND和VIN引脚 3、USB接口直接供电 电源引脚说明: VIN --- 当外部直流电源接入电源插座时,可以通过VIN向外部供电;也可以通过此引脚向UNO直接供电;VIN有电时将忽略从USB或者其他引脚接入的电源 5V --- 通过稳压器或USB的5V电压,为UNO上的5V芯片供电 3.3V --- 通过稳压器产生的3.3V电压,最大驱动电流50mA GND --- 地脚 ### 输入输出 1.14路数字输入输出口: 工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。 除此之外,有些引脚有特定的功能: 串口信号RX(0号)、TX(1号): ''':与内部 ATmega8U2 USB-to-TTL 芯片相连,提供TTL电压水平的串口接收信号。 外部中断(2号和3号):''触发中断引脚,可设成上升沿、下降沿或同时触发。可以参看attachInterrupt()函数。 脉冲宽度调制PWM(3、5、6、9、10 、11):**提供6路8位PWM输出,通过analogWrite()函数实现。 SPI(10(SS),11(MOSI),12(MISO),13(SCK)):**这些引脚支持SPI通信接口,可以使用SPI库。 LED(13号):有个内置的LED灯与数字口13连接,从上图功能图中看出。Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。 2.6路模拟输入A0到A5: 每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。 除此之外,有些引脚有特定功能: TWI接口(SDA A4和SCL A5):**支持通信接口(兼容I2C总线)。可用Wire库 3.AREF:模拟输入信号的参考电压。 4.Reset:信号为低时复位单片机芯片。 也可以看下ATmega328的引脚图。Atmega8,168和328是相同的。  ### 通信接口 UNO可以与电脑,其他的Arduino控制器或是其他微处理器等其他设备进行通信。ATmega328内置的UART TTL可通过数字口0(RX)和1(TX)(5V)与外部实现串口通信。ATmega16U2通过USB和串行通信软件在电脑上显示为一个虚拟COM端口。ATmega16U2固件使用的是标准的USB串口驱动,不需要外置驱动。Arduino的软件包含一个串口监视器,可实现Arduino板和电脑的简单文本数据通信。当通过USB数据线下载程序时,RX和TX灯会不停的闪烁。 Atmega328还支持I2C和SPI通信。 注意:由于下载过程中TX与RX已被占用,所以当TX和RX在程序中被使用到时,在下载程序时,先将TX、RX连接断开,下载完成后再连上。 ### 注意要点 Arduino UNO上USB口附近有一个可重置的保险丝,对电路起到保护作用。当电流超过500mA是会断开USB连接。 Arduino UNO提供了自动复位设计,可以通过主机复位。这样通过Arduino软件下在程序到UNO中软件可以自动复位,不需要在复位按钮。在印制板上丝印"RESET EN"处可以使能和禁止该功能。 ## 烧录教程 注意:OSX和Linux不需要安装驱动,只需要安装开发板;Windows需要安装驱动和开发板。适配器类与主控板类产品都需要安装驱动,主控板类产品还需要安装开发板。 #### Dreamer Nano V4.0 1)用USB连接DFRobot Uno和电脑  (2)打开设备管理器查看端口号  (3)打开Arduino1.8.13——点击工具——开发板——DFRobot AVR Boards——选择DFRobot Uno板子  (4)点击工具——端口——选择端口号COM9(DFRobot Uno)  (5)完成以上步骤即可开始烧录程序
admin
2025年9月17日 13:51
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期