Get $1 credit for every $25 spent!

The 2021 Raspberry Pi & Arduino Bootcamp Bundle

Ending In:
Add to Cart - $29.99
Add to Cart ($29.99)
$995
96% off
wishlist
Courses
5
Lessons
434
Enrolled
704

What's Included

Product Details

Access
Lifetime
Content
10.0 hours
Lessons
100

ROS2 for Beginners

Master the Key ROS Concepts to Create Powerful & Scalable Robot Applications

By Edouard Renard | in Online Courses

This course aims to remove the big learning curve that you face when you start to learn ROS by yourself. It will show you, step by step, what you need to know to get started and master ROS basics. For each section, the instructor will explain one concept that is easy to understand, and then you will practice with me by writing, building, and running some code. This course will show you what you need to pay attention to, what you need to focus on, and how to avoid common mistakes. And, more importantly, you will get some activities and challenges to make you practice the concepts you’ve just seen.

4.6/5 average rating: ★ ★ ★ ★

  • Access 100 lectures & 10 hours of content 24/7
  • Master ROS basics
  • Create, build, run, & debug your ROS program
  • Learn ROS best practices to make your application readable & scalable
  • Create reusable code for any robot powered by ROS
  • Write ROS code with both Python and C++
Edouard Renard | Software Engineer & Entrepreneur
4.2/5 Instructor Rating: ★ ★ ★ ★

Edouard Renard is a software engineer and entrepreneur. He enjoys teaching new technologies to people, and making complex stuff easy to understand. His method is simple and contains only 3 words: Step-By-Step. He knows how hard it can be to learn a new topic and just be lost in an ocean of information, without knowing what to do. In his courses, he makes sure that you learn one step at a time, through practice, and that you also learn the best practices.

Edouard also co-founded a robotics startup in 2016, building a complete robotic arm, from scratch, with Arduino, Raspberry Pi, Ubuntu, and ROS. Thus, he is aware of things that work and things that don’t work, thanks to a lot of practice. This will save you precious time and make you progress faster.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: desktop & mobile
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: intermediate
  • Have questions on how digital purchases work? Learn more here

Requirements

  • Basic programming knowledge (Python or C++)
  • Familiarity with Linux and how to use a terminal

