Lessons

Electrical Education

Lesson 0: Welcome to NFR!

team

An introductory lesson, highlighting how the team works, and the goals of this curriculum.

  1. Lab 0: Setup, Setup, Setup!

Lesson 1: Basic Electrical Prototyping Tools

breadboarding

In this lesson, we’ll dive into the basics of electrical prototyping by building simple circuits on a breadboard, including controlling LED brightness and wiring LEDs in series and parallel. We’ll wrap up by using a microcontroller to make an LED blink, ensuring everyone’s setup is good to go.

  1. Lab 1: Breadboarding & Signals Lab

Lesson 2: Basic Programming Principles & Arduino Abstractions

c++ c firmware arduino

Take your electronics to the next level with programming! This lesson, we will setup our development environment, and learn basic C++ and Arduino!

  1. Lab 2: Morse Code Lab

Lesson 3: Introduction to the Project and Speccing

ic team

In this session, we'll introduce the game controller project with a demo, outline the technical requirements, and discuss sensor choices. Students will explore different components, play the game with standard controllers, and start planning their own designs, aiming to choose parts and develop a clear vision for their custom controller.

Lesson 4: Timers and Advanced Control Flow in Programming

c++ c timers firmware arduino

In this lesson, we'll explore how to use timers and advanced control flow in programming by integrating sensor readings with the Timers library. We'll also cover lambda functions in C++ and apply these concepts to a "pacemaker" scenario, helping students implement non-continuous data flow. By the end, students will begin integrating their chosen sensors into their controllers with guidance and support.

  1. Lab 4: Heart-Rate Monitor Lab (pt. 1)

Lesson 5: CAN Library

c++ c can timers firmware arduino

In this lesson, we'll dive into the basics of the CAN communication protocol and how to implement it using our CAN library alongside the Timers library. We'll demonstrate setting up CAN in hardware and firmware, sending simple messages, and understanding why CAN is crucial for board communication. By the end, students will start integrating CAN into their controllers to transmit basic input data.

  1. Lab 5: Pacemaker Lab (pt. 2)

Lesson 6: Interacting with a Larger System

can team

In this final lesson, we'll focus on how to manage internal state and interface with larger systems using finite state machines (FSM). We'll guide students through implementing an FSM to regulate communication with the Controller Bus, emphasizing the importance of adapting embedded systems to external requirements. This will be a challenging part of the project, but students will have resources and testing opportunities to ensure successful integration.

  1. Lab 6: Game Controller System Lab

Lesson 7: Demo Day!

team

To wrap up the project, students will showcase their custom controllers in a fun, social event where they’ll use them to interact with the game. This marks the end of their educational journey and the beginning of their proficiency as electrical team members, all while enjoying some "tank madness" and bonding together.

  1. Lab 7: CAN-CAN Tank Tournament