What Will You Learn in the Robotics Course?

Curious what we teach in our Robotics 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 increasingly complex concepts including a wide variety of electronic components such as sensors, relays, servos, audio-visual components, and many more. We also teach you write both intermediate and advanced-level Python code commands. In the final level of lessons in this course, we teach you to take all the electronics and coding skills you've learned and build a mobile, fully programmable robot.

Click here to view sample lesson videos, activity instructions, and more.

Interested in using this course in a group teaching setting? This same content is taught in our Two Semester Robotics Course.

 

SCOPE AND SEQUENCE FOR THE ROBOTICS 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

 

Lesson C-1: Networking and Remote Access

  • Computer Networking
    • LAN vs. WAN
    • IP Addresses
    • Determining the Current IP Address of Your Raspberry Pi
  • Changing Your Password
  • Remote Access Methods
    • VNC Access
    • SSH Access
  • Activities:
    • Activity #1: Change Password and Determine IP Address
    • Activity #2: Remote Access Using Secure Shell (SSH)
    • Activity #3: VNC Viewer Installation and Connection


Lesson C-2: Infrared Remote Control

  • Infrared Communication
    • IR Remote Control Data
    • IR Remote Codes
  • The Socket Module
  • Bytes and Strings
  • Bash Scripts
  • Curl Command
  • Activities:
    • Activity #1: Building the RGB LED and Receiver Circuit
    • Activity #2: Installing the LIRC Package Software
    • Activity #3: Creating a Program to Control the RGB LED with the IR Remote


Lesson C-3: Creating GUI Programs with Tkinter

  • Python Program Elements
    • Classes and Methods
    • Method Calls for Imported Modules
    • Simplifying Method Calls
  • The Tkinter Module
    • The TK Class
    • The Canvas Class
    • The Event Class
  • Activities:
    • Activity #1: Displaying Mouse Position
    • Activity #2: Displaying Keyboard Input
    • Activity #3: Controlling LED with Keyboard Presses


Lesson C-4: Transistors

  • Transistors
    • NPN Transistors
    • PNP Transistors
    • Identifying Transistors
    • Component Reference Designators
    • Transistor Specifications
    • Pulse Width Modulation with Transistors
  • Dual-Color LED
  • Resistance Values in Series and Parallel
  • Activities:
    • Activity #1: Driving an LED with a Transistor
    • Activity #2: Adding a Second Transistor and LED
    • Activity #3: Driving the Dual-Color LED


Lesson C-5: Command Line Programs

  • Bash Programming
    • Bash Scripts
    • Creating a Bash Script
    • Running a Bash Script
  • Controlling GPIO Pins with WIRINGPI
    • Reading the Status of All Pins
    • Changing the Mode of a Pin
    • Changing the State of an Output Pin
    • Modifying the Duty Cycle of a PWM Pin
    • History of Commands Typed into the CLI
  • Making Programs Run at Startup
    • Modifying the /ETC/RC.LOCAL File
    • Stopping a Program that was Launched at Startup
  • Activities:
    • Activity #1: Creating a Bash Script
    • Activity #2: Controlling a GPIO Pin Using WIRINGPI
    • Activity #3: Adding a Program on Startup


Lesson C-6: Working with Audio

  • Amplifiers
    • Amplifier Gain
    • Distortion
  • The PAM8302 Amplifier
  • Audio Output Hardware
    • Raspberry Pi Audio Output Quality
    • USB Audio Output Devices
    • Audio on GPIO Pins
  • Audio Input Hardware
    • USB Audio Input Devices
  • Software Audio Functions
    • The ARECORD Command
    • The APLAY Command
  • The OS Module
  • Activities:
    • Activity #1: Adding the Amplifier and Speaker
    • Activity #2: Recording Audio Files
    • Activity #3: Playing Your Voice File with the IR Remote


Lesson C-7: Servo Motors

  • Servo Motors
    • Types of Servos
    • Servo Options
    • Keeping Servos Safe
  • Driving a Servo
    • Servo Drive Commands
    • Servo Drive Latency
    • Using Servos in Projects
  • Activities:
    • Activity #1: Adding the Servo and Testing
    • Activity #2: Controlling the Servo with Keyboard Input
    • Activity #3: Controlling the Servo with Your IR Remote


