物联网系统课程设计

更新时间:2023-05-06 07:55:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

物联网系统课程设计

学系名称:物联网工程 2 班班级名称:物联网工程 20136239 学生姓名:朱泓锦

助教:指导教师:肖迎元

二零一六年十月

1第页

摘要

多等级辅助驾驶等功能于一智能车辆是集环境感知、规划决策、体的综合系统,是智能交通系统的一个重要组成部分。它在军事、民用、太空开发等领域有着广泛的应用前景。随着电子工业的发展,智运用于智能家居中的产品更是越来越受能技术广泛运用于各种领域,到人们的青睐。arduino是蓝牙模组,程序和蓝牙模组,app为基础,以arduino本课题所研究的物联网应用系统以小车和手机之间信息

交互的关键。等实现基小车和arduinoapparduino程序为核心,利用蓝牙模组,本功能。控制小车的移app之间的信息交互,基本功能:利用蓝牙模组和动,从而达到无线控制的效果注:仅能实现小车的基本操作

,蓝牙模组小车,arduino程序,arduinoapp关键词:

2第页

1 绪论

无论是随着科技进步,现代工业技术发展越来越体现出机电一体化的特征。在金属加工、汽车技术、工业生产等等方面,机器设备表现了所谓智能化、集成化、小型化、高精度化的发展趋势。

1.1 选题背景全国电子关于汽车的研究也就越来越受人关注。随着汽车工

业的迅速发展,全国各高校也都很重大赛和省内电子大赛几乎每次都有智能小车这方面的题目,指本设计就是在这样的背景下提出的,视该题目的研究。可见其研究意义很大。设计的本题目是结合科研项目而确定的设计类课题。导教师已经有充分的准备。智能电动小车应该能够实现适应能力,能自动避障,可以智能规划路径。他可以按照预先设定的是以后的发展方向,智能化作为现代社会的新产物,便可以完成预期所要达到模式在一个特定的环境里自动的运作,无需人为管理,启停和进退,同遥控小车不同,遥控小车需要人为控制转向、的或是更高的目标。智能比较先进的遥控车还能控制器速度。常见的模型小车,都属于这类遥控车;无需小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,因操作员可以通过修改智能小车的计算机程序来改变它的行驶方向。人工干预。此,智能小车具有再编程的特性,是机器人的一种。作为国家科学技术发展规划的主要研究课题,“智能模拟”年把中国自1978(航从概念的引进到实验室研究的实现,开始着力研究智能化。再到现在高端领域3第页

天航空、军事、勘探等)的应用,这一过程为智能化的全面发展奠定基石。智能以尽可能少的投入得到最大的收化全面的发展是实现其对资源的合理充分利用,益,大大提高工业生产的效率,实现现有工业生产水平从自动化向智能化升级,到数字电路设从先前的模拟电路设计,实现当今智能化发展由高端向大众普及。各种能实现同样功能的元件越来越小为智能化再到现在的集成芯片的应用,计,产物的生成奠定了良好的物质基础。自动行驶等功能于一体的综合系是一个集环境感知、规划决策,智能小车,统,它集中地运用了计算机、传感、信息、通信、

导航、人工智能及自动控制等技术,是典型的高新技术综合体。智能小车研究现状1.2

智能车辆作为智能交通系统的关键技术,是许多高新技术综合集成的载体。指全部或部分完成一项或多项驾驶任务的综合智能车辆驾驶是一种通用性术语,智能车辆的一个基本特征是在一定道路条件下实现全部或者部分的自车辆技术。动驾驶功能,下面简单介绍一下国内外智能小车研究的发展情况。 1.2.1 国外智能车辆研究现状年代。它的发展历程大体可国外智能车辆的研究历史较长,始于

上世纪50 以分成三个阶段:Barrett 1954年美国世纪50年代是智能车辆研究的初始阶段。第一阶段 20Automated (Electronics 公司研究开发了世界上第一台自主引导车系统AGVS该系统只是一个运行在固定线路上的拖车式运货平台,。Vehicle System)Guided

的目的是为了AGVS但它却具有了智能车辆最基本得特征即无人驾驶。早期研制随着计算机应用领域仅局限于仓库内的物品运输。提高仓库运输的自动化水平,的应用和传感技术的发展,智能车辆的研究不断得到新的发展。年代中后期开始,世界主要发达国家对智能车辆开展了卓从80第二阶段

