您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > Arduino的入门与精深
Arduino的入门与精深主讲人:孙鹏队员:吴斌李文柏一Arduino的应用市场二如何开始使用你的Arduinokit三Arduino的入门与精深一Arduino的应用市场•便宜——和其他平台相比。arduino板是相当便宜。最便宜的arduino课可以自己动手制作,即使组装好的成品,也不会超过200元。•跨平台——arduino软件在window,MacintoshOSX和Linux平台上均可以操作,大部分其他的单片机只能运行在window操作系统下。•简易的操作环境——初学者很容易就能学会arduino的编程环境,同时它还能为高级用户提供高级运用。对于老师们来讲,一般都很容易运用processing编程环境,如果学生使用processing编程环境的话,也很容易熟悉。•软件开源并可拓展——arduino软件是开源的,对于有经验的程序员是可以拓展的。arduino编程语言可以通过c++库进行拓展。如果有人想要去了解技术上的细节,可以通过arduino语言直接使用AVRc语言(因为arduino语言是机基于AVRc语言的)。类似,如果你有需要的话,也可以再arduino中写入AVRc语言。•硬件开源并可拓展——arduino板是基于ateml的atmelga8和atmelga128/328的单片机。arduino是基于creativeCommons许可协议。所以有经验的设计师根据需求设计自己的模块,可以对其进行拓展和改造。甚至对于一些相对没有经验的用户,也可以通过制作实验板来理解arduino是如何工作的,省钱又省事。arduino的起源•MassimoBanzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,MassimoBanzi跟DavidCuartielles讨论了这个问题。DavidCuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生DavidMellis为电路板设计编程语言。两天以后,DavidMellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。各种arduino型号ArduinoNanoArduinoGSMShieldFrontArduinoUnoArduinoEthernetShield二如何开始使用你的Arduinokit•arduino的配置:•arduino是基于AVR平台,对AVR库进行二次封装编译,把端口都打包好了。神马寄存器呀,地址指针呀,都不用写。大大降低软件开发难度,适合非专业爱好者使用。优点和缺点并存,因为是二次开发,所以代码执行不如AVR代码精练,代码执行效率和代码体积都弱于AVR直接编译。•基本性能配置:•dititali/o数字输入/输出端口0-13.•anglogi/o模拟输入/输出端口0-5.•支持ICP下载,支持tx/rx.•输入电压:支持3.3v/5v输出。•处理器:支持atmelatmegal168/328处理器,因为支持者众多,已有公司开发出32位的mcu支持arduino。•arduino的开发环境介绍•Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash,Processing,MaxMSP)来实现。•Arduino是一个基于开放原始码的软硬件平台,构建于开放原始码simpleI/O介面版,并且具有使用类似Java、C语y言Processing/Wiring开发环境。•可以快速使用Arduino与AdobeFlash,Processing,Max/MSP,PureData,SuperCollider等软件结合,作出互动作品。Arduino可以使用现有的电子元件例如开关或者传感器或者其他控制器件、LED、步进马达或其他输出装置。Arduino也可以独立运行,并与软件进行交互,例如:MacromediaFlash,Processing,Max/MSP,PureData,VVVV或其他互动软件…。Arduino的IDE界面基于开放源代码,可以免费下载使用,开发出更多令人惊艳的互动作品。三Arduino的入门与精深•开始运行你的你的Arduinokit一个简单的程序让读取模拟端口ao的值并用串口发送voidsetup(){Serial.begin(9600);//串口波特率9.6kb//d0-tx//d1-rx}voidloop(){intsensorValue=analogRead(A0);//读取a0值(0-1023)Serial.println(sensorValue);//串口发送数据delay(1);//延时}注:arduino由初始化函数setup()与循环函数loop组成。串口控制输出voidsetup(){Serial.begin(9600);for(intthisPin=2;thisPin7;thisPin++){pinMode(thisPin,OUTPUT);//将d2-d7设置为输出模式}}voidloop(){if(Serial.available()0){//如果串口收到信息intinByte=Serial.read();switch(inByte){case'a'://接受a,将d2置高digitalWrite(2,HIGH);break;case'b':digitalWrite(3,HIGH);//接受b,将d3置高break;case'c':digitalWrite(4,HIGH);//接受c,将d4置高break;case'd':digitalWrite(5,HIGH);//接受d,将d5置高break;case'e':digitalWrite(6,HIGH);//接受e,将d6置高break;default://turnalltheLEDsoff:for(intthisPin=2;thisPin7;thisPin++){digitalWrite(thisPin,LOW);//其他情况就将d2-d7均置低}}}}局域网控制LED灯•核心代码:voidloop(){wordpos=ether.packetLoop(ether.packetReceive());if(pos){if(strstr((char*)Ethernet::buffer+pos,GET/led_off.png)!=0)send_png_image(led_off,sizeof(led_off));elseif(strstr((char*)Ethernet::buffer+pos,GET/led_on.png)!=0)send_png_image(led_on,sizeof(led_on));else{if(strstr((char*)Ethernet::buffer+pos,GET/?LED1)!=0){led1Status=!led1Status;digitalWrite(LED1PIN,led1Status);}if(strstr((char*)Ethernet::buffer+pos,GET/?LED2)!=0){网页中LED图标led2Status=!led2Status;digitalWrite(LED2PIN,led2Status);}BufferFillerbfill=ether.tcpOffset();bfill.emit_p(PSTR(HTTP/1.0200OK\r\nContent-Type:text/html\r\nPragma:no-cache\r\n\r\nhtmlheadtitleWebLeds/title/headbodyToggleleds:));if(led1Status)bfill.emit_p(PSTR(ahref=\/?LED1\imgsrc=\led_on.png\/a));elsebfill.emit_p(PSTR(ahref=\/?LED1\imgsrc=\led_off.png\/a));if(led2Status)bfill.emit_p(PSTR(ahref=\/?LED2\imgsrc=\led_on.png\/a));elsebfill.emit_p(PSTR(ahref=\/?LED2\imgsrc=\led_off.png\/a));bfill.emit_p(PSTR(/body/html));ether.httpServerReply(bfill.position());}}}让你的arduino连入物联网yeelink物联网平台乐为联网云数据平台美国托管网站ghtibpin平台小节:•通过一周对arduino的学习,我们意识到虽然arduino的开源软硬件都很多,在消费类电子市场占有很大比例,但对于资深工程师来说,arduino只是AVR的入门硬件,在精密电子仪器,中高端设备中有明显的不足。对学习嵌入式,物联网方面有一定的辅助作用。
本文标题:Arduino的入门与精深
链接地址:https://www.777doc.com/doc-5011360 .html