Course: Programming with CoDrone Lite
1-Introduction to CoDrone Lite

  • 4-7 grade
  • Beginner

Lesson Description:

CoDrone Lite is our tiny quadcopter drone that students will learn how to program using Snap!, a block-based coding language. This lesson will introduce students to CoDrone Lite as well as programming in Snap!

Identify the main features and characteristics of the CoDrone Lite. Identify basic programming concepts in Snap to make the drone drivable. 

image description

Lesson Modules

Teaching Tips:

Note: this lesson assumes that Snap! has been installed on all computers. If it has not, either do it beforehand or have students do it after the engagement activity (might take some time).

  • Ask students to talk in groups and come up with a definition of a drone in their own words. What is it, what does it do, and what is it used for? Examples are great too! Have students share what they came up with with the rest of the class.
  • Drones are unmanned aerial vehicles, which means no one is inside controlling their flight. How would a controller fly successfully? Ask for ideas or examples that they have seen.
  • Show students Snap! with a drone connected via BLE board and fly the drone! This can be a simple takeoff and landing.
  • What happened? Ask questions as students are talking! For example, if a student says that the teacher showed a drone taking off and landing, ask them how the drone was able to do that. Make sure to emphasize appropriate academic language.

You can find useful the following resources:

  • Documentation & Resources: These are all the essential resources for programming with the CoDrone Lite. As you work through the lessons, this is where you'll find reference materials you can use, such as the functions guide, troubleshooting and FAQ, and our support page.
  • Calibrating CoDrone: Sometimes your CoDrone won't act the way you want it to. Maybe it's drifting to the side or crashing into the ceiling every time. Learn how to calibrate your CoDrone in this lesson!
  • Install Snap!: Before you start, you will need to program it. You'll be using Snap!, which is a block-based programming language. This lesson will walk you through downloading the software. If you're using a Chromebook, go back to 1A: Install Snap! (Chrome App). If you're using a Mac, go to 1B: Install Snap! (macOS). Disclaimer: The software and the Bluetooth device can be not compatible with some computers models, including iOS system.
  • Connect: If you want your CoDrone to fly, it needs to be connected to Snap!. This lesson will walk you through how to do that.
  • Program in Snap: Your CoDrone needs a program to fly! In this lesson, you'll learn how to create programs in Snap!. You will also make a program to make your test drone say hello.

What is a drone? What does it do? What is it used for?

How would a controller fly successfully?

Teaching Tips:

  • Point out that Snap! is a program that gives the drone specific instructions to follow.
  • Pair students up and explain that one student will be the controller and the other will be a robot. The controller needs to give the robot directions to perform a specific but simple task (ex: picking up a piece of trash and putting it in a trashcan, taking a backpack off of a chair and putting it on), and the robot can only follow the instructions given to them by the controller. Do a brief demo and have a student follow your (very bad) instructions to perform a simple task.
  • Once the task is successfully completed, have students switch roles and perform another specific but simple task.
  • Ask students if they were successful at least once in the previous activity, and then have those students share what worked for their group. Next, ask students if they were not successful and then have those students explain what would have helped them perform their tasks better. Write answers down on the board for reference.
  • Walk students through using the Bluetooth board to connect their drone using 1D: Connect in Robolink Basecamp. Make sure drones are near students so connection will be easier. If a student is having problems, have them ask their classmates for help before asking a teacher.
  • Give students about 5 minutes to explore Snap!’s menus in partners. What do they think each of the blocks in the menus do? What are particular menus for based on their blocks and titles?

Computer science depends on a programmer’s ability to tell a computer exactly what to do. Problems with software and hardware arise when the instructions given to a computer are not perfectly accurate or precise.

Think of a computer like a bad chef following a recipe to make an omelette. If the first step read “Put egg in bowl,” the computer would simply throw a raw egg, shell and all, into the bowl, which is certainly not what the recipe intended.

 In contrast to these imprecise omelette recipe instructions, the instructions for filing taxes are actually quite precise (although confusing). The PDF forms that are eventually submitted to the IRS give very specific, detailed instructions about what lines to write values on and when to add them up. These instructions are comparable to those that a programmer would give to a computer.

Think it’s easy? Try it for yourself. Take a few minutes and write some instructions for making a peanut butter and jelly sandwich. Now we’ll actually execute those instructions as a computer would.

Here’s an example of such an algorithm:

  1. Take two slices of bread from the loaf.
  2. Apply two tablespoons of jelly on both halves.
  3. Apply two tablespoons of peanut butter in the same way.
  4. Join the two halves.
  5. Have fun!

What’s the result of following this algorithm as a computer would? A big mess, unfortunately. Consider that we never told the computer to open the plastic packaging of the loaf or to use the knife to apply the jelly and peanut butter. While this might seem like a ridiculous visual, it’s suggestive of the way in which we have to think in order to write computer programs.

Sometimes you will struggle with the difficult task of translating tasks as you see them in your mind into instructions that a computer can understand and follow to achieve them.

Teaching Tips:

  • Pseudocode is a way to describe programming using human language instead of what a computer would see. Ask students to explain to their partner how they connected their drones and how they went through their test program in Snap! using both their own words and the appropriate academic language.
  • Once students have finished their test program, have them experiment with Snap!. Challenge them to come up with at least two more test programs that their sprite can visually go through.

Pseudocode is a way to describe programming using human language instead of what a computer would see.

Explain how to connect the drone and how to go through their test program in Snap! using both your own words and the appropriate academic language.

Explain in your own words how to connect Codrone and go through the test program

Teaching Tips:

Explain one of your test programs using pseudo-code. Did you have any problems connecting or running your drone? If so, how did you fix them? What did you learn?