Autonomous Remote Control of a Sorting Machine
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
CSSE3010
Autonomous Remote Control of a Sorting Machine
(30% – 60 Marks)
Git and BlackBoard: Monday, 4pm in week 13, 2023
Final Demo: Your session in week 13, 2023
Last Updated: April 28, 2023
ECP Hurdle: Not required to be submitted.
(Closed Shoes MUST BE Worn in the labs)
1 Learning Aims
• Apply your knowledge and skills developed in Stages 1–4 into a new combined design.
• Establish a radio communication link using the NRF24l01plus module.
• Control a physical system.
• Use FreeRTOS to implement your system.
2 Resources
• Nucleo-F429ZI platform
• SSD1306 OLED Display
• Keypad
• nrf24l01+ Radio Module
3 Academic Integrity
All assessment is individual. You should feel free to discuss aspects of C programming and
assessment specifications with fellow students, and discuss the related APIs in general terms.
You should not actively help (or seek help from) other students with the actual coding of your
assessment. It is cheating to look at another student’s code and it is cheating to allow your
code to be seen or shared in printed or electronic form. You should note that all submitted
code will be subject to automated checks for plagiarism and collusion. If we detect plagiarism.
or collusion (outside of the base code given to everyone), formal misconduct proceedings will
be initiated against you. If you’re having trouble, seek help from a member of the teaching
staff. Don’t be tempted to copy another student’s code.
Page 1 of 9
CSSE3010 2023 Project
Contents
1 Learning Aims 1
2 Resources 1
3 Academic Integrity 1
4 Introduction 3
5 Project Overview 3
6 Design Tasks – 50 marks 4
6.1 Design Task 1: ASC System – 10 marks . . . . . . . . . . . . . . . . . . . . . . 4
System Status Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Mylib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.2 Design Task 2: ASC Radio Transmitter – 5 marks . . . . . . . . . . . . . . . . . 4
Mylib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.3 Design Task 3: ASC Radio Packet – 10 marks . . . . . . . . . . . . . . . . . . . 5
Protocol Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Hamming Packet Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.4 Design Task 4: ASC Display – 10 marks . . . . . . . . . . . . . . . . . . . . . . 6
6.5 MyLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.6 Design Task 5: ASC Keypad – 10 marks . . . . . . . . . . . . . . . . . . . . . . 6
MyLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.7 Design Task 6: ASC Extended System Control – 5 marks . . . . . . . . . . . . . 7
Mylib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7 Coding Practices – 10 marks 8
7.1 Code Quality – 2 marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.2 Folders Code Structure – 8 marks . . . . . . . . . . . . . . . . . . . . . . . . . . 8
main.c Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Interrupt Service Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8 Demonstration & Marking 9
8.1 Deductions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Page 2 of 9
CSSE3010 2023 Project
4 Introduction
This project will build on your knowledge from stages 1-4. You will be working individually
for all core tasks. The project is designed to have you demonstrate your knowledge of practical
content and ability to integrate new functionality into your program for the Autonomous Sorting
Controller (ASC). The sorter is used to select and move different objects (differentiated by
colour). The sorter is a computer numerical controller machine that can move in 3 dimensions.
The sorter has a suction head that can be used to hold an object. The sorter’s suction head
can also rotate and change the orientation of the object.
5 Project Overview
The Autonomous Sorting Controller (ASC) consists of the following sections:
• ASC System: Control the Sorter with the keypad and radio transmitter.
• ASC Radio Transmitter: Control the Sorter using the radio control link.
• ASC Display: Display the X, Y, Z and rotation of the Sorter’s head.
• ASC Keypad: Process the keypad keys to control Sorter.
• ASC Extended System Control: Add extra task control of the ASC system
Page 3 of 9
CSSE3010 2023 Project
6 Design Tasks – 50 marks
6.1 Design Task 1: ASC System – 10 marks
The ASC system is used to control the Sorter’s head by moving it and controlling the vacuum
pump. The ASC system must process the keypad inputs, control the radio transmitter and
OLED display. The ASC system must be implemented as a finite state machine controller.
System Status Indicators
You must implement the following System Status Indicators (Table 1) using the on board LEDs.
Table 1: System Status Indicators
On-board LED Function
Green LED Alive LED that toggles every second
Blue LED Toggle when a radio packet is sent
Red LED Toggle value when a keypad key is pressed.
Mylib
The ASC system Mylib Task and register files (sxxxxxx ascsys.c, sxxxxxx ascsys.h) must
be placed in the mylib folder.
6.2 Design Task 2: ASC Radio Transmitter – 5 marks
Implement the ASC radio transmitter using the NRF24l01plus radio module (See datasheet on
BlackBoard). The ASC radio transmitter is used to broadcast packets to the Sorter. These
packets are used to control the Sorter. The ASC radio transmitter must be implemented as an
FSM. The following are radio transmitter configuration parameters that you must use. These
parameters must be present in a myconfig.h in your mylib folder.
Table 2: Parameters in myconfig.h
Parameter value Description
#define MYRADIOCHAN radio channel
byte
radio channel used for transmitting to a Sorter.
See BlackBoard for a Sorter’s address to use.
uint myradiotxaddr[] bytes>
Address used for transmitting - e.g.
0x12, 0x34, 0x56, 0x78, 0x90. See Black-
Board for a Sorter’s address to use.
Mylib
The radio transmitter Mylib Task and register files (sxxxxxx txradio.c, sxxxxxx txradio.h,
myconfig.h) must be placed in the mylib folder. The radio task and register Mylib files must
only control the radio and not do any Sorter operations. There should be a radio TX queue to
transmit packets via the radio interface.
Page 4 of 9
CSSE3010 2023 Project
6.3 Design Task 3: ASC Radio Packet – 10 marks
Four Sorter control radio packets are used: JOIN, XYZ, ROT and VAC. Each packet uses the
same format show in Table 3. The Sender Address must be your student ID, where each
digit represents a 4-bit hex digit - e.g. 45678910 becomes address: 0x45678910 or 0x45, 0x67,
0x89, 0x10
Table 3: Packet Format - Little Endian (LSB first)
Type Sender Address Payload String
Index (bytes) 0 1 5
Size (bytes) 1 4 11 bytes (must be zero padded)
The payload string for each packet is shown in Table 4.