Coding Club Activity: SAS CodeSnaps and Sphero Robot

Cheers erupted when the girls' team and then the boys' team successfully coded their Sphero robots on a route around an obstacle. The Coding Club at the Governor Morehead School for the Blind in Raleigh, North Carolina had a stiff competition between the girls and the boys. The coding challenge was led by a team from SAS, the developers of SAS CodeSnaps app.


Note: These materials are for two coding teams. To keep every member actively engaged, it is recommended to have 2 - 3 students on a team.

  • Code Blocks
    • 10 Move Forward Blocks
    • 5 Turn Left Blocks
    • 5 Turn Right Blocks
    • Two sets of Numbers 1 - 9 (QR Codes); 4 duplicates of each number per set
  • One roll of Gaffer's tape
  • 2 Spheros and 2 iPads (1 for each team; Sphero and iPad can be shared)
  • 2 Red Solo cups
  • Low adhesive poster putty (Hang Tak)
  • One trash can
  • 1 Dowel Rod (cut to 1 Meter length)
  • Optional: 1 Dowel Rod (cut to 1 Foot length)

Using the Gaffer's tape, mark a Start/Finish line and place a trashcan several meters out from that line. (The GMS classroom allowed approximately 2.7 meters between the trashcan and the start/finish line.)

Stacks of Move Forward, turn left, turn right, spin and wait code blocks, small tubs of QR code numbers 1-9 and Hang Tac adhesive.

* Download and printable code blocks here.

Note: Only the code blocks listed above and the QR Code Numbers will be used in this activity.

