基于 arduino 的超声波避障及 wifi 遥控智能小车 · l293d 是四倍高电流h...

20
基于 Arduino 的超声波避障及 WiFi 遥控智能小车 摘要 单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式,智能仪 表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故 障率低,可靠性高,成本低廉。另外它还有如下的特点:简便易学,费用低廉高 速、低耗、保密 I/O 口功能强,具有 A/D 转换等电路有功能强大的定时器/计数 器及通讯接口。无论是在工业控制领域、医疗卫生领域、还是在国防军事领域、 航天航空领域,微控制器都起着举足轻重的作用。我们通过设计基于 Arduino 智能小车来深入学习单片机。 传统的小车控制多是通过摇杆,但摇杆硬件较大,且需要一个稳定的工作台 才能工作,在某些情况下使用起来不太方便。而随着科技的飞速发展,人们也在 不断探索新的控制方式。电影 007 上曾经出现过这样一个镜头,詹姆斯邦德坐在 自己车的后座上通过手机遥控自己的汽车。这看似科幻的情景,随着现在智能手 机的普及,正逐渐变为现实。我们准备使用移动终端上的软件通过日常生活中常 见的 WIFI 技术对小车实施远距离遥控操作,控制其运动。 与此同时,在科学探索和紧急抢险中经常会遇到对与一些危险或人类不能直 接到达的地域的探测,这些就需要用机器人来完成。而在机器人在复杂地形中行 进时避障和实时传输图像是必不可少也是最基本的功能。因此,避障系统的研发 就应运而生。我们的小车是通过车前设置的摄像头捕捉实时图像并通过 WiFi 术传送到移动终端,让使用者自己根据具体情况进行判断。随着科技的发展,各 种测距技术层出不穷不断更新,由于图像和使用者的局限性,我们决定在小车上 增加测距的功能,以用于辅助使用者做出判断。 超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用 传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍 的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业 现场。相比于其它定位技术超声波定位技术成本低,制作容易,非常适合于短距 离测量定位。 基于以上优点我们决定使用超声波测距技术,这种技术会极大的帮助使用者 进行避障。 关键词:Arduino WIFI 控制 超声波避障 实时图像

Upload: others

Post on 21-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

基于 Arduino 的超声波避障及 WiFi 遥控智能小车

摘要

单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式,智能仪

表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故

障率低,可靠性高,成本低廉。另外它还有如下的特点:简便易学,费用低廉高

速、低耗、保密 I/O 口功能强,具有 A/D 转换等电路有功能强大的定时器/计数

器及通讯接口。无论是在工业控制领域、医疗卫生领域、还是在国防军事领域、

航天航空领域,微控制器都起着举足轻重的作用。我们通过设计基于 Arduino 的

智能小车来深入学习单片机。

传统的小车控制多是通过摇杆,但摇杆硬件较大,且需要一个稳定的工作台

才能工作,在某些情况下使用起来不太方便。而随着科技的飞速发展,人们也在

不断探索新的控制方式。电影 007上曾经出现过这样一个镜头,詹姆斯邦德坐在

自己车的后座上通过手机遥控自己的汽车。这看似科幻的情景,随着现在智能手

机的普及,正逐渐变为现实。我们准备使用移动终端上的软件通过日常生活中常

见的WIFI技术对小车实施远距离遥控操作,控制其运动。

与此同时,在科学探索和紧急抢险中经常会遇到对与一些危险或人类不能直

接到达的地域的探测,这些就需要用机器人来完成。而在机器人在复杂地形中行

进时避障和实时传输图像是必不可少也是最基本的功能。因此,避障系统的研发

就应运而生。我们的小车是通过车前设置的摄像头捕捉实时图像并通过 WiFi 技

术传送到移动终端,让使用者自己根据具体情况进行判断。随着科技的发展,各

种测距技术层出不穷不断更新,由于图像和使用者的局限性,我们决定在小车上

增加测距的功能,以用于辅助使用者做出判断。

超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用

传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍

的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业

现场。相比于其它定位技术超声波定位技术成本低,制作容易,非常适合于短距

离测量定位。

