联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2025-01-11 09:03

School of Physics, Engineering and Technology

[ELE000042C] [Programming and Digital Interfacing]

Assessment 2024/25

Summary Details

This assessment (Coding and interfacing project and brief report) contributes 100% of the assessment for

this module.

Submission is via VLE. The deadline is 1400 on Monday 13/01/25. Please try and submit early as any late

submissions will be penalised. Assessment information including on late penalties is given on the School of

PET Student Information Community Site

Academic Integrity

It is your responsibility to ensure that you understand and comply with the University’s policy on academic

integrity. If this is your first year of study at the University, then you also need to complete the mandatory

Academic Integrity Tutorial.

Please note:

● Unless the coursework specifies a group submission, you should assume that all submissions are

individual and should therefore be your own work.

● All assessment submissions are subject to the Department’s policy on plagiarism and, wherever

possible, will be checked by the Department using Turnitin software.

0

Contents

Summary Details.................................................................................................................................................. 0

Academic Integrity ............................................................................................................................................... 0

1 Assessment brief................................................................................................................................................ 2

2 Assessment requirements .................................................................................................................................. 3

2.1 Specifications and Restrictions ..................................................................................................................... 3

2.2 Submission requirements............................................................................................................................. 4

2.2.1 Report.................................................................................................................................................. 4

2.2.2 Project folder and functionality proof..................................................................................................... 4

3 Suggestions and guidelines................................................................................................................................. 5

3.1 Hardware connection guidelines................................................................................................................... 5

3.2 Basic to advanced software implementation ................................................................................................. 5

3.3 Making the submission on time and getting lab sign-offs................................................................................ 6

3.4 Tips on working........................................................................................................................................... 6

4 Indicative marks breakdown............................................................................................................................... 7

Appendix ............................................................................................................................................................. 7

A.1 Nucleo G071RB pinout................................................................................................................................ 7

A.2 Marking criteria in more detail..................................................................................................................... 8

A 2. 1 Notes.................................................................................................................................................. 8

A.3 Marking Rubric (Indicative).......................................................................................................................... 9

1

2

1 Assessment brief

90% of your module mark is achieved through submitting a code and a report on the task described below. Remaining

10% of your module mark is gained, as the module progresses, by providing evidence of being signed-off for the

successful completion of each of the assessed lab activities1 listed in section 3.3.

Your task, outside the lab activities, is to:

1. Write a program, using the Mbed OS environment and the Nucleo board provided (Nucleo G071RB), to display

the letters of your first and last name, in a scrolling fashion, on a single 7 segment display (provided in your kit

is the common cathode variant and is the one you must use) when a button specifically assigned (by you) is

pressed to trigger the display of each name. See figure 1 for pin-out of the 7 seg unit.

2. Write a short description of your code development process (more on this in section 2)

Figure 1: A 7-segment LED display pin information

This is an individual coursework and that means all the work must be your own. Collusion and plagiarism will attract

zero marks.

Read this document carefully and get back to me with any questions or concerns you may have via email or ask me

during the lab sessions. Please do not ask the GTAs about the assessment and do not rely on your peers for accurate

information.

1 10% of the module mark: Gained by READING the lab sheets BEFORE coming to the lab and making the necessary effort to

ATTEND each lab and COMPLETE DIRECTED TASKS and getting SIGNED-OFF. You do not need to submit any work arising from

your lab sheets, but you will need to declare having successfully completed the sign-off activities (which will then be verified).

2 Assessment requirements

2.1 Specifications and Restrictions

1. First 5 Letters* of your first name must be displayed when a button is pressed once by the user, and

First 5 Letters* of your last name must be displayed when another button is pressed once by the user.

E.g., For my (Rohan Kakade) first and last name, the outputs sequence would be as shown in figure 2 (1s inter letter gap is assumed here, but it can be anything reasonable). Click here for example videos.

Figure 2: Sample output for a system that display my first and last name

*Important note: If your first or last name contains less than 5 letters, then append any number(s) of your

choice to make it 5 characters each.

e.g., if your first name is “Tate” and your last name is “Sefe”, then you can display Tate1 Sefe2 or you can display

Tate3 Sefe8 etc. Hope you get the idea! If not, ask me.

2. Each lettermust be displayed for a suitably long time such that its comfortable for the user to read (you decide).

1s would be typical.

3. Both your first and last name must be displayed on the same 7 segment display i.e. you mayNOT use a second

7 segment display.

4. Letters must be displayed only in the format dictated by figure 3. No other format permitted.

5. The names must be your names (as recorded in university records) and not your nick names or shortened

names or your favourite person’s name etc.

6. The system functionality should be repeatable without requiring hard reset (i.e. without using the on-board

black button).

