In this example, we use one of the GoGo Board’s onboard sensors, the inertial measurement unit (IMU), to create a basic step counter.
The IMU is a motion sensor that measures the GoGo Board’s movement. It can tell if the board is tilting (up, down, left, or right), accelerating, shaking, free-falling, or facing up or down.
On top of introducing motion sensing via the onboard IMU, this example also introduces the programming construct of variable manipulation to track the number of steps taken.
Before we get started with making and coding your step counter, let’s use the onboard control menu to try out the IMU. Using the joystick on the right side of the GoGo Board, navigate to the “Test Your Board” screen, pictured below.
For this project, we want to look at the section on the top right, labelled “IMU sensor.” Notice how the reading changes as you try tilting your board in different directions, holding it face-up and face-down, and shaking it. It’s useful to get a rough sense for how far you need to tilt or how hard you need to shake in order for the board to properly detect that motion.
Note: as you move and shake the board please hold the board securely and be careful to not accidentally disconnect the USB-C cable.
What you will need:
- A GoGo Board
- A USB-C cable
- A power bank
- Something to attach the GoGo Board to your leg (string, tape, or a pants pocket)
- A computer with the GoGo Plugin installed, a web browser (to access the code.gogoboard.org website), and a USB port
- The GoGo Plugin
- A web browser (to access code.gogoboard.org)
What you will need (visual, test):
Here are two questions to think about to guide your making:
- Where will you place the GoGo Board to accurately capture steps?
- How will you securely attach the GoGo Board to that location?
What are the key elements of a step counter? Here are some suggestions:
- Detect when a step has been taken
- Keep track of the number of steps that have been taken
- Display the number of steps that have been taken
- Create a “steps” variable and set it to 0.
- Create a forever-do loop with a 300 ms wait time
- Create a an if-do conditional block that increments the “steps” variable each time the GoGo Board detects a “shake” gesture.
- Show the number of “steps” on the onboard display.
set steps 0
set steps (0)
if (boardgesture = 8)
set steps ( steps + 1 )
Test the accuracy of your step counter:
Try walking with your step counter while counting your steps aloud and check if your number matches the one on the GoGo display. Is it more or less accurate if you jog or run? What about if you change your gait?
How might you improve the accuracy of your step counter? One thing to try is looking at your code to see what might be causing it to skip a count or count extra steps in certain cases…In our code example, the loop wait time is set to 300 milliseconds. What happens if you decrease or increase this number?
Here are some other projects to try that make use of the IMU sensor:
- Connect a servo motor to your GoGo Board and control it’s direction with tilt.
- Use the keyboard emulation functions to create a GoGo-powered steering wheel to control Scratch games and animations.
- Use the free-fall sensing capability of the IMU and the onboard buzzer (or WiFi messaging functions) to create an automatic fall detection medical alert device.