Course Outline

  • Your First Program
  • 1. Intro
    • 1.1 Welcome! - 3:11
    • 1.2 What is ROS2, When to use it, and Why? - 6:47
    • 1.3 How to get the most out of this course
  • 2. Install ROS2 and Setup Your Environment
    • 2.1 Intro
    • 2.2 Which ROS2 Distribution to Use - 4:53
    • 2.3 Install Ubuntu 20.04 on a Virtual Machine (VirtualBox) - 16:09
    • 2.4 Programming Tools I Will Use During This Course - 3:44
    • 2.5 Install ROS2 Foxy Fitzroy on Ubuntu 20.04 - 3:41
    • 2.6 Setup Your Environment For ROS2 - 2:16
    • 2.7 Launch a ROS2 Program! - 2:48
    • 2.8 Section Conclusion
  • 3. Write your First ROS2 Program
    • 3.1 Intro
    • 3.2 Install the ROS2 build tool - Colcon - 2:18
    • 3.3 Create a ROS2 Workspace - 4:08
    • 3.4 Create a Python Package - 5:57
    • 3.5 Create a C++ Package - 4:08
    • 3.6 What is a ROS2 Node? - 7:35
    • 3.7 Write a Python Node - Minimal Code - 14:57
    • 3.8 Write a Python Node - With OOP - 7:46
    • 3.9 Write a C++ Node - Minimal Code - 13:36
    • 3.10 Write a C++ Node - With OOP - 9:44
    • 3.11 OOP Template For Your Nodes
    • 3.12 More about the ROS2 Client Libraries for Different Languages - 2:31
    • 3.13 Section Conclusion
  • 4. Introduction to ROS2 tools
    • 4.1 Intro
    • 4.2 Debug and Monitor Your Nodes With ros2 cli - 9:57
    • 4.3 Rename a Node at Runtime - 6:02
    • 4.4 Colcon - 5:00
    • 4.5 rqt and rqt_graph - 3:48
    • 4.6 Discover Turtlesim - 4:53
    • 4.7 Activity 001 - ROS2 Nodes and Tools
    • 4.8 Activity 001 - Solution - 4:25
    • 4.9 Section Conclusion
  • 5. ROS2 Topics - Make Your Nodes Communicate Between Each Other
    • 5.1 Intro
    • 5.2 What is a ROS2 Topic? - 9:00
    • 5.3 Write a Python Publisher - 18:20
    • 5.4 Write a Python Subscriber - 9:36
    • 5.5 Write a C++ Publisher - 17:11
    • 5.6 Write a C++ Subscriber - 10:01
    • 5.7 Debug ROS2 Topics with Command Line Tools - 7:07
    • 5.8 Remap a Topic at Runtime - 3:38
    • 5.9 Monitor Topics with rqt and rqt_graph - 6:18
    • 5.10 Experiment on Topics with Turtlesim - 4:52
    • 5.11 Activity 002 - ROS2 Topics
    • 5.12 Activity 002 - Solution [1/2] - 8:47
    • 5.13 Activity 002 - Solution [2/2] - 11:09
    • 5.14 Section Conclusion
  • 6. ROS2 Services - Client/Server Communication Between Nodes
    • 6.1 Intro
    • 6.2 What is a Service? - 7:00
    • 6.3 Write a Python Service Server - 13:39
    • 6.4 Write a Python Service Client - no OOP - 13:44
    • 6.5 Write a Python Service Client - OOP - 12:13
    • 6.6 Write a C++ Service Server - 14:42
    • 6.7 Write a C++ Service Client - no OOP - 14:23
    • 6.8 Write a C++ Service Client - OOP - 17:13
    • 6.9 Debug Services with ROS2 Tools - 4:50
    • 6.10 Remap a Service at Runtime - 3:09
    • 6.11 Experiment on Services with Turtlesim - 7:48
    • 6.12 Activity 003 - ROS2 Services
    • 6.13 Activity 003 - Solution - 11:56
    • 6.14 Section Conclusion
  • 7. Create Custom ROS2 Interfaces (Msg and Srv)
    • 7.1 Intro
    • 7.2 What are ROS2 Interfaces? - 11:34
    • 7.3 Create and Build Your First Custom Msg - 13:50
    • 7.4 Use Your Custom Msg in a Python Node - 10:27
    • 7.5 Use Your Custom Msg in a C++ Node - 4:27
    • 7.6 Create and Build Your First Custom Srv - 4:32
    • 7.7 Debug Msg and Srv with ROS2 Tools - 7:06
    • 7.8 Activity 004 - ROS2 Custom Interfaces
    • 7.9 Activity 004 - Solution [1/3] - 10:54
    • 7.10 Activity 004 - Solution [2/3] - 13:31
    • 7.11 Activity 004 - Solution [3/3] - 19:31
    • 7.12 Section Conclusion
  • 8. Change Node Settings at Runtime with ROS2 Parameters
    • 8.1 Intro
    • 8.2 What is a ROS2 Parameter? - 3:18
    • 8.3 Declare Your Parameters - 12:16
    • 8.4 Get Parameters From a Python Node - 11:32
    • 8.5 Get Parameters From a C++ Node - 9:38
    • 8.6 Activity 005 - ROS2 Parameters
    • 8.7 Activity 005 - Solution [1/2] - 5:58
    • 8.8 Activity 005 - Solution [2/2] - 4:20
    • 8.9 Section Conclusion
  • 9. Scale Your Application With ROS2 Launch Files
    • 9.1 Intro
    • 9.2 What is a ROS2 Launch File? - 2:31
    • 9.3 Create and Install a Launch File - 14:19
    • 9.4 Configure Your Nodes in a Launch File - 6:41
    • 9.5 Activity 006 - ROS2 Launch Files
    • 9.6 Activity 006 - Solution - 11:17
    • 9.7 Section Conclusion
  • 10. Complete Project With Turtlesim
    • 10.1 Intro - Your Challenge - 0:50
    • 10.2 Some Tips to Get Started
    • 10.3 Project - Step 1/6 - 28:29
    • 10.4 Project - Step 2/6 - 15:40
    • 10.5 Project - Step 3/6 - 17:09
    • 10.6 Project - Step 4/6 - 19:09
    • 10.7 Project - Step 5/6 - 7:26
    • 10.8 Project - Step 6/6 - 12:24
    • 10.9 Project Conclusion
  • 11. Conclusion
    • 11.1 What You've Learned - 1:52
    • 11.2 What to do next

View Full Curriculum


Access
Lifetime
Content
6.0 hours
Lessons
49

Learn ROS2 as a ROS1 Developer & Migrate Your ROS Projects

Create Complete ROS2 Applications & Migrate a ROS1 Code Base in ROS2

By Edouard Renard | in Online Courses

This course won't start from the very beginning of each ROS concept since you already know them. Instead, it will focus on the most important points that will allow you to write ROS2 applications in no time, thanks to your pre-existing ROS1 knowledge. Divided into 2 main parts, you will learn how to write ROS2 programs using your ROS1 experience. First, you'll go through every core concept and see how to translate the app in ROS2. The second part will help you learn and focus on the migration part.

4.4/5 average rating: ★ ★ ★ ★

  • Access 49 lectures & 6 hours of content 24/7
  • Learn the most important differences between ROS1 & ROS2
  • Install & setup ROS2 on Ubuntu
  • Write complete applications with ROS2
  • Communicate between ROS1 & ROS2 using the ros1_bridge package
  • Migrate a ROS1 project to ROS2
  • Practice with a complete migration project
Edouard Renard | Software Engineer & Entrepreneur
4.2/5 Instructor Rating: ★ ★ ★ ★

Edouard Renard is a software engineer and entrepreneur. He enjoys teaching new technologies to people, and making complex stuff easy to understand. His method is simple and contains only 3 words: Step-By-Step. He knows how hard it can be to learn a new topic and just be lost in an ocean of information, without knowing what to do. In his courses, he makes sure that you learn one step at a time, through practice, and that you also learn the best practices.

Edouard also co-founded a robotics startup in 2016, building a complete robotic arm, from scratch, with Arduino, Raspberry Pi, Ubuntu, and ROS. Thus, he is aware of things that work and things that don’t work, thanks to a lot of practice. This will save you precious time and make you progress faster.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: desktop & mobile
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: intermediate
  • Have questions on how digital purchases work? Learn more here

