Learn how to develop your own applications to monitor or control instrumentation hardware. Whether you need to acquire data from a device or automate its functions, this practical book shows you how to use Python's rapid development capabilities to build interfaces that include everything from software to wiring. You get step-by-step instructions, clear examples, and hands-on tips for interfacing a PC to a variety of devices.
Use the book's hardware survey to identify the interface type for your particular device, and then follow detailed examples to develop an interface with Python and C. Organized by interface type, data processing activities, and user interface implementations, this book is for anyone who works with instrumentation, robotics, data acquisition, or process control.
* Understand how to define the scope of an application and determine the algorithms necessary, and why it's important
* Learn how to use industry-standard interfaces such as RS-232, RS-485, and GPIB
* Create low-level extension modules in C to interface Python with a variety of hardware and test instruments
* Explore the console, curses, TkInter, and wxPython for graphical and text-based user interfaces
* Use open source software tools and libraries to reduce costs and avoid implementing functionality from scratch
John M. Hughes is an embedded systems engineer with over 30 years of experience in electronics, embedded systems and software, aerospace systems, and scientific applications programming. He was responsible for the surface imaging software on the Phoenix Mars Lander, and has worked on digital engine control systems for commercial and military aircraft, automated test systems, radio telescope data acquisition, and realtime adaptive optics controls for astronomy. Hughes has been using Python for many years in a variety of applications, including the software for a multiwavelength laser interferometer system for verifying the alignment of telescope mirror segments on the James Webb Space Telescope. He is currently using Python for imaging systems simulation and analysis at the University of Arizona.
Preface;
Who Is This Book For?;
The Programming Languages;
Why Python?;
The Systems;
Methodology;
How This Book Is Organized;
Conventions Used in This Book;
Using Code Examples;
Safari® Books Online;
How to Contact Us;
Acknowledgments;
Chapter 1: Introduction to Instrumentation;
1.1 Data Acquisition;
1.2 Control Output;
1.3 Applications Overview;
1.4 Summary;
Chapter 2: Essential Electronics;
2.1 Electrical Charge;
2.2 Electric Current;
2.3 Basic Circuit Theory;
2.4 Circuit Schematics;
2.5 DC Circuit Characteristics;
2.6 AC Circuits;
2.7 Interfaces;
2.8 Summary;
2.9 Suggested Reading;
Chapter 3: The Python Programming Language;
3.1 Installing Python;
3.2 The Python Programming Language;
3.3 Python Development Tools;
3.4 Summary;
3.5 Suggested Reading;
Chapter 4: The C Programming Language;
4.1 Installing C;
4.2 Developing Software in C;
4.3 C Development Tools;
4.4 Summary;
4.5 Suggested Reading;
Chapter 5: Python Extensions;
5.1 Creating Python Extensions in C;
5.2 Python's C Extension API;
5.3 Using the Python C Extension API;
5.4 Python's ctypes Foreign Function Library;
5.5 Summary;
5.6 Suggested Reading;
Chapter 6: Hardware: Tools and Supplies;
6.1 The Essentials;
6.2 Advanced Tools;
6.3 Supplies;
6.4 New Versus Used;
6.5 Summary;
6.6 Suggested Reading;
Chapter 7: Physical Interfaces;
7.1 Connectors;
7.2 Serial Interfaces;
7.3 GPIB/IEEE-488;
7.4 PC Bus Interface Hardware;
7.5 Old Doesn't Mean Bad;
7.6 Summary;
7.7 Suggested Reading;
Chapter 8: Getting Started;
8.1 Defining the Project;
8.2 Requirements;
8.3 Designing the Software;
8.4 Functional Testing;
8.5 Implementation;
8.6 User Documentation;
8.7 Summary;
8.8 Suggested Reading;
Chapter 9: Control System Concepts;
9.1 Basic Control Systems Theory;
9.2 Control System Types;
9.3 Implementing Control Systems in Python;
9.4 Summary;
9.5 Suggested Reading;
Chapter 10: Building and Using Simulators;
10.1 What Is Simulation?;
10.2 Using Python to Create a Simulator;
10.3 Serial Terminal Emulators;
10.4 Displaying Simulation Data;
10.5 Creating Your Own Simulators;
10.6 Summary;
10.7 Suggested Reading;
Chapter 11: Instrumentation Data I/O;
11.1 Data I/O Interface Software;
11.2 Data I/O: Acquiring and Writing Data;
11.3 Summary;
11.4 Suggested Reading;
Chapter 12: Reading and Writing Data Files;
12.1 ASCII Data Files;
12.2 Binary Data Files;
12.3 Summary;
12.4 Suggested Reading;
Chapter 13: User Interfaces;
13.1 Text-Based Interfaces;
13.2 Graphical User Interfaces;
13.3 Summary;
13.4 Suggested Reading;
Chapter 14: Real World Examples;
14.1 Serial Interfaces;
14.2 USB Example: The LabJack U3;
14.3 Summary;
14.4 Suggested Reading;
Free and Open Source Software Resources;
Instrument Sources;
Manufacturers;
Used Test Equipment Sources;
Manuals;
Colophon;
Learn how to develop your own applications to monitor or control instrumentation hardware. Whether you need to acquire data from a device or automate its functions, this practical book shows you how to use Python's rapid development capabilities to build interfaces that include everything from software to wiring. You get step-by-step instructions, clear examples, and hands-on tips for interfacing a PC to a variety of devices.
Use the book's hardware survey to identify the interface type for your particular device, and then follow detailed examples to develop an interface with Python and C. Organized by interface type, data processing activities, and user interface implementations, this book is for anyone who works with instrumentation, robotics, data acquisition, or process control.
* Understand how to define the scope of an application and determine the algorithms necessary, and why it's important
* Learn how to use industry-standard interfaces such as RS-232, RS-485, and GPIB
* Create low-level extension modules in C to interface Python with a variety of hardware and test instruments
* Explore the console, curses, TkInter, and wxPython for graphical and text-based user interfaces
* Use open source software tools and libraries to reduce costs and avoid implementing functionality from scratch
John M. Hughes is an embedded systems engineer with over 30 years of experience in electronics, embedded systems and software, aerospace systems, and scientific applications programming. He was responsible for the surface imaging software on the Phoenix Mars Lander, and has worked on digital engine control systems for commercial and military aircraft, automated test systems, radio telescope data acquisition, and realtime adaptive optics controls for astronomy. Hughes has been using Python for many years in a variety of applications, including the software for a multiwavelength laser interferometer system for verifying the alignment of telescope mirror segments on the James Webb Space Telescope. He is currently using Python for imaging systems simulation and analysis at the University of Arizona.
Preface;
Who Is This Book For?;
The Programming Languages;
Why Python?;
The Systems;
Methodology;
How This Book Is Organized;
Conventions Used in This Book;
Using Code Examples;
Safari® Books Online;
How to Contact Us;
Acknowledgments;
Chapter 1: Introduction to Instrumentation;
1.1 Data Acquisition;
1.2 Control Output;
1.3 Applications Overview;
1.4 Summary;
Chapter 2: Essential Electronics;
2.1 Electrical Charge;
2.2 Electric Current;
2.3 Basic Circuit Theory;
2.4 Circuit Schematics;
2.5 DC Circuit Characteristics;
2.6 AC Circuits;
2.7 Interfaces;
2.8 Summary;
2.9 Suggested Reading;
Chapter 3: The Python Programming Language;
3.1 Installing Python;
3.2 The Python Programming Language;
3.3 Python Development Tools;
3.4 Summary;
3.5 Suggested Reading;
Chapter 4: The C Programming Language;
4.1 Installing C;
4.2 Developing Software in C;
4.3 C Development Tools;
4.4 Summary;
4.5 Suggested Reading;
Chapter 5: Python Extensions;
5.1 Creating Python Extensions in C;
5.2 Python's C Extension API;
5.3 Using the Python C Extension API;
5.4 Python's ctypes Foreign Function Library;
5.5 Summary;
5.6 Suggested Reading;
Chapter 6: Hardware: Tools and Supplies;
6.1 The Essentials;
6.2 Advanced Tools;
6.3 Supplies;
6.4 New Versus Used;
6.5 Summary;
6.6 Suggested Reading;
Chapter 7: Physical Interfaces;
7.1 Connectors;
7.2 Serial Interfaces;
7.3 GPIB/IEEE-488;
7.4 PC Bus Interface Hardware;
7.5 Old Doesn't Mean Bad;
7.6 Summary;
7.7 Suggested Reading;
Chapter 8: Getting Started;
8.1 Defining the Project;
8.2 Requirements;
8.3 Designing the Software;
8.4 Functional Testing;
8.5 Implementation;
8.6 User Documentation;
8.7 Summary;
8.8 Suggested Reading;
Chapter 9: Control System Concepts;
9.1 Basic Control Systems Theory;
9.2 Control System Types;
9.3 Implementing Control Systems in Python;
9.4 Summary;
9.5 Suggested Reading;
Chapter 10: Building and Using Simulators;
10.1 What Is Simulation?;
10.2 Using Python to Create a Simulator;
10.3 Serial Terminal Emulators;
10.4 Displaying Simulation Data;
10.5 Creating Your Own Simulators;
10.6 Summary;
10.7 Suggested Reading;
Chapter 11: Instrumentation Data I/O;
11.1 Data I/O Interface Software;
11.2 Data I/O: Acquiring and Writing Data;
11.3 Summary;
11.4 Suggested Reading;
Chapter 12: Reading and Writing Data Files;
12.1 ASCII Data Files;
12.2 Binary Data Files;
12.3 Summary;
12.4 Suggested Reading;
Chapter 13: User Interfaces;
13.1 Text-Based Interfaces;
13.2 Graphical User Interfaces;
13.3 Summary;
13.4 Suggested Reading;
Chapter 14: Real World Examples;
14.1 Serial Interfaces;
14.2 USB Example: The LabJack U3;
14.3 Summary;
14.4 Suggested Reading;
Free and Open Source Software Resources;
Instrument Sources;
Manufacturers;
Used Test Equipment Sources;
Manuals;
Colophon;
J. M. Hughes (John M. Hughes) is an embedded systems engineer with over 30 years ofexperience in electronics, embedded systems and software, aerospace systems, and scientific applications programming. He was responsible for the surface imaging software on the Phoenix Mars Lander, and has worked on digital engine control systems for commercial and military aircraft, automated test systems, radio telescope data acquisition, and real-time adaptive optics controls for astronomy. Hughes has been using Python for many years in a variety of applications. He is currently working on the software for a multi-wavelength laser interferometer system for verifying the alignment of telescope mirror segments, written mostly in Python.
![]() |
Ask a Question About this Product More... |
![]() |