基于以上优点我们决定使用超声波测距技术,这种技术会极大的帮助使用者

进行避障。

关键词:Arduino WIFI控制 超声波避障 实时图像

Page 2: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

设计的系统的目的、用途和功能

(1)系统目的

学会应用 Arduino 单片机,作为智能小车的核心控制器;通过安卓手机或电

脑来连接 WiFi,使用软件来控制智能小车;学会基本运动、避障及 WiFi 控制程

序的调试。

(2)系统用途

此系统并非完善,但是可作为应用方面一个参考的例子。装载摄像头的小车

可以实现远距离操控,传输实时图像并使用超声波测距探测未知区域。

(3)系统功能

①手机或电脑连接WiFi 控制小车行动,传输实时图像;

②实现简单的测距和避障功能。

硬件设计思想和电原理图

1. Arduino UNO Rev3

Arduino UNO 的处理器核心是 ATmega328,同时具有 14路数字输入/输出口

(其中 6 路可作为 PWM 输出),6 路模拟输入,一个 16MHz 晶体振荡器,

一个 USB接口,一个电源插座,一个 ICSP header 和一个复位按钮。

下面是 Arduino UNO Rev3 主要参数

处理器 ATmega 328

工作电压 5V

输入电压(推荐) 7-12V

输入电压(范围) 6-20V

数字 IO脚 14(6路可作为 PWM输出)

模拟输入脚 6

IO 脚直流电流 40mA

3.3V 脚直流电流 50mA

Flash Memory 32KB(其中 0.5KB用于 bootloader)

SRAM 2KB

EEPROM 1KB

工作时钟 16MHz

Page 3: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

Arduino UNO引脚说明

⑴电源引脚

VIN——当外部直流电源接入电源插座时,可以通过 VIN 向外部供电,也可

以通过此引脚向 UNO 直接供电;VIN 有电时将忽略从 USB或者其他引脚接

入的电源。

5V——通过稳压器或 USB的 5V电压,为 UNO上的芯片供电

3V3——通过稳压器产生的 3.3V电压,最大驱动电流 50mA

GND——地脚

⑵输入输出接口

①14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。

每一路配置了 20-50K 欧姆内部上拉电阻(默认不连接)。除此之外,有些引脚有

特定的功能

串口信号 RX(0号)、TX(1号): 与内部 ATmega8U2 USB-to-TTL 芯片相连,

提供 TTL电压水平的串口接收信号。

外部中断(2号和 3号):触发中断引脚,可设成上升沿、下降沿或同时触发。

脉冲宽度调制 PWM(3、5、6、9、10 、11):提供 6路 8位 PWM输出。

SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。

LED(13号):Arduino 专门用于测试 LED 的保留接口,输出为高时点亮 LED,

反之输出为低时 LED 熄灭。

②6路模拟输入A0到A5:每一路具有10位的分辨率(即输入有 1024个不同值),

默认输入信号范围为 0到 5V,可以通过 AREF调整输入上限。除此之外,有些

引脚有特定功能

TWI接口(SDA A4 和 SCL A5):支持通信接口(兼容 I2C 总线)。

③AREF:模拟输入信号的参考电压。

④Reset:信号为低时复位单片机芯片。

2. AR-293D拓展板

Page 4: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

电路板

拓展板的功能如下图

集成 293D驱动芯片,可以驱动 2轮及四轮智能小车

集成蓝牙接口,WIFI 接口,双路舵机接口,2 路红外避障模块接口,3 路红

外循迹模块接口,1路超声波接口。

集成 5V电源稳压芯片。

超声波接口:

SR04

1. GND

2. Echo,接到核心板 9脚

3. Teig,接到核心板 8脚

4. Vcc

驱动模块控制信号线接口:

1. IN1 驱动电机信号线,接到核心板 14脚 A0

2. IN2 驱动电机信号线,接到核心板 15脚 A1

3. IN3 驱动电机信号线,接到核心板 16脚 A2

4. IN4 驱动电机信号线,接到核心板 17脚 A3

5. EN1驱动电机 PWM1控制,接到核心板 3脚

