Files
micromelon-website/content/resources/activity-servo-gauge.mdx
Tim Hadwen 1f8c46597b Site audit: fix broken images, add activity metadata, clean up content
- Remove broken image references from 25 MDX files (deleted spacer/content images)
- Add codingSkills and roverConcepts frontmatter to 24 activity pages
- Fix "Activity Demonstration" headings in 15 activity files (plain text -> h3)
- Remove unused "All" category from 89 MDX files
- Decode HTML entities (> <  ) in 9 content files
- Escape bare < > characters in MDX to fix build errors
- Standardize contact email to contact@micromelon.com.au
- Add missing description to rover-repair-request metadata
- Include previous session work: about-us updates, difficulty filtering,
  LearningPathway component, expanded schools list, new product/resource images

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:49:15 +10:00

75 lines
3.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Activity: Servo Gauge"
date: "2024-12-31"
categories: ["Activities", "Simulator Activities"]
tags: ["Attachments", "Servo Motors", "Intermediate"]
codingSkills: []
roverConcepts: ["Servo Motors"]
excerpt: "Use a micro servo to make your own visual gauges. Program the gauge to react to a sensor value, motor speed, or robot tilt to visualise data in a new way. In this activity, well be making a gauge to display the stability of the rover."
featuredImage: "/images/resources/activity-servo-gauge.jpg"
---
Use a micro servo to make your own visual gauges. Program the gauge to react to a sensor value, motor speed, or robot tilt to visualise data in a new way. In this activity, well be making a gauge to display the stability of the rover.
### Setup
**1)** We need a visual scale to attach to the servo. Start by printing the scale attachment below. It can help to glue the paper to card or cardboard for additional rigidity.
[Scale Attachment](/s/gauge.png)
![](/images/content/f93209-gauge.png)
**2)** Cut out the scale on the outer black line, as shown in the picture below.
![](/images/content/48cbaf-cut.jpg)
**3)** Position the scale on the front of the servo with the axle at the centre of the scale. Poke through the circles on the scale, and screw in two servo-mounting screws to keep the scale in place.
![](/images/content/292a59-screw.jpg)
**4)** Connect the servo to the left servo port on the rover and turn it on. Calibrate the servo by setting the servo to position -90, and attaching the servo horn pointing to the red portion on the scale.
![](/images/content/9f935c-set-servo.png)
![](/images/content/74b90e-program.jpg)
### Heres Our Approach
**Constant -** A constant is a variable that never changes when the code is run. In python, we write this in all capitals with underscores between words.
#### 1) Prepare the Loop:
![](/images/content/d0ea64-loop.png)
Start by setting up a While loop that will run forever. The gauge will read the sensor and update itself each time in this loop.
#### **2) The Scale Function:**
![](/images/content/2ed8d9-scale.png)
1st row (x) - This is the sensor value that will be scaled
2nd row (xmin) - This is the lowest number the sensor can be
3rd row (xmax) - This is the highest number the sensor can be
4th row (newMin) - The lowest number the scaled value can be
5th row (newMax) - The highest number the scaled value can be
From the math section, grab the Scale Number block. The purpose of this block is to take an input (like a sensor reading) and scale it to suit an output (like servo movements). This block works similarly to the diagram below. Here are the inputs for the block:
![](/images/content/6f008c-map_diagram.jpg)
*Example of the scale function from [0, 1023] to [0, 4]*
For this activity, we will use the y-axis of the accelerometer as our sensor. The limits of this sensor are [-1, 1]. We will connect this to the output of a servo with limits of [-90, 90]. Fill in the Scale block using these values.
#### **3) Complete Code:**
Finally, place a Move Servo block into the loop and put the scale function inside. Run the code and tilt the robot on its side. The gauge should move the hand the more you tilt the rover.
**Tip:**
Try changing some of the colours on the scale and adding numbers to it. Maybe connect it to other sensors like the Ultrasonic, and use the gauge to display how close an object is to the rover.