$29.99
ment 2: Light Show Create a light and sound show on your micro:bit
Digital media festivals like Canberra’s Enlighten Festival and Vivid Sydney use huge projectors and LED arrays to create a city-sized light (and sound) show for people to enjoy. Your task in this assignment is to create a micro light show on your micro:bit!
You are going to write an ARM assembly program that uses the LED array on your microbit to create a changing light experience that engages a viewer. The application for your show is a demonstration of your microbit’s LED array and what you can achieve with it!
The assignment builds upon what you have learned in labs 6 - 10:
Lab 7: Basic Machine Code Lab 8: Blinky Lab 9: Functions, Data Structures and Stack Lab 10 & 11: Interrupts and Wrapping Up If you have not completed the tasks in the above labs or do not understand the content, we strongly recommend that you first complete the labs and then start the assignment.
must be written in ARMv7 assembly using the assignment template (link) must use the LEDs to create a light show that changes over time should use scanning on the LEDs to enable displaying of any 5x5 image the light show must sufficiently demonstrate the techincal capabilities of your implementation must never stop (it can repeat or loop) must work when the microbit is powered over USB but not connected to a computer (that is, it works after you upload it and plug into a USB charger) should use memory (data structures) to create a changing and easily modifiable light show must include the submission of a <1000 words design document describing: what your design is (and how it meets the assignment specification) this is the code design, not what light show you’re displaying how you accomplished it why your design choices were appropriate for the task Note that we say < 1000 words. If you feel you have addressed all of what has been asked of you in less words, please don’t feel the need to hit 1000 words. You will end up writing a worse report by reducing the conciseness of it.
Deliverables To successfully complete this assignment, the following files must be submitted:
src/main.S containing your implementation src/_.S any additional files you wish to include or split your implementation across (optional) src/_-lib.S any files that contain alternative or modified versions of the functions found in lib/___.S (optional) statement-of-originality.md containing your name, uid and a list of references for any work that is not your own report.md containing your <1000 word design document optional assets/* containing any images you want to add in your document Marking Criteria Your assignment will be evaluated on the following criteria:
Sophistication of your implementation in ARM-v7 assembly language (50/100) Sophistication of your design and how it meets the assignment specification (25/100) Sophistication of analysis and evaluation of why your implementation is correct and appropriate for your design and what limitations it might have (25/100) Item 1 will be evaluated primarily through your program code. Items 2 and 3 will be evaluated through your report.md and the quality of the writing within.
For more information on items 2 and 3, read the design document guide.
For item 1, you can consider the following to be a part of assessing the sophistication of your program:
your use of memory for encoding your light show how easy it is to change what is displaying (a high quality submission should require little / no changes to the code to change what is being displayed) your level of extension beyond a basic scanning display your style and adherence to assembly programming standards includes things like following calling convention and good commenting for more information, check the assembly style guide Ideas For Implementation This list is non-exhaustive and is only provided as a guide to give you an idea of what we’re expecting the difficulty of the grade ranges to look like.
Each point is an example of a submission, meaning that you only have to do one point from that grade range (unless otherwise specified). However, the more featured your submission is, the higher the mark. In saying that though, a single high quality feature is probably better than a few low-quality ones.
“Good use of memoryâ€
This means that the program is easily changeable and controllable by modifying data structures in memory, without, or with very little, modification of the code and then uploading it to the board again to view those changes.
These are just provided as a guide and as mentioned, other aspects such as the quality of the report, quality of the programming, etc. also factor in to the grade. This means that just because you have successfully implemented something in grade range X, does not mean that you are guaranteed a grade in range X.
Pass (50 - 59%) Moving Display, Non-scanned, Good use of memory Moving Display, Scanned, Poor use of memory Credit (60 - 69%) Moving Display, Scanned, Good use of memory Distinction (70 - 79%) Everything from Credit level and at least one of:
Basic PWM (Pulse Width Modulation) eg: screen level brightness (all LEDs) Generative or changing light display using the hardware Random Number Generator Using the timer interrupt(s) as an integral part of your display High Distinction (80% - 100%) An HD is a mark of 80+, not 100. Just because you do something in this range, doesn’t mean that you can expect full marks.
Everything from Credit level and at least one of:
Complex PWM (Pulse Width Modulation) eg: per-LED brightness control that can be programmed with memory and change with the display
It will:
take your name and uid from the statement-of-originality.md take your report from report.md take references from the statement-of-originality.md take the code from all of your src/____.S files combine all of them into a single pdf To view the pdf, first click the ci icon on your most recent commit (as above), then click on the pdf job.
pdf job
Then, you’ll be taken to the job page, where you should see a “Job Artifacts†section, click on the Download button.
download pdf
This will download a zip file containing your pdf. Which should look something like this.
pdf example
There is more general info about gitlab ci here.