Curious what we teach in our Level B Lessons? Level B takes your electronics and coding skills to the next level by teaching you to incorporate a wide variety of sensors into your projects as well as write intermediate-level Python code.
Click here to view sample lesson videos, activity instructions, and more.
SCOPE AND SEQUENCE FOR the LEVEL B lessons
Lesson 1: Administrative and File Management
- Understanding the Raspbian File System
- Completing File Tasks in the Graphical User Interface (GUI)
- Creating a Folder
- Creating a File
- Renaming a File or Folder
- Changing Permissions on a File or Folder
- Root User
- Deleting Files or Folders
- Navigating Folders Using File Manager
- Completing File Tasks Using the Command Line
- Working Directory
- Listing Directory Contents
- Creating a File
- Creating a Directory
- Moving to Another Directory
- Copying a File or Folder
- Moving or Renaming a File or Folder
- Deleting a File or Folder
- Other Useful Command Line Tools
- Confirming Raspbian Version
- Taking a Screen Capture
- Activities:
- Activity #1: GUI File and Folder Operations
- Activity #2: Command Line File and Folder Operations
Lesson 2: Functions
- Understanding Functions
- Keeping Code Organized
- Grouping Related Program Blocks
- Global and Local Variables
- Functions with Arguments
- Using Functions in Programs
- Activities
- Activity #1: Simple Function Program
- Activity #2: Calling a Function with a Loop
- Activity #3: Functions with Passed Arguments
Lesson 3: Program Layout Options and Advanced String Concepts
- Program Layout Options
- While True Loops
- Try, Except, Finally Program Layout
- Advanced String Concepts
- Determining the Length of a String
- Accessing the Value of a Specific String Position
- Accessing Values from Multiple String Positions
- Uppercase and Lowercase
- Replacing Characters in a String
- Activities
- Activity #1: While True Loop
- Activity #2: Error Handling Program
- Activity #3: Practice with Strings
Lesson 4: Pulse Width Modulation
- Import Methods
- Standard Module Import
- Importing a Module Using an Alias
- Importing Multiple Modules
- Importing Specific Functions from a Module
- Analog Signals vs Digital Signals
- Pulse Width Modulation (PWM)
- PWM Duty Cycle and Frequency
- Hardware PWM vs Software PWM
- GPIO Commands to Control PWM
- Activities:
- Activity #1: Building an LED and Piezo Circuit
- Activity #2: Controlling an LED with PWM
- Activity #3: Adjusting LED Brightness
Lesson 5: Switches and Correcting for Switch Bounce
- Pull-up and Pull-down Options
- Slide or Toggle Switch
- Switch Bounce
- Using a Delay to Save System Resources
- Activities:
- Activity #1: Adding Switches to the Circuit
- Activity #2: Counting Button Presses
- Activity #3: Tuning a Loop Using a Delay
- Activity #4: Adding LED Confirmation Using the Slide Switch
Lesson 6: Logical Operators
- Logical Operators in Python
- Using a Pushbutton Switch as a Toggle
- Using a Pushbutton Switch to End a Program
- Activities:
- Activity #1: Using a Pushbutton Switch as a Toggle
- Activity #2: Use And/Or to Control Different Events
- Activity #3: Add Stop Button Functionality
Lesson 7: Working with a 3x4 Matrix Keypad
- Matrix Style Input Panel
- Program Flow for Checking a Matrix
- Storing Values as Strings Versus Integers
- Membrane Type Switches
- Matrix Keypad Warning
- Variables and Scope
- Activities:
- Activity #1: Adding the Switch Matrix
- Activity #2: Creating a Program to Display Keypad Presses
- Activity #3: Adding Exit Functionality to the Keypad Program
Lesson 8: Github and Python 2 vs Python 3
- Library Files
- What is Github?
- Cloning a Library from Github
- When to Clone a Remote Library
- Completing the Library Installation
- Viewing Code Inside Files on Github
- Python 2 vs Python 3
- Thonny and Python
- Activities:
- Activity #1: Cloning and Installing a Github Repository
- Activity #2: Exploring the Adafruit MCP3008 Repository
- Activity #3: Viewing Code on Github
Lesson 9: Analog Signal Processing with the Raspberry Pi
- Voltage Dividers
- Analog Input on the Raspberry Pi
- Integrated Circuits (IC)
- IC Datasheets
- IC Pin Numbering
- IC Pinouts
- ESD and IC Handling Precautions
- Digital Communication
- The MCP3008 A/D Converter
- Activities:
- Activity #1: Connecting the MCP3008
- Activity #2: Reading a Value from the MCP3008
- Activity #3: Adding a Voltage Divider
- Activity #4: Updating the Raspberry Pi’s Software
Lesson 10: Potentiometers, Phototransitors, and Advanced List Commands
- Variable Resistors
- Light Sensors
- Advanced List Commands
- Creating a List Using the Split Command
- Adding Items to a List
- Finding Items in a List
- Determining if an Item is Part of a List
- Finding the Length of a List
- Sorting a List
- Printing all Items in a List Along with Their Index Values
- Removing Items from a List
- Clearing All Items from a List
- Activities
- Activity #1: Adding the Potentiometer and Phototransistor
- Activity #2: Incorporating the LED as an Indicator
- Activity #3: Working with Lists
Lesson 11: RFID Systems
- RFID Technology
- How RFID Works
- RFID for Access Control
- Security Concerns for RFID
- MFRC522 Tag Reader
- RFID Tags
- Reading Text from the RFID Tag
- Removing Trailing Spaces in Python
- Determining Program Type: Python Code SHEBANG or #!
- Reading and Writing Tags
- Activities:
- Activity #1: Adding the RFID Reader and Software
- Activity #2: Reading and Writing Tags
- Activity #3: Creating an Access Control Program
Lesson 12: RFID II
- Using a File for Input
- Input File Types and Formatting
- Opening a File in Your Program
- Reading Values from a File
- Multithreaded Operation
- Important Notes About Multithreaded Operation
- Formatting and Displaying Time and Date
- Breaking Out of a Loop
- Activities:
- Activity #1: Read an External File in Python
- Activity #2: Tag Reader Indicator
- Activity #3: Adding Date and Time Messages
Lesson 13: Level Shifting and Infrared Sensors
- Signal Level Shifting
- Hardware Level Shifting
- Infrared (IR) Obstacle Sensor
- Alignment of Obstacle Sensors
- Infrared Line Sensor
- Alignment of Line Sensors
- Activities
- Activity #1: Level Shifter and the RGB LED
- Activity #2: Adding the IR Obstacle Sensor
- Activity #3: Adding the IR Line Sensor
Lesson 14: Ultrasonic Range Sensing and NUMPY
- Ultrasonic Rangefinders
- Ultrasonic Signals
- Finding Range with an Ultrasonic Sensor
- Using Distance Information in Programs
- Error Handling
- NumPy
- Integers and Floats
- Printing with Notation
- Activities:
- Activity #1: Adding the Ultrasonic Range Sensor
- Activity #2: Creating a Program to Read Ranges
- Activity #3: Averaging the Range Values Using NumPy
- Activity #4: Adding the RGB LED as a Distance Indicator
Lesson 15: I2C and Temperature Sensing
- I2C Communication
- I2C Addressing
- Enabling I2C on the Raspberry Pi
- List of I2C Devices
- Detecting Attached I2C Devices
- The BMP280 Temperature Sensor
- BMP280 Wiring
- BMP280 Commands
- Temperature Conversion
- The WGET Command
- Running Modules as Imports vs Directly
- The SYSTEMEXIT() Command
- Activities:
- Activity #1: Enabling the I2C Interface
- Activity #2: Adding the BMP280 Temperature Sensor
- Activity #3: Creating a Program to Display Temperature
- Activity #4: Adding the RGB LED to Indicate Temperature
Lesson 16: OLED I2C Display
- OLED Display Hardware
- Resolution and Pixels
- OLED Technology
- I2C Communication
- SSD1306 Display Driver
- Required Modules
- Size Configuration
- Starting the Display
- Variables that Simplify Communication with the Display
- Drawing on the Display
- Unicode Characters
- Activities
- Activity #1: Modify the Circuit
- Activity #2: Create a Program to Display Text
- Activity #3: Modify the Program to Display Sensor Information
Lesson 17: Capacitive Touch Sensor
- Capacitors
- Construction
- Current Limiting
- Charge Time
- Calculating Charge Time
- Parallel vs. Series
- Capacitive Touch Sensor
- Male-to-Female Jumper Wires
- GPIO Pin Level Sensing
- Activities:
- Activity #1: Powering a Circuit Using a Capacitor
- Activity #2: Measuring Capacitor Discharge Time
- Activity #3: Using the Capacitive Touch Sensor
Lesson 18: Range Sensing Game (Final Project)
- Level Shifting with Resistors
- Absolute Value in Python
- Modifying a File for Import Use
- Activities:
- Activity #1: Modifying Ultrasonic.py
- Activity #2: Adding the Ultrasonic Range Sensor
- Activity #3: Building the Range Game