Requirements

  • Fair understanding in ROS1 & ability to write simple ROS1 programs
  • Ubuntu 20.04 installed on your computer (dual boot or virtual machine) + you know how to use basic commands in a terminal
  • Programming basics in Python and/or C++
  • Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory

Course Outline

  • 1. Introduction
    • 1.1 Welcome! - 3:19
    • 1.2 When to Switch From ROS1 to ROS2? - 5:57
    • 1.3 How to get the most out of this course - 1:14
    • 1.4 Setup for the course - 1:36
  • 2. Install ROS2 and Discover the Main Differences With ROS1
    • 2.1 Intro - 0:19
    • 2.2 Install ROS2 Foxy (Ubuntu 20.04) and Setup Your Environment - 5:50
    • 2.3 Start a ROS2 Node and Get Familiar with ROS2 Tools - 7:00
    • 2.4 ROS1 vs ROS2: First Differences (quick overview) - 7:09
  • 3. Re-write a ROS1 App into ROS2 (part A)
    • 3.1 Intro - 0:35
    • 3.2 Install ROS1 Noetic to Test the ROS1 App - 6:25
    • 3.3 The ROS1 App We'll Use - 12:09
    • 3.4 Install colcon - 3:08
    • 3.5 Create a ROS2 Workspace - 4:04
    • 3.6 Create a Package (Python) - 7:03
    • 3.7 Create a Package (C++) - 3:10
    • 3.8 Create a Node (Python) - 15:27
    • 3.9 Create a Node (Python) with OOP - 10:11
    • 3.10 Create a Node (C++) - 13:58
    • 3.11 Create a Node (C++) with OOP - 8:14
    • 3.12 Template for your OOP Nodes - 8:53
  • 4. Re-write a ROS1 App Into ROS2 (part B)
    • 4.1 Write a Topic Publisher/Subscriber (Python) - 16:20
    • 4.2 Write a Topic Publisher/Subscriber (C++) - 14:30
    • 4.3 Create Custom Interfaces (Msg/Srv) - 12:50
    • 4.4 Write a Service (Python) - 10:03
    • 4.5 Write a Service (C++) - 12:04
    • 4.6 Remapping in ROS2 - 4:49
    • 4.7 ROS2 Parameters - What Has Changed? - 3:41
    • 4.8 Declare Your Parameters (Python/C++) - 13:23
    • 4.9 Get Parameters From Your Code (Python) - 6:54
    • 4.10 Get Parameters From Your Code (C++) - 5:42
    • 4.11 Create a Launch File - 19:43
  • 5. ros1_bridge and Migration Guide
    • 5.1 Intro - 0:57
    • 5.2 Steps to Migrate a Code base using ros1_bridge - 4:57
    • 5.3 Install and Test ros1_bridge - 10:44
    • 5.4 Bridge Custom Messages [1/4] - Why + Setup - 8:38
    • 5.5 Bridge Custom Messages [2/4] - Installation Process - 6:18
    • 5.6 Bridge Custom Messages [3/4] - Running Your App - 6:56
    • 5.7 Bridge Custom Messages [4/4] - Mapping Rules - 15:46
    • 5.8 Use ros1_bridge with our Number App - 15:10
  • 6. Migration Project
    • 6.1 Intro - Discover the ROS1 App - 10:57
    • 6.2 Intro - Project Steps - 3:18
    • 6.3 Step 0: Port the code to ROS1 Noetic - 5:28
    • 6.4 [BEFORE GOING FURTHER] Download the Seed for the ROS2 Project - 5:37
    • 6.5 Step 1: Setup ros1_bridge for Your Custom Interfaces - 18:31
    • 6.6 Step 2: Port the Target Publisher Node - 15:15
    • 6.7 Step 3: Port the Turtle Controller Node - 15:46
    • 6.8 Step 4: Create a Launch File for the App - 7:57
    • 6.9 Project Conclusion - Improvements - 1:16
  • 7. Conclusion
    • 7.1 What to do next - 2:04

View Full Curriculum


Access
Lifetime
Content
9.0 hours
Lessons
95

Raspberry Pi For Beginners: Complete Course

Build Amazing Projects with Raspberry Pi 4 Using Python 3, GPIOs, Flask & More

By Edouard Renard | in Online Courses

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. This course will focus on the “why” and make you 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. This complete hands-on, step-by-step course targets the latest version of Raspberry Pi, the Raspberry Pi 4. Note that everything also works perfectly for Raspberry Pi 2 and 3 versions.

4.7/5 average rating: ★ ★ ★ ★

  • Access 95 lectures & 9 hours of content 24/7
  • Master your Raspberry Pi, starting from scratch
  • Build a complete surveillance & alarm project with Raspberry Pi
  • Learn Python 3 from zero
  • Use the Raspberry Pi's GPIOs to control hardware components
  • Create a web server on your Raspberry Pi
Edouard Renard | Software Engineer & Entrepreneur
4.2/5 Instructor Rating: ★ ★ ★ ★

Edouard Renard is a software engineer and entrepreneur. He enjoys teaching new technologies to people, and making complex stuff easy to understand. His method is simple and contains only 3 words: Step-By-Step. He knows how hard it can be to learn a new topic and just be lost in an ocean of information, without knowing what to do. In his courses, he makes sure that you learn one step at a time, through practice, and that you also learn the best practices.

