Curious what we teach in both our Raspberry Pi and Python Standard Course? This course is designed to start at the very beginning to systematically teach you to work with electronic components, use a Raspberry Pi, and write Python code. The course then covers more complex electronic components such as a variety of sensors as well as intermediate-level Python code commands.
Click here to view sample lesson videos, activity instructions, and more.
SCOPE AND SEQUENCE FOR THE RASPBERRY PI + PYTHON STANDARD COURSE
Lesson A-1: Introduction to Components: Batteries and Breadboards
- What is Electricity?
- Static Electricity vs. Current Electricity
- Voltage, Current, and Resistance
- What is a Circuit?
- Short Circuits
- Open Circuits vs. Complete Circuits
- Circuit Components
- Batteries
- Anode vs. Cathode
- Breadboards
- Soldered Circuits vs. Breadboard Circuits
- Breadboard Connections and Power
- Activity: Powering Breadboard Connections
Lesson A-2: Introduction to Components: Resistors and LED
- Resistors
- How Resistors Work
- Using Resistors to Build Circuits
- Calculating Resistance Value
- Light Emitting Diode
- How LEDs Work
- LED Polarity
- Pairing Resistors and LEDs
- Calculating Forward Voltage
- Activities
- Activity #1: Build a Circuit to Illuminate an LED
- Activity #2: Build a Series Circuit
Lesson A-3: Series vs. Parallel Circuits and Ohm’s Law
- Series vs. Parallel Circuits
- Limitations to Series Circuits
- Resistor Use in Parallel Circuits
- Understanding Voltage, Resistance, and Current in Serial vs. Parallel Circuits
- Ohm’s Law
- Introduction to Ohm’s Law
- Mathematical Formula
- Ohm’s Law Calculation Example
- Activities: Build a Parallel Circuit
Lesson A-4: Introduction to Components: Jumper Wires
- Jumper Wire
- Uses for Jumper Wire
- Size and Type of Jumper Wire
- Spacing Components to Avoid Short Circuits
- Activity: Build a Circuit Using Jumper Wires
Lesson A-5: Introduction to Components: Switches
- Switches
- Common Uses for Switches
- Types of Switches
- Maintained vs. Momentary
- Normally Open vs. Normally Closed
- Poles and Throws
- Labeling Components
- Activities
- Activity #1: Controlling Two LEDs with One Switch
- Activity #2: Using Two Switches to Independently Control LEDs
Lesson A-6: Introduction to Components: Red-Blue-Green LED (RGB LED)
- RGB LEDs
- Common Anode vs. Common Cathode
- Proper Placement in Breadboard
- Activities
- Activity #1: Illuminate the Red Element of the RGB LED
- Activity #2: Add the Blue Element on a Switch
- Activity #3: Controlling Colors on a Switch
Lesson A-7: Troubleshooting Circuits
- Introduction to Troubleshooting
- Troubleshooting Steps:
- Verify There is a Failure
- Check the Simplest or Most Likely Solution First and Retest
- Half-Splitting
- Repair the Problem and Retest
- Practical Applications
- Intermittent Problems
- Equipment Failure
- Activities
- Activity #1: Building and Troubleshooting a Circuit
- Activity #2: Additional Troubleshooting Practice
Lesson A-8: Introduction to Reading Schematics
- Schematics
- Reading Schematics
- Common Schematic Symbols
- Wires
- Power
- Switches
- Resistors
- Diodes
- Capacitors
- Transistors
- Integrated Circuits
- Header
- Activities
- Activity #1: Building a Series Circuit Using a Schematic
- Activity #2: Building a Parallel Circuit Using a Schematic
- Activity #3: Working with a Schematic
Lesson A-9: Setting Up the Raspberry Pi
- Raspberry Pi Hardware
- Raspberry Pi Software
- Types of Software
- Raspian OS
- Python
- Nano
- Thonny
- Types of Interface
- GUI
- Terminal
- Understanding Sudo and Update Commands
- APT-GET Update
- APT-GET DIST-UPGRADE
- Activities
- Activity #1: Installing the Raspberry Pi in a Protective Case
- Activity #2: Connecting Peripherals to the Raspberry Pi
- Activity #3: Safely Powering the Raspberry Pi On and Off
- Activity #4: Connecting the Raspberry Pi to the Internet
- Activity #5: Updating the Raspberry Pi’s Software
Lesson A-10: Introduction to Software: Terminal and Thonny
- Nano Overview
- Thonny Overview
- Error Checking Options
- Activities
- Activity #1: Creating a Python Program in Nano
- Activity #2: Creating a Python Program in Thonny
- Activity #3: Exploring Thonny’s Error Checking Features
Lesson A-11: Creating Python Programs
- Program Flow
- Strings
- Variables
- Spaces and Capitalization
- Integers
- Equations
- Print Command
- Printing a String
- Printing a Variable
- Order
- Activities
- Activity #1: Reading and Writing Basic Python Code
- Activity #2: Writing Basic Python Code
Lesson A-12: Code Organization, User Input, and Merging Strings
- Keeping Code Organized
- Carriage Returns
- Comments
- Formatting Comments
- Commenting Out Code
- User Input
- Merging Strings (Concatenation)
- Activities
- Activity #1: Reading and Writing Python Code
- Activity #2: Writing a Simple Program in Python
Lesson A-13: Math Functions, Lists, and Importing Modules
- Math Functions
- Lists
- Formatting Lists
- Index Values
- Importing and Using Modules
- Time Module
- Random Module
- Activities
- Activity #1: Exponential Math Calculations
- Activity #2: Importing the Random Module
- Activity #3: Random Dice Program
- Activity #4: Importing the Time Module
- Activity #5: Times Up! Game
Lesson A-14: Introducing If/Else Statements
- Boolean Logic
- Coding Comparison Operators
- Connecting Multiple Logic Expressions
- Programming for Decisions
- If Statements
- Else Statements
- Using Multiple Statements Inside an If Statement
- Elif Statements
- Formatting Concerns
- Activities
- Activity #1: Using Boolean Logic
- Activity #2: Deciphering Code
- Activity #3: Writing Logical Code
Lesson A-15: Nested If Statements and String/Integer Conversion
- Nested If Statements
- Indentation
- Strings vs. Integers
- Converting a Value to an Integer
- Converting a Value to a String
- Activities
- Activity #1: Add Five Years to Your Age
- Activity #2: Age Calculator
- Activity #3: Guess A Number
Lesson A-16: Controlling a Breadboard Circuit with the Raspberry Pi
- General Purpose Input Output (GPIO)
- Pin States: Low vs. High
- Outputs
- GPIO Header
- GPIO Pin Numbering
- GPIO Header Pin Assignments
- Python Commands and Process for Working with GPIO Pins
- Importing Module
- Specifying Pins
- Cleanup Operations
- Activities
- Activity #1: Preparing the Equipment for Connection
- Activity #2: Powering an LED Using the Raspberry Pi
Lesson A-17: Loops
- Introduction to Loops
- Coding Loops
- Activities
- Activity #1: Build a 4 LED Circuit
- Activity #2: Create a Program to Test Circuit Functionality
- Activity #3: Using Loops to Control LEDs
Lesson A-18: Final Project: Two Player Reaction Game
- Inputs
- Electrical Differences in Configurations
- Another Random Module Command
- Other Uses for the Time Module
- Trimming a Long Number
- While Loops
- Activities
- Activity #1: Add Switches to the Circuit
- Activity #2: Coding the Two Player Game
Lesson B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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 B-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
Ready to get started? Click here to purchase the Raspberry Pi + Python Standard Course.