--- title: "Activity: Stop On Colour Change" date: "2021-06-03" categories: ["Activities", "All"] tags: ["Colour Sensors", "Branching", "Iteration"] excerpt: "Learn branching, iteration, and how to use the colour sensors." featuredImage: "/images/resources/stop-on-colour-change.png" --- Program the rover to keep moving forward until it detects a change of floor colour with the colour sensors. Once it detects this colour, stop the rover. #### Relevant Coding Skills Branching --> Iteration Functions Variables --> Algorithm Design --> Maths #### Relevant Rover Concepts Ultrasonic --> IR --> Colour Gyroscope Accelerometer Motors LEDs --> Buzzer --> Activity Demonstration ### Setup For this exercise we recommend a strip of tape stuck to the floor that contrasts the floor colour. It doesn't have to be tape, all that matters is there is a clear change in colour for the rover to detect. An alternative solution is to use a piece of coloured paper. Your solutions should work no matter how far from the tape the rover starts. Make sure to test the same code from multiple starting positions. ### Here’s Our Approach #### **Stage 1** First we need the rover to drive forward towards a change in colour. We tell the rover to move forward with a start moving motor block. #### **Stage 2** As the rover drives forward, we need to be constantly checking the colour sensor. Use a repeat until loop block where the condition is set to detect the desired colour. Our code is looking for the brightness of the white tape. #### **Stage 3** The rover will keep checking the colour sensor in the loop block until the condition is true. After the repeat we stop all motors. #### Note If the simple colour sensor blocks aren’t working we may need to use a different comparison block to check more detailed readings from the sensor. Use the rover sensor view to identify the one that will work best for you. ![](/images/content/98a2c4-screenshot-2023-05-24-123918.png) Example Code 1 ![](/images/content/e3ba7c-screenshot-2023-05-24-123918.png) Example Code 2