Computer Interfacing: A Practical Approach to Data Acquisition and Control