Inspire S.T.E.A.M. is set to revolutionize the classroom with applied technology in drone build. code. fly.

Safety lesson

Students will study aviation administration regulations in relation to unmanned aerial vehicles (UAVS), or drones. They will be introduced to non-negotiable rules that are in place to engage in safe and responsible flying, while protecting the privilege of flying UAVS.

Lesson 1 – An overview of DroneBlocks and Tello

Lesson 2 – Hello Tello!

It is tradition when learning a new programming language to guide students through a “hello world!” Tutorial. This generally consists of understanding the language syntax and then experiencing “hello World!” printed to the screen. Since we will not be printing anything to the screen, we will engage in something even more exciting. We Are going to programme a basic mission where Tello takes off, spins 360 degrees, then lands. In addition, this will be a great way to become familiar with a few of the programming blocks in DroneBlocks.

Lesson 3 – Box mission

In this lesson we will cover how to use DroneBlocks and Tello to navigate in a box pattern. In the navigation block, “fly” commands are useful to navigate Tello in three dimensions. We will approach this mission using two different techniques: one mission that keeps the nose of the drone pointed forward and another that uses “yaw” blocks to direct the nose of the drone in the direction of flight. These flight concepts are useful to understand when learning to programme more complex missions.

Lesson 4 – Loop and flip

In programming a very important concept to understand is the loop. Loops allow you to repeat a sequence of instructions until a condition is met. In DroneBlocks the loop command is known as the “repeat” block. We will use this block to repeat a series of flips and will revisit the box mission to simplify the code.

Lesson 5 – Hexagon mission

In this lesson we will extend what we learned in the box mission lesson and program Tello to fly in a hexagon shape. We’ll investigate the geometry of a hexagon, examining interior and supplementary angles. In addition, we will use the loop block from the previous lesson to make our code simple and more manageable.

Lesson 6 – Variables for the win

In this lesson we are going to take a look at variables. Remember, in static code blocks, such as “navigation” blocks, you can input distance and degree values. These values are static and can only be changed when creating your mission. In many cases, while programming you want certain inputs to be dynamic, or “variable”. Variables allow inputs to change while code is executing.

Lesson 7 – Adding logic with if/else statements

Making decisions is an important component of any computer programme. One example is the ability our mobile phones have to make decisions such as determining which Wi-Fi network to join, based on signal strength. This decision-making process is built into the operating system of your phone and the logic is programmed by human beings. In this lesson we will extend our programming knowledge to include logic with DroneBlocks and Tello.

Lesson 8 – Land in your hand

The code from this lesson will be incredibly simple, given you are now a block coding expert! Tello is an intelligent little drone with advanced sensor technology inside. In this lesson we will demonstrate how well the downward-facing sensors work so that you can land Tello in your hand.

Lesson 9 – An overview of python and Tello

In this section of the DroneBlocks course we will be discussing how to use python with Tello. This part of the course is very interactive and will be provided in video format. Each lesson will also have a text version that includes links to various resources that will be used throughout the course. You are about to embark on an exciting journey to see how python can be used to do exciting things with Tello.

While having a little python programming experience will be helpful for this section of the course, it’s not necessary. We will walk you through setting up your python environment all the way to running your scripts on raspberry pi. All of the code examples for this course can be found in our github repository.

Lesson 10 – Brief overview of user datagram packets (UDP)

In this lesson we’ll cover how DroneBlocks communicates with Tello using a protocol known as user datagram protocol (UDP). UDP has been around since the 1980’s and is a method for computers on a network to communicate with each other. This lesson will show you the basics of UDP to make sure successful communication happens.

Lesson 11 – Sending and receiving UDP packets

In the previous lesson we learned how to send a UDP message to Tello and print to the screen. But the fact that we sent the message doesn’t guarantee delivery. It’s important that we know a message has been delivered successfully so we can determine what to do next. In this lesson we’re going to extend our knowledge of UDP and learn how to receive a response from Tello.

Lesson 12 – Box mission using Tello SDK commands

We are going to take our knowledge of python UDP messaging and fly Tello in a box pattern. This will consist of several SDK commands that will instruct Tello to take off, fly forward, yaw, and land. Stringing these commands together will allow us to create custom flight behaviour.

Lesson 13 – Custom functions – spin and bounce

In the previous lesson we covered sending SDK commands to Tello. These commands were used to control Tello in a box pattern. In this lesson we’ll extend our knowledge by writing two custom functions: spin and bounce. We’ll still use standard SDK commands, but with some custom logic we can give Tello new flight behaviour.

Lesson 14 – Keyboard commands

This lesson is one of our favourites because it lets you tap into all of the commands available in the Tello SDK. We’ll be using a python script to accept commands directly from our keyboard. This means we’ll be able to send commands while Tello is in the air. This is a great way to become familiar with how the numerous SDK commands behave.

Lesson 15 – Unit conversions

By default, Tello uses the metric system for units. In previous lessons all the distances we provided to Tello were in centimetres. In this lesson we are going to fly Tello in a star pattern and write a python function to handle the unit conversion. This will give us much more flexibility as we continue to expand our python and Tello programming knowledge.

Lesson 16 – Retry commands

In this lesson students will learn more advanced commands including loops, adjusted intervals, renaming Commands, spins/bounces, pauses/delays, retry commands.

Lesson 17 – Python, Raspberry Pi, and Tello (bonus)

A raspberry PI is a series of small single-board computers developed to teach the basics of computer science. In this chapter we will use our knowledge from previous chapters to set up our raspberry PI and program a mission using python.

Smart Drones educational programme and hardware is licenced to Inspire Africa Group (Pty) Ltd for Sub-Saharan Africa.