欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    智能垃圾分类机器人.ppt

    • 资源ID:64733042       资源大小:4.45MB        全文页数:30页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    智能垃圾分类机器人.ppt

    智能垃圾分类机器人 arduino基础0101A什么是Arduino?0202BArduino能做什么?0303CArduino怎么用?2一、Arduino的由来Arduino创始人MassimoBanzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,MassimoBanzi跟DavidCuartielles讨论了这个问题。DavidCuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生DavidMellis为电路板设计编程语言。两天以后,DavidMellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。二、什么是Arduino?Arduino 是一种开源的电子开发平台,该平台最初主要基于AVR 单片机的微控制器和相应的开发软件,目前在国内正受到电子发烧友的广泛关注。自从2005 年Arduino 腾空出世以来,其硬件和开发环境一直进行着更新迭代。几乎任何人,即便不懂电脑编程,利用这个开发板也能用Arduino 做出炫酷有趣的东西,比如对感测器探测做出一些回应、闪烁灯光、控制马达等。三、Arduino能做什么?最简单应用:通过Arduino开发板引脚输出高电平点亮一盏LED灯。三、Arduino能做什么?利用Arduino板作为中央控制器实现家居智能化,语音口令开灯、开空调,随着室内光线环境自动调节亮度,手机APP控制家用电器等让你的arduino连入物联网Arduino高端应用乐为联网云数据平台四、认识Arduino开发板-Arduino UNO四、认识Arduino开发板-arduino Mega2560五、Arduino开发环境Arduino的编程是在Arduino IDE上进行的,如左图编程界面所示;开发环境提供了最基本的模板,包含了setup()函数和loop()函数;在setup()函数上方空白区域,可以插入需要用到的函数.h头文件以及申明要用到的函数。六、函数的概念定定义:函数是一种能完成某种特定功能二端口通道,通过输入合适的东西获得想要的某种输出;举例:例:例如数学上y=2x,这条函数可以完成将输入值翻倍这样一个工作;注意:注意:arduino提供了大量的基提供了大量的基础函数,包括函数,包括I/O控制、控制、时间函数、中断函数、串口函数、中断函数、串口通信函数通信函数等等;arduino也提供了也提供了许多关于多关于这些基些基础函数的函数的实例例程序程序,这些例程可以在些例程可以在arduino开开发环境的境的“File-Examples”菜菜单中找到。中找到。七、Arduino的常用基本函数ArduinoArduino程序的主体包括程序的主体包括:Setup()函数和loop()函数;(1)setup()setup()函数:函数:在程序中只运行一次,它的功能为完成程序的各类初始化工作;(2)loop()loop()函数:函数:程序的主函数,程序运行过程中loop()函数不断循环。Arduino常用函数-pinMode()功能:功能:将指定的引脚配置成输出或输入语法:法:pinMode(pin,mode)参数:参数:pin:表示要设置模式的引脚 mode:包括INPUT 或OUTPUT返回返回值:无例程:例程:int ledPin=13;/LED 连接到数字脚13void setup()pinMode(ledPin,OUTPUT);/设置数字脚为输出void loop()digitalWrite(ledPin,HIGH);/点亮LEDdelay(1000);/等待一秒digitalWrite(ledPin,LOW);/灭掉LED延迟(1000);/等待第二个Arduino常用函数-digitalWrite()功能:功能:给一个数字引脚写入HIGH 或者LOW。语法:法:digitalWrite(pin,value)参数:参数:pin:引脚编号 value:HIGH or LOW返回返回值:无 例程:例程:int ledPin=13;/LED 连接到数字13 号端口void setup()pinMode(ledPin,OUTPUT);/设置数字端口为输入模式void loop()digitalWrite(ledPin,HIGH);/使LED 亮delay(1000);/延迟一秒digitalWrite(ledPin,LOW);/使LED 灭delay(1000);/延迟一秒Arduino常用基本函数-digitalRead()功能:功能:读取指定引脚的值,HIGH 或LOW。语法:法:digitalRead(PIN)参数:参数:Pin:你想读取的引脚号返回返回值:HIGH 或LOW 例程:例程:int ledPin=;/LED 连接到 13 脚int inPin=7;/按钮连接到数字引脚 7int val=0;/定义变量以存储读值void setup()pinMode(ledPin,OUTPUT);/将 13 脚设置为输出pinMode(inPin,INPUT);/将 7 脚设置为输入void loop()val=digitalRead(inPin);/读取输入脚digitalWrite(ledPin,val);/将 LED 值设置为按钮的值Arduino常用基本函数-analogRead()功能:功能:从指定的模拟引脚读取模拟数据值。语法:法:analogRead(PIN)参数:参数:pin:从输入引脚读取数值返回返回值:从0 到1023 的整数值例程:例程:int analogPin=3;/电位器(中间的引脚)连接到模拟输入引脚 3/另外两个引脚分别接地和+5 Vint val=0;/定义变量来存储读取的数值void setup()serial.begin(9600);/设置波特率(9600)void loop()val=analogRead(analogPin);/从输入引脚读取数值serial.println(val);/显示读取的数值Arduino常用基本函数-analogWrite()功能:功能:从一个引脚输出模拟值(PWM)语法:法:analogWrite(pin,value)参数:参数:pin:用于输入数值的引脚。value:占空比:0(完全关闭)到255(完全打开)之间。返回返回值:无例程:例程:通过读取电位器的阻值控制 LED 的亮度int ledPin=9;/LED 连接到数字引脚 9int analogPin=3;/电位器连接到模拟引脚 3int val=0;/定义变量存以储读值void setup()pinMode(ledPin,OUTPUT);/设置引脚为输出引脚void loop()val=analogRead(analogPin);/从输入引脚读取数值analogWrite(ledPin,val/4);/以 val/4 的数值点亮 LED(因为 analogRead 读取的数值从 0 到 1023,而 analogWrite 输出的数值从 0 到 255)Arduino常用基本函数-delay()功能:功能:使程序延时特定的时间(毫秒)语法:法:delay(ms)参数:参数:ms:暂停的毫秒数(unsigned long)返回返回值:无例程:例程:ledPin=13/LED连接到数字13脚voidsetup()pinMode(ledPin,OUTPUT);/设置引脚为输出voidloop()digitalWrite(ledPin,HIGH);/点亮LEDdelay(1000);/等待1秒digitalWrite(ledPin,LOW);/灭掉LEDdelay(1000);/等待一秒u中断中断的定义:的定义:由于某一随机事件的发生,单片机暂停原程序的运行,转去执行另一程序(随机事件),处理完毕后又自动返回原程序继续运行,其发生过程如右图。u中断中断的要素:的要素:主程序:单片机正在运行的程序。中断源:引起中断的原因,或能发生中断申请的来源。中断服务程序:处理中断事件的程序。Arduino常用基本函数-中断介绍中断发生的过程中断发生的过程Arduino常用基本函数-中断函数1、interrupts()函数功能:功能:负责打开总中断返回返回值:无参数参数:无2、noInterrupts()函数功能:功能:负责关关闭总中断中断返回返回值:无:无参数参数:无:无3、attachInterrupt(interrput,function,mode)功能:功能:用于设置外部中断参参数数:3个,分别表示中断源,中断处理函数和触发模式,它们的具体含义如下。中中断断源源:可选中断0或者1,对应arduino的2或者3号数字引脚。中中断断处处理理函函数数:是一段子程序,当中断发生时执行该子程序部分,其中参数值为函数的指针。触触发发模模式式:有四种类型,LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发)Arduino常用基本函数-中断函数4、detachInterrupt(interrput)函数功能:功能:用于取消中断参数参数:Interrupt:表示所要取消的中断源例程:例程:用中断源0(接引脚D2)作为触发源控制arduino UNO板上的LED亮或灭volatile int state=LOW;void setup()Serial.begin(9600);attachInterrupt(0,change,CHANGE);/当D2电平改变时,触发中断函数void loop()digitalWrite(13,state);if(state=LOW)Serial.println(111);if(state=HIGH)Serial.println(222);void change()/中断函数 state=!state;Arduino常用基本函数-串口通信函数1、Serial.begin()功能:功能:用于设置串口的波特率波特率是指每秒传输的比特数,除以8可得到每秒传输的字节数。一般的波特率有9600、19200、57600、115200等。介绍:介绍:通过在头文件HardwareSerial.h中定义一个HardwareSerial类的对象serial,然后直接使用该类的成员函数来实现。2、Serial.available()功能:功能:用来判断串口是否收到数据返回返回值:int型3、Serial.read()功能:功能:用于读入串口数据返回返回值:int型的串口数据。Arduino常用基本函数-串口通信函数4、Serial.print()功能:用于从串口输出数据,数据可以是变量,也可以是字符串。5、Serial.println()功能:与Serial.print函数类似,都是从串口输出数据,只是Serial.println函数多了回车换行功能。例例程程:读取输入的字符,并在监视器中显示出来的程序如下。String val=;void setup()Serial.begin(9600);void loop()while(Serial.available()0)val+=char(Serial.read();delay(5);if(val.length()0)Serial.println(val);val=;八、认识函数库函数函数库:由系统建立的具有一定功能的函数的集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息。用户也可以根据自己的需要建立自己的用户函数库。库函数:函数:存放在函数库中的函数。库函数具有明确的功能、入口调用参数和返回值。头文件:文件:有时也称为包含文件。C语言库函数与用户程序之间进行信息通信时要使用的数据和变量,在使用某一库函数时,都要在程序中嵌入(用#include)该函数对应的头文件。九、机器人包含的库函数库函数组成:由.h文件(头文件)和.cpp文件(源程序文件)组成。序号库函数名称包含文件库函数主要功能1TrackTrack.h、Track.cpp对应机器人红外传感器的库函数,主要用于控制机器人沿着黑色线进行循线。2ColSensorColSensor.h、ColSensor.cpp对应机器人颜色传感器的库函数,主要用于识别机器人垃圾块的颜色。3ColQueueColQueue.h、ColQueue.cpp对应机器人颜色传感器的库函数,以队列的形式来记忆机器人检测到的垃圾块的颜色数据。4CarCar.h、Car.cpp对应机器人电机的库函数,主要用于简单控制机器人的移动。5FunctionFunction.h、Function.cpp定义红外传感器模块、颜色传感器模块、电机的arduino引脚,控制机器人进出路口、拐弯等,控制舵机动作和初始化等功能。十、怎样使用库函数放置位置:放置位置:一般是放到lib文件里调用方法:用方法:将它所在的文件名用#include libraries所在的路径所在的路径 库函数拷贝到的路径库函数拷贝到的路径#ifndef ColSensor_h#define ColSensor_hclass ColSensorprivate:/定义引脚int S0,S1,S2,S3,OUT;/定义延时unsigned long time;public:/定义计数器unsigned long g_count;/定义数组,用来存放读取到的RGB值int g_array3;/定义数组,用来存放比例系数float g_SF3;/构造函数ColSensor(int a,int b,int c,int d,int e,unsigned long f);/将引脚配置为输出,同时设置输出比例因子void Mode(int a=1,int b=1);/*控制数字引脚,切换滤波器。红,绿,蓝分别对应S2与S3的00,11,01电平;10时过滤所有颜色*/void Digital_out(int a,int b);/计算比例系数void Test();/计算RGB值void Get();#endif垃圾分类小车ColSensor.h文件内代码#include#includeColSensor.hColSensor:ColSensor(inta,intb,intc,intd,inte,unsignedlongf)S0=a;S1=b;S2=c;S3=d;OUT=e;time=f;g_count=0;voidColSensor:Mode(inta,intb)pinMode(S0,OUTPUT);pinMode(S1,OUTPUT);pinMode(S2,OUTPUT);pinMode(S3,OUTPUT);pinMode(OUT,INPUT);digitalWrite(S0,!(a=0);digitalWrite(S1,!(b=0);voidColSensor:Digital_out(inta,intb)digitalWrite(S2,!(a=0);digitalWrite(S3,!(b=0);voidColSensor:Test()g_array0=0;g_array1=0;g_array2=0;for(intj=0;j3;j+)for(inti=0;itime);g_arrayj+=g_count;g_arrayj/=3;g_SFj=255.0/g_arrayj;Digital_out(1,0);g_count=0;voidColSensor:Get()for(inti=0;itime);g_arrayi=g_count;g_arrayi=g_SFi*g_arrayi;Digital_out(1,0);g_count=0;垃圾分类小车ColSensor.cpp文件内代码谢谢!

    注意事项

    本文(智能垃圾分类机器人.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开