Skip to main content
Teacher Portal

Play

Part 1 - Step by Step

  1. InstructInstruct students that they are going to build on what they have learned in previous Labs to complete a challenge. The goal is to have the Code Base collect three Martian rock samples (all three Disks) from different locations, and deliver them to the correct sorting area based on their color. Students will use the [My Block] that they created with you in Engage to sort the Disks. They will need to create a project that drives to collect each of the Disks, and uses the [My Block] to sort them when the Code Base returns the Disks to the Mars base.
    • Show students the new Field setup with the Disk placement and sorting areas marked with the ‘R,G B.’ You may want to have them mark the Disk locations with a dry erase marker to make sure that they return the Disks to the proper locations during testing.

    Top down view of a GO field with a red disk in the top left, a green disk in the top right, a blue disk in the bottom right, and three horizontally-adjacent squares in the bottom right corner labeled with the letters R, G, and B. The letters indicate the spaces that the corresponding colored disks will be placed in.
    Field Setup
    • Students will build this project with their group, then test it on the Mars surface (the Field). This animation below shows one possible way that the Code Base can move to complete this challenge.
    Video file
    • Provide students with the drive distances to collect the Disks, so that they can focus on the sequencing the code for this project. 
      • To collect the Red Disk - 400 mm (~16 inches)
      • To collect the Green Disk - 425 mm (~17 inches), turn, 300 mm (~12 inches)
      • To collect the Blue Disk - 150 mm (~6 inches), turn, 400 mm (~16 inches)
  2. ModelModel for students how to get started with their projects in VEXcode GO.

    Icon for the Configuring Your Robot tutorial in VEXcode GO.
    Configuring your Robot tutorial in VEXcode GO

    If necessary, model for students how to test their project on the Field.

    • Show them how to set up to test by placing the Code Base at the Mars Base, and each of the Disks in the positions shown in the image below.

    Top down view of a GO field with a red disk in the top left, a green disk in the top right, a blue disk in the bottom right, and three horizontally-adjacent squares in the bottom right corner labeled with the letters R, G, and B. The letters indicate the spaces that the corresponding colored disks will be placed in. The robot is placed in its starting position near the bottom left corner, directly below and facing the red disk.
    Set up to test
    • Once the Code Base is in place, select 'Start' in VEXcode GO to test the project. Show students the Start a Project tutorial video in VEXcode GO if necessary.

    Icon for the Starting a Project tutorial in VEXcode GO.
    Start a Project tutorial in VEXcode GO

    For students who finish early and need additional challenges, have students switch the Disk locations and adjust the code have the Code Base drive to collect the Disks. Does your project still work? What do you have to change to have the Code Base collect the Disks from the new locations?

  3. FacilitateFacilitate a conversation with students as they test their projects.
    • How does the Code Base need to move to collect the Disks? Can you show me with your hands? 
    • Does the Code Base need to turn? How far? In which direction?
    • How does the Code Base know what color the Disk is? What blocks are used to have the Code Base detect the color of the Disk?
    • At what point in the project should you add the [My block command]?
      • This should be after the Code Base has collected the Disk and returned to the Mars Base starting location. 

    Prepare students for the trial and error that is an intrinsic part of this challenge. You may want to use the Problem-solving Cycle graphic from the Background page as a visual aide to establish a structure for the problem-solving process with your students. See the Preparing for the Open-Ended Challenge in this Unit section of the Background page for more strategies to help students troubleshoot their projects and come up with their own solutions.

    A diagram of the Student Problem Solving Cycle. Arrows show that the cycle repeats. The cycle starts with 'Describe the problem', then 'Identify when and where the problem began', then 'Make and test edits', and finally 'Reflect' before repeating.
    Student Problem-solving Cycle

    Encourage students to use [Comment blocks] to plan and organize their projects as they did in previous Labs. The following image is an example of how [Comment] blocks could be added before they start adding to their projects to complete the challenge.

    Continuation of the VEXcode GO blocks project from the Engage section, now with added comment blocks at the end reading 'Collect Green' and 'Collect Blue', indicating the next steps to be added to the project. The whole project now reads When Started, comment block reading 'Collect Red', drive forward for 400mm, and energize magnet to boost. Next, turn right for 180 degrees, drive forward for 400mm, and turn right for 90 degrees. Finally, there is a Sort Disks My Block before two comment blocks reading 'Collect green' and 'Collect blue'.
    Use [Comment] blocks to plan your project

    If students need additional support to troubleshoot, use the Project Stepping feature to help students go through their project one block at a time to see how each block is being executed in their project. For more information on how to use the Project Stepping feature, view the Stepping Through Blocks tutorial in VEXcode GO.

    Icon for the Stepping Through Blocks tutorial in VEXcode GO.
     Stepping Through Blocks tutorial in VEXCode GO

    Focus on the concept, not the precision. 

    • The goal of this Lab is to focus on the concept of using the Electromagnet and Eye Sensor in a project. If students slightly misaligned their robot, or the Disk is not exactly in the right place when they drive to it, let them know that it's ok to move the Disk slightly to make sure it gets picked up by the Electromagnet. Also, let students know that it’s okay to nudge the Disk into the sorting area if it is mostly, but not completely in the sorting area square. 
    • Students might not get to the 3rd Disk due to accumulated error. If the students don’t get the Code Base to the 3rd Disk, allow them to push it to the Code Base. You can contextualize this as an effect of unpredictable Martian winds affecting the moves and turns of the the Code Base. The goal of the challenge is not to address the precision within the drive parameters, but rather to focus on coding with conditionals and [My Blocks] to complete a challenge.
  4. RemindRemind students to check the parameters in the [Drive for] and [Turn for] blocks to make sure the project has the correct distances needed to collect then sort the Disks.
    • Remind students to look at the highlight feature in VEXcode GO as they are testing their projects. By following the highlighting, they can clearly visualize the project flow of the [My Block], to see when the project is moving from the stack of blocks to collect the Disk, and then to the [My Block] to sort the disk. 
    • Also, remind students that they shouldn’t have to change any of the blocks in the [Define] block sequence since these will drive to the correct sorting locations. They will just need to add the [My block command] into their projects in the correct sequence to have the Code Base sort the Disks, once they have been collected and brought back to the Mars Base starting location. 

    In order to encourage a growth mindset and help students embrace the trial and error that is a part of coding and encourage them to learn from the mistakes along the way, ask questions such as:

    • What mistake have you made that has taught you something?
    • What did you learn from this mistake? How can it help you when coding the Code Base next time?
    • What have you learned from past mistakes that is helping you with this challenge?
       
  5. AskAsk students to think about how their project has changed from Lab 3 to Lab 4.
    • How has your project changed from Lab 3 until now?  What have you added? How has this changed the behaviors of the Code Base?
    • What could the Code Base do in Lab 3? What can it do now? What have you added to your project to make this happen?

Mid-Play Break & Group Discussion

As soon as every group has successfully collected and sorted at least one Disk, come together for a brief conversation.

Check in on students' progress and talk about how the [My block] is functioning in their projects. Ensure that students understand that they are using a [My block] to reuse the sections of code that repeat in their project - the code that has the robot sort the Disks.

  • Who was able to collect one Disk? Two Disks? Was anyone able to collect all 3 Disks? If time allows, have students share their strategies and challenges with one another so that students can learn from each other, and value the process, not just the product, of the challenge.

Show what happens in the project flow with a [My block]. Use a student project or show the animation below as an example and watch the project run together. Draw attention to how the highlight moves to the [Define] block sequence when it reaches the [My block] command in the project.

Video file

Ensure that students understand the project flow and how the [My Block] functions in their project. Use the following questions to guide a discussion on the project flow with the [My Block]:

  • How does the highlight move in your project? When does it move to the [My Block]? 
    • The highlight moves to the [Define] block sequence when it reaches the [My block] command in the project. 
  • How is the [My Block] functioning in your project to help you sort the disks?
    • Each time the Code Base collects a Disk, it will check the color of the Disk and deliver it to the correct sorting area as defined in the [My block]. 
    • The blocks in the [My blocks definition] have the Code Base deliver the Disks to the proper sorting area based on their color, while the blocks under the {When started} block drive the robot to collect the Disks.

Part 2 - Step by Step

  1. InstructInstruct students that they are going to continue to work on their projects to have the Code Base collect and deliver all three Martian Rock samples (Disks) to the proper sorting locations.
    • The following animation shows one possible way that the Code Base can move to complete the challenge.
    Video file
  2. ModelModel for students how to continue with their projects in VEXcode GO.

    If necessary, model for students how to test their project on the Field.

    • Show them how to set up to test by placing the Code Base at the Mars Base.

    Top down view of a GO field with a red disk in the top left, a green disk in the top right, a blue disk in the bottom right, and three horizontally-adjacent squares in the bottom right corner labeled with the letters R, G, and B. The letters indicate the spaces that the corresponding colored disks will be placed in. The robot is placed in its starting position near the bottom left corner, directly below and facing the red disk.
    Set up to test
    • Once the Code Base is in place, select 'Start' in VEXcode GO to test the project. Show students the Start a Project tutorial video in VEXcode GO if necessary. 

    Icon for the Starting a Project tutorial in VEXcode GO.
    Start a Project tutorial video in VEXcode GO

    For students who finish early and need additional challenges, have students switch the Disk locations and adjust their projects to have the Code Base collect the Disks from the new locations and sort them. Does your project still work? What do you have to change to have the Code Base collect the Disks from the new locations?

  3. FacilitateFacilitate a conversation with students as they build and test their projects with questions such as:
    • What do you have to add to your project to have the Code Base collect all three Disks?
    • How does the Code Base need to move to collect the Disk(s)? Can you show me with your hands? 
    • Can you explain, with words or gestures, what your robot is doing, and what you want your robot to do?
    • Does the Code Base need to turn? How far? In which direction?
    • What parameters do you have to change to have the Code Base collect each Disk, then return to the Mars Base?
    • At what point in the project should you add the [My block command]?
      • This should be after the Code Base has collected the Disk and returned to the Mars Base starting location. 

    Encourage students to persevere through the  trial and error that is an intrinsic part of this challenge, just like the scientists working with the Perseverance Rover have to continue to overcome challenges to complete its mission. Refer to the Problem-solving Cycle graphic as a visual aide to establish a structure for the problem-solving process with your students. See the Preparing for the Open-Ended Challenge in this Unit section of the Background page for more strategies to help students troubleshoot their projects and come up with their own solutions.

    A diagram of the Student Problem Solving Cycle. Arrows show that the cycle repeats. The cycle starts with 'Describe the problem', then 'Identify when and where the problem began', then 'Make and test edits', and finally 'Reflect' before repeating.
    Student Problem-solving Cycle

    Focus on the concept, not the precision.

    • The goal of this Lab is to focus on the concept of using the Electromagnet and Eye Sensor in a project. If students slightly misaligned their robot, or the Disk is not exactly in the right place when they drive to it, let them know that it's ok to move the Disk slightly to make sure it gets picked up by the Electromagnet. Also, let students know that it’s okay to nudge the Disk into the sorting area if it is mostly, but not completely in the sorting area square. 
    • Students might not get to the 3rd Disk due to accumulated error. If the students don’t get the Code Base to the 3rd Disk, allow them to push it to the Code Base. You can contextualize this as an effect of unpredictable Marian winds affecting the moves and turns of the Code Base. The goal of the unit is not to address the precision w/ in the drive parameters, but rather to focus on coding with conditionals and the [My Block] to complete a challenge.

    If students need additional support to troubleshoot, use the Project Stepping feature to help students go through their project one block at a time to see how each block is being executed in their project. For more information on how to use the Project Stepping feature, view the Stepping Through Blocks tutorial in VEXcode GO.

    Icon for the Stepping Through Blocks tutorial in VEXcode GO.
    Stepping Through Blocks tutorial in VEXcode GO

    There are many possible solutions for this challenge. The following is one example for reference.

    Example VEXcode GO blocks solution to this challenge. This is a continuation of the last project, with the code for the 'Collect Green' and 'Collect Blue' comment blocks added beneath both of them. There are two stacks, one begins with When Started and one is a My Blocks definition stack titled 'Sort Disks'. The Sort Disks Definition block has three If Then blocks attached to it for each color, reading as follows: if eye detects red then drive forward for 100mm, energize magnet to drop, drive reverse for 100mm, and turn left for 90 degrees. Next, that If Then block is closed and a new one reads: if eye detects green then drive forward for 250mm, energize magnet to drop, drive reverse for 250mm, and turn left for 90 degrees. Next, that If Then block is closed and a new one reads: if eye detects blue then drive forward for 350mm, energize magnet to drop, drive reverse for 350mm, and finally turn left for 90 degrees. The When Started stack has code to drive to each disk, return to the starting position, and then use the Sort Disks My Block to sort it for all three disks. First, to sort the red disk, drive forward for 400mm, energize the magnet to boost, and turn right for 180 degrees. Next, drive forward for 400mm, turn left for 90 degrees, and call the Sort Disks My Block. Second, to sort the green disk, drive forward for 425mm, turn right for 90 degrees, and drive forward for 300mm. Next, energize the magnet to boost, drive reverse for 300mm, and turn right for 90 degrees. Next, drive forward for 425mm, turn left for 90 degrees, and call the Sort Disks My Block. Third, to sort the blue disk, drive forward for 150mm, turn right for 90 degrees, and drive forward for 400mm. Next, energize the magnet to boost, drive reverse for 400mm, and turn right for 90 degrees. Finally, drive forward for 150mm, turn left for 90 degrees, and call the Sort Disks My Block.
    Possible solution)​​​​​​
  4. RemindRemind students to look at the highlight feature in VEXcode GO as they are testing their projects. By following the highlighting, they can clearly visualize the project flow of the [My Block], to see when the project is moving from the stack of blocks to collect the Disk, and then to the [My Block] to sort the disk. 
    • Also, remind students that they shouldn’t have to change any of the blocks inside the [My Block definition] since these will drive to the correct sorting locations. They will just need to add the [My Block command] into their projects in the correct sequence to have the Code Base sort the Disks, once they have been collected and brought back to the Mars Base. 

    In order to encourage a growth mindset and help students embrace the trial and error that is a part of coding and encourage them to learn from the mistakes along the way, ask questions such as:

    • What mistake have you made that has taught you something?
    • What did you learn from this mistake? How can it help you when coding the Code Base next time?
    • What have you learned from past mistakes that is helping you with this challenge?

    Talk students through problem-solving each issue as you circle the classroom. This will be an iterative process, so remind students that scientists who code the Mars rovers also have to try multiple times to get the rover to move how they intended. 

    • How did your group identify the problem in your project? 
    • How did you work together to fix it?
    • Did you try using the Step button to slow down your project to help you see the problem more clearly? 
    • What was one problem-solving success you've had in your group so far?
    • What is something you learned in other Labs that you using in this Lab?
  5. AskAsk students how they might use a [My Block] to code the Perseverance Rover to sort Martian rock samples into two categories: rocks that show signs of ancient life, and rocks that do not.