Edouard also co-founded a robotics startup in 2016, building a complete robotic arm, from scratch, with Arduino, Raspberry Pi, Ubuntu, and ROS. Thus, he is aware of things that work and things that don’t work, thanks to a lot of practice. This will save you precious time and make you progress faster.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: desktop & mobile
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: beginner
  • Have questions on how digital purchases work? Learn more here

Requirements

  • A computer + a Raspberry Pi 4 (also works with Raspberry 2 and 3)

Course Outline

  • 1. Intro
    • 1.1 Welcome! - 3:33
    • 1.2 What is Raspberry Pi and What Can You Do With it? - 5:10
    • 1.3 List of Materials for this Course - and Recommendations - 7:28
    • 1.4 How to get the most out of this course - 1:24
  • 2. Install Raspberry Pi OS Without any External Monitor or Keyboard
    • 2.1 Intro - 1:00
    • 2.2 [New] Flash the Raspberry Pi OS with SSH and Wi-Fi Setup, on your micro SD card - 5:45
    • 2.3 [Old 1/2] Flash the Raspberry Pi OS on your micro SD card - 3:22
    • 2.3 [Old 2/2] Setup Wi-Fi and SSH Directly on the micro SD card - 4:47
    • 2.5 Connect to Your Pi using SSH - 5:41
    • 2.4 Boot your Raspberry Pi For the First Time and Find its IP address - 7:42
    • 2.6 Setup VNC to Get a Remote Access to your Raspberry Pi OS Desktop - 9:18
    • 2.7 Finish the Startup Configuration - Last Steps - 11:29
  • 3. Program with Python3 - Variables and Functions
    • 3.1 Intro - 0:50
    • 3.2 Your first Python program - Discover the Thonny IDE - 10:59
    • 3.3 Variables - 10:31
    • 3.4 Variables - Data Types - 7:49
    • 3.5 Functions - 10:28
    • 3.6 Variables - Scope - 6:29
    • 3.7 Activity 01 - Create a Function to Concatenate 2 Uppercase Strings - 2:46
    • 3.8 Activity 01 - Solution - 8:11
  • 4. Program with Python3 - Conditions, Loops, Lists
    • 4.1 Conditions - 11:06
    • 4.2 Condition Operators - 11:32
    • 4.3 Activity 02 - Validate User Input - 4:01
    • 4.4 Activity 02 - Solution - 4:40
    • 4.5 Loops - 12:26
    • 4.6 Lists - 14:02
    • 4.7 Activity 03 - Compute Max Value Inside a List - 2:02
    • 4.8 Activity 03 - Solution - 9:20
    • 4.9 Python Modules - 3:32
    • 4.10 Program with Python3 - Section Conclusion - 0:57
  • 5. Build Your First Raspberry Pi Circuit
    • 5.1 Intro - 0:45
    • 5.2 Warning - PLEASE WATCH - How to Safely Manipulate Your Board - 3:10
    • 5.3 Understand How a Breadboard Works - 4:24
    • 5.4 The Resistors Color Code - 4:54
    • 5.5 Build Your First Circuit - 1 LED and 1 resistor - 7:39
  • 6. Control Raspberry Pi’s GPIOs with Python
    • 6.1 How GPIOs Work - 3:22
    • 6.2 Create a Python Program to Make an LED Blink - 10:18
    • 6.3 Activity 04 - Set the LED’s State From User Input - 1:45
    • 6.4 Activity 04 - Solution - 7:53
    • 6.5 Add a Push Button to Your Circuit - 8:58
    • 6.6 Detect When a Button is Pressed with Python - 4:26
  • 7. Practice More with GPIOs
    • 7.1 Activity 05: Power ON the LED When the Button is Pressed - 0:49
    • 7.2 Activity 05 - Solution - 8:22
    • 7.3 Add 2 More LEDs to Your Circuit - 6:04
    • 7.4 Activity 06 - Change the Powered on LED When Pressing the Button - 1:36
    • 7.5 Activity 06 - Solution - 13:12
    • 7.6 Activity 07 - Optimize Your Code with Lists and Functions - 2:32
    • 7.7 Activity 07 - Solution - 16:08
  • 8. Detect Movement with a PIR Sensor
    • 8.1 Intro - 2:58
    • 8.2 Tune the PIR sensor - 4:54
    • 8.3 Add the PIR Sensor to Your Circuit - 8:00
    • 8.4 Read the PIR’s Data with Python - 6:31
    • 8.5 Activity 08 - Power on an LED when Motion is Detected - Your First Alarm System - 0:29
    • 8.6 Activity 08 - Solution - 3:44
  • 9. Use the Terminal on Your Raspberry Pi
    • 9.1 Intro - 1:59
    • 9.2 Navigation and File System - 16:15
    • 9.3 Edit Files From the Terminal with Nano - 8:48
    • 9.4 Create, Remove, and Manipulate Files - 7:41
    • 9.5 Install & Update Software - 10:08
    • 9.6 A Few More Terminal Commands to Gain More Control Over Your Raspberry Pi - 3:39
  • 10. Python3 and the Terminal
    • 10.1 Install Python Modules - 4:08
    • 10.2 Work with Python from the Terminal - 10:14
    • 10.3 Read, Write, and Manipulate Files with Python - 11:17
    • 10.4 Activity 09 - Create a new Python Script From the Terminal - 2:25
    • 10.5 Activity 09 - Solution - 5:02
  • 11. Send an Email From Your Raspberry Pi
    • 11.1 Intro - 1:04
    • 11.2 Create a new Gmail Account - 4:01
    • 11.3 Install a new Python Module: yagmail - 3:09
    • 11.4 Get the Password in Your Python Program - 7:56
    • 11.5 Send Your First Email From the Raspberry Pi - 4:54
    • 11.6 Add an Attachment to Your Email - 3:08
  • 12. Add Vision to Your Applications with the Raspberry Pi Camera V2 Module
    • 12.1 Intro - 2:02
    • 12.2 Plug the Camera to Your Raspberry Pi - 3:10
    • 12.3 Enable the Camera - 1:30
    • 12.4 Take a Photo From the Terminal - 5:22
    • 12.5 Record a Video From the Terminal - 2:40
    • 12.6 Take a Photo with Python - 6:47
    • 12.7 Record a Video with Python - 3:18
    • 12.8 Activity 10 - Take a Series of Pictures - 1:54
    • 12.9 Activity 10 - Solution - 7:28
  • 13. Create a Web Application on Your Raspberry Pi with Flask and Python
    • 13.1 Intro - 1:46
    • 13.2 Write Your First Web Server - 7:46
    • 13.3 Add a new URL and Connect Flask with GPIOs - 5:45
    • 13.4 Activity 11 - Choose Which LED to Power on From a Web Browser - 2:56
    • 13.5 Activity 11 - Solution - 7:33
  • 14. Final Course Project
    • 14.1 Intro - Project Overview - 5:49
    • 14.2 Project - Step 1 - 19:45
    • 14.3 Project - Step 2 - 8:25
    • 14.4 Project - Step 3 - 8:13
    • 14.5 Project - Step 4 - 10:05
    • 14.6 Project - Step 5 - 14:57
    • 14.7 Project - Step 6 - 9:17
    • 14.8 Project - Step 7 - 17:19
    • 14.9 Project Conclusion - 1:25
  • 15. Conclusion
    • 15.1 What You've Learned - 1:16
    • 15.2 What to do next - 2:16

