---
title: "Activity: Flip Bot"
date: "2021-06-03"
categories: ["Activities", "All"]
tags: ["Branching", "Iteration", "Accelerometer", "Motors", "Intermediate"]
codingSkills: ["Branching", "Iteration"]
roverConcepts: ["Accelerometer", "Motors"]
excerpt: "Learn branching, iteration, and how to use the accelerometer."
featuredImage: "/images/resources/flip-bot.png"
---


Program the rover to flip itself upside down and then stop. There are many solutions to this problem. The rover must flip itself without being touched while running and once it has flipped it should stop. You could try combining this with the Turn Over Rover program to include lights.

### Activity Demonstration

<iframe width="560" height="315" src="https://www.youtube.com/embed/176tJNx-Kd8" title="Flip Bot Activity Demonstration" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen></iframe>

### Setup

The most common way to flip the rover is having it drive up a flat vertical surface and fall backwards. Perhaps using the back of a laptop screen, a book, or a wall. These are not the only solutions. See what other driving conditions might make the robot flip.

### Here’s Our Approach

This solution can be extended to make the rover reset itself and include LEDs

#### Stage 1

Start moving forward to eventually encounter a vertical obstacle.

#### **Stage 2**

Add a repeat block where the condition is a sensor block that checks if the rover is right way up. This will cause the rover to wait until it is not the right way up.

#### **Stage 3**

After the loop that waits for the robot to flip we add a motor block to stop the rover.

![](/images/content/1dfaa4-screenshot-2023-10-31-083156.png)

Example Code
