基本信息
- 原书名:Real World Instrumentation with Python: Automated Data Acquisition and Control Systems
- 原出版社: O'Reilly Media; 1 edition
编辑推荐
理解如何定义应用的范围、确定必要的算法,以及二者的重要性
学习如何使用工业标准接口,如RS-232、RS-485和GPIB
用C语言创建底层扩展模块,以利用Python接入各种硬件和测试仪器
探索终端、curses、Tkinter,以及wxPython的图形和基于文本的用户界面
使用开源软件工具和库来降低成本,避免从头开始实现功能
相关推荐:
《Python基础教程:第2版》
《Python核心编程(中文 第二版)》
《Python科学计算》
《Head First Python(中文版)》
《Python学习手册:第4版》
内容简介
作译者
目录
第1 章 仪器学概论 1
数据采集 2
控制输出 4
开环控制 5
闭环控制 6
顺序控制 8
应用概观 9
电子测试仪器 9
实验室仪器 11
过程控制 12
小结 14
第2 章 基本电子学 15
电荷 15
电流 17
基础电路理论.18
电路原理图 20
直流电路特性.23
欧姆定律 24
电流吸入与电流输出 26
译者序
最终图书署名为OBP Group(开放图书工作组),原因有三:
本书的翻译出版过程沿用了OBP(Open Book Project,y 开放图书计划)的协同流程;
大家的主要协同场景是在Google Group(邮件列表)中;
工作组专门为本书成立,翻译完成后就地解散,转为通过Group 的形式存在,继续支持图书内容的讨论。
其中OBP 的工作流程细节请参考:
http://code.google.com/p/openbookproject/wiki/HowToBuildBookOnline
目前,OBP 是作为一种开放的分布式协作流程而存在的。
任何人都可以使用OBP 实践检验过的在线分布式团队的组织形式来完成任意作品。
其实就是将软件工程管理的思想及工具,组合应用在图书创译方面而已。
相比其他翻译团队,特殊在协同的工具链。
1. 在Bitbucket.org 上使用Mercurial 分布式仓库,或是在Github/Gitcafe 中使用分布
式仓库。
2. 基于Sphinx 来组织新结构化文本(rST)。
3. 通过readthedocs.org 随时编译为html 格式的图书式网站。
果然,通过邮件列表,快速报名上来十多位有意向的译者。根据以往经验,三个和尚没水吃,人多时,大家都以为有人在翻译,自个儿就不动手了。于是,以C 语言/Python语言/ 硬件进行领域划分,俺单独负责所有Python 及软件工程相关的内容,另外邀请四位译者分别承担其他两部分内容,再加上责任编辑,实际上形成了一个有专项目标的迷你社区。
那么什么是社区呢?
简单的说就是相对固定的成员在相对固定的场所对固定的目标进行固定的行动。所以,技术图书的翻译团队,如果是分布式的,其实就形成了一个确切的社区。只是,一般OBP 专项社区随着图书的出版会快速转入静默,不是图书内容没有值得持续讨论的地方,而是大家不愿意回忆那些熬夜翻译赶进度的苦吧。
本书的专门列表也已经建立:rwipy-zh@googlegroups.com,欢迎大家订阅和加入讨论。
虽然原书有600 多页,翻译为中文,也就500 页的样子,其中还包含大段的代码,平均到每个人也就100 多页,几万字而已。相比动辄几百万字的网络小说来,大家的工作量不算大。但是,技术文字的翻译,不是口水化的玄幻小说,至少要做到:
前言
从研究实验室到工业厂房,自动化仪器无所不在。一旦人们意识到收集随时间变迁的数据很有用,自然就需要某种手段来捕捉并完成数据记录。当然,人们可以取叠纸拿个时钟,盯着温度计、刻度盘或是其他仪表,定期记录数值,但是很快就会受不了这种乏味的工作。如果这一记录过程可以自动化,无疑将更加可靠和易行。幸运的是,技术的进步早已超越了手写日志及发条驱动的带状图记录的时代!
如今,人们可以购买各种便宜的物理仪器并使用计算机来获取数据。一旦计算机被连接到仪器,数据收集、分析和控制等等功能就可以自由扩展,唯一受限的只是实现者自身的创造力了。
本书的主要目的是向读者展示如何创建一个有能力同用户友好交互的仪器或控制应用程序软件,并使用最低成本运行起来。为此,我们仅基于最必需的步骤来创建程序,包括怎么使用不同类型的输入/ 输出硬件接入现实世界的底层接口。我们也将研究一些行之有效的方法,用以指导创建强大且可靠的程序。特别提醒,应该为数据处理所必需的算法支付设计费用。最终,我们将体验如何为用户设计命令的输入以及结果展示。如果读者能从本书中发现一些想法,并创造性地运用在各种仪器设备上,满足自己的需要,那么我的愿望也就达成了,善哉。
本书的目标读者
本书专为需要或是自制仪器控制器(也称为数据采集和控制系统)的人准备的。你可能是名研究员、软件开发者、学生、项目主管、工程师,或一个业余爱好者。想实现的应用系统,可能只是在实验过程中需要的自动化电子测试系统,或是其他类型的自动化设备。
本书要完成的目标软件将是跨平台的。我假定你至少在Windows 平台特别是XP 平台玩得很顺。而我会使用Ubuntu 发行版本的Linux 系统,不过书中讨论的程序将在各种兼容发行版中良好运行,同时我也假定你知道如何使用csh 或是bash 命令行脚本。
由于本书是关于如何通过物理硬件同现实世界交互的,其中自然涉及了一系列相关电气产品。但是,并不要求读者是名有足够背景知识的电气工程师。在第2 章,包含了基本电子理论知识的介绍,虽然事实上不必理解深层次的电子学知识也可以令计算机与现实世界交互,不过,知道多点相关领域知识绝对没坏处,万一首次遇到意外,我们可以从中获得思路。
不论读者的工作类型或场所怎样,最关键的,我假定你需要通过某些硬件接口捕获一些数据,或是产生控制信号。更加重要的是,需要轻便又精确且可靠地构建出这些仪器的控制软件来。
本书所用编程语言
我们将使用Python 作为主要的编程语言,仅仅嵌入一点点的C 程序。在本书中,我将假定你有一些编程经验,并对Python 或C(理想情况下,两者都)熟悉。如果不是这样,有Perl 或Tcl/Tk 或如Matlab 或IDL 分析工具的经验,也是一个合理的起点。
本书坚定地回避Python 语言更深奥的知识,配合大量的实例代码、图表注释和截屏来引导理解。对C 涉及得很少,只用来说明如何创建和使用Python 应用的底层系统扩展。第3 章覆盖了Python 语言的基础介绍,第4 章介绍了C 语言的基础知识,对以上语言进一步的探究可通过阅读建议自行学习。
为什么选用Python
Python 是Guido van Rossum 在80 年代末开发的解释型语言。因其是种即时编译的脚本语言,故而用户可以在Python 命令行环境中直接创建并执行。语言本身很容易学习和理解,只要一开始别理会过多的高级功能(装饰器,自省,列表推导,等等)就行。因此,Python 提供了快速构建原型及易懂的双重好处,这反过来又有利于快速为不同的设备创建各种不同应用,没有开发者通常需要应对的学习曲线以及传统的编译语言依赖的特定供应商提供的编程环境。
Python 是高度可移植的,几乎运行在所有现代计算平台中。在项目中坚持只使用常用的接口方法,应用程序就很可能在安装Windows 的PC 中编写, 但是不用修改一行代码也可以在Linux 操作系统中运行良好。甚至于可以在Sun 的Solaris 机器和Apple 的OS X系统中运行,即使书中没有特意提及这一点。一旦Python 必须配合特定平台的特定扩展或驱动程序,便失去了可移植性,所以在这些情况下,我将提供分别适用于Windows 和Linux 的替代品。
本书包括了完整的可用示例代码,并配合框图和流程图来说明关键点,操作一些现成的、低成本的接口硬件。
媒体评论
——Wired
“O’Reilly 凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业
务。”
——Business 2.0
“O’Reilly Conference 是聚集关键思想领袖的绝对典范。”
——CRN
“一本O’Reilly 的书就代表一个有用、有前途、需要学习的主题。”
——Irish Times
“Tim 是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照Yogi Berra 的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去Tim 似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。”
——Linux Journal