分享

玩转Arduino控制器

 quasiceo 2015-08-23

玩转Arduino控制器——基于Arduino互动电子入门套件

(2013-01-17 10:45:55)
转载
标签:

arduino

电子制作

超声波

lm35

机器人基地

分类: 机器人入门教程

 

玩转Arduino控制器————基于Arduino互动电子入门套件

  

    著名哲学家培根曾经说过“知识就是力量”,吸取知识的过程我们称之为学习,热播电视剧《爱情公寓》里这句话“活到老,学到老”让我印象非常深刻,自古以来,学习对我们每个人来说都是非常重要的今社会电子类学习套件层出不穷,花样众多很多时候读者对这些学习套件难以抉择找到一款好的学习套件显然十分非常重要的,今天我来给大家介绍一款用于学习Arduino控制器的套件——基于Arduino互动电子入门套件。

基于Arduino互动电子入门套件是专门为Arduino爱好者精心打造的一款入门学习套件,不仅适合电子相关专业的爱好者们,同样也适合其他行业的朋友们,哪怕您完全没有电子学相关知识,只要您有兴趣,也能用它来将您的创意实现。此套件除了基本入门操作讲解外,还附带18节实验课程,这部分课程完全考虑初学者学习兴趣,由易到难,循序渐进,精心编排,每个实验均配有电路图、元件插接图,实验详细说明和具有功能注释的例子程序。而且这款套件主控制器采用最新的Arduino UNO控制器,可以让您在学习Arduino时事半功倍,并且所有的实验过程中,您只需在面包板上通过跳线插拔连接元件,无须使用电烙铁进行焊接,避免了初学者焊接元件不当而带来的损失,不会浪费元件,既安全又环保。

       套件中含有资料光盘,光盘包括《爱上Arduino》全书中文注释例子程序、Arduino IDEProcessingFritzing软件教学演示视频和电子版操作手册。这款基于Arduino互动电子入门套件是带进入互动新媒体领域和电子世界的必备之选。那下面就让我们一起揭开这款套件的神秘面纱吧。

玩转Arduino控制器——基于Arduino互动电子入门套件
图一 基于Arduino互动电子入门套件全家福 

套件清单:

 

玩转Arduino控制器——基于Arduino互动电子入门套件
图二 套件清单

套件看完了,相信大家此时也心存很多疑问吧,这款基于Arduino互动电子入门套件,Arduino到底是什么呢,您知道么?如果不知道的话就让我来给大家介绍下Arduino吧!

什么是Arduino

很多朋友看到Arduino这个词时,恐怕没有几个人认得,我在刚接触的时候也曾一度读错而闹出笑话。先让我先给大家简单介绍下Arduino的由来吧!

据说意大利Ivrea一家高科技设计学校的老师Massimo Banzi,在2005年冬天,有一次,Massimo Banzi跟西班牙籍晶片工程师David Cuartielles在一起聊天时,提及到他的学生们经常会抱怨找不到既便宜又好用的微控制器,于是两人决定自己设计一款电路板,并由Banzi的学生David Mellis为电路板设计编程语言。这块电路板就是现在大名鼎鼎的“Arduino”。

随后Arduino便开始迅速的在欧洲流行起来,并且迅速风靡美国、日本、台湾、香港等科技前沿地区,而且近两年在中国地区蓬勃的发展起来,并被广大电子发烧友们所认可Arduino的发展速度超出了人们的预料,使众多的电子发烧友们对其爱不释手,这些足可以看出Arduino所具有的非凡魅力,可是它为什么会有如此的魅力呢?

Arduino的魅力

Arduino控制器为什么有如此魅力么呢?主要是Arduino控制器独有的几种优势

开放性:Arduino是一个基于开放源代码电子原型制作平台,在不从事商业用途的情况下任何人都可以使用、修改和发。这样不但可以使爱好者更好的理解Arduino的电路原理,更可以根据自己的需要而去修改它。比如由于空间的限制,需要设计异形的电路板或是将自己的扩展电路与主控制电路设计到一起。这都是完全可以并能实现的。

易用性:Arduino既可以独立运行,具备互动性,对于刚接触Arduino的人来说,不论基础如何,只要有兴趣,拿到之后的几分钟内,就可以成功运行一个点亮小灯的小实验ArduinoPC的连接采用了当下最主流的USB连接方式Arduino的开发环境软件也是绿色软件,解压之后即可使用,它的操作界面非常的简洁提供了简单易用的工具栏轻松实现代码下载

交流性:Arduino可以读取大量的数字信号和模拟信号,并且可以控制各式各样的电灯、电机和其他物理外设,而且对于初学者来说,交流与展示是激发学习热情的最好方式。但有些时候,AVR做了个迹小车,我用PIC做了个避障小车,对单片机理解还不是特别深刻的初学者来说,交流上恐怕就会有些困难。而Arduino已经划定了一个比较统一的框架,一些底层的初始化函数采用了统一的方法,对数字信号和模拟信号使用的端口也做了自己的标定,初学者在使用的时候非常方便。

丰富的第三方资源:Arduino无论硬件还是软件,都是全部开源的,可以深入的了解到底层的全部机理,也预留了非常友好的第三方库开发接口。秉承了开源社区一贯的开放性和分享性,很多爱好者在成功的实现了自己的设计后,会把自己的硬件和软件拿出来与大家分享。对于初学者可以在Arduino社区轻松找到自己想要使用的一些基本功能程序模块:舵机控制、PID调速、A/D转换等。特别一些功能模块供应商也开始越来越重视Arduino社区,会为自己的产品提供Arduino下的使用库,这些都极大的方便了Arduino开发者,使可以不必拘泥于一些基本功能的编写,把自己的更多精力投入到开发的项目中去。

通过上述的介绍,相信此时此刻您也一定喜欢上Arduino了吧,它有自己的文化,一种代表开源创意的文化,在其文化的背后,又是科学技术的精华与互动媒体的艺术。对于机器人爱好者来说,尤其是对于缺乏电子知识、做不好控制的朋友来说,Arduino会解决的大问题,它是一个非常容易上手掌握的控制平台。然而想了解Arduino控制器,光凭一块控制器来实现的确有些难度,工欲善其事,必先利其器,那这一款套件“基于Arduino互动电子入门套件”便有了用武之地。 

Arduino UNO

 

玩转Arduino控制器——基于Arduino互动电子入门套件
玩转Arduino控制器——基于Arduino互动电子入门套件
图三 Arduino UNO控制器

我们最先看到的是一款蓝色板子的控制器Arduino UNO控制器如图三,上面介绍了Arduino的由来,而Arduino UNO又是什么呢,Arduino UNO2011最新推出的一款易用型开源控制器,上面"UNO"在意大利文里意思是“一”,代表着Arduino 1.0Arduino的品牌之路将从UNO这块板子开始。硬件上与Arduino Duemilanove最大不同在于USB转串口电路部分,Arduino Duemilanove采用的是FTDI专用FT232RL芯片,而Arduino UNO采用的是一块ATMega8U2单片机,下载速度更快更稳定。软件部分与之前一样,没有大的变化,它含有14个数字输入输出脚,6个模拟输入,16Mhz晶振,USB链接,电源插座和ICSP接头。它包含了微处理器所必须的所有元件和功能,只需用USB连接线插入电脑即可开始使用。

Arduino UNO特色
  1、开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改!
  2、使用高性能的微处理控制器(ATmega328)。可以采用USB接口供电,也可以使用外部DC9V供电。
  3Arduino支持ISP在线烧,可以将新的bootloader固件烧入ATmega328芯片。有了bootloader之后,可以通过串口或者USB to RS232线更新Flash程序
  4、可依据官方提供的Eagel格式PCBSCH电路图,简化Arduino模组,完成独立运行的微处理控制。可简单地与传感器,各式各样的电子元件连接例如:红外线传感器、超传感器光电传感器温度传感器、伺服马达等。
  5、支持多种互动程序,如:FlashMax/MspVVVVProcessing等。
  6、应用方面,利用Arduino突破以往只能使用鼠标、键盘,CCD等输入的装置的互动内容,可以更简单地制作单人或多人游戏互动。 

介绍了这么多相信大家对这款Arduino UNO控制器有了初步的了解吧,下面我们来看看套件里都有哪些其它元件呢:

RB-15PG舵机

