智能垃圾分类机器人_第1页
智能垃圾分类机器人_第2页
智能垃圾分类机器人_第3页
智能垃圾分类机器人_第4页
智能垃圾分类机器人_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能垃圾分类机器人, arduino基础,1,2,2,01,A,什么是Arduino?,02,B,Arduino能做什么?,03,C,Arduino怎么用?,2020/10/23,一、Arduino的由来,Arduino创始人Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles讨论了这个问题。 David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。 两人决定设计自己的电路板,并引入了Banzi的学生David Mel

2、lis为电路板设计编程语言。 两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。,3,2020/10/23,二、什么是Arduino?,Arduino 是一种开源的电子开发平台,该平台最初主要基于 AVR 单片机的微控制器和相应的开发软件,目前在国内正受到电子发烧友的广泛关注。 自从 2005 年 Arduino 腾空出世以来,其硬件和开发环境一直进行着更新迭代。 几乎任何人, 即便不懂电脑编程, 利用这个开发板也能用 Arduino 做出炫酷有趣的东西,比如对感测器探测做出一些回应、闪烁灯光、控制马达等。,4,2020/10/23

3、,三、Arduino能做什么?,最简单应用: 通过Arduino开发板引脚输出高电平点亮一盏LED灯。,5,2020/10/23,三、Arduino能做什么?,利用Arduino板作为中央控制器实现家居智能化,语音口令开灯、开空调,随着室内光线环境自动调节亮度,手机APP控制家用电器等,6,2020/10/23,让你的arduino连入物联网,Arduino高端应用,7,2020/10/23,乐为联网云数据平台,8,2020/10/23,四、认识Arduino开发板- Arduino UNO,9,2020/10/23,四、认识Arduino开发板- arduino Mega2560,10,20

4、20/10/23,五、Arduino开发环境,Arduino的编程是在Arduino IDE上进行的,如左图编程界面所示; 开发环境提供了最基本的模板,包含了setup()函数和loop()函数; 在setup()函数上方空白区域,可以插入需要用到的函数.h头文件以及申明要用到的函数。,11,2020/10/23,六、函数的概念,定义:函数是一种能完成某种特定功能二端口通道,通过输入合适的东西获得想要的某种输出; 举例:例如数学上y=2x,这条函数可以完成将输入值翻倍这样一个工作;,注意: arduino提供了大量的基础函数,包括I/O控制、时间函数、中断函数、串口通信函数等; arduino

5、也提供了许多关于这些基础函数的实例程序,这些例程可以在arduino开发环境的“File-Examples”菜单中找到。,12,2020/10/23,七、Arduino的常用基本函数,Arduino程序的主体包括:Setup( ) 函数和loop( )函数; (1)setup( )函数:在程序中只运行一次,它的功能为完成程序的各类初始化工作; (2)loop( )函数:程序的主函数,程序运行过程中loop()函数不断循环。,13,2020/10/23,Arduino常用函数- pinMode( ),功能:将指定的引脚配置成输出或输入 语法:pinMode(pin, mode) 参数: pin:

6、表示要设置模式的引脚 mode:包括INPUT 或 OUTPUT 返回值:无,例程: int ledPin = 13 ; / LED 连接到数字脚 13 void setup() pinMode(ledPin, OUTPUT ) ; /设置数字脚为输出 void loop() digitalWrite (ledPin, HIGH ) ; /点亮 LED delay(1000); / 等待一秒 digitalWrite(ledPin, LOW); / 灭掉 LED 延迟(1000) ; /等待第二个 ,14,2020/10/23,Arduino常用函数-digitalWrite(),功能:给一个

7、数字引脚写入 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);

8、/ 延迟一秒 ,15,2020/10/23,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 脚设置为输入v

9、oid loop()val = digitalRead(inPin); / 读取输入脚digitalWrite(ledPin, val); /将 LED 值设置为按钮的值,16,2020/10/23,Arduino常用基本函数- analogRead(),功能:从指定的模拟引脚读取模拟数据值。 语法:analogRead(PIN) 参数: pin:从输入引脚读取数值 返回值: 从 0 到 1023 的整数值,例程:int analogPin = 3; /电位器(中间的引脚)连接到模拟输入引脚 3/另外两个引脚分别接地和 +5 Vint val = 0; /定义变量来存储读取的数值void se

10、tup()serial.begin(9600) ; /设置波特率( 9600)void loop()val = analogRead(analogPin) ; /从输入引脚读取数值serial.println (val) ; /显示读取的数值,17,2020/10/23,Arduino常用基本函数- analogWrite(),功能:从一个引脚输出模拟值( PWM ) 语法:analogWrite (pin,value) 参数: pin:用于输入数值的引脚。 value:占空比: 0(完全关闭)到 255(完全打开)之间。 返回值:无,例程:通过读取电位器的阻值控制 LED 的亮度int le

