首页>参考读物>电子电工>电子工程

Arduino与LabVIEW开发实战
作者 : 沈金鑫 编著
出版日期 : 2014-03-24
ISBN : 978-7-111-45839-5
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 290
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书内容为结合Arduino作为下位机,PC作为上位机,结合LabVIEW进行系统开发的一本书。全书分为三个部分,第一部分主要讲解如何使用Arduino IDE对Arduino硬件模块进行开发;第二部分主要讲解如何使用LabVIEW进行上位机开发;第三部分主要讲解,如何将二者结合,进行上下位机结合的系统开发。

图书特色

首本将LabVIEW和Arduino结合的实战型书籍。
无论对于Arduino还是LabVIEW,这都是全新的一种开发方法。
大量的实例、完整的项目文件和源代码,可操作性极强。

Arduino与LabVIEW开发实战
沈金鑫 编著

为什么编写本书
Arduino和LabVIEW理念似乎有类似之处。它们分别为将原来复杂繁琐的单片机设计和软件设计变得简单化,使用户更加易于接受和学习;同时,这两者又有互补之处。Arduino控制器需要简单易用的上位机软件,实现较为复杂的运算与显示功能;LabVIEW软件需要便宜好用的下位机,负责采集数据和输出执行的任务;如果将两者结合起来组成上下位机系统,各司其职,分工协作,即可实现两者的功能互补。而如何使用Arduino控制器和LabVIEW软件,并将两者有机结合起来,做出基于Arduino控制器与LabVIEW软件的实际应用和项目正是本书想要解决的问题。

本书特色
实例驱动,丰富的实例引导读者快速掌握Arduino和LabVIEW。
源码丰富,大量的源码可以作为支撑读者进行实践的素材。
快速原型,本书倡导的是一种快速围绕应用问题拿出解决方案的思路,不拘泥具体技术。

前:
全书按照由易到难的顺序编写,同时各章节相对独立,分为Arduino基础篇、LabVIEW基础篇、如何连接Arduino与LabVIEW、基础实验篇、应用进阶篇和实战项目篇,共六个章节。全书通过大量的实例和项目引导读者一步步掌握如何使用Arduino和LabVIEW快速搭建一个能够解决问题的系统原型。掌握这两个技术之后,你可以使用它们搭建测试的系统、控制的系统,以及其他任何需要上位机数据处理和下位机数据采集相结合的控制系统。

沈金鑫 硕士研究生毕业于南京理工大学,研究方向为仪器仪表与自动化,对LabVIEW图形化程序开发技术颇有研究。他是一名Arduino业余开发爱好者,业余时间撰写了大量的Arduino、LabVIEW及结合两者开发的文章,是Geek-workshop社区最活跃的版主之一。他也是《无线电》等杂志著名的专栏作者之一。

图书前言

Arduino是开源硬件的典型代表。Arduino控制器板卡、简单易用的Arduino IDE,以及Arduino简单易懂的语言,淡化了单片机底层硬件的知识,极大地简化了单片机的软硬件设计,让很多不懂单片机等底层硬件的科技爱好者也可以进行电子制作。同时社区论坛中很多爱好者制作的参考示例可供参考使用,而且社区论坛和参考示例也在不断地增加。
  LabVIEW是图形化编程软件的代表,采用图形化编程语言进行软件设计,具有表达形象、易于阅读、便于理解的优点。只需要选择合适的控件并合理布局,很轻松地就可以构建出一个漂亮的仪器仪表界面;框图编程部分采用直观的连线方式实现函数之间的数据传递。同时拥有大量的操作面板控件和不同功能的函数库,可供大家调用。
  Arduino和LabVIEW将复杂烦琐的单片机设计和软件设计变得简单化,更加亲民、易于接受和学习;同时Arduino控制器需要简单易用的上位机软件,实现较为复杂的运算与显示功能;LabVIEW软件需要性价比高的下位机,负责采集数据和输出执行的任务;如果将两者结合起来组成上下位机系统,各司其职,分工协作,即可实现两者的功能互补。本书讨论的主要内容正是如何使用Arduino控制器和LabVIEW软件,并将两者有机结合起来,做出基于Arduino控制器与LabVIEW软件的实际应用和项目。
目标读者
  本书适合大中专院校的仪器仪表类、电子类、通信类、计算机类等专业学生阅读,还适合Arduino学习者、LabVIEW学习者以及渴望利用Arduino与LabVIEW实现自己想法的创客们。