View Full Curriculum


Access
Lifetime
Content
14.0 hours
Lessons
148

Arduino for Beginners: Complete Course

Master Arduino Starting from Zero — Learn with Hands-On Activities & Many Arduino Projects

By Edouard Renard | in Online Courses

You are learning Arduino from scratch, and you don’t know where to start? Or… you already have an Arduino board, but you feel stuck? This course will help you really understand what you’re doing. Then, you can start from scratch, get the necessary foundation you need, and learn through practice and hands-on lessons - the complete process of creating Arduino projects. At the end of this complete course, you will have a strong Arduino foundation, and you will be able to start any custom Arduino project you want.

4.7/5 average rating: ★ ★ ★ ★

  • Access 148 lectures & 14 hours of content 24/7
  • Master your Arduino, starting from scratch
  • Become confident to create your own Arduino projects
  • Create an interactive obstacle detection application
  • Build your own Arduino circuit with many hardware components
  • Program the Arduino with C/C++
  • Create an online simulation of the course project
  • Learn through hands-on lessons
  • Practice a lot with 20 activities & a big final project
Edouard Renard | Software Engineer & Entrepreneur
4.2/5 Instructor Rating: ★ ★ ★ ★

Edouard Renard is a software engineer and entrepreneur. He enjoys teaching new technologies to people, and making complex stuff easy to understand. His method is simple and contains only 3 words: Step-By-Step. He knows how hard it can be to learn a new topic and just be lost in an ocean of information, without knowing what to do. In his courses, he makes sure that you learn one step at a time, through practice, and that you also learn the best practices.

Edouard also co-founded a robotics startup in 2016, building a complete robotic arm, from scratch, with Arduino, Raspberry Pi, Ubuntu, and ROS. Thus, he is aware of things that work and things that don’t work, thanks to a lot of practice. This will save you precious time and make you progress faster.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: desktop & mobile
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: beginner
  • Have questions on how digital purchases work? Learn more here

Requirements

  • Arduino board (recommended but not required)

