Raspberry Pi GPIO Interrupts Tutorial

In this tutorial I’ll teach you how to use GPIO interrupts on your Raspberry Pi, thanks to the RPi.GPIO library. You’ll see: Why and when you need interrupts. How to use interrupts in your programs. 3 working examples to practice on different situations. This tutorial works on Raspberry Pi 4 (and earlier, 3B, 3B+), with … Read more

ROS Topic Remap [Example]

In this tutorial I’ll show you how to remap a ROS topic. Remapping a topic means that you’ll change the topic name at run-time. If a node publishes on “topic1”, then you can make it publish on “topic2” instead, without having to change the code of the node. First things first, let’s understand why. Why … Read more

[ROS] Include a Cpp header from another package

You want to include a Cpp header from another package in ROS, and don’t know how to do? Or you already tried and got a lot of compilation errors? Well, this tutorial is for you. I will start from scratch with a brand new custom library, build it inside a package, install it, and use … Read more

Arduino – Compute Duration of an Action

In this tutorial I’ll show you how to compute the duration of a part of code in Arduino. The notion of time/duration is super important when you program, especially on embedded systems like Arduino. Writing a code that takes too much time, and not being able to know it, can lead to severe problems in … Read more

ROS AsyncSpinner Example

In this tutorial I’ll show you how to use a ROS AsyncSpinner with an example. You’ll see when using a roscpp AsyncSpinner is required, instead of the standard roscpp spinner. This tutorial could also be called: how to solve roscpp callback issues, when it seems that some callbacks are stuck or late. We’ll start by … Read more

Create Your Own Arduino Library

In this tutorial I’ll show you how to create your own Arduino library. You’ll see, this might be much simpler than you thought! Very simply put, an Arduino library is a bunch of Cpp files that you have to organize in a certain way. Then you import it, use it, and that’s it. Creating an … Read more