关于本书
  我在南京理工大学攻读硕士学位时,跟随导师采用LabVIEW软件来完成科研课题,发现很多课题之中都有数据采集需求,而且对采样速率和采样精度的要求不高,但却需要花费几万元去购买NI公司的数据采集卡,这极大地限制了在对成本敏感的项目中使用LabVIEW软件。此后,我就开始自己采用单片机搭配高性能的A/D芯片制作简易的数据采集设备,以满足低速、低成本的数据采集任务,并成功地应用于很多项目中。
  后来,在网上遇到了南京嵌入之梦电子设计工作室的丁齐老师和郑岩峰、戴晓天、金小飞等人,一起联合成立了南京创客空间。在创客空间的活动中,发现很多人都使用Arduino来做原型开发,深入学习了Arduino之后觉得如获至宝,可以将Arduino与LabVIEW结合起来制作出很多有趣的玩意儿。这时候,还发现了NI公司提供了LabVIEW Interface for Arduino工具包,试用之后觉得模拟采样库比较实用,可将Arduino控制器用作数据采集板卡,如果使用高精度的基准源,则采集精度将会更高,同时说明NI公司很看好Arduino及开源硬件的发展前景。
  本书中的Arduino程序代码和LabVIEW程序都可以从我的新浪博客(blog.sina.com/shenjinxin2008)和个人博客(www.shenjinxin.org)上下载,并可获得技术支持服务。
本书的内容及阅读建议
  全书按照由易到难的顺序编写,同时各章节相对独立,全书共分为6章,分别为Arduino基础、LabVIEW基础、如何连接Arduino与LabVIEW、基础实验篇、应用进阶篇和实战项目篇。
  第1章 Arduino基础:讲述了Arduino的分类、如何搭建Arduino开发平台、数字输入/输出、模拟输入/输出、串口通信和时间函数,并穿插以实际操作的实验,以加深理解。
  第2章 LabVIEW基础:讲述了虚拟仪器的组成、LabVIEW基础知识、数据结构、程序结构、常用的波形图表和波形图、基本的文件I/O操作、信号分析与处理、典型的设计模式,同时通过示例说明每部分的使用方法。
  第3章 如何连接Arduino与LabVIEW:讲述了如何实现Arduino与LabVIEW的连接,包括LabVIEW Interface for Arduino方式、串口控制方式、无线串口方式和Ethernet方式4个部分,其中无线串口方式介绍了Bluetooth、APC220和ZigBee。在前三个方式中,Arduino控制器都是通过串口与LabVIEW进行通信的,而在Ethernet方式中则是通过Ethernet模块和网络与LabVIEW进行通信的。
  第4章 基础实验篇:讲述了利用LabVIEW Interface for Arduino工具包,实现对Arduino控制器及外部设备的控制,其中将Arduino控制器用作数据采集卡,扩展了LabVIEW廉价采集卡的选用范围。
  第5章 应用进阶篇:讲述了7个Arduino与LabVIEW的应用,包括多路数据采集、热电偶高温监测、多路温度数字测量、温湿度测量、超声波测距、红外测距和小量程电子称重系统,涉及传感器及器件的选用与编程方法,并给出了Arduino控制器的代码清单和LabVIEW程序框图。
  第6章 实战项目篇:讲述了4个综合性的项目,包括无线遥控智能小车、个人小型气象站、智能农业监测系统和基于网络的远程智能家居系统,深入地讲解了系统的构成、硬件连接、软件设计和故障排除方法。
  如果您是艺术家、设计师等读者,不了解Arduino和LabVIEW,建议您从第1章开始按部就班地阅读到最后一章,并做好每一个实验,这可能会花费您大量时间和精力,但是这有助于您尽快上手Arduino和LabVIEW,同时您需要注意本书提示部分的内容。
  如果您是Arduino玩家,建议您跳过第1章直接阅读第2章,学会使用LabVIEW软件之后,接着阅读第3章,在实现了Arduino与LabVIEW的连接之后,再去阅读后面的基础实验篇、应用进阶篇和实战项目篇,最终做出属于自己的Arduino与LabVIEW的作品。
如果您是LabVIEW程序员,建议您从第1章开始阅读,熟悉Arduino控制器并完成每一个Arduino实验之后,跳过第2章直接阅读第3章,实现了Arduino与LabVIEW的连接之后,再去阅读后面的基础实验篇、应用进阶篇和实战项目篇,最终做出属于自己的Arduino与LabVIEW的作品。
  如果您是Arduino与LabVIEW的玩家,您可以阅读本书的任意章节,并可以根据本书的介绍来复现书中的应用和项目,由于拥有较好的功底,您最终可以做出属于自己的Arduino与LabVIEW的作品。
