Raspberry Pi tutorials and project for makers
The Raspberry Pi is a powerfully bare-bones computer designed for education. Use it to learn programming and electronics. Make robots, control your home, automate your workbench, design Internet of Things applications.
This page contains resources to help you start.
Want to learn a new technology? You will need three things:
Quality educational Content
Learning from the best available sources can make a huge difference in how quickly and how well you can master whatever it is that you want to learn. Excellent educational sources will not only teach you well and fast; they will also delight you.
Be an Active Learner
Technology education is hands-on.
The only way to truly learn something new is by executing your own simple experiments.
Each experiment is an opportunity to learn a new skill, capability, tool, or feature.
Work on Realistic Projects
Once you have acquire a few new skills, how can you consolidate your knowledge so that you can create a fully working machine, like a robot or a plant incubator? Project work is your opportunity to bring together everything you learned into a single activity.
Why learn Raspberry Pi?
The Raspberry Pi is a remarkable computer that you can use to learn programming and electronics. It runs an operating system, like Linux and Windows, and it has pins where you can connect components like motors, buttons, displays and sensors.
You can use the Raspberry Pi as a regular computer. It has a powerfull processor, lot's of RAM, Wifi, Ethernet, USB, Bluetooth, HDMI and an SD card slot. You can connect it to a screen, keyboard and mouse, and check your email, play games, browse the Internet. You can use your Raspberry Pi as a software development computer and write programs in any of many supported languages, such as Python, Ruby, NodeJS and C/C++.
Of course, the Raspberry Pi is designed with an open hardware architecture. This means that you can connect the kind of peripherals that you are familiar with from the Arduino. The Raspberry Pi exposes GPIOs (=pins) that you can use to connect to LEDs, buttons, temperature sensors, wireless communications modules and much more. Literally, anything that you can connect to an Arduino you can also connect to a Raspberry Pi.
All that combined means that you have a single device, the Raspberry Pi, that allows you to explore and learn a limitless range of education and maker possibilities.
Raspberry Pi highlights
Getting Started with the Raspberry Pi
There is an abundance of information on the Raspberry Pi to the point where it can be overwhelming for beginners. We have written these articles to help you get started.
Introduction to the Raspberry Pi
The Raspberry Pi is a low cost computer, popular with people who want direct access to its hardware.
It has revolutionised computer education by combining low price with accessibility.
This article will introduce you to the Raspberry Pi.
Raspberry Pi versus Arduino
In this lesson, I will discuss the 10 most important differences (and similarities) between the Raspberry Pi and the Arduino.
You can watch the video, or, if you are the "reading" type, you can read the text below.
Raspberry Pi operating systems
The Raspberry Pi requires an operating system to be able to do anything useful with it. After all they're Raspberry Pi is a computer, is just miniaturized, a very small computer.
So the operating system on any computer is what makes it possible for our applications to utilize the hardware of the computer itself.
What is a 'headless' operating system?
In this project you will be using Raspbian Lite which, as you know, is a Linux-based operating system with no graphical user interface and only the bare-minimum software pre-installed.
In addition, you will setup your Raspberry Pi Zero W without a monitor, keyboard or mouse.
How to setup Raspbian Lite
In this lesson, I will walk you through the full process of installing the latest Raspbian Stretch operating system on an SD card. In this guide, and in the Raspberry Pi Full Stack course, we use the minimal version of Raspbian.
How to setup SSH and Wifi in headless mode
In this lesson you will learn how to setup SSH using Wifi, SSH, and a remote computer connected to your Raspberry Pi in headless mode.
How to set a hostname
In this lesson I will show you how to set the hostname of your Raspberry Pi, and give it a fixed IP address. Although these two configurations are not essential, they will save you time over the long term.
Boot into Raspbian for the first time
In this lesson you will boot up your Raspberry Pi for the first time, and connect to it using SSH.
How to set a fixed IP address
In this lesson you will learn how to set a fixed IP address for your Raspberry Pi.
In this lesson you will learn how to setup basic configurations on the Raspberry Pi
Working as the 'root' user
In this lesson you will learn how to work on your Raspberry Pi as the "root" user.
Raspberry Pi pins, roles, and numbers
In this lesson you will learn about the Raspberry Pi's pins, their roles, and how to address them.
A taste of Python on the Command Line Interpreter
In this lesson you will practice with the use of the Python language on the Raspberry Pi command like interpreter (CLI).
A function is a block of code that does something useful. Think of functions as mini programs that are part of a larger program. They are an extremely useful programming building block, and, of course, you will use it a lot in this project.
A simple Python program
Let’s convert the little program your wrote in the CLI in the last chapter into a proper Python program. At the same time, you will learn the basics of the Vim editor, which you will use extensively in this project.
Wire a simple circuit
In this lesson, you will assemble a simple circuit that contains an LED and a button. Once you have your circuit ready, you’ll learn how to work with it through several simple Python scripts.
Control an LED with GPIOZERO
You have an LED connected to GPIO4. How can you make it blink? I’ll show you in this lesson.
There are many ways to achieve the same result when it comes to programming and electronics. I will show you two ways to manipulate the LED.
Read a button with GPIOZERO
A momentary button is an input device. It is essentially a sensor with only two possible states: “pressed” and “not pressed”. In your circuit, you have connected the output of the button to GPIO14. Your Python program will check the voltage at GPIO14 to determine if the button is pressed or not.
Setup the DHT22 sensor with Git
In this and the next lesson I’ll show you how to setup and use a common environment sensor, the DHT22. With the DHT22 you can measure temperature and humidity. This is an integrated digital sensor that uses a communication protocol to “talk” to its host.
Use the DHT22 sensor
In this lesson you will take measurements from the DHT22 sensor that you wired in the previous lesson.
Other recommended articles about the Raspberry Pi
We publish new articles about the Raspberry Pi and related learning and creativity technologies in our blog regularly. Here are some of our most popular Raspberry Pi articles from the Blog:
A Raspberry Pi/ESP32/Node-Red terrarium controller
Raspberry Pi Full Stack: Google Sheet data-logger (sample lecture)
Raspberry Pi Full Stack: If This Then That (sample lecture)
Mining Bitcoin… on a Raspberry Pi
Three realistic mastery projects for the Raspberry Pi
Now that you have learned the basics of the Raspberry Pi, it is time to experience the what it is like to use it in real-life projects.
I have designed three courses that can help you do that.
With these courses you will explore and learn a range of cutting-edge technologies, including
Raspberry Pi Full Stack
A whirlwind tour of full-stack web application development on the Raspberry Pi.
This is a hands-on project designed to teach you how to build an Internet-of-Things application based on the world’s most popular embedded computer.
This course will expose you to the full process of developing a web application.
You will learn about how to setup your Raspberry Pi as a web server using a minimal version of the Raspbian operating system, and use the console only to interact with it (no graphical user interface to consume your RPi's limited resources).
Raspberry Pi: Make a Workbench Automation Computer
Build a touch-screen driven application and control appliances and devices using a Raspberry Pi.
With this course you will learn how to use a touch screen connected to your Raspberry Pi to control appliances, a camera and sensor.
In this project, you will build a Bench Computer that can control appliances on your workbench.
Of course, but your Bench Computer to control anything that has an on/off switch. You will also learn how to customise the software to do other tasks.
This is a challenging project for dedicated and determined makers.
Mine cryptocurrencies with your Raspberry Pi
Use your Raspberry Pi to mine Bitcoin, Litecoin, Monero, ByteCoin, MagiCoin, and TurtleCoin.
Learn how to use your Raspberry Pi to mine (a term than means to create through calculations) Bitcoin, Litecoin, Monero, ByteCoin, MagiCoin, and TurtleCoin.
Your Raspberry Pi will help you understand the basics of cryptography, the process of mining, how to setup a crypto-wallet (and what a crypto-wallet is), and much more.
This is an unprofitable but rewarding weekend experiment for curious minds.
Why learn with Tech Explorations?
Thousands of students have already taken our video courses to learn how to use the Raspberry Pi to learn programming and electronics.
Video on demand
With our video courses, it's like having a tutor showing you how to create circuits and write programs, one step at a time.
Help is here
If you need help, you can use our Community spaces tool to ask your questions, available in each lecture.
Keep calm and learn
Learn in a calm, distraction-free environment. No advertisements, no cat and dog videos to break your concentration. Just learning.
Let's make something together
Hi, I’m Peter.
I am an online educator and Maker, author of Maker Education Revolution, KiCad Like a Pro, and founder at Tech Explorations.
I create all the content on the Tech Explorations website.
Why? Because, as I already mentioned, I'm an educator and a Maker, and I have a Mission.
My mission is to help people learn electronics, programming, printed circuit board design, and lots more. Most importantly, I want to help as many people as possible to enjoy their technology education adventures.
After a 15 year career as a University Lecturer, I decided to become a Maker, again. Like most of us, as a child, I was curious, and I learned how things worked by experimenting with them (usually, this meant taking them apart and hoping to not loose any screws as I was putting things back together).
Growing up, I became an Engineer, only to loose my childish curiosity in the name of pursuing a career.
I became a child again once I got my first Arduino. With it, I started creating thing, tinkering with components, testing ideas. Even though I was a "career educator", it was only now that I realised how wrong my last 15 years of education had been. I was partly responsible for destroying the creativity of thousands of students, just like mine had been destroyed in the name of being a "proper adult".
At Tech Explorations, my job is to learn and to create. I learn what I am curious about, and I create educational content. This content is the record of my learning.
I don't create this content to teach "students". I create it to help learners learn things that they want to learn.
At the end of the day, we are all learners, and we learn from each other.
I sincerely hope that through the content I create at Tech Explorations, as many people as possible will be inspired to re-kindle their childhood curiosity, learn, and create amazing things.
Learning is social
The Internet has brought a revolution in publishing and learning. It is the biggest repository of knowledge that has ever existed, and it is getting exponentially bigger. For anything you want to learn, there's a good chance that someone has written a blog post or created a video about it.
Perfect! Well, not exactly. While there is a lot of great content out there, much of what is available on the Internet lacks quality, and most important, lacks the human connection.
The best learning is social. When you communicate with others that have been where you are now, you learn faster and better. You have someone to fall back when you need help, or discuss an idea when you are stuck.
At Tech Explorations, we support our students through our community tools because we know that this is the best way to learn and teach.
Helping is part of learning
Learning new skills and technologies is a journey into uncharted territory. It is much better if you have a map, and even better if you can "radio in" for help.
At Tech Explorations, we have made a big investment in our communication tools to make sure that no student is left behind. We have three levels of Support: Community Discussion Forums for each course, lecture-level Questions and Answers tool, and a Help Desk.
Our content is live and monitored by our team so that we can respond to student questions quickly. Speed is important because learning obstacles can have a devastating effect in our learning process, so we try our best to help our students smash through them.
Stay Calm And Keep Learning
The world and the Internet are extremely noisy places. Many "free" earning resources operate more like noisy open-air bazaars, with annoying distractions that aim to stop you from doing what you want to do (to learn something new) so that you can click on the next video (often about a cat doing a funny trick).
The loss of concentration alone accumulates to many hundreds of hours of lost learning productivity per learner per year.
Would you be able to learn how to program the Arduino in the food court of a shopping center? In a way, that's what many of us are doing.
At Tech Exploration, we have created a calm environment that is appropriate for immersive learning. Concentrate, turn off your mobile phone, start the lecture video, and follow on with the experiment.
That's all. Nothing else should compete for your attention.
The Path Forward
In this page we have given you lots of free and quality learning content, opportunities for hands on experimentation, and even larger projects that you can use to consolidate your learning. All that in a calm, learner-friendly environment.
A question I get a lot is "What should I do next?"
People that have just learned a new skill, like how to make an LED blink or spin a motor, are often overwhelmed. They have just grasp something new, but are having a hard time figuring out what is next.
It is totally understandable, and I have been there myself. In fact, I feel like that every time I learn a new thing, isolated from its possibilities.
Think about this: you just learned how to spin a motor. How can you build a robot out of that? What is the process of going from a single working component, to a system that brings together many components, into a working gadget?
The best answer I can give to this question is this simple process, plus a lot of perseverance (you need it when you decide to pursue something important):
- You need a project that excites you. This project gives you a goal, and even a path (although the path is not clear in the beginning). Think about what the project is about, and especially what it is supposed to do. This ("what is it supposed to do") is what gives you your project goal. You will need this for step 5 of this process.
- You need to analyse your project and break it down to its components. A robot is made of motors, motor controllers and microcontrollers, sensors, software, and a frame to hold everything together. Figure out what are main components in your project.
- Based on you analysis, figure out your level of knowledge in relation to the project components. You may have a good grasp of motors but lacking in sensor.
- Plan your prototyping process. This part of the process is critical, because you have to make several decision, that involve the hardware, software, and assembly of the gadget, but also the learning that you have to engage in in order to make this possible. You don't need to know everything before you begin, but you need to choose a place to begin. If you were to build a wheeled robot, for example, you could start with the wheel and motor assembly so that your robot can move, and leave the sensors for later. Why? Because you know how to use motors now. You can learn how to use sensors later. Like so many things in life, beginning is half of everything you do. The first iteration will give you the momentum and confidence you need to go for the second, third, until the last iteration.
- Repeat until the project is complete. The iterative process of prototyping is your guide. Each iteration solves problems and creates new ones. The new problems usually demand that you learn something new. Go on, learn it, and come back to continue with the current iteration. The project is complete when you have achieved the goal that you set in step 1. But here's the catch: In prototyping, like in life, everything is fluid. Your original goal was based on early assumptions of what you wanted to achieve, before you had actually done any work towards that goal. In the process of working towards your goal, the goal changes! Be mindful of that, and know that it is Ok. Enjoy the process, and the achievement of the result.
This is the process that I follow with my projects, including my books and my courses. Over time, you will become better at picking projects and especially analysing them so that what you eventually create is very close to your original goal.
The only way to build up your project management and gadget building skills is to do it.
And we are here to help you 🙂
Join the Tech Explorations Insiders
Want to make sure that you get notified when I release my next article or video? Then sign up below to join my list of Tech Explorations Insiders.
You'll receive email notifications whenever I release new content plus you'll get access to insiders-only updates that aren't published on the site!
We never spam, and you can unsubscribe at any time.
By submitting this form, you agree to receive educational and promotional announcements from Tech Explorations. Your personal details will not be shared with anyone outside of Tech Explorations, and you may unsubscribe at any time.