Chapter 1 Introduction
This textbook describes an instrumentation kit used for an Instrumentation and Experimental Methods course at the undergraduate level. This textbook has been designed with the student and faculty member in mind. The kit primarily discusses the CircuitPlayground Express/Bluefruit running CircuitPython and is used to teach fundamentals of instrumentation and provide a hands-on way of learning. Note that there are some references to Arduino in the text, but the focus is on the CircuitPython implementation. Engineering is usually taught in a traditional lecture format, involving theory in the classroom, homework outside of class, and routine examinations. Progressive forms of learning such as flipped classrooms and project based learning (PBL) have created new and fun ways for professors to interact with students and for students to be more involved in their learning. PBL provides a student-centered method of teaching and learning by posing problems for students to solve with the solution of the project being the primary goal and the theory a secondary goal.
The course begins with simple plotting and moves into data analysis, calibration and more complex instrumentation techniques such as active filtering and aliasing. This course is designed to get students away from their pen and paper and build something that blinks and moves as well as learn to process real data that they themselves acquire. There is no theory in these projects. It is all applied using the project based learning method. Students will be tasked with downloading code, building circuitry, taking data all from the ground up. By the end of this course students will be well versed in the desktop version of Python while also the variant CircuitPython designed specifically for microelectronics from Adafruit. Again, some chapters have references to the Arduino IDE and thus some students may also gain some knowledge and expertise in the Arduino programming language. After this course students will be able to understand Instrumentation at the fundamental level as well as generate code that can be used in future projects and research to take and analyze data. Python is such a broad and useful language that it will be very beneficial for any undergraduate student to learn this language. To the professors using this textbook, 1 credit hour labs are often hard to work into a curriculum and โliveโ demonstrations in the classroom cost time and money that take away from other faculty duties. Iโve created this kit and textbook to be completely stand-alone. Students simply need to purchase the required materials and follow along with the lessons. These lessons can be picked apart and taught sequentially or individually on a schedule suited to the learning speed of the course. The authors hope that whomever reads and learns from this textbook will walk away with an excitement to tinker, code and build future projects using microelectronics and programming. The implementation of this kit and overall teaching method has received many positive reviews from students and is reflected in anonymous course evaluations.
Students can learn in many ways with a variety of different modalities [11]. As such, instructors can choose how to present course material and have students develop content-specific skill sets. College students enter the classroom with existing skills in multi-disciplinary learning that is practiced at the secondary school level [12]. College and university professors have the opportunity to use these existing skills as a foundation for their own instructional practices. Traditional lectures provide students with lectures on theory. The instructor then provides examinations to the students based on that theory. Using this format, an instructor can focus on mathematical principles, the so-called building blocks of engineering or provide specific applications to these models [13]. In a traditional lecture format, the instructor presents theory to the students with academic problems rarely encountered in a students future career, building invaluable theoretical knowledge of concepts that appear disconnected from practical knowledge applied in the field [14]. Historically in engineering education, there has been tension between theory and application [15]. Applications include case studies or practical engineering problems that emulate future careers in engineering. This provides students with engineering phenomena that they can see and hear. They can reason through problems intuitively, memorize facts using demos, build mathematical models, or build tangible objects themselves. With these different presentation methods, students are exposed to engineering phenomena in multiple ways rather than just on the whiteboard [13]. Project Based Learning (PBL) provides an alternative for conventional teaching by facilitating problem solving for students in a group setting that requires communication, critical thinking, and creativity. These types of problems have shown that heightened learning can happen when students interact with tangible objects that represent the theory they are presented with in the classroom [16]. Rather than learning an equation for heat transfer along a one-dimensional pipe, the students can create a pipe with thermocouples and plot data from multiple sensors along the pipe. This connection to a tangible object reinforces learning and allows students to form bridges in comprehension between their theoretical knowledge and practical application (practical knowledge) of those theories in the field [17]. Research has shown that a classroom that creates an integrated curriculum increases student satisfaction which immediately correlates to satisfactory student performance and increased graduation rates [18]. This is an example of the benefits of active student engagement versus passive student engagement. While the traditional lecture format is vital to students understandings, it is understood that application of the concepts covered in lecture are required to reach higher levels of learning [19].
Hands-on projects where students interact with tangible objects is not a new form of teaching. The laboratory environment has been around for decades. However, typically the classroom environment is separate from the laboratory environment. There has been little synergy between the two learning environments. A Mechanical Engineering degree is likely to have around three to four labs in various disciplines. In these courses, students perform an experiment in groups. They take and analyze data as well as create a report documenting their findings. Many of these laboratory experiments of course are choreographed for the student by the instructor. They follow a script and perform the experiment without building anything themselves. The students take no ownership over the experiment and there is no creativity built-in. Over the years, the nature of laboratories has changed including the lack of clear learning objectives [20]. Furthermore, this laboratory environment requires a significant amount of instrumentation and hardware to implement. For example, a shock tube or steam pump can cost tens of thousands of dollars. The maintenance and up-keep alone is not practical for smaller institutions. The teaching investment required to prepare the lab every year and the lab itself (often on the order of three hours) can be a time consuming task for a tenure track faculty member who often has a large research load.
The so-called "Lab at Home" hardware kits are becoming more and more common in the classroom to ease the burden on the instructor and institution itself [21]. These kits are small enough to be purchased and shipped to a student for them to perform experiments remotely rather than in the classroom itself [22]. They can also be brought to the classroom to be used as a personal demo aid [23]. In this sense, the take-home lab kit serves as a bridge between theory based lectures and a laboratory setting [24]. This allows both instructors and students to engage with content in a way that promotes enduring understandings and practical application of theoretical knowledge[25]. Since the kits can be used remotely, they can also be used for distance learning courses or other asynchronous activities as well as during the COVID-19 pandemic.
Two home kits in particular are directly related to instrumentation and circuits. Cyganski and Nicoletti [25] for example created a new curriculum for first year electrical engineering students by creating live demonstrations for the students. Manijikian and Simmons [23] however, combined a popular commercial microcomputer board with their own custom-designed interface board in a kit that students retain for the duration of the course for both in-lab and at-home assignments. The take-home kits however were based on the Motorola 68HC11EVB microcomputer which is programmed in assembly language. Assembly language is a rather difficult language to learn at the undergraduate level. Even with such a difficult learning curve, however, student feedback on their approach was positive [23].
It is clear that using a lab at home kit is useful for the instrumentation classroom, however the programming language to be used is a subject of debate in faculty meetings and computing committees. There are multiple languages in use today of varying complexities and use cases. There are scripting languages like Python, Ruby and MATLAB, object oriented languages like Java and C++ and compilation languages like Fortran and C. Note, this is not an exhaustive list. A recent study showed that scripting languages (Python, Ruby, MATLAB) enable writing more concise code while compilation languages (C, Fortran) create smaller executables [26]. MATLAB is often considered in engineering given its success in industry and its ability to perform numerical simulations and plotting with ease. Python, however, has become more and more popular with numerical toolboxes like numpy and plotting toolboxes like matplotlib that are free and easy to install in integrated development environments like Thonny or Spyder [27]. The Tiobe Index of Programming [28] has the top 3 programming languages listed as Python, C, and Java. MATLAB is #20 on the list. In 2004, Hans Fangohr wrote that MATLAB is much better suited than C for engineering computing but the best choice in terms of clarity and functionality is provided by Python [29]. It seems then that it would be more practical for educators even in engineering to teach the most popular language. This helps with transferability of skills and has future implications for a studentsโ career. The scripting aspect of Python lowers complexity and allows students to learn the language quickly to apply it as a tool rather than getting stuck memorizing syntax and compilation rules. The language also comes at no cost to the students. This is a plus for students already bearing heavy financial burdens to attend a university which includes tuition and institutional fees.
Given the success of other kits in many classes and the popularity of Python, the University of South Alabama (USA) has implemented such a kit for Instrumentation & Experimental Methods (ME 316) using CircuitPython. CircuitPython is a derivative of Python written for embedded systems and designed to simplify experimenting and learning to code [30]. As mentioned previously, some experiments have a supplemental Arduino component in the event the students want to use the more robust yet more complex Arduino programming language[35]. The learning objectives for ME316 include: statistics, dynamic response of measurement systems, operational amplifiers, signal conditioners and fundamentals of microprocessors. This course could be taught with theory as the main focus of the lecture. However, this course includes the use of an instrumentation kit and Project Based Learning methods in addition to theory in the classroom. Each student taking the course purchases the kit and downloads a free accompanying project list [31]. Every Friday, the students complete one of the multiple projects. The following week they submit a report which includes a demo of the working project in the form of photos and videos, any plots generated if they are required to take data, all code used and a small write-up explaining their findings. The sections that follow describe the kit in more detail as well as student evaluations who have taken the course.
Note that, the Adafruit Learn page contains many tutorials on how to operate the CircuitPlayground [32]. However, Adafruit sells much more than just the CPX and thus it is often difficult for anyone to find the correct tutorial needed for the CPX. A simple search on the Adafruit Learn System yields 21 results for "servo" just on the first page with over 48 pages of results. The tutorial needed to run a servo with CircuitPython is the 10th result and itโs for a different development board. Although the software works with the CPX, it does not explicitly say so. Due to the complexity of some of these systems, documentation was made and freely given to the community [31]. This documentation was custom built using a combination of multiple sources across the internet. All software for the kit is also on Github in a separate repository. Each chapter in the book contains one project for the students to complete on their own. A list of chapters and a brief description of the assignment is shown in the table of contents. Currently there are about 20 projects with multiple subsections for the students to work on during the โFunday Fridayโ lab days.