Figure 3: How alphanumeric characters should appear on the 7-segment display.

3

4

2.2 Submission requirements

8 elements constitute your assessment. They are described next. Please read carefully.

2.2.1 Report

Following 6 elements must be contained in a single document submitted in PDF format.

1. Block diagram of the system (on its own page ideally)

• Diagram showing how components are interfaced to the Nucleo board

• Do not draw by hand. I recommend using this free web tool, but you can use any tool you prefer.

• Embed/include links to datasheets of each component interfaced and the datasheet of the nucleo board

(Nucleo G071RB)

2. System schematic (on its own page ideally)

• Circuit Diagram showing how components are wired to the nucleo board that includes pin numbers and

component values. I recommend using EasyEDA online editor2

, but you are welcome to draw these using

any tool you like.

3. Flowchart (on its own page ideally)

• Algorithm of your final program in flowchart format.

• Please do not draw by hand. I recommend using this free web tool, but you can use any tool you prefer.

4. Code development story (1500 words max)

• Explanation of how the program was iteratively developed to its final stage. Show that you fully

understand what your program does and why it does it

• Do not paste in entire codes! Comment on what changes between different code versions and why these

changes were made.

• 1500 words max translates to about 3 pages with 1.5 line spacing and 12pt format. Length of your report

will vary depending on complexity of your code; more words do not equal higher marks.

5. Functionality proof (picture)

• Pictures of each letter of your name being displayed as expected (10 pictures in total; make a collage with

2 rows and 5 columns – first row for first name, second row for second name like in figure 2).

6. Sign-off proof

• A simple declaration at the end of the report saying “I claim sign-off for xx number of assessed labs”,

where xx is the number of assessment lab activities you have been signed-off for. The markers will verify

your claim.

2.2.2 Project folder and functionality proof

Following two elements must be submitted along with your report.

7. Functionality video proof (.mp4 file)

• Short (10-30s max) video (record using your phone or any other device) that clearly demonstrates the

functionality of your program. Should not exceed 90 MB.

• Ensure circuit connections and the Nucleo board are visible. Good wire management and neat breadboard

connections will be awarded.

• No marks for making fancy video edits and for adding audio commentary. No cuts or breaks in the

recording i.e. functionality demonstrated in one take

• Recording must be in .mp4 format (so that its playable on a standard video player like VLC)

8. The Mbed project folder (.tar file)

The entire Mbed project folder (must include main.cpp and any header files)

• Find and delete the file called compile_commands.json from your project to restrict the file size to under

25MB file size limit of the VLE. Right-click your completed project and choose “Download current selection”

OR left-click the “Download active project” menu option from the File menu.

2 If you are using EasyEDA for schematic creation, then you might need to look for the STM32G071RBT6 component in its library.

Refer to the lecture notes (on Schematic diagrams) for guidance.

3 Suggestions and guidelines

3.1 Hardware connection guidelines

1. LEDs are rated to have a maximum forward current and exceeding this can burn them out. Each LED on the 7-

segment display has a 20 mA max forward current rating. With 2.1 V forward voltage, the series resistor used

should be at least (3.3-2.1)/0.02 i.e. 60 Ω. I recommend using 100 Ω resistor between a nucleo pin and any

given segment. See figure 4.

Figure 4: Suggested 7-segment display interfacing to Nucleo

(schematic made in easyEDA)

2. You may choose to use the blue on-board button as one of the buttons, but the second button will need to be

connected externally. Don’t forget to configure the pull-up or pull-down resistor to avoid a floating input

condition. E.g., “DigitalIn buttonname(D0,Pullup);” will initialise digital pin D0 with a pull-up resistor.

3.2 Basic to advanced software implementation

3. A basic implementation, for pass mark, would demonstrate functionality using very linear programming that

simply checks each button and then turns on and off the LEDs to display a certain letter with thread_for_sleep()

to time the scrolling through of the letters. Nothing fancy here, but it meets the assessment brief.

4. Next level up - A simple system.

• This could deploy functions and set mechanisms to resolve button press conflicts and perhaps have

different scroll through times for the first and last names.

• It could also perhaps display some information on the serial monitor such as number of times the user

requests displaying each name.

• You could do something fun (yet simple) like displaying a default animation which gets erased and

written with the letter sequence invoked by the button.

• This is not an exhaustive list!

5. At the upper end - An intermediate and advanced system

• This could employ event-driven techniques for handling button events using callbacks to make code

more compact and efficient.

• You could create a class for driving the 7-segment display with methods (member functions) that allow

controlling the inter-letter times and selecting the precise letter to be displayed. There is opportunity

to pass on all pin states as a byte array to allow writing for example something like

“display(11111101);” to display ‘a’.

• Even better – you could pass on a letter or entire strings. Something like “display(‘r’);” or

