Assignment title: Management


COURSEWORK ASSESSMENT SPECIFICATION Module Title: Microcontrollers in Embedded Systems Module Number: EN0343 Module Tutor Name(s): Academic Year: 2016-2017 % Weighting (to overall module): 70% Coursework Title: Algorithm and program development to control the NXP car Average Study Time Required by Student: 50 hours Further Information Learning Outcomes tested in this assessment (from the Module Descriptor) See Assignment Script Assessment Criteria/Mark Scheme: See Assignment Script Nature of the submission required: Hardcopy report. Instructions to students: Referencing Style: IEEE numbered referencingAcademic 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. Recommended Time for Project Project work: – hardware development, software development, build and test: 40 hours per student Project report 10 hours per student Learning Outcomes 1. Demonstrate the application of knowledge in the design of embedded systems with application to real world problems 2. Design an embedded system to meet a given specification 3. Build and test an embedded system using IDE software tools Keil uVision5 IDE and practical test equipment 4. Critically analyse the performance of the embedded system. 5. Document design, development, testing analysis and conclusion in the form of a reportBACKGROUND NXP Car NXP have developed a model car incorporating motors for forward movement, a servomotor for steering/direction control and a camera to establish car position. The control of the onboard systems is via an ARM cortex M0+ development board KL25Z128KLV4. The task is to integrate the above systems into a single effective control system enabling the NXP car to drive around a track autonomously in the fastest time. Such is the engineering challenge of the NXP car in terms of software development, embedded systems and control, NXP competitions have become popular amongst Universities around the world. THE PROJECT The requirement of the project is for students, in groups of three, to develop C programs to control drive motors, servomotors, and camera, and to develop control algorithms to enable autonomous control of the NXP car. A time trial will take place between groups upon completion of the work to determine which developed algorithms allow the car to drive around the track in the fastest time. The required tasks should be divided amongst the group such that one student in the group considers the motor drive algorithms and programming. Another student will tackle the steering control, and the third student will tackle the position control. All three tasks require significant testing and evidence of performance. All students in the group should come together in the development of the control algorithm to effectively integrate all three developed systems into a single control system capable of driving the NXP car autonomously around the track Each group tackling this activity should submit a single report. The report should contain explanations of all software developed with flowcharts and program listings evidence of exhaustive testing, results of testing, including generated waveforms and in depth analysis of results. The report should also include detailed explanations of all algorithms in particular the control algorithm that integrates the developed programs, and clear flowcharts, program listings, results and analysis of the integrating control algorithm. For the speed control of the car via UART0, users send commands from a PC to the car via USB cable. The control program should be able to recognize the commands and take the appropriate action immediately. The two basic control commands are "start ##" and "stop", where ## is a two-digit number representing the percentage of full speed. Please note, all the commands finish with two special characters "\r\n".For the steering control via UART0, users send commands from a PC to the FRDM KL25Z control board via a USB cable. The control program should be able to recognize the commands and take the appropriate action immediately. The two basic control commands are "left ##" and "right ##", where ## is a two-digit number representing the steering angle. Here it is assumed that the central axis of the car is zero degree. Please note, all the commands finish with two special characters "\r\n". For the position detection via UART0, the FRDM KL25Z control board is required to send the results of line camera to a PC via a USB cable. The line camera programme should be able to read the 128 values of line camera, determine the position of the car against the track (e.g. a mark tape) and send the results to the PC via the UART0. On the PC screen (e.g. a terminal window), the value shows the positon of the car by a number ranging from 0 to 127. (e.g. 0 means furthest left, 127 means furthest right, 64 means in the middle). Please keep in mind each result sent by the control board should finish with two special characters "\r\n". EMBEDDED SYSTEMS - ASSESSMENT INDIVIDUAL MARK (as evidenced in report and practice) 1. Development of algorithm to control the speed of the car Explanation of algorithm 10 Flowchart and program listing 10 Results of implementation 10 In depth analysis including conclusion 10 Forward drive and speed control via UART0 demonstration 10 2. Development of algorithm to control the steering of the car Explanation of algorithm 10 Flowchart and program listing 10 Results of implementation 10 In depth analysis including conclusion 10 Steering control via UART0 demonstration 10 3. Development of algorithm to determine the position of the car Explanation of algorithm 10 Flowchart and program listing 10 Results of implementation 10 In depth analysis including conclusion 10 Position control via UART0 demonstration 10GROUP MARK (as evidenced in report) Development of control algorithm to integrate the individual development and enable autonomous control of the car Explanation of algorithm 10 Flowchart and program listing 10 Results of implementation 10 In depth analysis including conclusion 10 TIME TRIAL RESULT (added to group mark) 1) Completes one lap of the track 10 Total 100%