Course Outline

  • Introduction
    • 1.1 Welcome! - 4:46
    • 1.2 What is Arduino? - 7:51
    • 1.3 List of Materials for this Course + Recommendations - 4:47
    • 1.4 Online Simulation - Quick Overview - 1:29
    • 1.5 How to get the most out of this course - 1:22
  • 2. Install and Setup Arduino IDE + Tinkercad Simulation
    • 2.1 Intro - 1:07
    • 2.2 Install the Arduino IDE on your Computer - 2:10
    • 2.3 Customize your Arduino IDE for Better Readability - 4:28
    • 2.4 Connect your Arduino board and Find it on the Arduino IDE - 2:47
    • 2.5 Simulation - Create a Tinkercad account + How to Get Started - 5:13
  • 3. Your First Arduino Project
    • 3.1 Intro - 0:51
    • 3.2 Arduino Setup and Loop Functions - 3:28
    • 3.3 Your First Arduino Project: Make an LED Blink - 9:56
    • 3.4 Debug Your Projects with the Serial Monitor - 5:50
    • 3.5 How to Restart your Arduino Program (Different ways) - 2:54
    • 3.6 Simulation - Your First Program + Debug + Restart - 5:26
    • 3.7 Activity 01- Change the LED Blink Rate, and Print a Message when it Turns on/off - 1:46
    • 3.8 Activity 01 - Solution - 3:59
  • 4. Create an Arduino circuit
    • 4.1 Intro - 1:12
    • 4.2 Understand How a Breadboard Works - 5:15
    • 4.3 Decrypt the Color Code From Resistors - 7:59
    • 4.4 Quick Recommendations on Hardware Manipulation - PLEASE WATCH - 2:37
    • 4.5 Create a Circuit with 1 LED and 1 Resistor - 11:18
    • 4.6 Make your new LED Blink - 2:45
  • 5. Programming Basics for Arduino
    • 5.1 Intro - 1:35
    • 5.2 Variables - 8:24
    • 5.3 Data Types - 8:08
    • 5.4 Functions - 6:49
    • 5.5 Scope - 5:53
    • 5.6 Conditions - 9:28
    • 5.7 Loops - 7:02
    • 5.8 Arrays - 7:05
    • 5.9 Recap - 1:05
  • 6. LEDs - Digital Pins as Output Pins
    • 6.1 Intro - 0:51
    • 6.2 How Digital Pins Work as Output Pins - 1:57
    • 6.3 Set a Digital Value - Power on an LED - 3:10
    • 6.4 How Digital Pins Work with Analog Values (PWM) - 4:00
    • 6.5 Set an Analog Value - Change the Brightness of an LED - 5:27
    • 6.6 Activity 02- Make an LED Fade in/out - 3:47
    • 6.7 Activity 02 - Solution - 6:48
  • 7. Push Button - Digital Pins as Input Pins
    • 7.1 Intro - 0:50
    • 7.2 Add a Push Button to Your Circuit - 9:16
    • 7.3 How Digital Pins Work as Input Pins - 1:28
    • 7.4 Read a Digital Value - Detect When the Button is Pressed - 6:24
    • 7.5 Activity 03 - Power on an LED Only if the Button is Pressed - 1:08
    • 7.6 Activity 03 - Solution - 3:57
    • 7.7 A Nice Additional Tool to Visualize Data on the Arduino IDE - Serial Plotter - 3:34
  • 8. Potentiometer - Analog Pins
    • 8.1 Intro - 0:55
    • 8.2 Add a Potentiometer to Your Circuit - 5:39
    • 8.3 How Analog Pins Work - 2:38
    • 8.4 Read an Analog Value From the Potentiometer - 4:23
    • 8.5 Activity 04 - Set the LED Brightness with the Potentiometer - 2:02
    • 8.6 Activity 04 - Solution - 5:33
    • 8.7 Extra: Use an Analog Pin as a Digital Pin - 4:27
  • 9. Practice More with Arduino Pins
    • 9.1 Intro - Arduino Pins Recap - 2:39
    • 9.2 Add 2 More LEDs to Your Circuit - 6:03
    • 9.3 Activity 05 - Create a Small Traffic Light System - 1:13
    • 9.4 Activity 05 - Solution - 7:15
    • 9.5 Activity 06 - Blink 3 LEDs When the Button is not Pressed - 1:28
    • 9.6 Activity 06 - Solution - 12:49
    • 9.7 Activity 07 - Improve The Previous Project with Functions and Arrays - 6:03
    • 9.8 Activity 07 - Solution - 9:40
  • 10. Serial Communication - Send and Receive Data
    • 10.1 Intro - 3:25
    • 10.2 Send Data with Serial - 4:27
    • 10.3 Receive Data with Serial - 12:46
    • 10.4 Change Serial Baud Rate for Faster Communication - 2:51
    • 10.5 Activity 08 - Set an LED Blink Rate from the Serial Monitor - 2:11
    • 10.6 Activity 08 - Solution - 10:27
  • 11. Time Functionalities - Improve Your Programs and Multitask
    • 11.1 Intro - 1:14
    • 11.2 Pause the Execution with delay() and delayMicroseconds() - 2:36
    • 11.3 The Problem with delay() - 4:24
    • 11.4 Get the Time with millis() and micros() - 6:48
    • 11.5 Compute the Duration of an Action - 7:31
    • 11.6 The Solution to Avoid Using delay() - 10:42
    • 11.7 Blink Multiple LEDs without delay() - 12:14
    • 11.8 Activity 09 - Re-write the Previous Activity on Serial without delay() - 1:50
    • 11.9 Activity 09 - Solution - 5:52
    • 11.10 Activity 10 - Multitask: Run 3 Actions Simultaneously - 1:32
    • 11.11 Activity 10 - Solution - 9:14
  • 12. Debounce the Push Button
    • 12.1 Intro - 0:50
    • 12.2 The Bounce Problem - Experiment - 8:38
    • 12.3 The Bounce Problem - Explanation - 3:42
    • 12.4 Debounce the Push Button - 9:21
    • 12.5 Activity 11 - Toggle a Different LED when Pressing on the Button - 1:58
    • 12.6 Activity 11 - Solution - 15:42
  • 13. Arduino Interrupts
    • 13.1 Intro - 0:59
    • 13.2 What are Interrupts, When to Use Them - 5:54
    • 13.3 Set up an Interrupt in Your Program - 12:14
    • 13.4 Software Debounce Inside an Interrupt - 5:46
    • 13.5 Warnings About Interrupts - When to use/not to use - 3:25
    • 13.6 Activity 12 - Count How Many Times you Press on the Push Button with Interrupts - 1:44
    • 13.7 Activity 12 - Solution - 6:27
  • 14. EEPROM - Save Values on the Arduino
    • 14.1 Intro - 1:07
    • 14.2 What is EEPROM, When to Use it - 3:32
    • 14.3 Save and Retrieve Values with EEPROM - 6:32
    • 14.4 Activity 13 - Save an LED Max Brightness for the Next Program Run - 3:19
    • 14.5 Activity 13 - Solution - 14:44
  • 15. Ultrasonic Sensor - Measure Distances
    • 15.1 Intro - 2:56
    • 15.2 Add the Ultrasonic Sensor to Your Circuit - 8:53
    • 15.3 How the Ultrasonic Sensor Works + pulseIn() function - 6:46
    • 15.4 Get the Distance From an Obstacle - 17:36
    • 15.5 Activity 14 - Measure the Duration of the pulseIn() Function - 1:21
    • 15.6 Activity 14 - Solution - 6:10
    • 15.7 Use the Ultrasonic Sensor with Interrupts Instead of pulseIn() - 14:58
    • 15.8 Activity 15 - Power on a Different LED Depending on the Distance From an Obstacl - 2:21
    • 15.9 Activity 15 - Solution - 7:15
    • 15.10 Extra - Improve the Stability of the Ultrasonic Sensor - 15:26
  • 16. LCD Screen - Display Text Directly on Your Circuit/Robot
    • 16.1 Intro - 1:13
    • 16.2 Add the LCD Screen to Your Circuit - 11:23
    • 16.3 Print Text on the LCD Screen + Tune it with the Potentiometer - 6:41
    • 16.4 Play with the LCD Cursor - 6:56
    • 16.5 Activity 16 - Print Serial Input on LCD Screen - 2:07
    • 16.6 Activity 16 - Solution - 11:12
    • 16.7 Activity 17 - Print Distance From Obstacle on LCD Screen - 1:25
    • 16.8 Activity 17 - Solution - 10:26
  • 17. IR Remote Controller - Make Your Projects More Interactive
    • 17.1 Intro - 1:29
    • 17.2 Add the IR Receiver to Your Circuit - 5:23
    • 17.3 Install a new Arduino Library with the Arduino IDE - 5:23
    • 17.4 Get Data From the IR Remote Controller (Library v2) - 10:22
    • 17.5 Change Library Version (v3) and Get Data From the IR Remote Controller - 8:53
    • 17.6 Map the Data You Read with the Controller’s Buttons - 7:59
    • 17.7 Use a Switch Structure to Handle IR Commands - 7:42
    • 17.8 Activity 18 - Choose which LED to Power on with the Remote Controller - 3:47
    • 17.9 Activity 18 - Solution (Part A) - 18:00
    • 17.10 Activity 18 - Solution (Part B) - 16:14
  • 18. Photoresistor - Measure Luminosity
    • 18.1 Intro - 1:15
    • 18.2 Add the Photoresistor to Your Circuit - 4:57
    • 18.3 Read the Luminosity from the Photoresistor - 4:07
    • 18.4 Activity 19 - Power on LEDs if it’s Getting too Dark - 1:54
    • 18.5 Activity 19 - Solution - 7:33
    • 18.6 Activity 20 - Compute the Average Luminosity Over a Period of Time - 2:45
    • 18.7 Activity 20 - Solution - 13:59
  • 19. Final project - Interactive Obstacle Detection
    • 19.1 Intro - Project Overview and Final Result - 7:30
    • 19.2 Step 1 - Get Distance with Ultrasonic Sensor - 12:34
    • 19.3 Step 2 - Change LED Blink Rate Depending on the Distance - 11:36
    • 19.4 Step 3 - Lock the Application When an Obstacle is Detected - 11:48
    • 19.5 Step 4 - Unlock the App with the Debounced Push Button - 11:08
    • 19.6 Step 5 - LCD Setup and Welcome Message - 4:34
    • 19.7 Step 6 - Print Distance and Warning Message on LCD Screen - 10:13
    • 19.8 Step 7 - Setup IR Remote Controller and Map Buttons - 7:33
    • 19.9 Step 8 - Unlock the App when Pressing on the Play Button - 6:20
    • 19.10 Step 9 - Change and Save (EEPROM) the Distance Unit - 12:50
    • 19.11 Step 10 - Switch Between Different LCD Screens and Reset Settings - 14:07
    • 19.12 Step 11 - Print Luminosity and Adjust the Lighting from the Photoresistor - 14:10
    • 19.13 Simulation - Code with Version 2 of the IR remote Library - 4:17
    • 19.14 Project Conclusion - Going Further - 2:44
  • 20. Conclusion
    • 20.1 What You’ve Learned - 1:47
    • 20.2 What to do next - 1:52