“display(“rohan”);”

• Another interesting implementation could be asking the user to enter the names to be displayed and

then the letters of the chosen letters are displayed on button presses as before. This will require your

program be able to display any of the 26 alphabets.

5

6

• You could utilise interrupt service routines that allow the processor to do something else while the

buttons are not pressed. There might be an opportunity to use multiple threads.

• Again, this is not an exhaustive list by any means!

6. At whatever level you write your program, its important you clearly communicate your code development (it

carries the most marks!). Remember to save different versions of your program, so that you can present

snippets of each while discussing how your code has evolved.

3.3 Making the submission on time and getting lab sign-offs

7. As with anything important, do not try and submit at the last hour. You do not want to lose unnecessary marks

due to late handins.

8. For the sign-offs, it is your responsibility to ensure you get signed-off by a member of module staff (me or the

lab GTAs) BEFORE you leave the lab. Preparation is thus key; reading the lab brief document for the first time

during the lab will not work! If you miss a lab, for any reason, it is your responsibility to get signed-off in the

following lab(s).

9. Sign-off are only permitted in-person and attempting to get all/majority of the assessed weeks’ work signed

off in one lab will likely end in disappointment3 . Sign-offs over email will be permitted in exceptional situations

as judged appropriate by the module leader/school office.

10. The assessed labs (that require sign-off): Lab 3 (Functions), Lab 4 (Objects), Lab 5 (Motor control and

accelerometer sensing), Lab 7 (Interrupts), Lab 8 (Mutexes and Semaphores), Lab 9 (Pointers), Lab 10 (Arrays)

and Lab 11 (Strings).

3.4 Tips on working

11. Practice making a video of your circuit and check that you can upload to your university google drive and that

you are able to generate a link to this for inclusion in your report.

12. Start working on your project during the semester, rather than telling yourself “I’ll do it over Christmas”,

because you will likely have a hundred other things going on then (social events, exam prep, other coursework,

holiday etc.)

a. Clone this baremetal project if you don’t plan to use multiple threads or any event-driven techniques

(faster builds). Or clone this project if you want to use concurrent techniques (slower builds). These two

projects differ only in the contents of their mbed_app.json files, so it's easy enough to convert from one

configuration to the other if you find you need to.

b. Create a blank word document for your report or download and edit the report template document

available on the VLE (will save you time). If you are not using the template document, then in your

document create 8 headings (1 block diagram, 2 schematic, 3 flowchart, 4 code development story, 5

functionality pictures, 6 How to use guide, 7 Project planning evidence (Gantt chart) and 8 Sign-offs

declaration) to match requirements stated in section 2.2.1 and start working on headings 7, 1, 2 and 3 in

that order before starting to write any code and proceeding to other sections. System planning before

implementation.

c. Unless you are informed otherwise, once your report is ready, convert it to PDF format and give it a name

“PaDIprojectreport”

d. Once your Mbed project is ready and you are happy with the functionality

i. Record video of functionality and save it in .mp4 format.

ii. Download .tar file of your project (i.e. the entire Mbed project folder) as indicated in section 2.2.2.

iii. Move the .tar file, your .mp4 file and report’s .pdf file into one folder called “PaDIProject”

iv. Zip the folder and upload to the VLE submission page before the deadline

v. Celebrate! You are done!

3 You can expect 3-4 staff for 80 students in each session. Now imagine if 10 people were trying to get signed off with a few

saying “Can I get signed-off for the last 5 labs please?”

7

4 Indicative marks breakdown

# Criteria Weight

1 System planning and Interfacing methods

Block diagram, schematic, flowchart and use of appropriate h/w interfacing method

10%

2 Code development story

Evidence of code understanding

30%

3 Code structure (including code comments)

Evidence of clear, logical and readable code

15%

4 Functionality

Evidence of demonstrating core functionality

15%

5 Complexity and added functionality

Evidence of going beyond the base requirements and demonstrating innovation

20%

6 Lab sign-offs evidence

Evidence of lab activities completed.

(Evidence = sign-off by GTA/module in the lab)

10%

Appendix

A.1 Nucleo G071RB pinout

Available here

8

A.2 Marking criteria in more detail

# Criteria

[Refer to section 2.2, section 3.2, and section 3.3] for further details

Grade

0 = Little/No evidence

1 = Some evidence

2 = Good evidence

3 = Strong evidence

Weight

1 System planning and Interfacing methods

Evidence of system planning and appropriate hardware interfacing

10%

2 Code development story

Evidence of code understanding

30%

3 Code structure (including code comments)

Evidence of clear, logical and readable code

15%

4 Functionality

Evidence of demonstrating core functionality

15%

5 Complexity and added functionality

Evidence of going beyond the base requirements and demonstrating innovation

