Coding Tech
Project
MediBuddy
Guneet, Chellyian
Company Name 2
Situation
Design an toy, novelty or assistive device that uses all
coding tutorials
Use SPICE process
Create a detailed accurate 3D model
Create a poster to advertise product
Create minium 3 orthographic sketches
Process
Research existing devices for inspiration.
Create initial sketches (concept design).
Plan 3D model design:
● Choose CAD software (Tinkercad, Fusion 360, etc.).
● Decide on measurements and scaling.
Outline the coding functions:
● Choose coding tutorials to integrate.
● Design a flowchart for the code logic.
4
Investigation
Main features of assistive devices already in the industry
- Simple & Intuitive Buttons
- Large, clearly labeled buttons for ease of use
- Minimal force required
- Adjustable Settings
- Time intervals, volume, and vibration intensity can be customized
- Mode toggles for “night mode,” “caregiver override,” or “reminder
mute”
- Alerts & Notifications
- Visual: Flashing LEDs and display icons
- Audio: Soft sounds
- Haptic: Gentle vibrations
- Durable & Reliable Build
- Shock-resistant casing for drops or rough handling
- Water-resistant or waterproof design for daily wear
- Lightweight & Portable
- Compact form factor, pocket-sized
- Easy to carry
What groups of people can benefit from assistive devices 5
Elderly Individuals Support
● Help with mobility and balance
● Increased safety at home and outdoors
People with Cognitive Conditions: Devices help with daily routines and
safety
● ADHD: Timed alerts for focus and task reminders
● Autism Spectrum Disorder (ASD): Sensory-friendly tools and reminders
People with Physical Disabilities: Devices with large, easy-to-press buttons
Mobility support tools
Individuals with Hearing Impairments Devices with visual cues and
vibration-based alerts
● Text displays or light signals for communication and reminders
● Vision Impairments Audio-based reminders
6
Orthographic Sketches
Guneet
Sketch 1 Sketch 2 Sketch 3 Sketch 4
Final choice
Orthographic Sketches to scale 7
Chellyian Sketch 1 Sketch 2
Orthographic Sketches
Chellyian
Sketch 3
Sketch 4
9
SPOTLIGHT
3D
model(Chelliyan)
15 cm width
20 cm height
10
SPOTLIGHT
3D model(Guneet)
8 cm height
8 cm width
Final choice
11
Steps to use
Press the "Time Set" Button to adjust the time between reminders:
● Each press cycles through preset intervals (e.g., 2h, 4h, 6h)
● The selected interval shows on the LED screen
Press "Play/Stop" to start or pause the audio, vibration, and LED
reminders
12
Coding
const int buttonTimeSet = 2;
unsigned long reminderDuration = 10000; // default 10
sec
Tutorial: Blink/LED Blink void setup() {
pinMode(buttonTimeSet, INPUT_PULLUP);
[Link](9600);
Purpose: Blinking reminders LED to visually }
alert the user
void loop() {
LED (blinking): Alerts when the reminder if (digitalRead(buttonTimeSet) == LOW) {
time is up. reminderDuration += 5000; // add 5 seconds
if (reminderDuration > 60000) reminderDuration =
5000; // reset if too long
[Link]("Reminder time set to: ");
Function of code: Each press increases the [Link](reminderDuration / 1000);
reminder time by 5 seconds (for demo). [Link](" seconds");
Component: Button on pin 2. delay(300); // debounce
}
}
13
Coding const int buttonPlayStop = 3;
bool timerRunning = false;
void setup() {
pinMode(buttonPlayStop, INPUT_PULLUP);
Tutorial: Button + Serial Monitor [Link](9600);
}
Purpose: Two buttons for interaction which
set the times and play/stop void loop() {
if (digitalRead(buttonPlayStop) == LOW) {
Time Set Button: Allows the user to set how timerRunning = !timerRunning;
long until the next reminder. if (timerRunning) {
[Link]("Timer Started");
} else {
[Link]("Timer Stopped");
Function of code: Toggles whether the timer }
is running or not. delay(300); // debounce
Component: Button on pin 3. }
}
14
Coding
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
Tutorial: Making sound }
Purpose: Buzzer sound for reminder alarms void loop() {
// Simulate alarm trigger
Function: Flashes LED when time is up. for (int i = 0; i < 5; i++) {
Component: LED on pin 9. digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
delay(300);
}
}
15
Coding #include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 4, 5, 6, 12);
void setup() {
[Link](16, 2);
Tutorial: LCD Displays [Link]("MediBuddy Ready");
delay(2000);
Purpose: Shows reminder text and instructions [Link]();
[Link]("Take Medicine!");
LCD Screen: Displays countdown and messages like "Take }
Medicine!".
void loop() {
Function: Shows messages like "Take Medicine!" or countdown. // Nothing in loop for this example
Component: LCD using LiquidCrystal library. }
16
Coding
const int buzzerPin = 10;
const int motorPin = 11;
void setup() {
Tutorial: DC motors
pinMode(buzzerPin, OUTPUT);
pinMode(motorPin, OUTPUT);
Purpose: Vibration motor buzzes when alarm goes off
}
Buzzer + Vibration Motor: Both activate together as an alarm.
void loop() {
for (int i = 0; i < 5; i++) {
Function: Both activate at the same time when a reminder goes off.
digitalWrite(motorPin, HIGH);
Component: Buzzer on pin 10, Motor on pin 11.
tone(buzzerPin, 1000); // play sound
delay(300);
digitalWrite(motorPin, LOW);
noTone(buzzerPin); // stop sound
delay(300);
}
}
Tinkercad videos in order
Will be shown by phone
18
Poster/pitch (Guneet + Chelliyan)
Reflection 19
Is the Device Aesthetically Pleasing?
Yes, the MediBuddy was design with a clean and minimal look to ensure it
appeals to users of all ages. The LED screen is clearly visible, the buttons
are spaced and intuitive. The glowing LED reminds adds a visual element.
The design is compact and modern.
Can It Be Used in Daily Life?
The MediBuddy is designed for everyday use. It reminds the user when to
take medicine, drink water, etc. Its simple enough to be used without
needing tech skills.
20
Reflection
Pros
Helpful idea
Completed on time
Focused on Simplicity
Sketches, 3D model, and poster were good
Cons
New coding language was
confusing
TinkerCad was difficult to
understand
3D model software errors