Files
micromelon-website/content/resources/driving-shapes-2.mdx
Tim Hadwen ae3ae18585 Major site overhaul: resources hub, content migration, new blog posts, forms
- Redesign /resources as sectioned hub with category pages
- Migrate 645 Squarespace CDN images to local /images/content/
- Create 9 new news/blog posts with event photos
- Fix blog post slugs (rename gibberish filenames)
- Rename Design Blog to Design Blogs across site
- Remove education page, replace with Platform in nav
- Redesign rover repair request form with dynamic rover entries
- Add school search combobox to contact, store, and repair forms
- Extract shared KNOWN_SCHOOLS data
- Make /rover-expansion-3d-printing dynamically pull from MDX
- Add related resources sections to product pages
- Fix homepage broken /quote links to /store
- Store page: sample kit cards, inline quote builder, mailing list opt-in
2026-03-01 17:14:05 +10:00

82 lines
2.1 KiB
Plaintext
Raw 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: Driving Shapes 2"
date: "2021-06-03"
categories: ["Activities", "All"]
tags: ["Iteration", "Variables", "Motors", "Maths", "Intermediate"]
excerpt: "Learn branching, variables maths, and motors."
featuredImage: "/images/resources/driving-shapes-2.png"
---
Program the rover to request a number from the user and drive in a shape with that many sides. For more advanced maths make the rover draw the shape with uneven length sides.
####
Relevant Coding Skills
Branching
-->
Iteration
Functions
Variables
Algorithm Design
-->
Maths
####
Relevant Rover Concepts
Ultrasonic
-->
IR
-->
Colour
Gyroscope
Accelerometer
Motors
LEDs
-->
Buzzer
-->
Activity Demonstration
### Setup
All you need is a flat, uniform surface to drive on. Different surfaces have different friction properties. This means the tracks will slip differently dependent on where the rover is driving. Some movement blocks such as turn by degrees are calibrated for an average friction. When driving on other surfaces you may need to turn more or less to get the desired angle.
### Heres Our Approach
#### Stage 1
First we need to ask for a number of sides. We can use the request input block. This block returns this a text string. We need to convert it to an integer so that it can be used as a number. Once we have converted it we store the number in a variable called sides.
**Stage 2**
Once we have a number of sides we can create the code to draw our shape. We will need a repeat for number loop block to repeat the movement blocks for each side. This loop needs to run as many times as we have sides, so we put our sides variable block in the number of times it will repeat.
#### **Stage 3**
In each iteration of the loop we need to draw a side with movement blocks. We need to move forward and then turn by degrees. We can calculate how many degrees we need to turn each time a simple math operation. Divide 360 by our number of sides using a math operation block.
![](/images/content/4b02d9-drivingshapes2-answer.png)
Example Code