11、dPin = 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),18,2020

12、/10/23,Arduino常用基本函数- delay(),功能:使程序延时特定的时间(毫秒) 语法:delay(ms) 参数: ms:暂停的毫秒数( unsigned long) 返回值:无,例程: ledPin = 13 / / LED 连接到数字 13 脚 void setup() pinMode(ledPin, OUTPUT); / 设置引脚为输出 void loop() digitalWrite(ledPin, HIGH); / 点亮 LED delay(1000); / 等待 1 秒 digitalWrite(ledPin, LOW); / 灭掉 LED delay(1000);

13、/ 等待一秒 ,19,2020/10/23,中断的定义: 由于某一随机事件的发生,单片机暂停原程序的运行,转去执行另一程序(随机事件),处理完毕后又自动返回原程序继续运行,其发生过程如右图。 中断的要素: 主程序:单片机正在运行的程序。 中断源:引起中断的原因,或能发生中断申请的来源。 中断服务程序:处理中断事件的程序。,Arduino常用基本函数- 中断介绍,中断发生的过程,20,2020/10/23,Arduino常用基本函数-中断函数,1、interrupts()函数 功能:负责打开总中断 返回值:无 参数:无,2、noInterrupts()函数 功能:负责关闭总中断 返回值:无 参数

14、:无,3、attachInterrupt(interrput,function,mode) 功能:用于设置外部中断 参数:3个,分别表示中断源,中断处理函数和触发模式,它们的具体含义如下。 中断源:可选中断0或者1,对应arduino的2或者3号数字引脚。 中断处理函数:是一段子程序,当中断发生时执行该子程序部分,其中参数值为函数的指针。 触发模式:有四种类型,LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发),21,2020/10/23,Arduino常用基本函数-中断函数,4、detachInterrupt(int

15、errput)函数 功能:用于取消中断 参数: 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

16、(222); void change()/中断函数 state = !state; ,22,2020/10/23,Arduino常用基本函数-串口通信函数,1、Serial.begin() 功能:用于设置串口的波特率 波特率是指每秒传输的比特数,除以8可得到每秒传输的字节数。 一般的波特率有9600、19200、 57600、115200等。,介绍:通过在头文件HardwareSerial.h中定义一个HardwareSerial类的对象serial,然后直接使用该类的成员函数来实现。,2、Serial.available() 功能:用来判断串口是否收到数据 返回值:int型 3、Serial

17、.read() 功能:用于读入串口数据 返回值:int型的串口数据。,23,2020/10/23,Arduino常用基本函数-串口通信函数,4、Serial.print() 功能:用于从串口输出数据,数据可以是变量,也可以是字符串。 5、Serial.println() 功能:与Serial.print函数类似,都是从串口输出数据,只是Serial.println函数多了回车换行功能。,例程:读取输入的字符,并在监视器中显示出来的程序如下。 String val=; void setup() Serial.begin(9600); void loop() while (Serial.avail

18、able() 0) val+=char(Serial.read(); delay(5); if (val.length() 0) Serial.println(val); val=; ,24,2020/10/23,八、认识函数库,函数库:由系统建立的具有一定功能的函数的集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息。用户也可以根据自己的需要建立自己的用户函数库。 库函数:存放在函数库中的函数。库函数具有明确的功能、入口调用参数和返回值。 头文件:有时也称为包含文件。C语言库函数与用户程序之间进行信息通信时要使用的数据和变量,在使用某一库函数时,都要在程序中嵌入(用#i

19、nclude)该函数对应的头文件。,25,2020/10/23,九、机器人包含的库函数,库函数组成:由.h文件(头文件)和.cpp文件(源程序文件)组成。,26,2020/10/23,十、怎样使用库函数,放置位置:一般是放到lib文件里 调用方法:将它所在的文件名用 #include,libraries所在的路径,库函数拷贝到的路径,27,2020/10/23,#ifndef ColSensor_h #define ColSensor_h class ColSensor private: /定义引脚 int S0, S1, S2, S3, OUT; /定义延时 unsigned long ti

20、me; 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

21、 a, int b); /计算比例系数 void Test(); /计算RGB值 void Get(); ; #endif,垃圾分类小车ColSensor.h文件内代码,28,2020/10/23,#include #include ColSensor.h ColSensor:ColSensor(int a, int b, int c, int d, int e, unsigned long f) S0 = a; S1 = b; S2 = c; S3 = d; OUT = e; time = f; g_count = 0; void ColSensor:Mode(int a, int b) pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); pin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论