6. EN2驱动电机 PWM2控制,接到核心板 5脚

Page 5: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

2轮电机输出接口

1. T1接左电机,1接电机 1脚,2接电机 2脚

2. T2接右电机,1接电机 1脚,2接电机 2脚

3. 电机驱动模块 L293D及 H 桥路[1]

L293D是四倍高电流 H桥路驱动芯片,主要用于提供双向驱动电流达到

600mA,电压在 4.5V到 36V间的电路。

芯片所有输入均为 TTL兼容接口。每一个输出接口是完整的推拉输出电

路与达林顿三极管和伪达林顿源。1,2EN和 3,4EN分别是 1和 2、3和 4的使

能端,均为高电平使能。当使能输入为低电平时,这些驱动器被禁用,呈现

出高阻态。

L293D芯片引脚图

功能表

输入 输出

Y A EN

H H H

L H L

X L Z

(注:H表示“高电平”,L表示“低电平”,X表示“不相关的”,Z表示“高阻抗”)

Page 6: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

2路电机驱动原理图

双极型步进电机控制原理图

EN 3A M1 4A M2

H H 快速电机停

H 转动

H L 转动 L 快速电机停

L X 自由运动电

机停止

X 自由运动电

机停止

Page 7: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

EN 1A 2A 功能

H L H 右转

H H L 左转

H L L 停止

H H H 停止

L X X 停止

PWM 调速原理:用微处理进行脉宽调制,调占空比、调频率

对于电机的转速调整,我们是采用脉宽调制的方法,控制电机的时候,电源

并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。

不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电

感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用

时间上,这样,改变在使能端 ENA和 ENB上输入方波的占空比就能改变加在电

机两端的电压大小,从而改变转速。

小车马达参数

型号 规格 减速

3V空

载转/

分钟

3V空

载安

66mm

轮的

速度

(米/

分钟)

5V空

(转/

分钟)

速度 5V空

载安

66mm

轮的

速度

(米/

分钟)

扭力

HC01-48 双轴 1:48 125 26 208 适中 44 0.8KG*CM

4. 超声波模块

电路原理图

Page 8: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

超声波是频率高于 20000Hz 的声波,它的指向性强,能量消耗缓慢,在介

质中传播的距离较远,因而经常用于测量距离。

我们用一款常见的超声波传感器 HC-SR04 来测量距离。

超声波模块引脚介绍

SR04 超声波模块有 4个引脚,

引脚名称 说明

Vcc 电源 5V

Trig 触发引脚

Echo 回馈引脚

GND 地

SR04 超声波传感器带有两个超声波探头,分别用作发射和接收超声波。其

测量范围为 3~450cm。超声波测距的工作原理:

超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空

气中传播,途中碰到障碍物则立即返回,超声波接收器接收到反射波则立即停止

计时。声波在空气中的传播速度为 340m/s,根据计时器记录的时间 t,即可计算

出发射点距障碍物的距离,即 s=340*t/2。这种方法也叫时间差测距法。

5. WIFI 模块

我们采用了由慧净电子研制定制的智能车专用系统无线数传模块,实现搭载

其他模块来实现不同的控制和视频传送。模块供电口为 5V 电源,2 根 TTL 线,

1 条 GND 线。它可以产生很强的 Wifi 热点,热点名称为 hjwifi2014,无需输入

密码即可连接。由于此模块出厂时固件已经写好,在这里我们简单介绍一下如何

使用该模块。其中 TTL信号线

1(灰色)——接收信号 2(白色)——发射信号 3(黑色)——GND

以及 WIFI模块参数为:

Page 9: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

网络标准

无线标准 IEEE 802.11n IEEE 802.11g IEEE

802.11b

优先标准 IEEE 802.3 IEEE 802.3u

网络接口 1个 10/100Mbps LAN/WAN 复用接口

USB接口 USB 2.0

串口 TTL232(2.6V)

天线类型 内置天线

无线安全 无线MAC 地址过滤、无线安全功能开

关 64/128/152 位WEP加密,

WPA-PSK/WPA2-PSK

输入电压/电流 5V/1A

Wifi 模块外观图:

WIFI模块工作原理:

WiFi 模块上电后,发射无线信号,如果某设备连接上无线,即可获得一个

控制地址和控制端口:

Page 10: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

控制端口在这里的作用相当于串口监视器,每执行一个指令,即向控制端口

输入了一个字符。因此,利用这一特点,我们可以通过一个选择结构,在软件界

面进行操作,间接地控制小车。

软件设计思想及软件流程

1. 小车基本运动的软件设计思想及流程

小车的基本运动分为前进、后退、左转、右转和停止,我们分别把每一个基

本运动写成一个函数。

引脚配置为输出模式以后,用 digitalWrite()函数改变引脚输出的电平;用

analogWrite()进行模拟输出,改变 PWM 的脉冲宽度对小车的速度进行设定。两

个电机的四个脚位均接 Arduino 的 PWM 端口。

2. 超声波测距及避障的软件设计思想及流程

⑴串口输出超声波测距的数值【2】:

小车运动函数

前进函数

后退函数

左转函数

右转函数

停止函数

Page 11: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

在这里,我们主要用到了脉冲宽度测量函数 pulseIn();pulseIn()的功能是检

测制定引脚上的脉冲信号宽度,例如当要检测高电平脉冲时,pulseIn()函数会等

待指定引脚输入的电平为高,在变高后开始计时,直到输入电平变低时,计时停

止。pulseIn()函数会返回此脉冲持续的时间,即该脉冲的宽度。pulseIn()函数还

可以设定超时时间。如果超过设定时间仍未检测到脉冲,则会退出 pulseIn()函数

并返回 0。当没有设定超时时间时,pulseIn()会默认 1秒钟的超时时间。

pulseIn()的语法:

pulseIn(pin,value)

pulseIn(pin,value,timeout)

参数:

Pin,需要读取脉冲的引脚;

Value,需要读取的脉冲类型,为 HIGH或 LOW

Timeout,超时时间,单位为微秒,数据类型为无符号长整型。

返回值:换行返回脉冲宽度,单位为微秒,数据类型为无符号长整型。如果

在指定时间内没有检测到脉冲,则返回为 0。

使用 Arduino 的数字引脚给 SR04 模块的 Trig 引脚至少 10μs的高电平信号

以此来触发 SR04 模块的测距功能。

测距功能触发后,模块会自动发送 8 个 40kHz 的超声波脉冲,并自动检测

是否有信号返回。这一步由模块内部自动完成。

若有信号返回,则 Echo 引脚会输出高电平,高电平持续的时间就是超声波

从发射到返回的时间。此时可以使用 pulseIn()函数获取测距的结果,并计算出距

被测物体的实际距离。

⑵类库封装

为了提高代码的编写效率及程序的可读性,我们把超声波驱动对端口的配置

过程封装成 DistanceSRF04 类库

触发测距功能

检测是否有信号返回

Echo输出高电平

获取计时器记录的时间

计算距离并显示

Page 12: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

DistanceSRF04.cpp 中关键的函数

int DistanceSRF04::getDistanceTime() //获取计时器记录的时间