致谢
  首先,感谢本书的策划编辑张国强先生,他对Arduino的关注促使了本书的出版,并在写作过程中提出了非常宝贵的建议与意见。
  其次,感谢我的妻子冯倩女士对我的支持与鼓励,冯倩女士对本书的校对和修改也做了很多的工作。同时,在本书的编写中,南京理工大学的陆旭峰、袁涛、杜超、王荣振,南京创客空间的郑岩峰、金小飞、江玉明、陈大庆、戴晓天、邓豪等人也参与了本书的校对和修改,感谢他们。
  另外,感谢成都智能盒子有限公司的陈吕洲先生和杭州橡木桶科技有限公司的郝弘毅先生为我提供Arduino兼容控制器。本书的Arduino程序代码在OPENJUMPER的Zduino Uno和OCROBOT的Mango II兼容控制器上验证通过。
  最后,感谢东南大学的匡荛教授和奥松机器人的于欣龙为我作了推荐序,感谢每一位阅读本书的读者。
  由于作者经验和时间有限,本书也是对Arduino与LabVIEW的一种探索,书中难免存在错误和不足之处,恳请各位专家和读者不吝赐教。联系邮箱:shenjinxin2008@126.com。

沈金鑫
2013年10月于南京理工大学

上架指导

嵌入式

封底文字

策划定

作者简介

沈金鑫 编著:暂无简介

推荐序

推 荐 序 一
和金鑫认识这么久了,但这本书还是给我带来了惊喜。
对于喜爱机器人技术并且热衷于科技创业的人而言,当下这个时代无疑是充满竞争而饱含激情的。它所充斥的梦想、理念,使得很多年轻人跃跃欲试。与他们的父辈不同,西风东渐,现在的社会环境蓬勃发展,逐渐成熟,经济转型带来的政策鼓励,使他们能更轻松地实现梦想。这些便利的条件帮助了无数涉世未深的年轻人选择非按部就班的道路,同时,他们所需要的、更加强大而易于掌握的生产力工具就显得尤为重要。
长期以来,机器人设计必须依靠一系列核心技术,不仅艰涩难懂,而且夹杂着无休无止的硬件问题,这让无数初学者头疼不已。好在Arduino技术秉承着自由趣味的精神,让有兴趣的人能接触并在短时间内完成一个实际范例。或许,通过网络玩家和创客的支持与分析,这种精神能不断延续。
Arduino到底是什么意思呢?其实它是11世纪北意大利国王的名字,后来被引用到控制器上。得益于其程序语言的简洁易懂,技术门槛低,使得各行各业的人们都能加入设计师的行列。它作为一种开源硬件的典型代表,经历了历史的淘洗,有了自己的文化。这种科技和文化艺术的交流,搭建了一座现实和虚拟世界的桥梁,让无数充满梦想的人在现实中实现脑海中的设想。而LabVIEW作为软件编程的基础工具,同样具有表达清晰、易于学习、方便设计的特征。
本书的亮点在于,它将Arduino和LabVIEW这两种简便易行的工具结合在一起,控制器与软件相结合,互相补充协助形成上下位机系统,教会读者如何使用它们,并做出基于它们的实际项目。
假设需要这本书的人都是怀着梦想、希望改变自己、改变世界的人,假设你们都是对这个世界的不如意有着改造和寄予的人,那么,从此时开始,做好准备,从观察和学习开始,从学好一种设计的能力开始,从这本书开始。
祝阅读愉快!

匡荛于东南大学
2013年10月



推 荐 序 二
Arduino从未停止过开源创新的步伐,自其问世以来为无数创客提供了大大小小的开源控制器硬件,因其程序语法简单易懂,开发资料丰富,短短几年时间迅速蹿红创客界风靡全球。最新推出的Arduino Yun更是得到了众多创客们的追捧,因其整合了Arduino易用的架构和 Linux系统的强大功能,可以轻松连接到复杂的Web服务,并融合多种功能,俨然成为即将改变我们家庭生活的又一大利器。
硬件平台的推陈出新,离不开软件的支持协作,由美国国家仪器(简称NI)公司推出的LabVIEW图形化设计软件平台,可以完美地与Arduino硬件结合,其与传统文本形式编程语言不同,打开软件,你会发现眼前是一幅由各种各样的图形块与彩色线条组成的图画。图形化软件编程界面直观,技术门槛低,易学易懂,能够给开发者提供更多创新机会,更重要的是LabVIEW可以帮助开发者在不同阶段使用不同版本,根据硬件平台的不同,合理选择。对于学生连续性的学习,有助于帮助他们将LabVIEW用于未来的实际工作中。
本人有幸通过Arduino学习交流与作者相识,先于广大读者阅读全书内容。本书前两章分别对Arduino硬件和LabVIEW软件做了基础性的讲解,随即在第3章中对软硬件两者之间如何连接进行了全面剖析,如RS485、蓝牙、射频、ZigBee等都是当下最热门的通信方式,图文并茂,配以实验案例教学,促使读者快速加深对知识的认知和理解。本书最后分基础实验、应用进阶、实战项目三章讲述,这部分的内容是本书的最大亮点,作者精挑细选的实验案例完全考虑初学者的学习能力和对实验的兴趣,由浅入深,力求通俗易懂。本书的出版将继续推动Arduino和LabVIEW在中国的普及和推广,同时也会大大提高中国学生对编程创作的热情。
如果你想玩转Arduino,相信LabVIEW这款图形化编程软件是你的最佳选择。最后,希望你能够通过本书的学习创造出更多好玩新奇的作品。

