Embedded
UNIVERSITY OF NORTHUMBRIA AT NEWCASTLE COURSEWORK ASSIGNMENT ASSESSMENT SPECIFICATION Dates and Mechanisms for Assessment Submission and Feedback Mechanism for Handout to Students: In lecture and via eLearning portal Date and Time of Submission by Student: Tue 20/April/2019, 16:00 Mechanism for Submission of Work by Student: via Student Central at Library Date by which Work, Feedback and Marks will be returned to Students: Feedback and marks will be returned to students in two week time after submission date. Mechanism for return of assignment work, feedback and marks to students: During lecture and/or laboratory sessions Further Information Learning Outcomes assessed in this assessment 1. Knowledge & Understanding (UKSPEC SM1m, SM2m, SM3m, SM4m, SM5m, SM1fl, SM2fl, SM3fl) (1) Critically analyse design specification requirements, for an embedded microcontroller application and choose appropriate microcontrollers and appropriate development tools in order to implement a specification. (2) Develop suitable hardware for interfacing to microcontroller based systems and the co-requisite application software to satisfy system specifications 2. Intellectual / Professional skills & abilities ((UKSPEC SM2m, D1m, D7m, EP4m, EP10m, SM2fl, D1fl, EP1fl, EP3fl) (1) Ability to design embedded software, interfacing hardware and select appropriate development tools to achieve a particular specification. (2) Demonstrate a knowledge and awareness of the need to develop microelectronic systems, not only to satisfying specifications, but also the commercial and legal requirements of potential products. 3. Personal Values Attributes (UKSPEC ET1m, ET3m, ET5m, ET6m, EP7m, ET1fl, ET3fl, ET4fl, ET6fl) (1) Ability to use CAD to design embedded systems satisfying both engineering and legal obligations. Assessment Criteria/Mark Scheme: See Assignment Script Nature of the submission required: A hardcopy report: An individual, word processed project report based on the embedded system project specified in this assessment specification needs to be submitted. Instructions to students: This is an individual assignment. You are expected to follow the requirements in the assessment specification and must complete the codes development and project report. You will record your results and show the results in your report. You are also expected to take photos of the system you build up and the results of your tests, draw flowchart diagrams to explain the workflow and execution procedure of your program, draw diagrams to show the data collected in your test and results analysis, insert these photos/diagrams into the report to demonstrate your program and results. You are required to produce a single report of not more than 40 pages. Referencing Style: IEEE numbered referencing Academic Conduct: You must adhere to the university regulations on academic conduct. Formal inquiry proceedings will be instigated if there is any suspicion of misconduct or plagiarism in your work. Refer to the University’s regulations on assessment if you are unclear as to the meaning of these terms. The latest copy is available on the university website. Penalties for the late submission of coursework If a student fails to meet the agreed assessment deadline, and has not been granted an extension of time, the work submitted will be regarded as not having been completed and a mark of zero will be awarded. The Examination Board will deem the student to have failed the module. FACULTY OF ENGINEERING AND ENVIRONMENT KD7019 - Advanced Embedded System and Technologies Coursework: Embedded System Project Project work: · hardware development, software development, build and test: 40 hours per student Project report 10 hours per student 1. Introduction This course work examines the student’s knowledge of programming a microcontroller for basic input/output. The students are required to write programs to read input values from switches, a touch pad, and take command strings from a PC via the UART and to display sequences on LEDs. Knowledge of the available development tools are also examined where the students are asked to demonstrate their programs on a microcontroller and test. 2. Overview of the project The requirement of the project is for the individual student to develop C programs on the NXP (also known as Freescale) KL25Z hardware board and MBED software platform. The function of the programs will be to receive user command strings from a PC via UART, read user inputs from the switches, touch pad and onboard accelerometer and control LEDs. The student is also expected to develop data processing algorithms to monitor the user’s movement via the accelerometer data. The student is to develop an embedded program that implements the following functions: · Function 1 (RGB LED control via UART): to turn the onboard RGB tricolor LED on and off by typing a command string at a PC’s terminal windows. · Function 2 (Touch pad and travelling LEDs): to turn one of the 8 LEDs on the EB004 LED board on and make the illuminated LED travel along the LED board when a finger moves along the touch pad on the KL25Z board. · Function 3 (a falling LED ball: a gravity accelerometer game): to turn on one of the 8 LEDs located on the EB004 LED board, and make the illuminated LED always move towards the earth (simulating the force of gravity) when tilting the KL25Z board. 3. Board connection and system configuration: For the programming exercises, assume that the 9-pin D connector A0-A5 is connected to an EB007 switchboard and the 9-pin D connector D0-D7 is connected to an EB004-LED Board. The KL25Z board is powered from the OpenSDA USB port through a USB cable connected to a PC. Detailed requirements for the overall program and each function are given as follows: 4. Requirements (4.1) A single program integrates all these four functions. A state machine should be designed to integrate all three functions into a single program. The user can select which function to be executed by pressing an associated switch (as shown in Fig. 1 below). Function 1 Function 2 Function 3 Start Stop Figure 1 For example, if the switch SW0 is pressed down, then the program enters Function 1 (RGB LED control via UART). Then the user can type commands at a PC to turn the LED on and off. The user may press any one of other switches at any time to switch to the associated functions. For example, no matter which functions 1, 2, or 3 the program is in, once the SW1 is pressed, the program should immediately switch to Function 2 (Touch pad and travelling LEDs) and start execution immediately. SW4 and SW5 are for Start and Stop, respectively. These two switches are used for user to start or stop the selected function without switching to other functions. (4.2) User-friendly interface design for better user experience. Your program should have a friendly user interface by making use of the UART and LEDs. You need to design a friendly and easy-use user interaction interface. For example, use the UART or LEDs to prompt the user what to do next or report the status of your program whenever it is necessary and helpful for an improved user experience. Your program should also be able to cope with possible situations in which the user may press the wrong switches by mistake. For example, user may press two or three switches at the same time. Think about how you can use the start and stop switches, or SW4/SW5, to allow the user to control these three functions easily and smoothly. How additional features (e.g. + and – keys for configuring the values of the parameters of your data processing algorithms) can be added to your program by making use of these keys? (4.3) Requirements for Function 1 (RGB LED control via UART): In Function 1, the tricolor RGB LEDs on the KL25Z board are controlled by a PC through a serial communication interface. The serial communication interface is set to a 115200 baud, 8 bits, 1 stop-bit and no parity. The FRDM KL25L board should be able to receive and determine the following commands and take appropriate actions to control the LED accordingly: Command string Actions to be done g on\r\n Turn on the green LED g off\r\n Turn off the green LED r on\r\n Turn on the red LED r off\r\n Turn off the red LED b on\r\n Turn on the blue LED b off\r\n Turn off the blue LED a on\r\n Turn on the LED with amber colour a off\r\n Turn off the LED with amber colour Please note the backslash ( \ ) character is used to escape characters that otherwise have a special meaning, such as \n means newline, \r is for carriage return. On "old" printers, \r sent the print head back to the start of the line, and \n advanced the paper by one line. Both were therefore necessary to start printing on the next line. Microsoft Windows tends to use \r\n as a line separator. Pressing the key “Enter” will produce the sequence of two backslash characters \r\n. (4.4) Requirement for function 2 (Touch pad and travelling LEDs) Function 2 incorporates the integrated touch pad on the KL25Z board to produce the following sequence on LEDs (travelling LED). Depending on the location where the user’s finger is on the touch pad, the corresponding LED is turned on and other LEDs are off. When the user’s finger moves along the touch pad, the illuminated LED moves accordingly. For example, swiping a finger from left to right will make the lighted LED travel from left to right, and vice versa. Fast swiping makes the LED travel fast and slow swiping makes the LED travel slowly. D7 D6 D5 D4 D3 D2 Please note, the LEDs from D2 to D7 on the LED board are used in this assessment, as the GPIO pins associated with D0 (PTA1) and D1 (PTA2) are also used by KL25Z for serial communication (UART0). (4.5) Requirement for function 3 (a falling LED ball: a gravity accelerometer game): Function 3 is similar to function 2, but now the lighted LED is controlled by the tilt angle of the KL25Z board, so that the illuminated LED moves along the LED board like a falling ball dragged by the gravity and always moves towards the earth. The program of function 3 should read the onboard MMA8451Q 3-Axis digital accelerometer, get the x, y and z-axis acceleration measurements and processing them to determine the tilt angle of the KL25Z board. Then the lighted LED is controlled by the tilt angle. For a user-friendly interface, every 5 seconds, the x, y and z-axis measurements and the calculated angle should be sent to a PC via the UART and displayed clearly on the PC’s screen. Advanced data processing algorithm should be designed, for example