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

  • A small low-cost computer for education.
  • Runs Linux or Windows. Find the OS that is best for your project.
  • Use it as a regular computer or in headless mode (no screen or keyboard).
  • Comprehensive support for Python, Ruby and other programming languages.
  • Use UART, SPI, I2C and other protocols to communicate with Arduino, EPS32 and other microcontrollers and build hybrid applications.
  • Several versions available to fit your project.
  • Buy one from $15.
  • Configurable to suit your project needs.
  • Attach sensors and actuators using the GPIOs.
  • Expand hardware capabilities using HAT boards attached to the GPIO header.

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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?

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

In this lesson you will learn how to set a fixed IP address for your Raspberry Pi.

Basic configuration

Peter Dalmaris

In this lesson you will learn how to setup basic configurations on the Raspberry Pi

Working as the 'root' user

Peter Dalmaris

In this lesson you will learn how to work on your Raspberry Pi as the "root" user.

Raspberry Pi pins, roles, and numbers

Peter Dalmaris

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

Peter Dalmaris

In this lesson you will practice with the use of the Python language on the Raspberry Pi command like interpreter (CLI).

Python functions

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

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

Peter Dalmaris

In this lesson you will take measurements from the DHT22 sensor that you wired in the previous lesson.

Raspberry Pi OS 64-bit vs 32-bit (Beginner’s perspective)

Bruce Qin

In this article we explore the differences between the 32-bit and 64-bit versions of the Raspberry Pi OS, and when you should use the one over the other.

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):

  1. 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.
  2. 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.
  3. 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. 
  4. 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.
  5. 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.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}