Lesson C-8: Working with Data

  • Technical Terms
    • Dataset
    • Mutable vs. Immutable
    • Ordered vs. Unordered
    • Iterating
  • Dataset Characteristics
    • Lists
    • Tuples
    • Sets
    • Dictionaries
  • Mixed Datasets
    • Identifying Components of a Dataset
  • Activities:
    • Activity #1: Creating a Dataset
    • Activity #2: Printing the Number of Students and Teachers
    • Activity #3: Adding a Student to the Dataset


Lesson C-9: Working with Accelerometers and Gyros

  • Accelerometers
    • Other Forces
    • Multiple Axes
  • Gyros
    • Using Gyro Information
  • The MPU6050 Sensor
    • Software Commands
  • Activities:
    • Activity #1: Adding the MPU6050 Sensor and Driver
    • Activity #2: Controlling the RGB LED
    • Activity #3: Controlling the Servo


Lesson C-10: Using Tkinter for Displaying Data

  • Tikinter Window Construction
    • The Grid Method
    • Changing the Window Title
  • New Widget Types
    • The Label Widget
    • The Button Widget
    • The Entry Widget
  • Creating Tkinter Loops
  • Activities:
    • Activity #1: Timer Display
    • Activity #2: Displaying Accelerometer Data
    • Activity #3: Displaying All MPU6050 Axis Data


Lesson C-11: Building a Web Server Using Bottle

  • Web Page Control
    • Components Required for Web Page Control
    • IP Addresses and Ports
  • HTML Code
    • HTML Tag Types
  • The Bottle Web Server
  • The PIP Installer
  • Activities:
    • Activity #1: Preparing the Circuit and Installing Bottle
    • Activity #2: Modifying the Program to Control the RGB LED
    • Activity #3: Adding the Green and Blue Elements


Lesson C-12: Interfacing with a Camera

  • Raspberry Pi Camera
    • Camera Specifications
    • ESD Precautions
  • Camera Connections
    • Accessing the Camera Connector on Your Raspberry Pi
  • Enabling the Camera
  • Camera Commands
    • The Flip Options
    • The Timeout Option
    • The Encoding Option
    • Using Multiple Options
    • Camera Commands in Python
    • Camera Errors
  • Activities:
    • Activity #1: Connecting the Camera
    • Activity #2: Taking a Photo from the Command Line
    • Activity #3: Building an Image Capture and Display Program


Lesson C-13: Building a Web Camera Server with Apache

  • Types of Web Content
    • PHP Scripts
    • Javascript Code
    • CGI Scripts
  • The Apache Web Server
    • Advantages of Apache
    • Apache File Locations
    • Apache URL Behavior
  • RPi Cam Web Software
    • Rpi Cam Video Modes
  • Activities:
    • Activity #1: Installing the RPi Cam Software Package
    • Activity #2: Viewing the Camera Over the Network
    • Activity #3: Changing the Autostart Setting


Lesson C-14: Using Relays

  • Relays
    • Mechanical Construction
    • Input Coil Current
    • Relay Types
    • The Relay Carrier Board
    • Driving the Relay
  • Activities:
    • Activity #1: Building the Circuit
    • Activity #2: Adding the LED Load Circuit
    • Activity #3: Controlling the Relay and LED with the IR Remote Control


Lesson C-15: Working with Data from the Internet

  • Methods for Gathering Data from Websites
    • Parsing Data
    • API Data Access
    • Database-Style Web Page Content
    • The URLLIB.REQUEST Python Module
    • The REQUESTS Python Module
    • Viewing Feed Data
  • Cheerlights
    • Update Frequency
  • Activities:
    • Activity #1: Adding the OLED Screen
    • Activity #2: Changing the RGB Color Using an Internet Feed
    • Activity #3: Display Cheerlights Color on OLED Display