玩转Arduino控制器——基于Arduino互动电子入门套件

    RB-15PG是新一代的机器人专用伺服舵机,其内部采用的电机为直流有刷空心杯电机,内部采用无铁转子,具有能量转换效率高、激活制动响应速度快、运行稳定性可靠、自适应能力强、电磁干扰少等优点,与同等功率的铁芯电机相比体积小、重量轻;舵机反馈电位器采用导电塑料电位器,其精度和耐磨程度大大优于线饶电位器;电机控制集成电路(IC)采用数字芯片与功率开关组成H桥电路,电压控制双极性驱动方式具有反应速度更快、无反应区范围小、定位精度高、抗干扰能力强兼容性好等优势,超越传统舵机更适合机器人与航模领域广泛应用。

LM35温度传感器

玩转Arduino控制器——基于Arduino互动电子入门套件

    LM35是精密集成电路温度传感器,其输出的电压线性地与摄氏温度成正比。因此,LM35性能要比按绝对温标校准的线性温度传感器的性能优越很多。LM35系列传感器在生产制作时就已经过校准,输出电压与摄氏温度一一对应,使用极为方便。灵敏度为10.0mV/℃,精度在0.4℃至0.8(-55℃至+150℃温度范围内)。重复性好,低输出阻抗,线性输出和内部精密校准使其与读出或控制电路接口简单和方便,可单电源和正负电源工作。

红外热释电传感器

玩转Arduino控制器——基于Arduino互动电子入门套件

红外热释电传感器是一款基于热释电效应的人体热释运动传感器。它能检测到人体或动物身上发出的红外线,配合菲涅尔透镜的使用,能使传感器探测范围更远更广。

黑色塑封干簧管

玩转Arduino控制器——基于Arduino互动电子入门套件

干簧管是一种磁敏的特殊开关,也称干簧继电器。它通常由两个或三个软磁性材料做成的簧片触点磁钢靠近干簧管,绕在干簧管上的线圈通电形成的磁场使簧片磁化,那么簧片的触点部分就会被磁力吸引。当吸引力大于弹簧的弹力时,接点就会吸合;当磁力减小到一定程度时,接点被弹簧的弹力打开。

倾角传感器(倾角开关)

玩转Arduino控制器——基于Arduino互动电子入门套件

单向倾角开关也称作倾角传感器,当传感器至于垂直位置时,金属小球接触到两个桥接点导通,就好像按下按钮。当将传感器倾斜时,金属小球移动离开桥接点后,致使桥接点断开,这一过程就相当于松开按钮

光敏电阻

玩转Arduino控制器——基于Arduino互动电子入门套件

光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器入射光强,电阻减小入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换等。

IRF520驱动芯片

玩转Arduino控制器——基于Arduino互动电子入门套件

Arduino控制器每一个引脚只能为我们的设备提供20mA的电流:这个电流其实是非常小,仅能满足驱动一个LED灯。如果想尝试驱动类似直流电机这种较大功率的设备,该引脚将立即停止工作,并有可能烧坏整个处理器(AVR单片机芯片)。为了驱动控制像直流减速电机或者白炽电灯这样大功率设备,我们需要外加使用一些的电子元件,这些元件可以通过Arduino控制器的引脚来控制启动与停止。我们可使用的电子元件之一就是MOSFET晶体管,IRF520晶体管可以解决这个问题,用它控制一个安装上风扇的小型直流电机开启与关闭甚至调速,其在基于Arduino互动电子入门套件PWM控制电机转速实验中起到驱动的作用。

基于Arduino互动电子入门套件就先介绍到这么,套件内剩下的元件在这里就不一一介绍了,光说不练似于纸上谈兵,下面我们通过两个小实验来看看Arduino它到底可以做什么

Arduino能做什么?

Arduino到底能做些什么呢?让我们通过实验来更进一步的了解下,并且来感受下Arduino它的魅力所在。

实验1:这个实验用到的元件有Arduino Uno控制器一块,超声波传感器模块一个,LED灯一个以及跳线若干,首先让我们先简单介绍下超声波传感器,它的工作原理就像声纳一样,通过发送器发出超声波信号,遇到物体反射回来传到接收器,然后计算反射回来所用的时间。信号反射时间越长,则目标越远。下面让我们看下实物连接图,如下图所示:

玩转Arduino控制器——基于Arduino互动电子入门套件

下面看下超声波特写图:

玩转Arduino控制器——基于Arduino互动电子入门套件

连线图如下:

玩转Arduino控制器——基于Arduino互动电子入门套件

我们来编译一个简单的测距程序,在数字接口13接一个LED灯,使其当测得距离大于50cm时灯亮起。

程序代码如下:

int inputPin=4; //定义数字4脚为inputPin

int outputPin=5;  //定义数字5脚为outputPin

int ledpin=13; //定义数字13脚为LED指示灯

void setup()

{

 Serial.begin(9600); //设置串口波特率为9600

 pinMode(ledpin,OUTPUT); //设置LED指示灯引脚为输出引脚

 pinMode(inputPin,INPUT); //设置inputPin引脚为输入引脚

 pinMode(outputPin,OUTPUT); //设置outputPin引脚为输出引脚

}

void loop()

{

 digitalWrite(outputPin,LOW); //使发出发出超声波信号接口低电平2μs  

 delayMicroseconds(2);

 digitalWrite(outputPin,HIGH); //使发出发出超声波信号接口高电平10μs,这里是至少10μs

 delayMicroseconds(10);

 digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平

 int distance pulseIn(inputPin,HIGH); // 读出正脉冲时间

 distance= distance/58; //将脉冲时间转化为距离(单位:厘米)

 Serial.println(distance); //串口打印距离值

 delay(50);

 if (distance>=50)   //如果距离大于50厘米,

 

 digitalWrite(ledpin,HIGH); //则LED灯亮起

 

 else //否则,

 digitalWrite(ledpin,LOW); //LED灯熄灭

}

玩转Arduino控制器——基于Arduino互动电子入门套件

实验效果:

玩转Arduino控制器——基于Arduino互动电子入门套件

当测的距离大于50cm小灯亮起,这里LED灯不是很亮,所以图片效果不是很明显。到这里实验结束了,不知道大家有何感想呢,是不是对Arduino充满了新奇,是不是有了想更进一步来了解它的欲望。


实验2:下面我们再来做个利用Arduino UNO控制和LM35温度传感器制作一个检测温度实验,让温度值在Arduino IDE的串口调试助手中显示出来,我们看下实物连接图,如下图所示:

玩转Arduino控制器——基于Arduino互动电子入门套件

连线图如下:

玩转Arduino控制器——基于Arduino互动电子入门套件

程序代码如下:

int pin 0; //定义pin模拟口0

int tempc 0; //定义温度变量tempc初值为0

int samples[8]; //定义函数组samples8个变量

int maxi -100,mini 100; //定义maxi初值为-100mini初值为100

int i; //定义变量i

void setup()

{

Serial.begin(9600); // 设置波特率为9600

}

void loop()

{

for(i 0;i<=7;i++) //变量i07循环

{

samples[i] 5.0 analogRead(pin) 100.0) 1024.0;

//模拟口读出模拟值转化为函数samples

tempc tempc samples[i]; //变量samples赋值给函数tempc

delay(100); //延迟100ms

}

tempc tempc/8.0; //函数tempc求平均数

if(tempc maxi) {maxi tempc;} //取最大值

if(tempc mini) {mini tempc;} //取最小值

Serial.print(tempc,DEC); //串口打印温度tempc

Serial.print(" Celsius, "); //串口打印字符“Celsius

Serial.print(maxi,DEC); //串口打印温度最大值maxi

Serial.print(" Max, "); //串口打印字符“Max

Serial.print(mini,DEC); //串口打印温度最小值min

Serial.println(" Min"); //串口打印字符“Min

tempc 0; //变量tempc赋值0

delay(100); //延迟100ms

}

玩转Arduino控制器——基于Arduino互动电子入门套件

在串口调试工具中实时显示着当前的温度,这些都只是一些小实验,大家可以根据自己的需要在里面加入更多的模块来实现更强大的功能,而且这些小实验都可以应用到我们的生活中,所以只要我们能想到,就没有做不到的,让我们在“奇幻”的世界中生活吧。

通过上面的例子实验和相关介绍对于这款基于Arduino互动电子入门套件,相信大家都已有所了解,不知道大家对控制器和元件还有那些疑惑呢?如有疑惑欢迎大家可以到机器人基地新浪微博http://weibo.com/robotbase来交流下,大家还记得我们儿时看的“四驱兄弟”、“变形金刚”么,对那些画面是不是还记忆犹新,在这个电子的世界里只要您愿意,就可以用这些“神奇”的元件来实现我们儿时的梦想,这期就先到这里,下期和大家探讨下运用Arduino UNO控制器PWM控制伺服舵机和直流电机,下期再见!——转自《电子制作》2012年第12期

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多