Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 96 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,59 @@

<img width="3188" height="1202" alt="frame (3)" src="https://github.com/user-attachments/assets/517ad8e9-ad22-457d-9538-a9e62d137cd7" />


# [Project Name] 🎯
# Abnormal Water Dispenser 🎯


## Basic Details
### Team Name: [Name]
### Team Name: BIT JUNKIES


### Team Members
- Team Lead: [Name] - [College]
- Member 2: [Name] - [College]
- Member 3: [Name] - [College]
- Team Lead: JOE RAPHAEL JOSHY - CE VADAKARA
- Member 2: VIMAL DEV AS - CE VADAKARA

### Project Description
[2-3 lines about what your project does]
This is a playful and impractical water dispenser that only works when your mug is held upside down. Instead of filling your cup normally, it challenges common sense by activating the water flow only in the least useful position possible, making it a perfect example of a “useless” engineering concept. Built purely for humor and curiosity, it’s a fun reminder that not all inventions are meant to be practical.

### The Problem (that doesn't exist)
[What ridiculous problem are you solving?]

“People have had it far too easy filling cups the right way up. The world desperately needs a device that challenges basic logic and tests patience. By creating a water dispenser that only works when your mug is upside down, we solve the non-existent problem of making hydration inconvenient, messy, and mildly absurd.”
### The Solution (that nobody asked for)
[How are you solving it? Keep it fun!]

“I’m solving it by building a high-tech, logic-defying dispenser that uses sensors to detect when your mug is upside down—only then will it graciously unleash a refreshing stream of water… straight onto the floor. It’s the perfect mix of engineering skill and complete uselessness.”
## Technical Details
### Technologies/Components Used
For Software:
- [Languages used]
- [Frameworks used]
- [Libraries used]
- [Tools used]
- C++
- AURDINO UNO
- Servo.h – To control a servo motor that opens/closes the water valve.

LiquidCrystal.h (optional) – If you want an LCD display to show fun messages.

Wire.h – For I²C communication (used if your LCD or sensors require it).

Adafruit_Sensor.h – If you’re using certain orientation or tilt sensors.

Adafruit_MPU6050.h or MPU6050.h – For detecting if the mug is upside down using a gyroscope/accelerometer sensor.
- Multimeter – For checking voltages and connections.

Screwdriver / Wire Cutter / Stripper – For preparing and assembling parts.

Soldering Kit – Only if you need permanent connections.



For Hardware:
- [List main components]
- For your **ultrasonic sensor + servo motor** project, here’s a short and catchy tagline:

**"Smart Motion, Precise Action."**

Or, if you want it to sound more fun and attention-grabbing:

**"Detect. Decide. Move."**

I can also give you **5 more creative options** tailored to your project if you want it to stand out in a presentation or poster.
Do you want them in a **serious** tone or a **fun** tone?

Comment on lines +46 to +56
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Replace taglines under “Hardware” with actual component list

Taglines don’t belong under a hardware bill-of-materials. Move them to a “Taglines”/“Presentation” section and list the physical components here.

-For Hardware:
-- For your **ultrasonic sensor + servo motor** project, here’s a short and catchy tagline:
-
-**"Smart Motion, Precise Action."**
-
-Or, if you want it to sound more fun and attention-grabbing:
-
-**"Detect. Decide. Move."**
-
-I can also give you **5 more creative options** tailored to your project if you want it to stand out in a presentation or poster.
-Do you want them in a **serious** tone or a **fun** tone?
+For Hardware:
+- Arduino Uno (or compatible)
+- HC-SR04 ultrasonic sensor
+- SG90/MG90S servo motor (with horn)
+- 5V power supply (sized for servo current)
+- Breadboard and jumper wires
+- Optional: Solenoid valve + NPN transistor + flyback diode (if using a real valve)
+- Tubing/nozzle and mounting hardware
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- For your **ultrasonic sensor + servo motor** project, here’s a short and catchy tagline:
**"Smart Motion, Precise Action."**
Or, if you want it to sound more fun and attention-grabbing:
**"Detect. Decide. Move."**
I can also give you **5 more creative options** tailored to your project if you want it to stand out in a presentation or poster.
Do you want them in a **serious** tone or a **fun** tone?
For Hardware:
- Arduino Uno (or compatible)
- HC-SR04 ultrasonic sensor
- SG90/MG90S servo motor (with horn)
- 5V power supply (sized for servo current)
- Breadboard and jumper wires
- Optional: Solenoid valve + NPN transistor + flyback diode (if using a real valve)
- Tubing/nozzle and mounting hardware
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

48-48: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


52-52: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

🤖 Prompt for AI Agents
In README.md around lines 46 to 56, the taglines are incorrectly placed under
the "Hardware" section. Move these tagline lines to a new section titled
"Taglines" or "Presentation" and replace the current content under "Hardware"
with a list of the actual physical components used in the project, such as the
ultrasonic sensor and servo motor.

- [List specifications]
- [List tools required]

Expand All @@ -41,13 +63,68 @@ For Software:
[commands]

# Run
[commands]
#include <Servo.h>

Servo myServo;

// Ultrasonic Sensor Pins
const int trigPin = 9;
const int echoPin = 10;

// Servo positions
int servoHome = 90; // Center position
int servoRotate = 0; // 90° anticlockwise

void setup() {
myServo.attach(3); // Servo signal pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

myServo.write(servoHome); // Start at home position
Serial.begin(9600);
}