View Full Curriculum


Access
Lifetime
Content
4.0 hours
Lessons
42

Arduino OOP (Object Oriented Programming)

Learn How to Use OOP with Arduino Through a Step-by-Step Project

By Edouard Renard | in Online Courses

You want to write Arduino code that you can easily read, modify, and share with other Arduino developers? Or you already know OOP (Object Oriented Programming), and you want to know how to apply it to Arduino? Well, this Arduino OOP course is 100% project-focused and 100% practical. Throughout the different sections, we are going to write a complete Arduino project, step by step. Everything is hands-on (no copy and paste!), so you can directly practice with me on each video. There are also challenges for some of the sections, so you can practice on your own and develop parts of the project by yourself, using the previous knowledge you got.

New course with 4.7/5 average rating: ★ ★ ★ ★

  • Access 42 lectures & 4 hours of content 24/7
  • Master Arduino OOP (Object Oriented Programming)
  • Write a class for any Arduino component or functionality you want
  • Package a class as an easy-to-use Arduino library
  • Make your code easier to read & scalable
  • Create clear interfaces for other developers to use
  • Use a class inside another class
  • Combine classes together to exponentially increase the possibilities of your programs, without writing more code
  • Learn naming conventions for Arduino OOP code
  • Clearly organize your code in different files
  • Learn the best practices from the start
