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 (https://shimmer.csail.mit.edu) to authenticate, and then you will be redirected back to this page.
For this exercise, build a two-face watch that renders on your LCD similar to the one shown below in the video (with some exceptions):
We used a different display the year this video was shot. This was on an OLED, and is a bit different. Read the specifications below so you know what is expected.
Specifications for 2020:
- The watch should have two "faces", with details of the design left up to you:
- A digital readout (for example "8:45") and
- An analog readout. The analog readout should have a hour, minute, and second hand.
- The user should be able swap between the two faces using a button connected to input pin 16.. Switching between the two faces should be based on pushing-and-then-releasing the button. One push-release sets it to analog. Another to digital. Another to analog. And so on. It cannot be pushed=analog/unpushed=digital for the faces. The button functionality must be sufficiently responsive that its usage isn't impaired at any time during operation (i.e. you should avoid blocking code with the exception of the GET request).
- In order to get absolute time, your device must make periodic HTTP GET requests to the url here: http://iesc-s3.mit.edu/esp32test/currenttime which will return the current Boston time in a format like the following:
2018-02-11 18:37:29.776430
- The device needs to only report the time (don't worry about temperature or anything else in the video), but it can't just repeatedly grab it off the server. Instead at most it can grab the time once every one minute, and in the time in between in must update based off of its own internal timer.
You cannot copy some random watch display code you found somewhere else. If you do that you will get a 0 on the assignment and other action will be taken.
You must submit three things for your design exercise using the three submission boxes below:
- First you must submit a Design Exercise Write-up. Use (the template file provided here). Read this file since it has some instructions about what to include.
- Second you must upload all of your code that you used in your design. Failure to upload code will result in significant 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.
- Third you must upload your video to YouTube or any other site that has a timestamp associated with it and is accessible by the staff. Do not upload it to a private video sharing thing where the staff can't see it. Youtube, Google Drive, TikTok (shudder) will all work. Just test the link. Enter the link in the third box below.
Submit your writeup here: No file selected
Submit all of your code here as a zip file: No file selected
Enter the url for the video
Problem Status:
A Python Error Occurred:
Error on line 2 of Python tag (line 100 of source): kerberos = cs_user_info['username'] KeyError: 'username'
This problem will not be marked as done (100) until graded by the staff. If you have filled it out, it will appear as with a note saying "Work Submitted" on the main ex01 page.