
Master Raspberry Pi basics through hands-on activities, from OS setup to Python programming and GPIO control, culminating in a move-detection project with a PIR sensor and a Flask web server.
Explore what the Raspberry Pi is—a tiny, powerful computer for home automation, IoT, retro gaming, servers, and robots, plus community support and diverse versions with varying RAM.
Gather essential materials for the course: Raspberry Pi boards (five, four, or three), a 5.1V 5A power supply, and a class ten microSD card (16–32GB), plus a USB WiFi dongle.
Follow the course in order, pause between steps to practice, watch and code the tasks, complete activities and challenges, and safely shut down the Pi before hardware work.
Flash the 64-bit Raspberry Pi OS onto your micro SD card with the Raspberry Pi Imager, then configure wifi, ssh, hostname, username, password, and locale.
Boot your Raspberry Pi for the first time, insert the SD card securely, and power with a five-volt, three-amp supply to connect to Wi-Fi. Configure remotely via SSH and VNC.
Find the Raspberry Pi's IP address on your network with angry ip scanner, scanning your local ip range to verify wifi and prepare ssh and vnc access.
Learn to connect to your Raspberry Pi via ssh, using the ip address and pi user to gain command line access, then prepare for vnc desktop access.
Enable and configure VNC to access the Raspberry Pi OS desktop remotely via SSH, then connect with TigerVNC using the Pi's IP on the same network.
Access the Raspberry Pi desktop via VNC, adjust display, fonts, and appearance, review Raspberry Pi configuration options, perform updates, and learn proper shutdown before starting Python projects.
Access the Raspberry Pi desktop from any device in a web browser using Raspberry Pi Connect. This works on Raspberry Pi OS bookworm or newer and includes screen sharing.
Configure your Raspberry Pi OS to auto-create a Wi-Fi hotspot when no network is available, then use tigervnc to access the desktop and switch to a new Wi-Fi network remotely.
Master Python basics and Raspberry Pi setup, then explore GPIO, camera, and web servers using the Raspberry Pi desktop to start fun projects.
Explore the Thonny IDE on Raspberry Pi to write and run your first Python programs, from the hello world example to saving scripts, using the shell, and debugging syntax errors.
Learn how to use Python variables on the Raspberry Pi, assign and print values, update variables, and name them for readability with underscores.
Explore the four essential Python data types: integers, floats, strings, and booleans, learn how to declare variables, print values, and reveal types with meaningful names.
Learn to define and call functions in programming using def, input parameters, and return values, with indentation and underscores for readable, reusable code blocks.
Explore how variable scope controls visibility across global and local contexts, including indentation, nested scopes, and how function parameters become local variables.
Outline the challenge and practice, then create a two-parameter function that concatenates two strings with a space, converts to uppercase using upper, and prints the result.
Learn to write a function that concatenates two strings with a space, converts them to uppercase, and returns the result, then call the function and handle parameter counts.
learn to write conditional logic in python, using if, elif, and else blocks with indentation to branch on a temperature variable and print context like it's warm or it's cold.
Explore the six Python comparison operators—greater than, greater or equal, lower, lower or equal, equal, and not equal—and learn to combine them with or and in if statements.
Learn to read user input with the input function, convert it to an integer, and validate a number between 1 and 100 using an if/else construct.
Validate user input in Python by casting to int and enforcing 1–100 with or; print 'wrong number' or 'correct number', noting edge cases.
Master how to use for and while loops to repeat code, print hello multiple times using a range of 0 to 9, and understand indentation and loop termination.
Learn how Python lists group related values, create and print lists, access and modify elements by index, append new items, and use for loops to build a doubled-value list.
Practice handling variables, functions, scope, conditions, loops, and lists by building a program that computes and prints the maximum value in a list, optionally encapsulated in a function.
Compute the max value in a number list with a for loop and if, print it, then define get max value from number list that returns the max value.
Explore Python modules and libraries, learn to import time, and use time.sleep to pause a program, enabling gpios, cameras, and other reusable functions.
Learn to use and program the gpio pins on the Raspberry Pi, start with led and push button setups, then build a complete gpio project using a Python module.
Power off before changes, double-check wiring, and start with ground; avoid static discharge and metal tools. Respect 3.3v gpio limits and learn breadboard basics.
Learn how a breadboard enables prototyping with top and bottom plus and minus rails and vertical connections in middle columns, so components share connections, while disconnections may require bridging wire.
Learn how to build a blinking LED circuit with a Raspberry Pi, using a one kiloohm resistor and the resistor color code to limit current and protect GPIO.
Design your first Raspberry Pi circuit with Fritzing and build it on a breadboard using an led, a 1k resistor, ground, and gpio 17.
Learn how GPIO pins on the Raspberry Pi work, including ground, 3.3V vs 5V, and GPIO numbers, then use the Python library to read inputs and drive an LED.
Learn to blink a Raspberry Pi LED using Python and the gpiozero library. Initialize gpio 17, toggle LED on and off with delays, and loop until stopped.
Control a gpio led from user input using the input function and gpio zero, cast to int, validate 0 or 1, turn LED on or off, and wait two seconds.
Read user input (0 or 1) to turn a gpio 17 led on or off, including led initialization and validation for invalid input.
Add a push button to the Raspberry Pi circuit, connect one side to ground and the other via a 1 kilo ohm resistor to a GPIO pin, LED unchanged.
Initialize GPIO Zero button on pin 26 as input, read button.is_pressed to detect pressed or not, and print the state every second.
Practice turning on an LED with a push button using Python and GPIO on Raspberry Pi, expanding with two new LEDs and refining your code in activity five.
demonstrates solving the raspberry pi gpio zero led and button activity, improves efficiency with a 0.01-second delay, and switches to a callback approach using when_pressed and when_released.
Cycle through three LEDs by pressing a button, using a Python-driven switch LED function and a global led index to illuminate one LED at a time.
Cycle three leds on a Raspberry Pi with a push button using gpio zero, implementing a rotating led index and debouncing with a 50 ms bounce time.
Optimize the gpio code by turning leds into a dynamic list, using a for loop and list length to light only one led, scalable to any led count.
Cycle through leds on a Raspberry Pi using a led list and a push button, turning off all leds, turning on the indexed one, and wrapping with len.
Learn movement detection with a PIR sensor on the Raspberry Pi and read its binary output with Python and GPIO, building on your Raspberry Pi and Python fundamentals.
Tune the PIR sensor by adjusting the jumper and two potentiometers. Set the range to 3–7 meters and the delay to 3–5 seconds.
Add a pir sensor to your Raspberry Pi circuit, connect ground and 5 volt, and wire the data pin through a 1 kilo ohm resistor to gpio4.
Learn to detect movement with a PIR sensor on the Raspberry Pi using gpiozero motion sensor on GPIO4, reading motion_detected in a fast loop while noting delays and light effects.
Learn automatic lighting control on a Raspberry Pi with a PIR sensor, turning on an LED when motion is detected and off when no motion.
Turn on an LED with a PIR motion sensor on GPIO 4 using gpiozero, via a while loop or PIR motion callbacks, then pause to run continuously.
Learn to use the Raspberry Pi terminal and core command line tools to build a movement sensor project and master Python scripts on the Raspberry Pi OS desktop.
Navigate the Raspberry Pi file system via the terminal, using pwd, ls, and cd to move between home, documents, and python programs. Explore absolute paths and auto completion.
Learn to edit files in the Raspberry Pi terminal with nano, create and save them, view content with cat, and configure nano to use spaces for Python indentation.
Learn to create, remove, move, copy, and rename files and folders from the terminal using touch, rm, mkdir, mv, and cp, with practical examples and tips.
Learn to install and update software on Raspberry Pi using the terminal and apt. Understand sources, sudo privileges, and package management, including install, upgrade, remove, and autoremove.
Master terminal commands to control your Raspberry Pi. Learn to find the IP with hostname -I, check disk space with df -h, use sudo raspi-config, and shut down or reboot.
Manage python modules on the raspberry pi using the terminal: verify with pip3 list, install with apt or pip3 install gpiozero, and remove with apt remove or pip3 uninstall.
Learn to run Python from the terminal and execute Python files using Python 3 efficiently. Handle keyboard interrupts with a try and except to end scripts gracefully.
Learn to read, write, and manipulate files with Python using with open and modes r, w, a, w+, and the os module to check existence and remove files.
Create a new python script activity 9.py, run the blink LED program from the terminal, compare with sony, and improve the code to handle keyboard interrupts with a try-except.
Copy LED.py to activity nine python file and run two seconds on, one second off LED blink. Use a try-except to handle keyboard interrupt and ensure gpio cleanup.
This complete, hands-on, step by step course is targeting the latest version of Raspberry Pi, which is the Raspberry Pi 5. Note that everything also works perfectly for Raspberry Pi 4 and older versions.
You don’t need any knowledge in programming, electronics, or anything else. To get started, you just need a computer to work from, and a Raspberry Pi board.
At the end of the course you will have a strong foundation with your Raspberry Pi, and you will be able to start your own projects in no time.
- Why this course?
You may be just getting started, or have already started to learn how to build projects with your Raspberry Pi. But knowing what to do first, and which path to follow can be quite hard and you may feel stuck.
The problem with most online resources for Raspberry Pi is that they focus on making you run existing programs to make you feel you’ve accomplished a lot, but in the end you’ve just copied/pasted some random code and didn’t even scratch the surface. The “why you should do that” is not involved. So, the next time you have to do something on your own, you feel stuck and too dependent on other people's code.
This course will focus on the “why” and make you become much more autonomous with your Raspberry Pi so you will be able to start your own projects without having to desperately search for code to copy/paste on the Internet. My personal goal is to make you understand enough to get started in a short period of time, and make you think as a problem solver, with engineer-level thinking skills.
- And how will we do that you may ask?
Simple:
HANDS-ON.
STEP BY STEP.
NO COPY AND PASTE.
This course is not a course where you just download some code and run it. This is a course where you will truly understand how to write the code and work with the different Raspberry Pi functionalities.
I will take the time to explain everything, step by step, even the basic things. I will write the code with you and explain why I write what I write. With the activities and final project you will have even more opportunities to practice on your own, and you will make progress without even noticing it.
- What will you do and learn in this course?
Here’s an overview of the different topics we’ll cover:
Setup your Raspberry Pi and install Raspberry Pi OS without an external monitor and keyboard.
Get good Python 3 programming basics.
Work with the Raspberry Pi’s GPIO panel.
Use a PIR sensor to detect movement from your Pi.
Discover how to use a Unix terminal and the most useful command line tools.
Send an email from your Raspberry Pi.
Take photos and videos using the Raspberry Pi camera.
Create a web server on your Raspberry Pi with the Flask framework.
The course is divided into 15 sections to make it easier to navigate and track progress. Each section is focused on one topic. For each topic we start with hands-on explanations.
And all along the way, through the different sections, you will have many opportunities to practice (11 activities) on the most important points.
After learning all those topics, you’ll work on a final project where you can practice more with everything you’ve seen in the course. This is also a good opportunity to mix different functionalities together, which is where you can really start to create much bigger and powerful applications.
So, don’t wait any longer and start your Raspberry Pi journey with this course!
The teaching method I use is now a proven method - not because I or someone arbitrarily said so, but because of the tons of positive feedback about successful learning results I’ve received over the years with thousands of students. Here are actual reviews from students who took this course:
“Step-by-Step Guide for Beginners to Learn Raspberry Pi. A great choice for beginners!!!” - Evan V.
“I feel accomplished after completing this course. The amount of knowledge gained and effort put in has been truly rewarding.” - Parul S.
“This course was a great match for me and helped me understand the GPIO interface, breadboard usage and how to send the proper python commands to control the electronic elements. Thank you!” - Mary P.
“Total beginner and the course is getting me set up and running. What more could one ask for” - Steve C.
I don’t come from an academic background. I’m an engineer and all I’ve done is to try to solve real problems by being practical on what I need to do and to learn. I actually used Raspberry Pi to program an entire 6 axis robotic arm which is now on the market. This forced me to go to the point and focus on what’s really useful.
This experience and the lessons I’ve learned is what I want to share with you. Understanding the “why” and focusing on practicing on the key points, is, to me, one of the best ways to progress 10x faster.
My goal here is to give you more freedom when you start a project. To make you less dependent on what you may find (or not) on the Internet. To think more by yourself when building new projects.
Oh, and you also get a 30 days money-back guarantee if you’re not fully satisfied.
See you in the course! :)
Note - This course is not for you if:
You’re not interested in understanding what you’re doing and prefer a quick copy/paste solution.
You’re already an advanced Raspberry Pi user.