Get Help
Wall Avoidance (miniBloq)
Introduction
Sparki can use its ultrasonic sensor to avoid running into walls. In this lesson you will program Sparki to do just that!
What You’ll Need
- A Sparki.
-
- Some space for it to run around in and some walls. You can also use solid objects like cardboard boxes for your walls. Try to have hard walls (instead of soft things like pillows or cloth) since the ultrasonic range finder thinks those are easier to see.
How It Works
Here is the ultrasonic sensor or ultrasonic range finder. Sparki uses it to see what is in front of it in a similar way to how a dolphin or a bat uses echolocation. If you are not familiar with this sensor, please read this previous lesson.
Also, please remember (you can find more information here) that this sensor has a conic detection zone, like this:
- Center the ultrasonic sensor (so it points to the front).
- Change the color of the LED to green.
- Make Sparki go forward.
- Sense distance with the rangefinder.
- When Sparki’s rangefinder finds an obstacle:
- Make Sparki beep using the buzzer.
- Change the LED to red.
- Make Sparki move backward.
- Make Sparki turn.
Coding the Wall Avoidance Program
Now that we know what to do, let’s figure out how to do it using the blocks that miniBloq provides:- Center the ultrasonic sensor so it points to the front:
- Change the color of the LED to green (later in this same lesson, we will see the values needed for this block’s parameters in order to turn the RGB LED green):
- Make Sparki go forward:
- Sense distance with the rangefinder:
- Make Sparki beep:
- Change the LED to red (later in this same lesson, we will see the values needed for this block’s parameters, in order to turn the RGB LED red):
- Make Sparki move backward:
- Make Sparki turn:
Putting pieces together, we can make chunks of commands which represent what Sparki normally does and what Sparki does when it finds a wall.
Normally, we want the robot to:
- Change the color of the LED to green.
- Go forward.
And the commands for the chunk when it detects the wall or obstacle are:
- Make the LED red
- Beep
- Move backward
- Turn
Now let’s look at what that looks like when we put it all together! Remember that we want the robot to make decisions, so we have wrapped large parts of the code inside an if block (equivalent to the if statements when programming in SparkiDuino), so it only triggers under the right conditions:
We have also added a delay block before the robot checks the distance again:
This is because Sparki’s brains are much faster than its wheels, so there is no use in checking again until the robot has moved a bit:
Now you’ve made Sparki avoid walls and obstacles!
Related Lessons
To learn more about the ultrasonic range finder, take a look at the following lessons:- Using the Ultrasonic Distance Sensor
- Also, a similar technique but using different sensors is used in the Edge Avoidance lesson.
SparkiDuino Programming Environment
This lesson is also available for the SparkiDuino Programming Environment. SparkiDuino will allow you to program your Sparki using standard Arduino syntax.