于欣龙
奥松机器人创始人、资深创客

图书目录

推荐序一
推荐序二
前  言
第1章 Arduino基础 / 1
1.1 Arduino是什么 / 1
1.1.1 Arduino控制器系列 / 1
1.1.2 Arduino Uno控制器 / 4
1.2 搭建Arduino开发平台 / 7
1.2.1 安装驱动 / 7
1.2.2 Arduino IDE的使用 / 8
1.2.3 第一个项目——Blink / 10
1.2.4 Arduino程序框架 / 12
1.3 数字输入/输出 / 13
1.3.1 数字I/O的函数库 / 13
1.3.2 实验:百变流水灯 / 14
1.3.3 实验:“听话”的灯 / 15
1.4 模拟输入/输出 / 16
1.4.1 模拟I/O的函数库 / 16
1.4.2 实验:会呼吸的灯 / 17
1.4.3 实验:调光LED / 18
1.5 串口通信 / 19
1.5.1 串口函数库的使用 / 20
1.5.2 实验:回音壁 / 22
1.5.3 实验:串口电压表 / 23
1.6 时间函数 / 24
1.6.1 时间函数库 / 24
1.6.2 实验:系统已运行时间 / 25
第2章 LabVIEW基础 / 26
2.1 LabVIEW与虚拟仪器 / 26
2.1.1 什么是虚拟仪器 / 26
2.1.2 什么是LabVIEW / 27
2.1.3 数据流与图形化编程 / 27
2.2 认识LabVIEW / 29
2.2.1 前面板 / 29
2.2.2 程序框图 / 30
2.2.3 图标/连接器 / 31
2.2.4 第一个项目——Hello,World!/ 31
2.2.5 程序调试技术 / 32
2.3 数据类型与数据运算 / 33
2.3.1 数值型 / 33
2.3.2 枚举型 / 35
2.3.3 布尔型 / 36
2.3.4 数组 / 38
2.3.5 字符串 / 45
2.3.6 簇 / 51
2.4 程序结构 / 55
2.4.1 顺序结构 / 55
2.4.2 循环结构 / 57
2.4.3 条件结构 / 61
2.4.4 定时结构 / 63
2.4.5 事件结构 / 65
2.4.6 公式节点 / 67
2.4.7 局部变量与全局变量 / 68
2.5 波形显示 / 70
2.5.1 波形图表 / 70
2.5.2 波形图 / 71
2.5.3 XY图 / 73
2.6 文件I/O / 75
2.6.1 文本文件的读写 / 75
2.6.2 电子表格文件的读写 / 76
2.6.3 二进制文件的读写 / 79
2.7 信号分析与处理 / 82
2.7.1 数字滤波 / 82
2.7.2 曲线拟合 / 84
2.8 设计模式 / 86
2.8.1 事件处理循环模式 / 87
2.8.2 状态机模式 / 89
第3章 如何连接Arduino与LabVIEW / 91
3.1 LabVIEW Interface for Arduino方式 / 91
3.1.1 LIAT的下载与安装 / 92
3.1.2 LIAT函数库及使用 / 94
3.2 串口控制方式 / 105
3.2.1 串口通信 / 105
3.2.2 VISA函数库的使用 / 110
3.2.3 实验:Arduino与LabVIEW串口通信的实现 / 112
3.3 无线串口方式 / 116
3.3.1 Bluetooth / 117
3.3.2 APC220 / 123
3.3.3 ZigBee / 127
3.4 Ethernet方式 / 138
3.4.1 Ethernet硬件简介 / 138
3.4.2 Ethernet库及使用 / 140
3.4.3 TCP函数库的使用 / 147
3.4.4 实验:基于Ethernet的Arduino与LabVIEW通信实现 / 152
第4章 基础实验篇 / 156
4.1 实验:闪烁灯 / 156
4.2 实验:流水灯 / 157
4.3 实验:虚拟电压表 / 159
4.4 实验:会呼吸的灯 / 160
4.5 实验:RGB调色 / 162
4.6 实验:简易示波器 / 163
4.7 实验:数据采集卡 / 164
4.8 实验:单个舵机的控制 / 166
4.9 实验:多个舵机的控制 / 167
4.10 实验:液晶时钟 / 169
4.11 实验:液晶滚动显示 / 170
4.12 实验:数码管显示 / 171
4.13 实验:基于LM35的温度计 / 173
4.14 实验:基于热敏电阻的温度计 / 174
4.15 实验:基于光敏电阻的光强计 / 175
第5章 应用进阶篇 / 177
5.1 多路数据采集 / 177
5.1.1 概述 / 177
5.1.2 数据采集定义 / 177
5.1.3 Arduino部分设计 / 178
5.1.4 LabVIEW程序设计 / 180
5.1.5 实验与演示 / 182
5.1.6 小结 / 182
5.2 热电偶高温监测 / 182
5.2.1 概述 / 182
5.2.2 热电偶 / 183
5.2.3 MAX6675 / 184
5.2.4 Arduino部分设计 / 184
5.2.5 LabVIEW程序设计 / 186
5.2.6 实验与演示 / 187
5.2.7 小结 / 188
5.3 多路温度数字测量 / 189
5.3.1 概述 / 189
5.3.2 DS18B20 / 189
5.3.3 Arduino部分设计 / 190
5.3.4 LabVIEW程序设计 / 192
5.3.5 实验与演示 / 194
5.3.6 小结 / 195
5.4 温湿度测量 / 195
5.4.1 概述 / 195
5.4.2 DHT11 / 196
5.4.3 Arduino部分设计 / 197
5.4.4 LabVIEW程序设计 / 198
5.4.5 实验与演示 / 200
5.4.6 小结 / 200
5.5 超声波测距 / 200
5.5.1 概述 / 200
5.5.2 超声波传感器SR-04 / 201
5.5.3 Arduino部分设计 / 202
5.5.4 LabVIEW程序设计 / 204
5.5.5 小结 / 206
5.6 红外测距 / 207
5.6.1 概述 / 207
5.6.2 红外测距传感器 / 207
5.6.3 Arduino部分设计 / 208
5.6.4 LabVIEW程序设计 / 210
5.6.5 小结 / 213
5.7 小量程电子称重系统 / 213
5.7.1 概述 / 213
5.7.2 称重传感器 / 214
5.7.3 HX711 / 215
5.7.4 Arduino部分设计 / 218
5.7.5 LabVIEW程序设计 / 219
5.7.6 小结 / 225
第6章 实战项目篇 / 226
6.1 无线遥控智能小车 / 226
6.1.1 概述 / 226
6.1.2 传感与执行部分 / 227
6.1.3 Arduino部分设计 / 230
6.1.4 LabVIEW程序设计 / 235
6.1.5 调试与故障排除 / 240
6.1.6 小结 / 240
6.2 基于ZigBee的个人小型气象站 / 240
6.2.1 概述 / 240
6.2.2 传感器部分 / 241
6.2.3 Arduino部分设计 / 247
6.2.4 LabVIEW程序设计 / 250
6.2.5 调试与故障排除 / 254
6.2.6 小结 / 256
6.3 基于485总线的智能农业监测系统 / 256
6.3.1 概述 / 256
6.3.2 传感器部分 / 257
6.3.3 Arduino部分设计 / 260
6.3.4 LabVIEW程序设计 / 263
6.3.5 调试与故障排除 / 265
6.3.6 小结 / 266
6.4 基于网络的远程智能家居系统 / 266
6.4.1 概述 / 266
6.4.2 传感器及控制部分 / 267
6.4.3 Arduino部分设计 / 272
6.4.4 LabVIEW程序设计 / 275
6.4.5 调试与故障排除 / 276
6.4.6 小结 / 279
参考文献 / 280

教学资源推荐
作者: (美)Behzad Razavi 著
作者: [法] 吕克?若兰(Luc Jaulin)著
作者: [英]爱德华·休斯(Edward Hughes) 约翰·希利(John Hiley) 凯斯·布朗(Keith Brown)伊恩·麦肯齐·斯密斯(Ian McKenzie Smith)著
作者: 吴建平
参考读物推荐
作者: [日]伊藤 尚未 著
作者: [英]姚文祥(Joseph Yiu) 著
作者: [美] 拉里·D.史密斯(Larry D. Smith) 埃里克·博加廷(Eric Bogatin)著