Activity

# Sensitive step counter

Intermediate | MakeCode, Python | Accelerometer, LED display | Forces, Human body, Measurement, Multiplication, Performance tools, Product design, Sensors

## Step 1: Make it

### What is it?

A step-counter you can make more accurate by tailoring it to your own walking style.

### What you’ll learn

• How the micro:bit can collect numerical acceleration data
• How to apply thresholds to sensor data to trigger events like increasing a step counter

### How it works

• The Step counter and Low energy step counter projects use the ‘shake’ gesture to count steps. The 'shake' gesture uses several accelerometer sensor readings to decide if the micro:bit has been shaken.
• You may find that the ‘shake’ gesture isn’t triggered every time you take a step, or that it’s triggered too easily, leading to inaccurate counting of steps.
• To make a more accurate step counter, instead of using the ‘shake’ gesture, this program uses numerical data from the accelerometer to decide whether you’ve taken a step and, if you have, increase the steps variable by 1.
• If the acceleration is greater than (>) 1500, the steps variable is increased by one and show the step count on the LED display output. 1500 is the threshold – the point at which a movement will trigger a step to be counted.
• You may need to change the 1500 number to make the step counter more accurate – but you can decide what threshold to use, whereas with the ‘shake’ gesture the threshold has been decided for you by the people who designed the micro:bit.
• Modifying the threshold to work for you is called calibration.
• Note that when micro:bit is not moving, the accelerometer gives a strength reading of about 1000. This is caused by the Earth’s gravity pulling down on the micro:bit.

### What you need

• micro:bit (or MakeCode simulator)
• MakeCode or Python editor
• battery pack (optional)
• something to attach the micro:bit to your shoe or leg – string or Velcro.

## Step 2: Code it

``````1from microbit import *
2steps=0
3
4while True:
5    if accelerometer.get_y() > 1500:
6        steps += 1
7        display.scroll(steps)
8
``````

## Step 3: Improve it

• Make your batteries last longer by changing the program so it only shows the number of steps when you press button A.
• Modify the program so button B sets the counter back to 0.
• Measure the length of your step and get micro:bit to multiply this by the number of steps to calculate the distance you’ve walked.
• The accelerometer can measure forces in 3 dimensions, called the X, Y and Z axes. You can modify the code to choose which axis to measure, depending on which way up you fix your micro:bit to your leg or shoe.