Lesson 10 – Obstacle Avoidance & Navigation

Tutorial –

Objective – As part of this tutorial we will implement what we have learned with obstacle sensing and intelligently navigate around the obsctacles.

Setting things up – Let’s head over to the BBC MakeCode website (https://makecode.microbit.org) since we will be using the MakeCode block editor to code the Micro:Maqueen.

Before we can write any code and get our robot to do stuff for us we need to include some specific libraries (Code) that will allow the BBC Micro:Bit board to understand the different components, capabilities of the robot. We call this special code libraries.

Here’s the steps to import the library –

  1. Head over to the MakeCode website at : makecode.microbit.org using a new browser window. The first time it loads things might be a bit slow.
  2. Let’s create a new project to get started.
  3. Now go ahead and let’s import the library.
  4. Click the gear icon shown on the right hand side of your screen, click on “Extensions” and then enter the library address: https://github.com/jhlucky/maqueen
  5. Import the library by clicking on it.

Let’s Get Coding – In one of our previous tutorials we learned about the use of the Ultrasonic Sensor (HC-SR04). The Ultrasonic sensor can be plugged into the Micro:Maqueen robot to give it the ability to sense obstacles. In the previous tutorial we used the Ultrasonic sensor to measure distance to the obstacle in front of it and displayed that value on the micro:bit LED’s. As part of this tutorial we will take that learning a bit further. We will write code that helps our robot sense obstacles in front of it and make smart decisions helping our robot to navigate around the obstacle.

Enter the code provided below into your MakeCode Editor where you have loaded the Micro:Maqueen libraries.

Upload the code to the micro:bit and you should now have a robot that senses obstacles, navigates around it intelligently.

Have a look at the sample program at – https://makecode.microbit.org/_Fa4Ef3DwyXW7

Challenge – Can you stretch yourself with the following challenges –

  1. Write code to sense obstacles and stop when it senses something in front of it
  2. Write code to get the robot to blink it’s lights when it encounters an obstacle in front of it and change to green once it starts moving again
  3. Write code, program a key on the IR controller to send signals that tell the robot to stop the car dead in its tracks
  4. Write code, program a key to send signals and get the robot to flash all it’s lights i.e. LED’s and neopixels

Prerequisites –

  1. This development track makes extensive use of the BBC micro:bit.
  2. If you haven’t purchased a BBC micro:bit yet you might want to head over to OzToyLib and pick one up now.
  3. We would recommend that you pick up the BBC micro:bit kit which comes with a battery pack, usb cable and the real micro:bit.
  4. We will be using the official online BBC MakeCode Block editor to write code for all our tutorials. No investment required here.
  5. You will also need a Micro:Maqueen STEM robot to be able to work on this development track. You can pick up the Micro:Maqueen robot from OzToyLib.

Reference –

  1. To learn more about the BBC micro:bit please visit – <Link>
  2. To learn more about global re-sellers of the BBC micro:bit please please visit – <Link>