年开始了在这个领域的探索。1986有成效的研究。在欧洲,普罗米修斯项目于,其目标之)年成立了国家自动高速公路系统联盟(NAHSC1995在美洲,美国于一就是研究发展智能车辆的可能性,并促进智能车辆技术进入实用化。在亚洲,主要目的是研究自动辅助驾驶研究会,年成立了高速公路先进巡航日本于1996/年代中期,设计车辆导航的方法,促进日本智能车辆技术的整体进步。进入80 4第

一大批世界著名的公司开始研制智能车辆平和制造智能车辆的浪潮席卷全世界,台。大规模研究阶段。90年代开始,智能车辆进入了深入、系统、第三阶段从)机器人Carnegie Mellon University最为突出的是,美国卡内基.梅隆大学()的研究,Navlab10台自主车(Navlab1—研究所一共完成了Navlab系列的10 取得了显著的成就。这一阶段的研究成果代表了当前国智能车辆的发展正处于第三阶段。目前,众多的研究机构研在世界科学界和工业设计界中,外智能车辆的主要发展方向。发的智能车辆具有代表性的有:智能原型车辆在户外高速VaMoRs 年,第一辆德意志联邦大学的研究1985它使用了机器视觉来保证横向和纵向

的车100km/h的速度进行了测试,公路上以项目第一次委员会会议上,智能车辆维年,在都灵的PROMRTHEUS辆控制。1988)进行了展示,该车可以自动停车、行进,并可以向后车传送相关塔(VITA,7t视觉系统。这是一个双目视觉系统,具有极驾驶信息。这两种车辆都配备了UBM 高的稳定性。荷兰智能车辆的研究

主要体现在工厂货物的运输。荷兰鹿特丹港口的研究

系统,采用无人驾驶的车辆来往返运输货物,它行驶的路面上采Combi road的荷兰南部目前正在并利用一个光阵列传感器去探测障碍。用了磁性导航参照物,政府正考虑已有的高速公路新建一条专用的车讨论工业上利用这种系统的问题,道,采用这种系统将货物从鹿特丹运往各地。实验室所研制的智能小车,采用大阪大学的Shirai日本大阪大学的研究

,分别利用旋转编码器和电位计来获)System了航位推测系统(Dead Reckoning 取智能小车的转向角,从而完成了智能小车的定位。另外,斯特拉斯堡实验中心、英国国防部门的研究、美国卡内基梅隆大学、奔驰公司、美国麻省理工学院、韩国理工大学对智能车辆也有较多的研究。 1.2.2 国内智能车辆研究现状世纪相比于国外,我国开展智能车辆技术方面的研究起步较晚,开始于20年代。而且大多数研究处在于针对某个单项技术研究的阶段。虽然我国在智80但是能车辆技术方面的研究总体上落后于发达国家,并且存在一定得技术差距,5第页

我们也取得了一系列的成果,主要有:2003)中国第一汽车集团公司和国防科技大学机电工程与自动化学院与(1该自主驾驶轿车在正常交通情况下的高速年研制成功我国第一辆自主驾驶轿车。,并且具有超170km/h公路上,行驶的最高稳定速度为13km/h,最高峰值速度达车功能,其总体技术性能和指标已经达到世界先进水平。)南京理工大学、北京理工大学、浙江大学、国防科技大学、清华大学2(激光雷达、该车装有彩色摄像机、等多所院校联合研制了7B.8军用室外自主车,完成信息融合、路径规划,Sun10陀螺惯导定位等传感器。计算机系统采用两台单片机完成定位计算和车8098PC486完成路边抽取识别和激光信息处理,两台执--规划辆自动驾驶。其体系结构以水平式结构为主,采用传统的“感知-建模 5-10km/h。行”算法,其直线跟踪速度达到20km/h,避障速度达到国内的许多高校和的关键技术。目前,智能车辆研究也是智能交通系统ITS

我国已形ITS研究的兴起,科研院所都在进行ITS关键技术、设备的研究。随着汽车企业越来越加大了并且各交通、成一支ITS技术研究开发的技术专业队伍。交通部已整个社会的关注程度在不断提高。对ITS及智能车辆技术研发的投入,年长期规划。相信经过相关领域2010ITS研究列入“十五”科技发展计划和将 ITS 及智能车辆的技术水平一定会得到很大提高。的共同努力,我国我国飞速发展的经济实力将为智能车辆的研究提供一个更加广阔可以预计,对智能车进行深入细致我们要结合我国国情,在某一方面或某些方面,的前景。的研究,为它今后

的发展及实际应用打下坚实的基础。课题主要内容1.3

智能小车平台,选择通用、价廉的fira本课题南京嵌入之梦工作室的单片机为控制平台,通过细化设计要求,结合传感器技术和电机控制技Arduino达到设计目术相关知识实现小车的各种功能。实现小车的前进倒退、转向行驶,标。

6第页

智能小车总体结构2

方案综述2.1

送入通过各类传感器件来采集各类信息,本设计以两直流电动机为主驱动,电机驱动以达到自身控制。Arduino单片机处理数据后完成相应动作,主控单元最后由控制单元处理数据后通过编个直流电机;驱动2电路采用H桥驱动模块,相当程有序合理的将各模块信号整合在一起并完成相应动作,实现了智能控制,于简易机器人。主Arduino单片机为核心控制器,根据设计的作品要达到的效果,本系统以 1所示。要由电源模块、电机驱动模块、构成。系统的结构框图如下

电源

直流电动机驱动电路单片机Arduino

轮子

系统结构框图图2.1

主控单元方案比较与选择2.2

通过相关传感器对路面的轨迹信按照题目要求,控制器主要用于控制电机,实现小息进行处理,并将处理信号传输给控制器,然后控制器做出相应的处理,车的自动循迹和自动避障。片上外设为系统的控制器,优点是该系统功能强大,方案一:可以采用ARM提高了稳定性,系统的处理速度也很高,适合作为大规模实时集成度搞密度高,系统的控制核心。7第页

单片机算术运ArduinoArduino单片机作为系统控制的方案。方案二:采用算功能强,软件编程灵活、自由度大,功耗低、体积小、技术成熟,成本也比 ARM 低。 Arduino单片机做控制器。考虑到性价比问题,本设计选择用

“小车”的必要的信息2.3

步进电机参数:

步进电机技术要求:

步进电机示例图:8第页

智能小车底盘参考电路图:9第页

蓝牙模块:

第10页

智能小车的大脑3位机: 8这是学习单片机应用的平台,而单片机的种类众多,除了流行的系列,以及最近升势位机 MSP430、PIC系列,还有日渐被接受的 1651、AVR系列,这些单片机各有优势,无法说谁好谁坏,

完全‐M很猛的 ARM Cortex所以我将这个权DSP,此外还有越来越接近 MCU

的取决于学习者的需求和喜好,而且我认为:所谓单片机应用学习,最核心的就是能自己消化力交还给用户。

的资源,编写相应的程序,使之能按自,根据控制需求自己分配 MCU 一个 MCU 己的想法工作。这才是掌握单片机应用的关键!

单片机简介5.1 Arduino接口Simple i/o单片机,是一块基于开放源代码的USB接口 Arduino输入通道),10bit ADC6-8通道,4通道PWM输出,12板(包括通道数字GPIO 集成开发环境。语言的IDE并且具有使用类似

Java,CProcessing…等软件,作出互Flash或让您可以快速使用Arduino语言与动作品。或其他控制或sensorsArduino可以使用开发完成的电子元件例如Switch也可以独立运作成为一个可以跟Arduino器、LED、步进马达或其他输出

装置。或其他互动软VVVV Max/MSP、processing软件沟通的接口,例如说:flash、、接口基于开放源代码原,可以让您免费下载使用开发出开发ArduinoIDE件…。更多令人惊艳的互动作品。

:

Arduino单片机特色、开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修1 改。接口USB可以采用(ATMEGA8使用低价格的微处理控制器或ATmega128)。、2 9VDC供电,不需外接电源。也可以使用外部输入11第页

ATmega8ISP在线烧,可以将新的“bootloader”固件烧入3、Arduino支持线to Rs232ATmega128或芯片。有了bootloader之后,可以通过串口或者USB

更新固件。模组,电路图,简化ArduinoEagle格式PCB和SCH4、可依据官方提供的:各式各样的电子元件连接(EX完成独立运作的微处理控制。可简单地与传感器,)

伺服马达,…等,,热敏电阻,光敏电阻红外线,超音波Processing、、PD、C5、支持多种互动程序,如:Flash、Max/Msp、VVVV 等等输入的CCD、应用方面,利用Arduino,突破以往只能使用鼠标,键盘,6 装置的互动内容,可以更简单地达成单人或多人游戏互动。

单片机引脚简介5.2 Arduino I/O个可用的被分成两个部分,其中每个部分都包含有6的数字ArduinoI/O)是switch到管脚13。在数字电路中开关(管脚,即管脚2到管脚7和管脚8I/O从数字它的作用是保持电路的连接或者断开。Arduino一种基本的输入形式,),因此我们首先面临到的一个问0V5V)或者低电平(管脚上只能读出高电平(解决的办/低电平。能够读取的高题就是如何将开关的开/断状态转变成ArduinoPositive /下拉电阻,按照电路的不同通常又可以分为正逻辑(法是通过上 Inverted Logic)两种。Logic)和负逻辑(的优势在于对数字信号的识别和处理,但我们所生活的真实世界并rduino A就能够表示所有的现象。例如1)化的,简单到只要用0和不是数字(digital而不可能它只能在一个范围之内连续变化,温度这一我们已经司空见惯的概念,)(类似这样的物理量被人们称为是模拟analog发生像从0到1这样的瞬时跳变,是无法理解这些模拟量的,它们必须在经过模数转换后变成数字量的。Arduino Arduino 进一步处理。后,才能被像温度这样的数据必须先被转换成微处理器能够处理的形式(比如电压),)来完成的。例如,sensor才能被Arduino处理,这一任务通常由各类传感器(、0.3V间的某个电压,比如电路中的温度传感器能够将温度值转换成0V到5V等。由于传感器表达的是模拟信号,它不会像数字信号那样只有、3.27V4.99V 12第页

至于到底有简单的高电平和低电平,而有可能是在这两者之间的任何一个数值。多少可能的值则取决于模数转换的精度,精度越高能够得到的值就会越多。to ADC,Analog Arduino所采用的ATmega8微处理器一其有6个模数转换器(,也就是说能够读),每一个模数转换器的精度都是10bitDigital Converter的每一个模拟输入管脚上,电压的)个状态。在Arduino取1024(2^10 = 1024毫伏

4.8Arduino0V到5V,因此能够感知到的最小电压变化是变化范畴是从5/1024 ()。

= 4.8mV

单片机引脚定义图5.2 Arduino

之外1就像模拟输入一样,在现实的物理世界中我们经常需要输出除了0和我们还会想控制除了想用微控制器找开或者关闭电灯之外,的其他数值。例如,的微控制器只能产生高电Arduino灯光的亮度,这时就需要用到模拟输出。由于),而不能产生变化的电压,因此必须采用脉宽度调制5V压()或者低电压(0V ,Pulse Width Modulation)来模仿模拟电压。技术(PWM它是借助微处理器的数字输出来对模拟电PWM是一种开关式稳压电源应用,通信到功率控制与变换路进行控制的一种非常用效的技术,广泛应用在从测量、是一种对模拟信号电平进行数字编码的方法,它PWM的许多领域中。简而言之,使输出端得到一系列幅值相等但通过对半导体开关器件的导通和关断进行控制,宽度不相等的脉冲,而这些脉冲能够被用来代替正弦波或其它所需要的波形。函数来analogWrite()119管脚、10和上,我们可以通过I/OArduino在数字、(9其中第一个参数是要产生模拟信号的引脚产生模拟输出。该函数有两个参数,第13页

。取值范围是0到25510或者11);第二个参数是用于产生模拟信号的脉冲宽度,的模拟电压。255则可以产生5V脉冲宽度的值取0可以产生0V的模拟电压,取5/255 = ,产生的模拟电压将变化0.0196V(不难看出,脉冲宽度的取值变化1 0.0196)。

5.3 Arduino单片机引脚功能表图和其它设备之间实现相互通在许多实际应用场合中我们会要求在Arduino两个设信,而最常见通常也是最简单的办法就是使用串行通信。在串行通信中,它们之间必须严格遵循相应的协议以保备之间一个接一个地来回发送数字脉冲,证通信的正确性。而在各种微控制器RS-232串行协议,在PC机上上最常见的串行通信协议是因此TTL串行协议。由于这两者的电平有很大的不同,(单片机)上采用的则是电平和机和微控制器的通信时,必须进行相应的转换。完成RS-232在实现PC上是用相ArduinoTTL电平之间的转换一般采用专用芯片,如MAX232等,但在应的电平转换电路来完成的。引脚一方面直接和的RXTX根据Arduino的原理图我们不难看出,ATmega另一方面又通过电平转换电路接到了号管脚, 1接到了数字I/O端口的0号和机通信时,可以用串口线将与PC串口的母头上。因此,当我们需要用Arduino通信时,)Arduino 与微控制器(如另一块Arduino两者连接起来;当我们需要用 1号管脚。0则可以用数字I/O端口的号和Arduino停止位等,串行通信的难点在于参数的设置,如波特率、数据位、在函数来简化这一任务。为了实现数据的发送,语言可以使用Serial.begin()第14页

两个函数,它们的区别Serial.println()Arduino则提供了Serial.print()和在于后者会在请求发送的数据后面加上换行符,以提高输出结果的可读性。编程软件5.3 Arduino语言, C 语言是建立在 C/C++基础上的,其实也就是基础的A rduino

单片机(微控制器)相关的一些寄存器参数设置等Arduino 语言只不过把 AVR 单片机(微控制器)都函数化了,不用我们去了解他的底层,让不太了解 AVR 的朋友也能轻松上手。

5.4 编程界面图官方网作为主体的一个程序构架。语言是以 setup()开头,loop()Arduino

的:用来初始化变量,管脚模式,调用库函数等等,此函站是这样描述 setup()函数内的语句周而复始的循环执行,数只运行一次。loop()函数是一个循环函数,”。 c 功能类似语言中的“main();

第15页

4智能小车控制流程及程序

开始蓝牙模组待机app

启与蓝牙模组对ap利车进行操作

16第页

烧录程序:4.2arduinoONF 松开按下发出 ONA *前进

ONF 松开后退:按下发出 ONB

ONF 松开左转:按下发出 ONC

ONF OND 松开右转:按下发出ONF ONE 松开停止:按下发出蓝牙程序功能是按下对应的按键执行操,松开按键就停止*/

定义字符变量char getstr; //(IN1) 左电机前进int Left_motor_go=8; //(IN2) 左电机后退int Left_motor_back=9; //(IN3) 右电机前进int Right_motor_go=10; //

(IN4) 右电机后退int Right_motor_back=11; //

定义电机的接口//void setup()

{

IO为输出方式 //初始化电机驱动 Serial.begin(9600);

PWM) 无 pinMode(Left_motor_go,OUTPUT); // PIN 8

( pinMode(Left_motor_back,OUTPUT); // PIN 9 (PWM)

pinMode(Right_motor_go,OUTPUT);// PIN 10 (PWM)

pinMode(Right_motor_back,OUTPUT);// PIN 11 (PWM)

}

void run()

{

digitalWrite(Right_motor_go,HIGH); // 右电机前进

digitalWrite(Right_motor_back,LOW);

调速,左右轮差异略比例 //analogWrite(Right_motor_go,150);//PWM0~255 17第页

增减 //analogWrite(Right_motor_back,0);

digitalWrite(Left_motor_go,LOW); // 左电机前进

digitalWrite(Left_motor_back,HIGH);

调速,左右轮差异略增比例0~255 //analogWrite(Left_motor_go,0);//PWM 减 //analogWrite(Left_motor_back,150);

执行时间,可以调整 //delay(time * 100); //}

刹车,停车void brake() //{

digitalWrite(Right_motor_go,LOW);

digitalWrite(Right_motor_back,LOW);

digitalWrite(Left_motor_go,LOW);

digitalWrite(Left_motor_back,LOW);

}

void left()

{

// 右电机前进 digitalWrite(Right_motor_go,HIGH);

digitalWrite(Right_motor_back,LOW);

//analogWrite(Right_motor_go,150);

调速比例0~255 //analogWrite(Right_motor_back,0);//PWM digitalWrite(Left_motor_go,LOW); //左轮后退

digitalWrite(Left_motor_back,LOW);

//analogWrite(Left_motor_go,0);

0~255比例调速 //analogWrite(Left_motor_back,0);//PWM 18第页

执行时间,可以调整 //delay(time * 100); //}

) 左轮后退,右轮前进左转(void spin_left(int time) //{

// 右电机前进 digitalWrite(Right_motor_go,HIGH);

digitalWrite(Right_motor_back,LOW);

//analogWrite(Right_motor_go,200);

0~255调速 //analogWrite(Right_motor_back,0);//PWM比例

digitalWrite(Left_motor_go,HIGH); //左轮后退

digitalWrite(Left_motor_back,LOW);

//analogWrite(Left_motor_go,200);

调速 //analogWrite(Left_motor_back,0);//PWM比例0~255 执行时间,可以调整 //delay(time * 100); //}

void right()

{

右电机后退 digitalWrite(Right_motor_go,LOW); //

digitalWrite(Right_motor_back,LOW);

//analogWrite(Right_motor_go,0);

0~255调速 // analogWrite(Right_motor_back,0);//PWM比例

digitalWrite(Left_motor_go,LOW);//左电机前进

digitalWrite(Left_motor_back,HIGH);

//analogWrite(Left_motor_go,0);

调速 //analogWrite(Left_motor_back,150);//PWM比例0~255 //执行时间,可以调整 //delay(time * 100);

}

)

(右转右轮后退,左轮前进void spin_right(int time) // 19第页

{

右电机后退 digitalWrite(Right_motor_go,LOW); //

digitalWrite(Right_motor_back,HIGH);

//analogWrite(Right_motor_go,0);

0~255调速 // analogWrite(Right_motor_back,200);//PWM比例

digitalWrite(Left_motor_go,LOW);//左电机前进

digitalWrite(Left_motor_back,HIGH);

// analogWrite(Left_motor_go,0);

0~255调速 // analogWrite(Left_motor_back,200);//PWM比例执行时间,可以调整 //delay(time * 100); //}

void back()

{

右轮后退 digitalWrite(Right_motor_go,LOW); //

digitalWrite(Right_motor_back,HIGH);

// analogWrite(Right_motor_go,0);

0~255比例调速 // analogWrite(Right_motor_back,150);//PWM digitalWrite(Left_motor_go,HIGH); //左轮后退

digitalWrite(Left_motor_back,LOW);

//analogWrite(Left_motor_go,150);

调速 //analogWrite(Left_motor_back,0);//PWM比例0~255 执行时间,可以调整 //delay(time * 100); //}

void loop()

{

getstr=Serial.read(); // 将串口收到的数据返回变量A 当变量值为

if(getstr=='A') // {

Serial.println(go forward!);

20第页

run();

}

B 当变量值为 else if(getstr=='B')//{

Serial.println(go back!);

back();

}

C else if(getstr=='C')//当变量值为{

Serial.println(go left!);

left();

}

D 当变量值为 else if(getstr=='D')//{

Serial.println(go right!);

right();

}

else if(getstr=='F'){

Serial.println(Stop!);

brake();

}

else if(getstr=='E'){

Serial.println(Stop!);

brake();

}

}

21第页

在烧录程序时,一定要将蓝牙模组的串口连线拔掉,因为会与下载到小车//PS: 程序有冲突

结:小

老师们的谆谆教我与老师建立了浓厚的师生情谊。在学习知识这段时间里,导,使我体会了学习的乐趣。我与身边许多同学,也建立了良好的学习关系,互帮互助,克服难关。锻炼了自我的动手和分析问题能力,受益匪浅。通过此次的课程设计,我深刻的认识到程序和硬件的相关性,知道了利用之间如何进行信息交互,使得程序学习更加深刻,明确了以后要apparduino和的发展方向。

参考文献

16c6b36ec081e53a580216fc700abb68a882ad5a 1、Arduino使用教程

、2清华大学出版社程序设计谭浩强C电子工业出版社何希才新型实用电子电路400例、3

化学工业出版社第一版,赵负图4、传感器集成电路手册机械工业出版社电力拖动自动控制系统陈伯时5、,第二版

16c6b36ec081e53a580216fc700abb68a882ad5a Arduino Nano user manual 、6Arduino Homepage

22第页

23第页

本文来源:https://www.bwwdw.com/article/ozie.html

Top