The paper printed code blocks were modified to be more sturdy for users who are visually impaired. Cut out each printed code block. Using foam poster board, cut out the same size rectangle shape as each printed code block. Do NOT cut out the tabs - leave the foam board as a true rectangle. (The paper tabs should be cut out on the paper version - this will help students align the code blocks in a column (from top to bottom.) For a smooth cut, it is recommended to use an exacto-knife.

Before adhering the printed code, mark where the three QR code squares are at the bottom. Use a tool (can be a pencil) to score around each box, creating a tactile indentation in the foam board. Note: The Move Forward block has the default QR codes for "00.0"

Adhere the printed code block to the foam board using double-sided tape.

Printed Code block adhered to foam board cut out in rectangular shape; print version has tab sticking out that helps align multiple code blocks together.

Using sticky backed clear labels, add braille to the direction (Move Forward in this example), decimal point and Meters. You can choose to laminate the printed code blocks and add braille using a Perkins Style Braille Writer. If so, it is recommened to laminate and braille the printed sheets BEFORE cutting the code blocks apart!

Modified Move Forward code block: Move Forward, 3 QR code squares, and meters in braille.

The small QR code number squares are not adhered to foam, as they will be placed on top of the QR squares on the Move Forward code block. In this example, the top left corner of the QR code number square is cut off. This indicates which way the code square should be placed. On the back of the QR code square, add the corresponding braille number. NOTE: Do not add the braille to the front of the QR code square, as that will interfere with the QR code scan! This example has the number 4.

Note: Student feedback said that they would like to be able to confirm the braille number without having to take the number off the Move Forward board. It might be possible to leave more space above or below the QR code number (making the QR number squares bigger) in order to add braille on the front of the square above or below the square but not overlapping the QR code?

Photo of small QR Square with a number. The top left corner is cut off. The back of the QR square has a braille label.

Introduction to Code Blocks

  • Discuss the Sphero Robot (robotic ball with motorized gears that can move, turn, spin, and light up) and what commands the Sphero will accept. Let students explore the Sphero and ask questions.
  • Introduce the code blocks and QR code numbers. Let the students hold the blocks and QR codes and ask questions.
    • The Move Forward block defines the number of Meters that the Sphero will move.
  • Discuss how the QR numbers can be added to the code blocks using the poster putty. 
  • Be sure to explain what QR codes are and how they apply to this activity!
    • QR code: "Quick Response Code" is a machine-readable label that contains a URL or other information that is read by a camera. QR Codes are an array of black and white marks in a square.
    • Specific QR codes are used with the code blocks and QR code numbers. The CodeSnaps app uses the iPad's camera to input those QR codes into the app that then controls the Sphero.
    • The code blocks are the code that tells the Sphero what to do.
  • Show the Meter rod and discuss that the Sphero moves forward by Meters.  

Student sitting at a table exploring code blocks and adding a QR number to the Move Forward block.

CodeSnaps Challenge

The challenge is for students to determine the commands needed for the Sphero to successfully complete the course and to code those commands. The course is for the Sphero to travel to the trash can, go around (behind) the trash can, then cross the Start/Finish line.

Break the students into teams. The Governor Morehead Coding Club was dividing into two teams: boys team and girls team. Team members chose specific roles: Product Manager, Programmer, and Tester. Team members were encouraged to problem solve and work together - regardless of individual roles - as a team. Teams performed the activity primarily without assistance from the adults. The Project Manager is typically the job responsible for keeping things moving forward.

The Project Manager determined how many meters from the Start/Finish line to the trash can. (1 Meter dowel rod was the available measuring tool.) He also determined the route and turns.

Photo of student kneeling on the ground with one end of the Meter rod on the start line; second student marking the end of the rod. Adult supervising in the background.

The Programmer used the information gathered by the Product Manager to write the code using the code blocks. Placing the first code block (command) at the top, the Product Manager added each command in the correct order and placed the associated QR number (meters) on the Move Forward block.

The picture below is of the girls team's first Sphero run:

  • Move Forward 2.7 Meters
  • Turn Left
  • Move Forward 1.0 Meters
  • Turn Right
  • Move Forward 2.7 Meters

Photo of Girls' first Sphero Run coding blocks.

The team should confirm the code.

Using the CodeSnaps app, a SAS team member scanned the coding blocks. Note: Scanning the coding blocks is not accessible. The scan requires that each QR code on each block to be captured in one scan. Once the iPad captures the first QR codes, the iPad has to be moved down the coding block column. Scanning requires vision to know when each QR code is captured and then to move down to the next group of QR codes.

NOTE: The last QR code is not always captured or a QR code might have been skipped during the scanning. Be sure to check that the code was captured correctly before running the code!

It is critical that the code on the app is read aloud (VoiceOver does work) and that the Programmer/team confirms that the app has the correct code. If there is a mistake, manually fix the code in the app. (For more information about the CodeSnaps app, see the CodeSnaps app post here.)

An iPad running the CodeSnaps app scans the Girls' first Sphero run code blocks.

The video below shows the first Sphero run for the girls team. The Sphero travels to the trash can, turns left to behind the trash can, turn right (going off course) and then runs into the wall.

NOTE: A SAS staff member calibrated the Sphero (calibrating requires vision). A red Solo cup is placed over the Sphero. This helps students with low vision to see the Sphero and the cup adds an auditory clue for students who are unable to see the Sphero.

In a true engineering spirit, the girls discussed what happened and identified where the Sphero went off route. They debugged their code and tried again.


The initial Sphero run for the boys went out to the trash can, turned around (in place) and back to the start/finish line without going around the trash can.

This video demonstrates the guided debugging discussion. Ed Summers, who leads the SAS Accessibility team, discussed the Sphero route while a human guide led the Project Manager through the first Sphero route.


This video demonstrated how Ed helped a student debug the measurement issue by measuring the width of the trash can, estimate the measurement, and why that measurement needed to be included in the code.

This final video demonstrates the third Sphero run for the boys' team. Success!

Teacher Hints

While we want students to be successful, part of the learning process is how to work as a team and how to problem-solve. On a more complicated route, it may be important for students to walk the course first. Since this is a simple course, students should take a first stab and then figure out what (if anything!) went wrong and then debug their code. (So, do not suggest to the students  to walk the course first - let the student team figure out that walking the course might improve their success!) For students with visual impairments, there are often gaps in foundational knowledge that are easily addressed during hands-on activities like this.

Teachable Moments

  • Measuring: With this group of visually impaired students, some of the students did not know how to measure using the Meter rod. A student was talked through how to measure with a teammate, placing a finger on the floor to mark the end of the rod, then moving the rod forward and using that marked spot as the start of the second meter.
  • Estimating Measurements: Guided discussion was needed to figure out how to measure .6 meter (width of the trashcan) using a 1 meter rod. How to find the middle/half, why we measure up to code this route, and other math concepts were discussed.
  • Branching off from this discussion was estimating how tall Ed Summers is. One student guessed 6'4". When asked what that would be in feet, the students did not know. Ed used the Meter rod to measure himself. 1 meter was just below his belt. The second meter was just above his head, indicating that he was less than 2 meters tall. The students then estimated that Ed is 1.8 meters tall.
  • Additional measurement discussions:
    • Comparison between the 1 meter and the 1 foot dowel rods
    • Measuring by foot steps (stride vs. toe-to-heel)
    • Measure various parts of the body to find 1 meter or 1 foot equivalent on each student
    • Estimating!

There are many math and Orientation and Mobility concepts that are built into Sphero routes and coding!

Student Feedback

  • During the debriefing, students commented that they loved the Sphero and coding!
  • Students wanted to do another route - a more complex route.
  • Students enjoyed the team work.
  • Students enjoyed experience of coding and then having the robot run the route.
  • Students said that they feel comfortable enough with the activity to be able to teach a younger group of students.

Collage of Coding Club Activity