Lesson C-16: Web Page Control

  • Using Images with HTML
  • The Apache Web Server
    • Apache File Locations
    • Web Server Permissions
    • Listing Permissions
    • The Apache CGI Processing Module
  • Creating and Running CGI Scripts
    • Creating a Web Page to Run CGI Scripts
  • Activities:
    • Activity #1: Web Pages with Links
    • Activity #2: Adding an Image
    • Activity #3: Adding CGI Scripts to Control an RGB LED


Lesson C-17: IOT with the Raspberry Pi

  • IOT (The Internet of Things)
    • Home-Built vs. Commercial Solutions
    • The Cayenne Software Package
  • Activities:
    • Activity #1: Adding a Switch and Installing Cayenne
    • Activity #2: Controlling an LED and Monitoring a Switch
    • Activity #3: Monitor an Input Using Cayenne


Lesson C-18: Final Project: Alarm

  • Project Overview
    • User Interface
    • Program Operations
    • Required Files and Modules
  • Activities:
    • Activity #1: Circuit Modifications
    • Activity #2: File and Folder Preparation
    • Activity #3: Creating the Alarm Program

 

Lesson D-1: Data Protection and Recovery

  • How Data is Stored
    • Causes of Data Corruption
  • Protecting Against Data Loss
    • USB Drive Backups
    • Full SD Card Image Backups
  • Recovery Options
    • Pulling Data From a Corrupted SD Card
    • SD Characteristics and Software
  • Reovery Options Summary
    • Activities:
      • Activity #1: Backing Up Files Using USB
      • Activity #2: Creating a Backup Image of Your SD Card
      • Activity #3: Restoring an Image to an SD Card (optional)


    Lesson D-2: Using a Multimeter

    • Multimeter Functions
    • Multimeter Hardware
      • Range Selection
    • Measuring Voltage
    • Measuring Resistance
    • Measuring Current
    • Activities:
      • Activity #1: Installing the Battery
      • Activity #2: Measuring Resistance Values
      • Activity #3: Measuring Voltage Values
      • Activity #4: Measuring Current in a Circuit


    Lesson D-3: Building the Robot Chassis

    • Hardware Considerations
      • Handling the Robot
      • Activities:
        • Activity #1: Building the Robot Chassis Assembly


      Lesson D-4: Adding the Pi and Camera to the Robot

      • Networking Considerations
        • Connections to the Raspberry Pi
        • VNC Security
      • Working With Mechanical Hardware
        • Camera Handling Considerations
      • Activities:
        • Activity #1: Preparing the Raspberry Pi
        • Activity #2: Mounting the Raspberry Pi
        • Activity #3: Attaching the Camera to the Chassis
        • Activity #4: Testing the Pi and Camera


      Lesson D-5: Level Shifting for Sensor Outputs

      • Overview of the Components
        • The Importance of Correct Wiring
        • Level-Shifting IC (74LVC245)
        • Sensor Connections
        • Testing the Level Shifter
      • Activities:
        • Activity #1: Adding and Connecting the 74LVC245
        • Activity #2: Building the Test Program
        • Activity #3: Testing Each Channel of the Level Shifter

       

      Lesson D-6: Adding the Infrared Sensors

      • Line Following Sensors
      • Obstacle Sensors
      • Sensor Pin Numbering
      • Robot Orientation
      • Hardware Overview
      • Activities:
        • Activity #1: Mounting the Sensors
        • Activity #2: Wiring the Line and Obstacle Sensors
        • Activity #3: Testing the Sensor Inputs


      Lesson D-7: Mounting and Testing the Ultrasonic Sensor

      • Ultrasonic Sensor Wiring
        • The Ultrasonic Mounting Plate
        • Activities:
          • Activity #1: Adding the Ultrasonic Sensor
          • Activity #2: Testing and Calibrating the Sensor


        Lesson D-8: Adding the Audio Amplifier and Sepaker

        • Audio System Wiring
        • Audio Commands
        • Methods of Triggering Audio Playback
        • Speaker Noise Issues
        • Activities:
          • Activity #1: Installing the Speaker and Amplifier
          • Activity #2: Testing the Audio System
          • Activity #3: Recording Audio Files


        Lesson D-9: The Mobile Power System

        • Batteries
          • Energy Capacity
          • Batteries Connected in a Series
          • Batteries Connected in Parallel
          • Batteries Connected in Series / Parallel
        • Power Conversion
        • Safety and Precautions
        • Activities:
          • Activity #1: Mounting the Hardware
          • Activity #2: Testing the Power System


        Lesson D-10: Driving Motors

        • DC Motors
          • Driving a Bidirectional Motor
          • Controlling Back-EMF With Diodes
        • The Motor Drive IC
          • Heat Warning
          • Enable Lines
        • Activities:
          • Activity #1: Adding the Motor Drive IC
          • Activity #2: Quick Motor Test


        Lesson D-11: Motor Pulse Width Modulation (PWM) and Calibration

        • PWM Control of DC Motors
          • Motor Drive IC Pinout
          • Low Speed Motor Characteristics
          • Left and Right Motor Variability
        • Activities:
          • Activity #1: Motor Direction Test
          • Activity #2: Add PWM Drive Control to Motors


        Lesson D-12: Project Documentation

        • Determining the Scope of the Project
          • Hardware Planning
          • Document Expected Software Functionality
          • Solving Problems
          • Preserving Documents and Files
          • Activities:
            • Activity #1: Create Wedge Map for Robot Wiring
            • Activity #2: Create Block Diagram of Infrared Sensors

          Lesson D-13: Line Following

          • Line Following Fundamentals
            • Creating the Course
            • Line Sensing Behavior
            • Line Sensor Positioning
            • Speed and Drive Motor Characteristics
            • Troubleshooting Your Line Following Robot
            • Safe Operation of the Robot
            • Activities:
              • Activity #1: Building the Line Following Program
              • Activity #2: Building the Line Following Path
              • Activity #3: Testing the Line Following Program


            Lesson D-14: Obstacle Avoidance

            • Characteristics of Each Sensor
              • The Ultrasonic Range Sensor
              • The Infrared Obstacle Sensor
              • Sensor Positions
              • Speed and Tuning
              • Tuning the Robot's Actions
            • Overview of the Program
              • Motor Functions
            • Activities:
              • Activity #1: Building the Program
              • Activity #2: Testing and Tuning the Robot


            Lesson D-15: Keyboard Controls

            • Keyboard Input Considerations
              • Keyboard Focus
              • Keypress Hold Behavior
              • Keypress Repeat Behavior
            • Programming Movement Behavior
              • Motor Speed and Movement
              • Tkinter Keybinding
            • Activities:
              • Activity #1: Building the Program
              • Activity #2: Testing and Tuning the Robot


            Lesson D-16: Controlling the Robot Motion with a Web Page

            • Web Page Overview
              • CGI Script Review
            • Web Page Elements
              • Div Tags
              • Jacascript OnPointerUp Events
              • Button Functionality Overview
            • Activities:
              • Activity #1: Downloading and Unzipping Button Images
              • Activity #2: Building Required CGI Scripts
              • Activity #3: Building the Web Page


            Lesson D-17: Video on a Web Page

            • Camera Autostart Settings
            • Video Format and Required Files
            • HTML Page Elements for Viewing Video
            • Activities:
              • Activity #1: Changing the Autostart Setting
              • Activity #2: Creating a Simple Camera Web Page
              • Activity #3: Adding Video to Robot Control Web Page


            Lesson D-18: Adding Audio Playback to a Web Page

            • Audio System Overview
            • File Locations
            • Playing an Audio File Using CGI Script
            • Activities:
              • Activity #1: Downloading and Running the Script
              • Activity #2: Creating the CGI Files
              • Activity #3: Creating the Web Page

             

            The Robotics Course can be purchased here.

            Older Post
            Newer Post
            Close (esc)

            Popup

            Use this popup to embed a mailing list sign up form. Alternatively use it as a simple call to action with a link to a product or a page.

            Age verification

            By clicking enter you are verifying that you are old enough to consume alcohol.

            Search

            Your cart is currently empty.
            Shop now