STEM Robotics is an engaging and practical way to learn science, technology, engineering, and maths by designing, building, and programming functional robots.
What is STEM?
STEM is an acronym for four fields of study: S - Science, T - Technology, E - Engineering, M - Mathematics
Explanation of STEM Robotics:
STEM Robotics is a practical, hands-on approach to education. In this method, students learn by designing, building, and programming robots. This process allows them to apply theoretical knowledge to real-world problems.
For example, when building a robot, students use:
Science principles, such as physics and electronics.
Technology, like sensors, motors, and computer programming (coding).
Engineering skills to design and construct the robot's structure.
Mathematics for measurements, calculations, and creating algorithms.
Course Overview:
This course is a hands-on adventure into the exciting worlds of coding, electronics, and robotics. It is designed for beginners and young innovators, starting with the simple, visual language of Scratch and progressing to building real-world smart devices and robots. Participants learn programming logic through drag-and-drop blocks, simulate electronic circuits in Tinkercad, build and program an obstacle-avoiding car with Arduino, and explore the Internet of Things (IoT) with MicroPython. The journey culminates with an introduction to professional robotics using the Robot Operating System (ROS), providing a complete pathway from creative ideas to intelligent machines.
Objective: To master the fundamentals of programming logic and creative expression using the Scratch block-based coding environment.
1.1: Welcome to Scratch
Exploring the Scratch interface: Sprites, Backdrops, and the Code Block Palette.
Understanding event-driven programming (e.g., "when green flag clicked").
1.2: Core Coding Blocks
Using Motion, Looks, Sound, and Pen blocks to create animations and stories.
Implementing logic with Control blocks (loops, conditionals) and Variables.
1.3: Building Your First Projects
Creating an interactive animation and a simple game.
Sharing projects with the Scratch online community.
Objective: To safely learn the basics of electronics and bridge the gap between software and hardware by programming virtual circuits with block code.
2.1: Introduction to Electronics
Core concepts: Voltage, current, resistance, and Ohm's Law in a simulated environment.
Building basic circuits with virtual components like LEDs, resistors, and pushbuttons.
2.2: Programming Virtual Arduino with Blocks
Using the Tinkercad Circuits editor to program a simulated Arduino board.
Writing block-based code to read from sensors and control outputs.
2.3: From Simulation to Reality
Understanding how a virtual prototype prepares you for building with physical hardware.
Objective: To transition from block coding to text-based programming by setting up and controlling a physical Arduino board using its C++ based language.
3.1: Your First Physical Circuit
Setting up the Arduino board and the Arduino IDE.
Recreating the "Blink" circuit from Tinkercad with real hardware components.
3.2: Fundamentals of Arduino C++
The structure of an Arduino sketch: setup() and loop().
Core commands: pinMode(), digitalWrite(), digitalRead(), and delay().
3.3: Working with Analog Signals
Reading analog sensors like potentiometers and light sensors using analogRead().
Controlling brightness and speed with analogWrite() (PWM).
Objective: To apply Arduino programming and electronics skills to assemble and program an autonomous mobile robot.
4.1: Robot Assembly and Mechanics
Assembling the robotic car chassis, motors, and wheels.
Understanding the role of each component.
4.2: Controlling Motors with a Motor Driver
Wiring the Arduino to a motor driver (like the L298N) to control the speed and direction of the DC motors.
Writing C++ code to make the robot move forward, backward, turn left, and turn right.
4.3: Sensing the Environment
Integrating an ultrasonic distance sensor to measure distances to objects.
Writing code to read data from the sensor and display it on the Serial Monitor.
4.4: Implementing Obstacle-Avoidance Logic
Combining motor control and sensor readings to create autonomous behavior.
Programming the robot to check for obstacles and change its direction to avoid a collision.
Objective: To connect Arduino projects to the internet, enabling them to send data to the cloud and be controlled remotely.
5.1: Introduction to the Internet of Things (IoT)
Understanding what IoT is and how smart devices communicate.
Using Wi-Fi enabled microcontrollers like the ESP8266 or ESP32.
5.2: Sending Data to the Cloud
Connecting your ESP board to a Wi-Fi network.
Sending sensor data to an IoT platform (e.g., ThingSpeak).
5.3: Receiving Commands from the Cloud
Building a project that can be controlled from a web dashboard, like a smart light.
Objective: To explore an alternative IoT ecosystem by programming the Raspberry Pi Pico microcontroller using the beginner-friendly MicroPython language.
6.1: Welcome to the Raspberry Pi Pico
Setting up the Raspberry Pi Pico and the Thonny IDE for MicroPython development.
6.2: Programming with MicroPython
Controlling the Pico’s I/O pins using Python syntax.
Reading sensors and controlling actuators.
6.3: Building a Pico IoT Project
Connecting the Pico W to the internet to create a MicroPython-powered smart device.
Objective: To understand the fundamentals of how machines "see" and to build a simple project that reacts to visual information.
7.1: What is Computer Vision?
Core concepts of how computers process and interpret images and videos.
Common applications: face detection, object tracking, and optical character recognition.
7.2: Hands-on with a Vision Project
Using a camera-enabled microcontroller (like an ESP32-CAM) or a Raspberry Pi with a camera.
Running a pre-existing model to perform a simple task, like color detection or motion sensing.
Objective: To explore the foundational concepts of ROS, the professional-grade framework for building complex, modular robots.
8.1: Why ROS?
Understanding the role of ROS in modern robotics.
Core ROS Concepts: Nodes, Topics, Messages, and Services.
8.2: Working in a ROS Environment
Navigating the ROS command-line tools.
Running a basic ROS simulation (e.g., Turtlesim) to see nodes communicate.
8.3: Controlling a Simulated Robot
Publishing messages to a topic to make a robot move.
Subscribing to a topic to read the robot's sensor data.
Objective: To design and build a functional project that showcases skills from a chosen area of interest within the course.
9.1: Project Planning and Design
Brainstorming ideas, creating a project plan, and listing required components.
9.2: Specialization Tracks (Choose One):
IoT Innovator: Create a unique smart device that solves a real-world problem.
Robotics Explorer: Enhance the obstacle-avoiding car with new sensors or capabilities.
Creative Coder: Develop an advanced game in Scratch that interfaces with a custom-built Arduino controller.
9.3: Project Showcase
Presenting the final project, demonstrating its functionality, and explaining the code behind it.