Lesson Order
Order of Lessons and Concept
This section provides you with sample prompts you can give to any generative AI system. The first is a general prompt that just returns a list of concepts. The next prompt is much more detailed and includes exactly the tools you have in your lab.
Sample General Prompt
You are an expert at teaching MicroPython to high school
students using fun sensors and displays to create fun
STEM robots.
List the 100 most important concepts that you would teach
in your courses. For each concept, just return the
name of the concept without any definition.
Return the 100 items in the order they should be
taught in a class with the simplest first,
to the most complex at the end of the list.
ChatGPT response
- Introduction to MicroPython
- Setting Up the Thonny Development Environment
- Basic Syntax and Variables
- Data Types
- Arithmetic Operators
- Comparison Operators
- Logical Operators
- Control Structures: If Statements
- Control Structures: Else and Elif
- For Loops
- While Loops
- Functions
- Parameters and Return Values
- Importing Modules
- Using Built-in Libraries
- Working with LEDs
- Reading Button Inputs
- Serial Communication Basics
- Using the REPL
- Exception Handling
- Lists
- Tuples
- Dictionaries
- String Manipulation
- Working with Time and Delays
- Understanding Analog vs Digital Signals
- GPIO Pin Basics
- Pulse Width Modulation (PWM)
- Reading Analog Sensors
- Writing to LCD Displays
- Using I2C Communication
- Using SPI Communication
- Handling Interrupts
- Debouncing Buttons
- Managing Power Consumption
- Introduction to Robotics
- Motor Control Basics
- Using Servo Motors
- Using DC Motors
- Understanding H-Bridge Circuits
- Using Motor Drivers
- Reading from Ultrasonic Sensors
- Using Temperature Sensors
- Using Light Sensors
- Using Accelerometers
- Using Gyroscopes
- Implementing Serial Protocols
- Debugging Techniques
- Introduction to Version Control with Git
- Project Planning and Design
- Building a Basic Robot Frame
- Integrating Sensors and Actuators
- Using Bluetooth Modules
- Using Wi-Fi Modules
- Implementing Bluetooth Communication
- Implementing Wi-Fi Communication
- Data Logging Techniques
- Storing Data on SD Cards
- Using Real-Time Clocks
- Implementing Timers
- PWM for LED Dimming
- Creating a User Interface
- Using Touch Sensors
- Implementing Obstacle Avoidance
- Line Following Algorithms
- Introduction to PID Control
- Using Encoders
- Implementing Feedback Loops
- Basics of Machine Learning
- Creating Autonomous Behaviors
- Implementing Remote Control
- Introduction to Speech Recognition
- Using Camera Modules
- Basics of Image Processing
- Integrating Multiple Sensors
- Power Management for Robots
- Wireless Charging Basics
- Safety Practices in Robotics
- Designing for Modularity
- Implementing Error Recovery
- Advanced Data Structures
- Using Queues and Stacks
- Multithreading in MicroPython
- Asynchronous Programming
- Implementing State Machines
- Networking Protocols
- Cloud Integration Basics
- Using MQTT Protocol
- Implementing REST APIs
- Secure Communication Practices
- Basics of Encryption
- Advanced Sensor Fusion
- Path Planning Algorithms
- Introduction to SLAM (Simultaneous Localization and Mapping)
- Using GPS Modules
- Integrating with Mobile Devices
- Using NFC Modules
- Implementing Gesture Control
- Voice Command Integration
- Advanced AI for Object Recognition
STEM Robotics Course
You are an expert at teaching MicroPython to high
school students using fun sensors and displays to
create fun STEM robots. In your lab,
you have the following equipment:
1. Computers running the Thonny IDE
2. Raspberry Pi Picos mounted on breadboards
3. Basic electronic components (LEDs, resistors, transistors, motors, etc.)
4. A Smart Car robot chassis with 2 DC motors and a battery pack of 4 AA batteries
5. The Cytron motor controller board with the RP2040 chip that supports DC motors, servos, I2C, and SPI interfaces
6. 128x64 OLED displays that use the SPI interface
7. WS2816 LED strips (neopixels)
List the 100 most important concepts that you would
teach in your STEM Robots course. For each concept,
just return the name of the concept and a short definition.
Return the 100 items in the order they should be taught
in a class, with the simplest first to the most
complex at the end of the list.
-
Introduction to Robotics Overview of robotics, course objectives, and the role of robots in STEM.
-
Introduction to MicroPython Understanding MicroPython and its applications in embedded systems.
-
Setting Up the Development Environment Installing Thonny IDE and configuring it for Raspberry Pi Pico.
-
Connecting Raspberry Pi Pico to Computer Physical setup of the Pico with the computer for programming.
-
Basic Syntax and Variables Learning the fundamental syntax of MicroPython and how to declare variables.
-
Data Types in MicroPython Exploring different data types such as integers, floats, strings, and booleans.
-
Basic Electronics Principles Introduction to voltage, current, and basic electronic components.
-
Using a Breadboard Understanding breadboard layout and how to create simple circuits.
-
Working with LEDs Connecting and controlling LEDs using the Raspberry Pi Pico.
-
Understanding Resistors Learning the purpose of resistors and how to calculate resistance values.
-
GPIO Pin Basics Overview of General Purpose Input/Output pins on the Pico.
-
Digital Input and Output Reading digital inputs and controlling digital outputs.
-
Using Push Buttons Connecting and reading input from push buttons.
-
Control Structures: If Statements Implementing conditional logic in MicroPython.
-
Control Structures: Else and Elif Expanding conditional logic with else and elif statements.
-
For Loops Creating loops to execute code multiple times.
-
While Loops Implementing loops that run based on a condition.
-
Functions in MicroPython Defining and calling functions to organize code.
-
Parameters and Return Values Using parameters and return values in functions.
-
Lists in MicroPython Creating and manipulating lists to store multiple values.
-
String Manipulation Working with strings, including concatenation and formatting.
-
Basic Arithmetic Operations Performing arithmetic calculations in code.
-
Using Built-in Libraries Importing and utilizing MicroPython's built-in libraries.
-
Serial Communication Basics Understanding serial communication between devices.
-
Using the REPL Utilizing the Read-Eval-Print Loop for interactive coding.
-
Exception Handling Managing errors and exceptions in your programs.
-
Introduction to PWM (Pulse Width Modulation) Understanding PWM and its applications in controlling devices.
-
Controlling LED Brightness with PWM Using PWM to adjust LED brightness levels.
-
Working with Transistors Learning how transistors can control larger currents.
-
Introduction to the Cytron Motor Controller Overview of the Cytron board and its capabilities.
-
Connecting DC Motors Wiring DC motors to the motor controller and Pico.
-
Basic Motor Control Writing code to start and stop DC motors.
-
Controlling Motor Speed with PWM Using PWM to adjust the speed of DC motors.
-
Understanding Motor Direction Changing the direction of motor rotation.
-
Building a Simple Robot Frame Assembling the Smart Car chassis with motors and battery pack.
-
Powering the Raspberry Pi Pico Connecting the battery pack to power the Pico and motors.
-
Using Servo Motors Connecting and controlling servo motors for precise movements.
-
Introduction to I2C Communication Understanding the I2C protocol for connecting peripherals.
-
Connecting the OLED Display via SPI Wiring the 128x64 OLED display using the SPI interface.
-
Displaying Text on OLED Writing code to show text messages on the OLED screen.
-
Using the WS2816 LED Strips (Neopixels) Connecting and controlling Neopixel LED strips.
-
Creating LED Animations Programming dynamic lighting effects on LED strips.
-
Reading Analog Inputs Using analog sensors to read varying voltage levels.
-
Using Light Sensors Connecting light sensors and interpreting their data.
-
Using Temperature Sensors Reading temperature data from connected sensors.
-
Debouncing Buttons Implementing software techniques to stabilize button inputs.
-
Implementing Timers and Delays Managing timing in your programs for precise control.
-
Introduction to Dictionaries Using dictionaries to store key-value pairs of data.
-
Using Tuples Understanding and utilizing tuples for immutable data.
-
Advanced String Operations Performing complex manipulations on string data.
-
Storing and Accessing Data with Lists Managing and accessing data stored in lists.
-
Introduction to the Smart Car Chassis Detailed overview of the Smart Car components and functionality.
-
Connecting Multiple LEDs Wiring and controlling multiple LEDs in a circuit.
-
Using the Motor Controller's I2C Interface Communicating with the motor controller via I2C.
-
Basic Sensor Integration Connecting simple sensors to the Raspberry Pi Pico.
-
Reading Sensor Data Collecting and interpreting data from various sensors.
-
Displaying Sensor Data on OLED Showing real-time sensor information on the OLED display.
-
Using Transistors for Motor Control Enhancing motor control with transistor circuits.
-
Introduction to PWM for Servo Control Using PWM signals to precisely control servos.
-
Creating Interactive LED Displays Programming LEDs to respond to sensor inputs.
-
Implementing Basic Obstacle Avoidance Using sensors to detect and avoid obstacles.
-
Building a Line-Following Robot Programming the robot to follow a line using sensors.
-
Introduction to Encoders Understanding encoders for tracking motor rotation.
-
Implementing Motor Feedback Using encoder data to control motor movements accurately.
-
Using Accelerometers Integrating accelerometers to measure movement and orientation.
-
Using Gyroscopes Adding gyroscopes for detecting rotational motion.
-
Basic Data Logging Recording sensor data for later analysis.
-
Storing Data on SD Cards Writing and reading data to/from SD cards.
-
Using Real-Time Clocks (RTC) Keeping track of time in your projects with RTC modules.
-
Implementing State Machines Managing complex behaviors using state machines.
-
Introduction to Interrupts Handling asynchronous events in your programs.
-
Using Queues and Stacks Managing data flow with queues and stacks.
-
Multithreading in MicroPython Running multiple threads for concurrent tasks.
-
Asynchronous Programming Implementing non-blocking code for efficient processing.
-
Introduction to PID Control Understanding Proportional-Integral-Derivative control for precise movement.
-
Implementing Feedback Loops Using sensor feedback to adjust motor control dynamically.
-
Basic Networking Concepts Understanding how devices communicate over networks.
-
Using Bluetooth Modules Connecting and communicating with Bluetooth devices.
-
Using Wi-Fi Modules Integrating Wi-Fi for wireless communication and control.
-
Implementing Bluetooth Communication Setting up Bluetooth to send and receive data.
-
Implementing Wi-Fi Communication Configuring Wi-Fi for internet connectivity and data exchange.
-
Introduction to Version Control with Git Managing code versions and collaborating using Git.
-
Project Planning and Design Planning and designing robotics projects effectively.
-
Integrating Multiple Sensors Combining data from various sensors for complex behaviors.
-
Advanced Data Structures Utilizing advanced structures like linked lists and trees.
-
Introduction to Machine Learning Basics of machine learning and its applications in robotics.
-
Creating Autonomous Behaviors Programming robots to operate independently without user input.
-
Implementing Remote Control Controlling the robot remotely via wireless connections.
-
Using Touch Sensors Integrating touch sensors for interactive control.
-
Implementing Gesture Control Using sensors to interpret and respond to user gestures.
-
Voice Command Integration Adding voice recognition to control the robot through speech.
-
Using Camera Modules Connecting and utilizing camera modules for vision-based tasks.
-
Basics of Image Processing Processing and interpreting images captured by the camera.
-
Advanced Sensor Fusion Combining multiple sensor inputs for accurate data interpretation.
-
Path Planning Algorithms Designing algorithms for efficient navigation and movement paths.
-
Introduction to SLAM (Simultaneous Localization and Mapping) Enabling robots to build maps and locate themselves within them.
-
Using GPS Modules Integrating GPS for location tracking and navigation.
-
Integrating with Mobile Devices Connecting the robot to smartphones or tablets for control and feedback.
-
Using NFC Modules Adding Near Field Communication for short-range interactions.
-
Advanced AI for Object Recognition Implementing artificial intelligence techniques to recognize and respond to objects.