void loop() {
long duration;
float distance;

// Trigger the ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

// Read echo pulse
duration = pulseIn(echoPin, HIGH);

// Convert to centimeters
distance = duration * 0.034 / 2;

Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");

if (distance > 0 && distance < 10) {
// Object is closer than 10 cm
myServo.write(servoRotate);
}
else if (distance >= 10) {
// Object is farther than or equal to 10 cm
myServo.write(servoHome);
}

delay(100);
}
Comment on lines +66 to +118
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fence Arduino code and handle no-echo edge case; fixes MD018 and improves robustness

Without code fences, “#include” is parsed as a heading (MD018). Also add a pulseIn timeout and handle the “no echo” case to avoid the servo getting stuck.

-#include <Servo.h>
+```cpp
+#include <Servo.h>
 
 Servo myServo;
 
 // Ultrasonic Sensor Pins
 const int trigPin = 9;
 const int echoPin = 10;
 
 // Servo positions
 int servoHome = 90;   // Center position
 int servoRotate = 0;  // 90° anticlockwise
 
 void setup() {
   myServo.attach(3);   // Servo signal pin
   pinMode(trigPin, OUTPUT);
   pinMode(echoPin, INPUT);
   
   myServo.write(servoHome); // Start at home position
   Serial.begin(9600);
 }
 
 void loop() {
   long duration;
   float distance;
 
   // Trigger the ultrasonic pulse
   digitalWrite(trigPin, LOW);
   delayMicroseconds(2);
   digitalWrite(trigPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(trigPin, LOW);
 
   // Read echo pulse
-  duration = pulseIn(echoPin, HIGH);
+  duration = pulseIn(echoPin, HIGH, 30000UL); // ~30ms timeout (~5m range)
+  if (duration == 0) {
+    // No echo within timeout; keep servo in safe/home position
+    myServo.write(servoHome);
+    delay(100);
+    return;
+  }
 
   // Convert to centimeters
   distance = duration * 0.034 / 2;
 
   Serial.print("Distance: ");
   Serial.print(distance);
   Serial.println(" cm");
 
   if (distance > 0 && distance < 10) {
     // Object is closer than 10 cm
     myServo.write(servoRotate); 
   } 
   else if (distance >= 10) {
     // Object is farther than or equal to 10 cm
     myServo.write(servoHome);  
   }
 
   delay(100);
-}
+}
+```
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

66-66: No space after hash on atx style heading

(MD018, no-missing-space-atx)

🤖 Prompt for AI Agents
In README.md from lines 66 to 118, the Arduino code lacks proper markdown
fencing causing the #include line to be misinterpreted as a heading (MD018), and
it does not handle the case when no echo is received from the ultrasonic sensor,
which can cause the servo to get stuck. Fix this by enclosing the entire code
block within triple backticks and specifying the language as cpp. Additionally,
modify the pulseIn call to include a timeout (e.g., 30000 microseconds) and add
a check for a zero duration return value; if zero, immediately set the servo to
the home position and return early to avoid servo lockup.

This project intentionally defies logic by requiring the least practical condition (an upside-down mug) for operation. While it serves no functional purpose in real-world water dispensing, it successfully demonstrates creativity, sensor integration, and actuator control in a humorous and engaging way.



### Project Documentation
For Software:

# Screenshots (Add at least 3)
![Screenshot1](Add screenshot 1 here with proper name)
![Screenshot1][(Add screenshot 1 here with proper name)](https://drive.google.com/file/d/1CbRRszoM5N_8_yfXOdfnRAZofcMpY7E_/view?usp=drivesdk)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix malformed image markdown

Current syntax mixes two link styles and won’t render. Use standard inline image format.

-![Screenshot1][(Add screenshot 1 here with proper name)](https://drive.google.com/file/d/1CbRRszoM5N_8_yfXOdfnRAZofcMpY7E_/view?usp=drivesdk)
+![Screenshot 1](https://drive.google.com/file/d/1CbRRszoM5N_8_yfXOdfnRAZofcMpY7E_/view?usp=drivesdk)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
![Screenshot1][(Add screenshot 1 here with proper name)](https://drive.google.com/file/d/1CbRRszoM5N_8_yfXOdfnRAZofcMpY7E_/view?usp=drivesdk)
![Screenshot 1](https://drive.google.com/file/d/1CbRRszoM5N_8_yfXOdfnRAZofcMpY7E_/view?usp=drivesdk)
🤖 Prompt for AI Agents
In README.md at line 127, the image markdown syntax is malformed by mixing two
link styles. Replace the current syntax with the standard inline image format:
use an exclamation mark followed by alt text in square brackets and the image
URL in parentheses without extra brackets or text.

*Add caption explaining what this shows*

![Screenshot2](Add screenshot 2 here with proper name)
Expand All @@ -63,7 +140,7 @@ For Software:
For Hardware:

# Schematic & Circuit
![Circuit](Add your circuit diagram here)
(https://drive.google.com/file/d/1EgPqHo0GpD2PC7TC87tnEJEGSm_znDTC/view?usp=drivesdk)
*Add caption explaining connections*

![Schematic](Add your schematic diagram here)
Expand All @@ -81,7 +158,7 @@ For Hardware:

### Project Demo
# Video
[Add your demo video link here]
[[Add your demo video link here]](https://drive.google.com/file/d/1d9FXFFxkHVLNAydoRXGU93XNBtn-Fnr8/view?usp=drivesdk)
*Explain what the video demonstrates*

# Additional Demos
Expand All @@ -97,6 +174,3 @@ Made with ❤️ at TinkerHub Useless Projects

![Static Badge](https://img.shields.io/badge/TinkerHub-24?color=%23000000&link=https%3A%2F%2Fwww.tinkerhub.org%2F)
![Static Badge](https://img.shields.io/badge/UselessProjects--25-25?link=https%3A%2F%2Fwww.tinkerhub.org%2Fevents%2FQ2Q1TQKX6Q%2FUseless%2520Projects)