Edouard Renard | Software Engineer & Entrepreneur
4.2/5 Instructor Rating: ★ ★ ★ ★

Edouard Renard is a software engineer and entrepreneur. He enjoys teaching new technologies to people, and making complex stuff easy to understand. His method is simple and contains only 3 words: Step-By-Step. He knows how hard it can be to learn a new topic and just be lost in an ocean of information, without knowing what to do. In his courses, he makes sure that you learn one step at a time, through practice, and that you also learn the best practices.

Edouard also co-founded a robotics startup in 2016, building a complete robotic arm, from scratch, with Arduino, Raspberry Pi, Ubuntu, and ROS. Thus, he is aware of things that work and things that don’t work, thanks to a lot of practice. This will save you precious time and make you progress faster.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: desktop & mobile
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: intermediate
  • Have questions on how digital purchases work? Learn more here

Requirements

  • You know how to create basic Arduino programs with basic hardware components
  • You understand the basics of Arduino time functionalities (millis, delay, etc)

Course Outline

  • 1. Introduction
    • 1.1 Welcome! - 2:52
    • 1.2 Why OOP for Arduino? - 4:25
    • 1.3 List of Materials - 2:59
    • 1.4 Software Setup for the Course - 5:14
    • 1.5 Project overview and how to get the most out of this course - 3:23
  • 2. Your first Arduino Class - Led
    • 2.1 Intro - 2:48
    • 2.2 Create the Led Class Structure - 2:33
    • 2.3 Add Attributes to the Led Class - 3:03
    • 2.4 The Led Class Constructor - 6:50
    • 2.5 Add Methods to the Led Class - 4:03
    • 2.6 Use your Class in your Program - Create an Led Object - 6:36
  • 3. Organize the Class in a Clear Way
    • 3.1 Intro - 2:38
    • 3.2 Create a Header File for the Class - 5:38
    • 3.3 Create a Cpp file - Separate the Interface from the Implementation - 5:54
    • 3.4 Recap and How to Use and Read the Interface - 4:54
    • 3.5 Extra: Make Your Class an Arduino Library - 5:18
  • 4. Circuit for the Course
    • 4.1 Build the Circuit Step by Step - 10:42
  • 5. Your turn - Push button Class
    • 5.1 Intro - 4:10
    • 5.2 Create the PushButton Class Header File - Interface - 5:14
    • 5.3 Create the PushButton Class Cpp File - Implementation - 4:15
    • 5.4 Create a PushButton Object to Read the Button’s State - 3:47
    • 5.5 Handle Pull Up & Pull Down Resistors in the Class - 5:19
    • 5.6 Add More Abstraction to Know When the Button is Pressed - 7:15
    • 5.7 Debounce the Button Inside the Class - 8:32
    • 5.8 Combine LEDs and Buttons - Work with Multiple Objects - 7:41
  • 6. LedBlinker - Use a Class Inside Another Class
    • 6.1 Intro - 1:55
    • 6.2 Create the LedBlinker Class and Init the Led Inside - 13:29
    • 6.3 Toggle Led State from LedBlinker - 8:20
    • 6.4 Make the Led Blink Without Delay - Inside the Class - 9:47
    • 6.5 Add some Getters and Setters - 5:38
    • 6.6 Application Example - Make 3 LEDs Blink at Different Rates - 5:36
  • 7. Your turn - Traffic Light System
    • 7.1 Intro - Final Project Overview - 5:00
    • 7.2 The Interface and Main Program (help to get started) - 4:32
    • 7.3 Setup the TrafficLight Class - 15:13
    • 7.4 Add Methods to Init and Toggle Between the Leds - 8:58
    • 7.5 Add a State Machine Inside the Class - 8:32
    • 7.6 Use Time Functionalities to Wait Between Different States - 15:05
    • 7.7 Create a Class for the Potentiometer - 8:09
    • 7.8 Modify the Leds Brightness with the Potentiometer - 14:03
  • 8. Conclusion
    • 8.1 Project Conclusion and Improvements - 2:56
    • 8.2 How to Build an Arduino Project with OOP - Best Practices - 3:08
    • 8.3 What to do next - 2:00

View Full Curriculum



Terms

  • Unredeemed licenses can be returned for store credit within 30 days of purchase. Once your license is redeemed, all sales are final.