Treasure hunt

Spring 2019

The questions below are due on Sunday March 10, 2019; 11:59:00 PM.
You are not logged in.

If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site ( to authenticate, and then you will be redirected back to this page.

Back to Exercise 05

1) Overview

In this Design Exercise, you will create a game where students navigate outdoors to a particular location, after which time a message will appear on the their system's LCD, and then they can go to the next location, and so on. We'll give you a lot of flexibility in implementation, but in general: You start with a pre-made list of locations you need to visit on campus (feel free to use the discretized campus zones from Lab 04A) living on the server. One of these locations is displayed on the labkit's LCD. You and your device (you have battery power now remember), must move to that region, and then when it/you get there, the screen will update and tell you the next one to go to, and so on.

This system will require both a local lab-kit embedded script as well as a server-side script and a database!

2) Specs

  • The Treasure Hunt path must be at least five locations long.
  • You need to demonstrate it in your video. "Theoretical" working code isn't worth much, if anything, so plan ahead.
  • Your game should download one goal location at a time. It is not required to show the direction or distance that the person should walk in, though you may choose to implement such functionality if you wish (and it would be very cool if you did, but that involves the IMU's onboard compass which we won't deal with until week 7 probably). Also, you don't need to worry about the curvature of the earth; you can do all your calculations in rectangular coordinates.

  • There should be a way, using button(s), to reset the game (without turning the ESP32 off and on, or hitting the reset button).

The GPS signal is good on some days and times and worse on others. Please plan ahead on this. Poor GPS signal at 11:57pm on Sunday night is not a justifiable reason to ask for an extension.

Any late factors are based on the timestamp for the last time that the URL is entered on the page or when the code is uploaded or when a comment is added/changed. If you change your URL after the deadline you will incur a late penalty. If you upload code after the deadline, you will incur a late penalty. If you comment after the deadline, you will incur a late penalty. One-Week Extensions DO NOT APPLY Design Exercises.

You must upload ALL CODE that you used in your design in one compressed folder This includes both server-side and embedded side. IN ONE COMPRESSED FOLDER. The system only takes the most recent upload, so if you upload a server file and then your embedded file, that will cause issues. Failure to upload code will result in signifcant point loss. This includes if you just forgot. Screenshots of your file's last modified date in My Computer are not evidence that the file has not been changed. They must be uploaded.

Problem Status:
A Python Error Occurred:

Error on line 2 of python tag (line 42 of file /S19/ex05/treasure_hunt):
    kerberos = cs_user_info['username']

KeyError: 'username'

Enter the url for the video

Submit your ESP32 and server code as a zip file here:

 No file selected

Enter any comments you may want us to know about. For example, if you started this exercise but don't want it graded, make a note here. Please hit submit on this question even if you don't have any comments.

This problem will not be marked as done until graded by the staff. If you have filled it out, it will appear as with a note saying "Work Submitted" on the main ex05 page.

Back to Exercise 05

This page was last updated on Thursday March 14, 2019 at 10:50:14 PM (revision f58a85e).
Course Site powered by CAT-SOOP 14.0.4.dev5.
CAT-SOOP is free/libre software, available under the terms
of the GNU Affero General Public License, version 3.
(Download Source Code)
CSS/stryling from the Outboxcraft library Beauter, licensed under MIT
Copyright 2017