Coding Project 7 — Your Robot's Arm
KIPR · Botball Explorer
Activity Sections

Introductory · SPIKE Coding Project 7

Your Robot's Arm

A motor that goes to a place instead of just going. Seven points for touching one plastic guy.

Project
Coding Project 7
Strand
Coding
Phase
Make It Grab
Time
One class period
What You Are Doing
Giving a motor a new kind of job — going to a place — then using an arm to reach into the and touch Botguy.
Mission Anchor
Mission 9 — Recover Botguy (base)
What You Need
Before You Start
Project 6 — and your arm must be built, with the arm motor plugged into port C . Open the Arm Build Guide — Build guide coming soon — ask your teacher if this link is not live yet
Before you start: type your PIN in the box at the top of the page. Your teacher gave you this number. When you finish, press Download to save a local copy of your answers. This does not turn in your work automatically; give the downloaded file to your teacher.

Try It — A Different Kind of Job

Your arm motor is the exact same kind of motor as your wheels. What changes today is not the motor — it is the job.

A wheel’s jobAn arm’s job
What it doesRolls round and roundSwings between a few poses
What you tell itHow far to roll from wherever it isExactly where to be
When it is doneWhen the distance is used upWhen it arrives at the place

Remember the number from Project 3 — the one that changed when you turned a wheel by hand? The hub is counting every motor’s position, all the time. Today that counting stops being a curiosity and becomes the whole point: “up” is a place, not a push.

Feel the places

Arm motor in C. Connect the app and open the view that shows the connected devices, so you can see the arm motor’s live number.

Move the arm gently with your hand, from one end of its swing to the other, and watch the number.

Where the arm isRoughly what number the app shows
All the way up
All the way down

In your own words: what is the difference between telling a motor how far to roll and telling it where to be?

Learn It — Positions, Not Spins

One block does today’s job. It needs three pieces of information: which motor, which way round, and which place.

Positions live on a circle

A motor’s positions run from 0 to 359 degrees, like the face of a clock. And 0 is not random: look closely at the motor and you will find two little marks on its case. When the marks line up, the motor is at position 0. That is its home, and it is the same home every time — which is exactly what an arm needs.

This block finishes the trip

A go to position block does not start the arm and let go. It moves the arm all the way to the place, and only then does the next block run — just like your move-for blocks on the wheels.

⚠ An Arm Has Ends --- Respect Them

Once the arm is built, the motor cannot swing a full circle any more. Somewhere there is a frame, a floor, a robot in the way.

Command a position the arm physically cannot reach and two bad things happen at once: the motor strains against the obstacle, and — because the block is still waiting to arrive — your whole program stands still with it.

Find your arm’s real ends by hand first, and never command past them.

Set the Speed Before the First Move

Motor speed starts out fast — fine for wheels, violent for an arm. A full-speed arm slams down hard enough to shake the robot, scatter what you were reaching for, and loosen your build.

So the first arm rule: a set speed block for port C, at something gentle like 20%, before any arm move. Every arm program starts that way from now on.

Where you are headed

Watch Mission 9 video

Bonus Mission

9 points Live judged

Botguy is outside the enclosure AND is touching the warehouse floor.

Scores

  • A robot is touching Botguy.
  • Botguy is completely outside the enclosure and touching the warehouse floor.
  • Botguy is touching the warehouse floor while being held by a robot.

Does Not Score

  • A robot is near Botguy but not touching him.
  • Botguy is touching the warehouse floor but still touching the enclosure.
  • Botguy is removed from the enclosure but not touching the warehouse floor.

Seven points for one touch. It is the best points-per-effort deal on the field — as long as you actually make contact.

Do It — Reach and Touch

Step 1 — Find your arm’s home

New project called Arm — names in the project name. Build just this, and run it:

Watch where the arm ends up. That is your arm’s position 0 — its home. Everything else gets measured from here.

Where does my arm point at position 0?

Step 2 — Find your three positions

Now move the arm by hand, slowly, and read its live number in the app at each pose. These three numbers are about to run your whole season.

Arm positionDegrees
Up — clear of everything, safe for driving
Horizontal — straight out in front
Down — just above the floor

⚠ "Down" Is Not "Into the Floor"

Do not pick a down that presses the arm against the floor. The motor strains at a place it cannot reach — and every block after it waits forever for an arrival that never comes.

Step 3 — The Wave

Make the arm visit all three positions, holding each one long enough to see. Plan it as first — speed, then up, pause, horizontal, pause, down, pause, back up — then build it:

The position block already finishes the trip before the next block runs. So what are the wait blocks for?

Step 4 — Prove the speed matters

Change the set speed block to 100% and run the Wave again. Stand back a little.

What did the arm do?

Put it back to a gentle number. That is the arm’s speed from now on.

Step 5 — Prove the direction matters

Pick one position block and change shortest path to the arrow that goes the long way round. Run it — with your hand ready near the stop button.

What happened, and what could that do on a real field?

Set it back. From now on, the direction dropdown is a decision, not a default.

Step 6 — Drive and touch

New project called Reach. Practice away from the field first: put any object a short drive away, then drive to it and touch it with the arm.

Two rules, borrowed from how the mission works:

  • The arm must start up and move down to touch. No driving around with the arm already out front.
  • Touch it with the arm only — not with the robot’s body.
Code / partWhat it means
1. Arm starts up
2. Drive to the object
3. Stop
4. Lower the arm to touch it
5. Raise the arm again

Step 7 — Mission 9 — touch Botguy7 pts

Onto the field. New project called Botguy.

Botguy is inside the enclosure. Your robot has to reach in and make contact — direct contact, arm to Botguy.

TryWhat I changedDid the arm reach him?
1
2
3
4
Which was harder — getting the robot into position, or getting the arm to the right height?

Step 8 — Run it five times

RunTouched Botguy?
1
2
3
4
5

Score It — Checkpoint

My score

Mission partScored?Points
Mission 9 — Base (robot TOUCHING Botguy)7
My total7

My arm card

Keep these next to your driving numbers. Everything from here uses them.

SettingValue
Port my arm motor is in
Arm up position
Arm horizontal position
Arm down position
Arm position for touching Botguy
Speed I use for arm moves (%)

Can you do it again?

Think about it

A move block tells the wheels how far to roll from wherever they are. A position block tells the arm exactly where to end up. Why does the arm need the second kind?

Your position numbers are scattered through your program as bare numbers. If you rebuilt your arm slightly differently tomorrow, how many places would you have to change?

You can touch Botguy but you cannot get him out of the enclosure. What exactly can a claw do that a single arm cannot?

Next

In Project 8 — Arm and Claw Together, a second motor joins the first. Two motors working as one system means you can finally grab, carry, and release — and a whole set of missions opens up at once.

Download saves a local copy of your answers. It does not turn in your work automatically; give the downloaded file to your teacher.

KIPR · Botball Explorer — Introductory Projects · © KISS Institute for Practical Robotics 1997–2026