1
COMP9032 Project – Clinic Management Kiosk
T3 2024
Your company has assigned your group to develop a self-service kiosk to manage patients in a
small medical clinic. The kiosk, along with its peripherals, is to be deployed as shown in the
floorplan below.
Your company supplied you with a development board that is identical to your COPM9032 lab
board, and you have been asked to work with your group to develop a prototype to show the
client. The following functional details have been provided to you by your company.
1. The doctor will turn the system on when they open the clinic for the day and turn it off
when they are leaving.
2. When a patient comes, the signs direct them to the self-service kiosk. The kiosk features
an LCD display and a 4-by-4 matrix keypad, similar to the corresponding components on
the development board. The patient interaction with the kiosk is as follows.
Consultation Room
Waiting Area
Self-service
Kiosk
Next Patient (PB0)
Cancel Appointment (PB1)
Keypad
LCD Display
LED Panel
Secondary
LCD Display
Bell
2
a. The patient presses the key to start the process of Adding themselves to the
patient queue. This key press switches the operation mode of the kiosk from
‘display’ to ‘entry’. In ‘display’ mode, any key pressed (except the key ) should be
ignored.
b. Upon entering ‘entry’ mode, the kiosk should prompt the patient for their first
name. The first line of the display can be used for the prompt and the second line
can be used to show the patient’s input. The keys 2-9 on the keypad are used for
accepting the patient input and they should function similar to the keypad on a
classic mobile phone (https://www.youtube.com/watch?v=g3aLKEaSKns
). Note
that key nine has four letters: w, x, y and z.
c. The key is used to Backspace the last character entered, while the key is used
to Clear the patient’s entire input.
d. Once the patient enters their name, they press the key to indicate that they are
Done with the input. Then, the LCD display should show the patient a descriptive
message with their patient number.
e. Finally, the patient presses the key again to confirm that they have seen their
patient number, causing the kiosk to switch from ‘entry’ to ‘display’ mode.
3. The LED panel is a wall-mounted led b a r, a bigger version of the LED bar on the
development board. The LED panel is used to provide the next patient with an estimated
wait time and to direct the patients’ attention to the secondary LCD display.
4. The secondary LCD display is a larger wall-mount LCD display. However, it is functionally
identical to the LCD display on the kiosk and mirrors the same content, except when the
kiosk is in ‘entry’ mode. In ‘display’ mode, both the LCD displays show the following
content.
a. The first row should display the text “Next Patient:”.
b. The second row should display the name of the next patient, aligned to the left of
the display, and their number on the queue, aligned to the right of the display.
When the kiosk enters ‘entry’ mode, the secondary LCD display preserve the content that
is displayed on it.
5. The bell is used to draw attention of the patients to the secondary LCD display. It has three
ring tones.
a. Beep-beep – A 1 sec. ON and 1 sec. OFF tone
b. Bip-bip – A 0.5 sec. ON and 0.5 sec OFF tone
c. Bee...eep – A 3 sec. ON followed by OFF (once)
The development board features a motor to represent the actuator in the bell. The bell
produces sound when the actuator (i.e., the motor on the development board) is
activated. To produce different ring tones, the motor can be activated according to the
timing specified.
6. The doctor uses the Next Patient button to call the next (or the first) patient. On the
development board, the Next Patient button is represented by the PB0 button. The
functionality after the button press is dependent on whether there are patients waiting or
not.
a. If there are patients waiting, the Beep-beep tone is played for 10 seconds followed
by the bip-bip tone. During this time, all the 10 LEDs in the LED panel also flashes
in sync with the tone played by the bell. The bip-bip tone should continue until it
is terminated by the next action of the doctor.
3
i. When the patient arrives at the consultation room, the doctor presses and
holds the Next Patient button for one second to stop the tones played by
the bell, stop the flashes generated by the LED panel and update the LCD
display with the new next patient’s details.
ii. If the patient does not arrive at the consultation room, the doctor presses
and holds the Cancel Appointment button for one second, to cancel the
appointment. This will produce the Bee...eep tone and the in-sync flash
that last for 3 seconds. Afterwards, the LCD display will be updated with
the new next patient’s details and the behaviour continues as if the Next
Patient button is pressed to call the newly displayed patient.
iii. If the kiosk happens to be in ‘entry’ mode when the doctor calls for the
next patient, the kiosk should temporarily switch to ‘display’ mode while
preserving the patient’s input (and any progress associated with adding
the patient to the queue). Five seconds after updating the LCD displays,
the kiosk can return to ‘entry’ mode to let the patient continue enqueuing
themselves.
b. If there are no patients waiting, then Next Patient button should not cause any
change in the operation and the button press should be ignored.
7. The Cancel Appointment button press should only be accepted when the doctor is
waiting for a patient to arrive at the consultation room.
8. When the doctor is not waiting for a patient to arrive at the consultation room, t he LED
panel displays the waiting time for the next patient. The usual consultation time is set at
the time of delivering the self-service kiosk and for testing purposes, you are asked to take
it as 20 seconds. The remaining time divided by the consultation time is scaled by ten ( i.e.,
(remaining time/consultation time) × 10) to calculate the number of consecutive LEDs to
turn on. Some examples are given below. The examples assume the consultation time is
20 seconds.
a. If 20 seconds of the consultation time is remaining, all 10 LEDs are turned ON.
b. If 15 seconds of the consultation time is remaining, LEDs 1-7 are turned ON.
c. If 3 seconds of the consultation time is remaining, LED 1 is turned ON.
d. If 1 second of the consultation time is remaining, no LED is turned ON.
Prototyping A Dual LCD Display Setup with A Single LCD
The development board does not feature two LCD displays. However, the electronics group of
your company has come up with a solution to prototype the system with one LCD display. They
are designing a splitter circuit, and they have provided you with the following sketch, illustrating
how they intend to transform the LCD driver circuit of the development board to the dual LCD
display setup in the production system.
MCU
LCD Display
Secondary LCD Display
-- Available on development board
-- Only in production system
― Data/Instructions from MCU to LCD
― Data from LCD to MCU
― Secondary LCD enable signal (Strobe)
4
The secondary LCD display often mirrors the LCD display on the kiosk. However, sometimes the
secondary LCD display needs to ignore certain display updates that are only meant for the LCD
display on the kiosk. Among the two functionalities, the expected functionality of the secondary
LCD display is determined by the operation mode of the kiosk (‘display’ and ‘entry’).
When the kiosk is in ‘display’ mode, you can communicate with the LCD display on the kiosk as
usual and by setting (to 1) the LED strobe signal on the development board, you can relay the
same data/instructions to the secondary LCD display. Any responses from the secondary LCD
display will be dropped. The electronics group of your company claims that the secondary LCD
display will be in a busy state only when the LCD display on the kiosk is in a busy state and
therefore, it is sufficient to know the state of the LCD display on the kiosk, before sending a
command to the LCD displays.
When the kiosk is in ‘entry’ mode, you can communicate with the LCD display on the kiosk as
usual and by resetting (to 0) the LED strobe signal on the development board, you can block
data/instructions to the secondary LCD display.
Project Evaluation (Worth 25% Of the Final Grade)
Your group needs to develop the prototype of the above system using AVR assembly and you can
make reasonable assumptions and take reasonable engineering decisions to complete your task.
However, for significant enough concerns (or if you are in doubt whether it is significant enough),
you are advised to talk to your tutor or ask on the course forum. This project will generate three
assessable outputs: Project demonstration, source code and project report. Each of them will be
assessed as follows.
Project demonstration (30% of the project mark): You will be presenting and demonstrating
your prototype during your lab class in week 10. The assessment will follow the assessment style
used for the labs. The presentation and demonstration should resemble an internal product
delivery presentation in a company (what is the product, what can it do, what it cannot do, who
did what, excerpts of code to explain any interesting design choices, demonstration). Your group
will have 30 minutes to present and demonstrate your prototype.
Source code (40% of the project mark): You will be submitting your final source file archive via
a give submission. You will be assessed based on the correctness, use of suitable techniques,
modularity, readability and formatting.
Project report (30% of the project mark): You will submit a brief report detailing the functionality
of your prototype. The report should resemble a product manual that would be sent to a client,
detailing the functionality. It can start with a short introduction followed by step-by-step
instructions to operate the prototype. You can include figures/illustrations and detail any
limitations along with the steps. For assessment purposes you need to have the following as
appendices: project timeline, a justification of design/engineering choices (for example, we used
external interrupts for ... because ... ) and a high level pseudo code detailing the overall design.
The expected length of the report is 10 pages (including appendices).
In addition to the assessable outputs, you need to fill out a form, individually, indicating the
contribution of your group members towards the project. The responses will be used to scale the
marks proportionate to the contribution. The form will be circulated later.