Lesson Modules
Teaching Tips:
- Let students know that at this point, they have been using their CoDrone as an autonomous robot, but with this lesson, they will be using a remote control. What do they think that means? Next, show them the video below and ask what they think an autonomous or remote controlled robot is based on what they just saw. Also ask the benefits to having either one. What would be a good situation to have an autonomous or remote controlled robot?
Video: Case IH Autonomous Concept Vehicle
- Ask students to think of all the electronics that they use and how they know that their battery is low or dead on each of them. If they are stuck, give an example (if they have a phone or laptop on them, they can check for a battery icon). Next, ask them how they can tell if their CoDrone is running out of battery, and if needed, pass out CoDrones so they can look. Tell them that they will be programming a part of their drone to serve as a battery display.
Teaching Tips:
- Ask students to use pseudocode to explain to a partner how they programmed their drone for the speed variable challenge in Snap using both their own words and the appropriate academic language.
Ask students to use pseudocode to explain to a partner how they programmed their drone to either display battery percentage or land safely after a low battery in Snap using both their own words and the appropriate academic language.
We found a bug just recently that is caused by the
request
block, specifically forBATTERY_PERCENTAGE
. It checks the battery percentage, but continues checking (behind the scenes) even after you've stopped and deactivated the block. So if you see that the BLE board is flashing multi-color even when you aren't actually trying to send commands to it, that means that is happening. The kicker is once you try to run any other code while that bug happens (i.e. the board is still blinking multi-color even when you aren't running commands), it will overload and shut the board off, which obviously causes the CoDrone to disconnect.The company is currently fixing that bug so the next version of the Chrome app doesn't have that bug. For now, the only way to stop the background request at the moment is to restart Snap.
Challenge
Activity: Fast and precise flying
Use what you learned in this lesson and in the variables lessons to allow your CoDrone to fly at two speeds! Use the remote control to have one key for high speed and another key for low speed.
Challenge rules:
- Create a variable to keep track of your speed.
- Your CoDrone should be able to fly at two speeds: high (for a drone race) and low (for obstacles or landing on precise targets)
Activity: Low battery landing
Have your CoDrone safely land when the battery is too low!
Challenge Rules:
- Make a code that will land the CoDrone when the battery is less than 20%.
- Crashing does not count as a safe landing!
Teaching Tips:
Customization
If you want to make this mission more difficult, we have ideas!
- Use hoops or tunnels to fly through to get to the landing zone.
- Increase the pitch speed to increase the difficulty.
Sample code
Not sure where to start? We have a sample code!
In this code, the CoDrone takes off, and until the program ends, the CoDrone moves forward. If the up key is pressed, the CoDrone will throttle up. If the up key is not pressed, the CoDrone will start to fall down. You can increase the difficulty by increasing the values for pitch and throttle. 100 is the highest!
Extra Challenge
Flappy Drone
The goal of the Flappy Drone mission is to fly your CoDrone over and under different obstacles. However, there are some twists!
- You can only control your CoDrone's throttle.
- Your CoDrone is always moving forward.
- When the up arrow is pressed, the drone will fly up, but if it's not pressed, the drone will start to fall.
Don't worry --- you can program a kill switch!
How to play
1. Setup
- Set up a starting zone and a target area. Doorways are great for this!
- Set up some obstacles to fly over and under. Boxes, tables, chairs, and propped up broomsticks are all great obstacles, but get creative!
2. Fly
- Begin by placing your CoDrone in the starting zone. When you're ready, start your code and try to make it to the end without crashing into anything!
3. Modify
- If your CoDrone isn't going up high enough or is going up too much, or if it's barely going forward or going too fast, go back to your code and change the numbers!
Rules
- If there are multiple competitors, take turns!
- All parts of the CoDrone that are touching the ground must be within the landing zone for it to count.
- Each competitor gets the same set time to complete the challenge.
- The first competitor to successfully land in the landing zone wins!
Teaching Tips: