ENCE260 Embedded Programming Semester 2 2024R

Java Python ENCE260 Embedded Programming Assignment

Semester 2 2024

Due: Your lab session during Week 6 of Term 4 2024

Worth: 10% of final grade

Groups: Students work in assigned groups of two.

Purpose: To learn about simple, modular C programming on a small-scale embedded system.

1. Introduction

As a pair, you are to write a two-player game using two UCFK4 microcontroller boards, using the API functions provided. The   goals of the assignment are:

1. To program a small-scale embedded system.

2. To use the API modules provided to abstract hardware dependence.

3. To structure the program in multiple C modules.

4. To actively use a version control system – git.

5. To collaborate on writing software with your partner.

2.General instructions

1. You will be allocated a project partner by Learn's booking system in Week 2 of Term 4. It is your responsibility to contact them as soon as possible. Your group is registered so each group will have an individual group number. Your git repository name is based on your group number. Login to your git repository and start using it once you have been assigned a partner. Your code cannot be marked if it is not in your group’s repository. Contact Richard Clare (richard.clare@canterbury.ac.nz) if you haven’t been allocated a partner or haven’t been able to contact your partner by the end of Week 3.

2. Develop a two-player interactive game for the UCFK4 using the navswitch, pushbutton, display, and IR communications.

3. Demonstrate your program during your lab session during the last week of Term 4. The first hour of the lab session is for you to set up. You may volunteer to have your assignment marked in the first hour. Otherwise, in the second hour, when the lecturer or TA asks you to demonstrate your game, you need to demonstrate.

4. Your program must be compiled and demonstrated on the Erskine Lab computers, which run with avr-gcc 5.4.0.

5. Perform. a final commit of your program source code to your git repository before the end of your demonstration session. The git repositories will be cloned at the end of the demonstration session. If you use multiple branches in your repository, only the default branch will be cloned and marked.

6. You are strongly encouraged to use the existing API functions in /utils , /drivers, and in /drivers/avr such as pio, timer and tinygl.

7. Both members of a group receive the same mark regardless of the contribution. Both members have to attend the demonstration to both be awarded the demonstration mark.

8. As the demonstration mark is given for a live demonstration, this mark cannot be appealed or reviewed.

3.Program submission

1.  Your game must consist of a single application (binary). If you require different functionality on each board, then this must be determined at run-time, say by pushing a button. You cannot have two separate Makefiles. At the demonstration, both UCFK4 boards must be  ENCE260 Embedded Programming Assignment Semester 2 2024R programmed from the same machine.

2.   Ensure each of your source modules have both group members’ names and usercodes in a banner at the top of each source file.

3.   Place all your final application modules in your git cloned directory: /ence260-ucfk4/assignment/group_XXX, where XXX is your group number, e.g., group_123 (do not create any subdirs in the dir). By doing this you will be able to periodically push your source  files directly from your group_XXX directory to your repository. Better still, the marker will be able to compile your game using your Makefile that provides relative (from your build directory) dependences.

4.   If you use multiple branches, make sure the code you wish to be marked is in your default branch.

5.   Ensure that you have a working Makefile that will build your program. Note that a template Makefile is provided. Also note that marks will be lost if your application cannot be built by  running make from the files in your repository.

6.   Provide a README file with instructions on how to play your game.

4. Assessment

Your programs will be compiled, checked for compiler warnings and errors, and vigorously checked for plagiarism against other groups from this and previous years and the /apps directory. Marks will be based on the following:

1. How well your program works during a short inspection

2. The complexity and originality of your game.

3. The modularity of your programs.

4. The readability of your programs (consistent formatting, commenting/documentation, avoidance of embedded constants or magic numbers, consistent naming).

5. The use of git for version control, and the README to describe how to play the game.

The marking rubric for the assignment (demonstration and source code) is available on Learn. The demonstration and source code are weighted equally (ie both are worth 5% of your final grade).

5. Plagiarism

Every year we detect plagiarism in this assignment. We use software to check your source code with material on the web (github etc.), against all groups from this and previous years, and the /apps directory. Any plagiarism will not only result in zero marks being awarded for this assignment, but a referral to the University Proctor. You may use the API functions provided. Students repeating the course must complete the assignment, and cannot re-use code from  previous attempts at the course (this is still considered to be plagiarism).

6. Suggestions

Look at the example apps (in /apps) and the header examples, i.e., pacer.h, button.h, tinygl.h, ir serial.h, etc.

1.  Look at the on-line documentation on Learn

https://learn.canterbury.ac.nz/mod/page/view.php?id=3677189

2.  Write a number of simple test applications, using one of the simple example applications (such as /apps/updown2) as a template.

3.  Follow a consistent coding style.

4.  You don't have a lot of memory (RAM or EEPROM) to play with, so keep things simple.

5.  Ensure you commit your game regularly to your git repository         

对于哪8支队伍能够晋级到冠军组,我需要对这些队伍目前的表现和历史数据进行评估。以下是我对这些队伍的简要分析: 1. Heroic: 这支队伍在过去几个月一直表现非常出色,赢得了多个比赛。他们有着很好的战术和团队配合,是一支非常有实力的队伍。他们晋级到冠军组的概率很高。 2. Vitality: 这支队伍也是近期表现非常出色的队伍之一,拥有一些非常出色的个人玩家,比如ZywOo。他们有着强大的进攻能力,但是防守方面有些欠缺。他们晋级到冠军组的概率应该也很高。 3. Liquid: 这支队伍一直是全球顶尖的队伍之一,但是在最近的比赛中表现有所下滑。他们的个人能力非常强,但是在战术和团队配合方面还需要改进。他们晋级到冠军组的概率较高。 4. G2: 这支队伍是目前欧洲最强的队伍之一,有着非常出色的个人玩家和团队配合。他们在过去几个月的比赛中表现非常出色,赢得了多个冠军头衔。他们晋级到冠军组的概率非常高。 5. NIP: 这支队伍近期表现不够出色,但是他们有着非常有实力的个人玩家和团队配合。他们在过去的比赛中也赢得了一些头衔。他们晋级到冠军组的概率较高。 6. FaZe: 这支队伍在过去的比赛中表现不够稳定,有时表现非常出色,有时表现较差。他们有着非常出色的个人能力,但是在团队配合方面还需要改进。他们晋级到冠军组的概率较高。 7. Navi: 这支队伍拥有世界上最好的玩家之一S1mple,是一支非常有实力的队伍。他们在过去的比赛中表现不错,但是在团队配合方面还需要改进。他们晋级到冠军组的概率较高。 8. ENCE: 这支队伍在过去的比赛中表现不够出色,但是他们有着一些非常有实力的个人玩家。他们需要在团队配合和战术方面改进,才能有更好的表现。他们晋级到冠军组的概率较低。 综上所述,Heroic、Vitality、Liquid、G2、NIP、FaZe和Navi都是非常有实力的队伍,它们晋级到冠军组的概率非常高。ENCE的表现不够出色,晋级概率较低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值