Hi @Jonathan_Haynes! Absolutely! Great question ![]()
The entire point of this Unit is to help students identify how and why sensors are useful, as well as identify the advantages to using an algorithm. Especially in cases where the environment is constantly changing (like cubes being placed in random places). Students start by hard coding movements (such as driving and turning to push cubes off the platform when they are in fixed places). However, once the cubes start randomly moving, the code that was used to hard code movements, no longer works.
The Cube Crasher challenge from Lesson 3 is meant to be done using the Distance Sensor. This is the beginning of learning how to build an algorithm, but we did it this way to provide the students with some scaffolding. In this activity, students will combine drivetrain movements (like drive and turn for specific distances) with the Distance Sensor. This allows some feedback from the environment so students can start building an algorithm. Structuring the activity in this way shows students the advantage of using the Distance Sensor instead of just hard coding drive and turning movements. There still is the problem though of the robot possibly falling off of the platform. That takes us to Lesson 4.
In the Sweep the Field challenge from Lesson 4, students further build their algorithm by introducing the Optical Sensor. This is now how students will prevent the robot from falling off of the platform. The Distance Sensor pointing forward will detect the cubes, while the Optical Sensor pointing towards the ground can sense when the robot is close to the edge of the platform, thus being able to back up and turn around to avoid falling off. This further tunes the algorithm to allow the robot to find cubes and push them off without the robot itself falling off.
Let me know if this information is helpful! I can further explain if you’d like, there were lots of reasons why we designed the Unit this way. I can also provide sample code for each of the challenges if that would be helpful as well ![]()