20%

6 Lab sign-offs evidence

Evidence of lab activities completed

(Evidence = sign-off by GTA/module leader in the lab)

[see notes] 10%

A 2. 1 Notes

Regarding lab sign-offs, your grade is calculated as per rubric. Key thing to note is that you if you receive less than 3 ‘assessed lab’ sign-offs, you do not get any marks in

this criteria, and full mark is only achieved by getting exactly 8 sign-offs (i.e. all assessed labs signed-off).

9

A.3 Marking Rubric (Indicative)

Criteria / Weight Little/No Evidence

Grade 0

Mark range: 0 - 39

Some evidence

Grade 1

Mark range: 40-59

Good evidence

Grade 2

Mark range: 60-79

Strong evidence

Grade 3

Mark range: 80-100

System planning

/ 10%

• Block diagram (BD),

schematic (SC) and

flowchart (FL) not provided

OR

Two or more of these are

presented in an incorrect

format.

• Hardware interfacing

might not have been

evidenced.

• One of the elements (BD,

SC, FL) is missing.

• Diagrams presented are

in the correct format, but

might contain missing or

incorrect information.

• There might be some

errors in hardware

interfacing.

• BD, SC and FL are ALL

presented, and each is

presented with good

level of detail.

• Flowchart contains

some level of specificity

to the target board and

Mbed OS.

• Hardware interfacing is

undertaken correctly

using appropriate

components.

• BD, SC and FL are ALL

presented, and each

presented with a high level

of detail.

• Due consideration and

justification provided for

choice of pins

• Flowchart is drawn to high

level of specificity to the

target board and Mbed OS.

• Appropriate components

used for interfacing with

good wire management.

Code development story

/ 30%

• Code sections from just a

single version of the code

are presented.

• No evidence of how and

why the code was

structured the way it was.

• An initial and a final

version of the key

sections (of the code) has

been presented.

• Some rationale provided

for the program design

choices made.

• Some changes may not

be explained at all or

explained inadequately.

• Multiple versions of the

code are discussed,

• Clear evidence for how

and why the code has

evolved to its final state.

• Changes made in a few

places were not

explained very clearly.

• A ‘how to use’ guide has

been presented.

• Multiple versions of the code

(key sections) are discussed,

with clear evidence for how

and why the code has

evolved to its final state.

• All design choices made

were explained very clearly.

• The various versions were

logged date wise and Gantt

chart presented.

• Very succinct and clear ‘how

to use’ guide has been

presented

10

Code structure

/ 15%

• Code has not been laid out

in any logical manner; poor

readability.

• Indentations are absent

and traces of legacy code

sections still present.

• Variables, functions and/or

classes not named

meaningfully.

• No comments provided to

explain complex and non obvious statements.

• Code may not compile.

• Code is largely structured

in a logical manner, but

comments are largely

missing to explain

complex and non obvious statements.

• Variables, functions

and/or classes are largely

named meaningfully.

• Choice of code structures

resulted in avoidable

repeated lines, leading to

higher memory use and

slower execution.

• No attempt made for

addressing error handling

and edge cases.

• Code compiles.

• Logical flow from start

to finish; good

readability.

• Well-indented in most

places

• Meaningful variable,

functions and/or classes

names.

• Comments are provided

consistently, with only

minor omissions, to

explain complex and

non-obvious

statements.

• Structured to reduce

execution time and

memory consumption.

• Error handling and edge

cases may not be

addressed effectively.

• Code compiles.

• Logical flow from start to

finish; excellent readability.

• Well-indented throughout

• Meaningful variable,

function and/or class names

and function names.

• Comments are provided

consistently to explain

complex and non-obvious

statements.

• Structured to considerably

minimise execution time and

memory consumption.

• Error handling and edge

cases are addressed

effectively.

• Code compiles.

Functionality

/ 15%

• Base

functionality not

achieved.

OR

• Functionality not

demonstrated.

Marks: 0

• Partial functionality achieved.

• Demonstrated through video and pictures of some/most of the letters

displayed as per design.

Marks: 50

• System is fully functional

(meets the requirements).

• Functionality demonstrated

(video and pictures)

Marks: 100

Complexity and added

functionality

/ 20%

SECTION 3.2

Base level achieved.

Mark range: 0-49

Intermediate level achieved.

Mark range: 50-79

Advanced level achieved.

Mark range: 80-100

Lab Signs-off evidence

/10%

SECTION 3.3

0<= Sign-offs <= 2

Marks: 0

3<= Sign-offs <=5

Marks: 30,45,60

6 <= Sign-offs <= 7

Marks: 70, 85

Sign-offs = 8

Marks: 100

11


相关文章

【上一篇】:到头了
【下一篇】:没有了

版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp