Instructor: Christopher Neils
Office: Foege Bldg, room N310E
Meeting Times and Locations:
Lecture: Monday 11:30 – 12:20
Lab: Tuesday 12:30 – 2:20, Foege N133
Description: This course introduces a variety of techniques for real-time data acquisition, processing, and output, and allows students to implement the desired operations using software (LabView) or firmware (e.g. Arduino) interfaces. One lecture hour per week briefly presents sensor and data I/O options, applications, and underlying mathematics. In a weekly two-hour lab section, students create LabView programs that use the computer as an oscilloscope and function generator, force and motion sensing system, feedback controller, and digital input/output interface. The quarter ends with exercises in programming an Arduino board via its command-line interface. Prerequisites: BIOEN 316 or equivalent knowledge of frequency-domain analysis and filtering; familiarity with the basic programming techniques in any high -level language such as Python, C/C++, MATLAB, or Java. Two credits.
Prerequisite courses: BIOEN 316 or equivalent.
- Basic Programming with Python, C/C++, MATLAB, Java, or similar.
- Frequency domain analysis and filtering.
Textbook: Hands-on Introduction to LabVIEW for Scientists and Engineers, 2nd edition. John Essick, Oxford U Press. ISBN 978-0-19-992515-5
Learning Objectives: Students will learn the following fundamental concepts:
- Characteristics and applications for a variety of digital signal acquisition and processing hardware and software;
- Software implementation of PID control systems;
- Limitations of signal sampling;
- Structure of graphical computer programs.
Students will also develop the following skills:
- Implementation of signal acquisition routines using LabView.
- Implementation of output and simple feedback routines using LabView.
- Programming Arduino microprocessors for simple input & output functions.
Computer Use: Most lab exercises use LabView for digital filter design and implementation, with a few exercises in Arduino scripting language. Assignments may be composed using Word and submitted via Catalyst drop box.
Course structure: BIOEN 498 employs lectures, online exercises, homework problems, and a practical in-lab final exam.
Lecture: There is one 1-hour lecture per week.
Lectures will include PowerPoint presentations, mathematical examples at the board, and demonstrations of the use of software.
Online exercises: Online tutorials in the use of LabView and Arduino will be recommended but will not constitute the main content delivery mechanism.
Labs: There is a weekly lab period in which students will practice the skills introduced in lecture. The lab assignments will include two or three multiweek projects on simple sensor systems and feedback control systems. If a lab session must be missed, the instructor should be notified beforehand so arrangements can be made.
Reading: Pre-lab reading will be assigned from a required textbook. A brief online quiz may be required to ensure that the material is understood.
Homework: Approximately four brief homework assignments on the fundamental mathematics underlying the signal acquisition and output concepts will be required . Homework assignments will be due either at the beginning of lecture OR will be submitted on line, depending on the nature of the assignment. Homework turned in late may be penalized at 5% per day unless prior arrangements have been made. Students may discuss the problems, solution strategies and programming steps, but then are expected to produce their own code and report. Similar to the policy in Computer Science, no matter who helped you through the learning phase, submitting an individual assignment implies that you are capable of doing that work by yourself and could demonstrate that ability if asked.
Exam: The practical final exam will be comprehensive and will require students to demonstrate programming and circuit-prototyping skills. There will be no midterm exam.
Special project: (graduate students) Graduate students should extend their participation in the LabView community in one of two ways.
- (preferred) Prepare a written description of one of the lab projects that we have done this quarter, or that the student has done as part of his or her research, in the style of the “Solutions” examples provided on the National Instruments web site , http://www.ni.com/solutions/.
- Analyze one of the case studies provided through the NI Solutions page, and present the case study to the class as a podium presentation. If there is inadequate lecture time to present the case study in class, the presentation should be recorded and made available to the class in video format.
Grading distribution for undergraduates:
- Homework – 16%
- Lab Projects – 64%
- Final Exam – 20%
Grading distribution for graduate students:
- Homework – 16%
- Lab projects – 52%
- Final Exam – 16%
- Special Project – 16%
Course topics by week
|Lecture topic||Lab activity|
|Classes of processing systems: Gate-array logic, Floating-point gate arrays, microcontrollers, microprocessors, signal-handling software.
Intro to graphical programming.
|Guided exploration of LabView interface. Signal simulation and display using express VIs.|
|Analog signal acquisition hardware (analog-to-digital converters); hardware specifications; timing methods; signal buffering; signal conditioning (amplification and analog filtering); high-voltage hardware protection.||Signal acquisition with LabView and USB-based DAQ hardware. The computer as an oscilloscope.|
|No lecture – MLK holiday||Signal output with LabView and USB-based DAQ hardware. The computer as a function generator.|
|Pulse oximetry & LED brightness control||LED-photodetector system with feedback brightness control.|
|Accelerometers in CPR measurement devices.||Accelerometer-based “puck” for CPR monitoring.|
|Digital signal I/O: digital buses & bus contention, voltage standards, serial and parallel data collection, applications.||Finish accelerometer project.|
|No lecture – Presidents’ Day||Digital I/O exercise: Morse code or 7-segment LED.|
|Advanced Labview programming structures: sub-VIs, script nodes, low-level functions. Compiling & encrypting MATLAB and LabView code.||Finish digital I/O project.|
|SStand-alone microprocessors: Arduino and PIC||Arduino coding exercise (scripts)|
|Wearable devices||Portable Arduino-controlled device|
|Finals week, no lecture||Practical final exam; students sign up for individual exam times.|
Special accommodations: Disabilities as defined by state and federal law will be accommodated. For issues that relate to content (e.g. large-print handouts) or access (e.g. positioning of lab benches) please contact the instructor at email@example.com. For issues relating to graded work (e.g. extra time on exams) a request must be made via the UW Disability Services Office. To request disability accommodation, please contact the DSO at least ten days in advance at: 206.543.6450 (Voice), 206.543.6452
(TTY), 206.685.7264 (FAX), or firstname.lastname@example.org.