ECE 16: Rapid Hardware and Software Design for Interfacing with the World
Students tackle the concept of hardware and software for interfacing with the world, and in particular, the trade-offs between them. If you’re studying computer science, you can start with the assumption that you can have access to unlimited resources – in memory, storage or speed – whereas in developing a device in ECE, it always comes with trade-offs. How much can you accomplish with limited resources? ECE 16 students apply C, to program microcontrollers, and they are introduced to the Python programming language to analyze data (a pre-requisite for many internship opportunities). The course also introduces students to real-world sensing through the structured design and development of a controller based on electromyogram signals. Teams complete four design-oriented lab projects, culminating in a final design competition focused on controllers for a video game. Key concepts developed through the quarter include sampling, signal processing, communication, and real-time control.
ECE 115: Rapid Prototyping
Experience Engineering in the ECE curriculum is not limited to courses using the EnVision Maker Studio. Students enrolled in ECE 115 work in ECE’s own Makerspace inside Jacobs Hall. The lab-based, design-focused course teaches students how to prototype a mechatronic solution. Students learn to identify specifications for a problem, use block diagrams to design the system, and employ rapid prototyping (3D printing, laser cutting, etc.) to build a prototype. They learn to use motors, touch sensors, and computer-assisted software. They do 3D modeling of parts and create their own design using computer-assisted design (CAD) software. The prototypes are then made from laser-cut and 3D-printed parts. The teams create circuits to connect their sensors and actuators, which are then integrated into a microcontroller. They program the microcontroller to run the whole system.
In the Winter and Spring quarters of 2018, ECE will launch a sequence of two courses on Internet of Things (IoT) and Systems Thinking. The first course will focus on software development fundamentals from an end-to-end perspective, so that students will develop competency in building hardware-based systems, utilizing all the latest web-based tools and infrastructure. In addition, the students will build a “smart plug” in the course lab. The plug will be a sensing and communication device built on the Raspberry Pi platform.
The second course in the sequence will focus on applying the principles acquired in the first course to add functionality and intelligence to the plug. Students will compete in small teams in a design project where they will use their “smart plugs” to perform intelligent sensing in the cloud and present their complete system at the culmination of the second course. The two courses will be under the special topics banner of ECE 140 AB.
These two courses are being designed to explore and develop essential technical skills, strong architectural intuition, elective collaboration skills, and the practical ability to deliver viable customer products in the context of a real-world product development challenge. Advanced topics will include practical hardware and software engineering. Students will learn about engineering patterns and anti-patterns, customer and user experience design, full-stack web development in the Python programming language, and best practices in building a product ecosystem. The second course in the series will have a particular emphasis on more advanced topics, such as security, algorithms, and analytics.
ECE 188: LabVIEW Programming: Design and Applications
An interactive LabVIEW programming course designed to teach students how to design and develop LabVIEW applications. This ECE 188 course prepares students to develop, debug, and test LabVIEW VIs, solve problems using LabVIEW, use data acquisition, and perform signal processing and instrument control in LabVIEW applications. Each class includes instruction and a series of building and programming hands-on exercises. Students will work in teams to build prototypes from laser-cut and 3D printed parts, integrate sensors and actuators, and program using state-machine architecture in LabVIEW to form a complete system. Students will have the opportunity to take the National Instruments Certified LabVIEW Associate Developer (CLAD) exam at the end of the class to validate their LabVIEW development skills.
Groups of students work to design, build, demonstrate, and document an engineering project. All students give weekly progress reports of their tasks and contribute a section to the final project report.
ECE 196 is a Project-in-a-Box (PIB)-based course. PIBs are literally boxes containing all the parts and equipment that students need to build a hands-on project. While other hands-on courses may only be taught during one-quarter each year, ECE 196 can be taken in any quarter and is open to all undergraduates. The format is adaptable to the experience level of students at any grade level because each PIB carries instructions suitable for students at beginner, intermediate, or advanced levels. The inaugural edition of the lab-based course will be taught by ECE Chair Truong Nguyen in Fall 2016. It aims to provide hands-on engineering and team-building experiences to students as they build a variety of different systems ranging from a binary clock to an infrared whiteboard.
Each system is selected to expose students to particular real-world technical skills. For instance, they build solar trackers to power light-emitting diodes (LEDs). The tracker is an electro-mechanical device to shift the direction in which a photo-voltaic panel is facing in order to optimize the amount of sunshine hitting it, thus producing more power to run the LEDs. Students making the solar tracker gain experience with Arduino programming, design optimization, CAD, mechanical control, and maximum power-point tracking. Another hands-on sequence engages students in laser cutting, soldering, and 3D printing of parts for a robotic arm. Thirdly, in the course of creating a pedal to render guitar audio elects, students read schematics, construct a breadboard (on which integrated circuits are designed), and conduct Fourier analysis.