{

long sum = 0;

for (int i=0;i<_average;i++)

{

digitalWrite(_trigPin, LOW);

delayMicroseconds(2);

digitalWrite(_trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(_trigPin, LOW);

_duration = pulseIn(_echoPin, HIGH);

sum=sum+_duration;

}

return(int(sum/_average));

}

int DistanceSRF04::getDistanceCentimeter() //计算距离

{

return (getDistanceTime()/29/2);

}

优化的思路:

当检测的距离超出了超声波可检测的范围时(3~450cm)时,输出错误信息

DistanceSR04

public

• begin()

• getDistanceTime()

• getDistanceCentimeter()

private

• _trigPin

• _echoPin

• _average

• _duration

Page 13: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

或重新检测;每次检测时检测两次或者多次,将得到的值作比较,如果偏差较大,

则认为是检测出错,并放弃检测结果,重新检测距离。

小车实现简单避障的示例代码

在这里,我们设定安全距离为 5cm。

DistanceSRF04 Dist;

int distance;

distance = Dist.getDistanceCentimeter();

if(distance<=5 && distance>1)

{

hou();

delay(100);

ting();

}

else

qian();

3. WIFI 遥控的软件设计思想及流程

点击按钮,触发一个事件,在这里,我们用 a 代表前进,b 代表后退,c 代

表左转,d 代表右转,e 代表停止。一旦按下某一个按键,则触发相应的函数,

小车作出反应。如果串口接收到数据,则将数据读取赋值给变量 lkf,用 switch()

结构来进行选择。

if(Serial.available())

{

lkf = Serial.read();

switch(lkf)

{

case 'a':

小车运动碰到障碍物

测量与障碍物的距离,并与设定的安全距离进行比较

距离小于安全距离,则后退;否则继续前进

Page 14: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

qian(); //前进

lkf=0;

break;

case 'b':

hou(); //后退

lkf=0;

break;

case 'c':

zuo(); //左转

lkf=0;

break;

case 'd':

you(); //右转

lkf=0;

break;

case 'e':

ting(); //停止

lkf=0;

break;

}

}

控制界面设计

PC WIFI上位机软件界面

安卓手机 WIFI上位机界面

Page 15: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

系统测试过程及测试数据、指标参数分析

1. 小车运动硬件控制

根据前述拓展板接口,电机 1 的信号线 IN1,IN2 对应拓展板的 A0,A1;电

机 2的信号线 IN3,IN4 对应拓展板的 A2,A3

结合我们的小车,右电机为 A0,A1;左电机为 A2,A3。用一根一公头一

母头的杜邦线,母头接在拓展板的 Vcc接口,用公头去试触四个脚 A0,A1,A2,

A3,测试的方法如下:

测试结果如下:

试触脚位 车轮转向(人正对车轮的方向)

A0 右车轮逆时针转(后退)

A1 右车轮顺时针转(前进)

A2 左车轮逆时针转(前进)

A3 左车轮顺时针转(后退)

试触即给脚位施加一个高电平,该测试明确了车轮转向随电平的变化关系。为后

续小车基本运动函数的编写提供了参考。

Page 16: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

2. PWM控制 L293D 驱动小车前进

下面演示的是用软件测试小车基本运动的步骤:

定义脚位、配置脚位的为输出模式

小车基本运动的实现:以前进函数、右转函数为例

后退、左转函数的脚位的电平与前进、右转的相反。用上述思路编写出完整

的程序,并将程序烧写进小车内。为了测试每个基本运动,可以在 loop()循环内

分别调用各个函数。

Page 17: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

3. 超声波测距测试

将超声波测距的程序上传到 Arduino,打开串口监视器,可以看到:

4. Wifi 小车的调试

①将 WIFI程序下载烧写进小车

②搜索 hjwifi2014 上位机软件,连接

Page 18: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

③打开视频

控制台前进、后退、左转、右转的测试,如果测试方向有误,可以修改设置

里面的指令,或者程序里面 switch()结构里的 case语句。

Page 19: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

④打开浏览器,输入此视频地址,可以看到

视频可以通过此网址进行共享,此视频为一个时刻的图片,通过点击刷新按

钮可以获得此时的视频图像。

经过测试,WIFI小车不支持多台设备同时控制,但是可以共享视频。

Page 20: 基于 Arduino 的超声波避障及 WiFi 遥控智能小车 · l293d 是四倍高电流h 桥路驱动芯片,主要用于提供双向驱动电流达到 600mA,电压在4.5V 到36V

设计所用全部资源清单

HJ-LINK高清

WIFI视频数传模

1个 PCB车底盘 1个

高清 USB摄像头 1个 小车马达 2个

Arduino uno R3主

1个 车轮(含万向轮) 3个

R3 多功能驱动拓

展板

1个 数显电压表 1个

HC-SR04 超声波

模块

1个 电池、杜邦线、螺

若干

参考文献

[1]TEXAS INSTRUMENTS.L293,L293D,QUADRUPLE HALF-H

DRIVERS.DALLAS,TEXAS 75265

[2]陈吕洲. Arduino 程序设计基础.北京:北京航空航天大学出版社,

2014