Sunday, May 4, 2025

SmartDustbin

#include <Servo.h>

Servo myServo;

// Ultrasonic sensor pins
const int trigPin = 5;
const int echoPin = 6;

// Distance threshold (in cm)
const int distanceThreshold = 10;

void setup() {
  Serial.begin(9600);
  myServo.attach(9);         // Connect servo to pin 6
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  myServo.write(0);          // Initial servo position
}

void loop() {
  long duration;
  int distance;

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

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

  // Calculate distance in cm
  distance = duration * 0.034 / 2;

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

  // Rotate servo if object is detected
  if (distance > 0 && distance < distanceThreshold) {
    myServo.write(90); // Rotate to 90 degrees
  } else {
    myServo.write(0);  // Return to 0 degrees
  }

  delay(500);
}

Thursday, May 1, 2025

Model_Wrong

 


// <!DOCTYPE html>

<html>
<head>
  <title>Teachable Machine + Arduino</title>
</head>
<body>
  <h2>Teachable Machine Audio Model</h2>

  <button onclick="connectToArduino()">Connect to Arduino</button>
  <button onclick="init()">Start Listening</button>
  <div id="label-container"></div>

  <!-- TensorFlow.js -->
  <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/speech-commands@0.4.0/dist/speech-commands.min.js"></script>

  <script>
    const URL = "https://teachablemachine.withgoogle.com/models/YXOHdOpw3/";
    let port, writer;

    // Connect to Arduino
    async function connectToArduino() {
      try {
        port = await navigator.serial.requestPort();
        await port.open({ baudRate: 9600 });

        const encoder = new TextEncoderStream();
        encoder.readable.pipeTo(port.writable);
        writer = encoder.writable.getWriter();

        alert("✅ Connected to Arduino!");
      } catch (err) {
        console.error("❌ Arduino connection error:", err);
      }
    }

    async function sendToArduino(message) {
      if (writer) {
        await writer.write(message + "\n");
      }
    }

    async function createModel() {
      const checkpointURL = URL + "model.json";
      const metadataURL = URL + "metadata.json";

      const recognizer = speechCommands.create("BROWSER_FFT", undefined, checkpointURL, metadataURL);
      await recognizer.ensureModelLoaded();
      return recognizer;
    }

    async function init() {
      const recognizer = await createModel();
      const classLabels = recognizer.wordLabels();
      const labelContainer = document.getElementById("label-container");
      labelContainer.innerHTML = "";

      for (let i = 0; i < classLabels.length; i++) {
        const div = document.createElement("div");
        labelContainer.appendChild(div);
      }

      recognizer.listen(result => {
        const scores = result.scores;
        const helloScore = scores[0]; // Adjust these indexes if needed
        const noiseScore = scores[1];

        labelContainer.childNodes[0].innerHTML = "Hello: " + helloScore.toFixed(2);
        labelContainer.childNodes[1].innerHTML = "Noise: " + noiseScore.toFixed(2);

        if (helloScore > 0.75) {
          sendToArduino("HELLO");
        } else if (noiseScore > 0.75) {
          sendToArduino("NOISE");
        }
      }, {
        includeSpectrogram: true,
        probabilityThreshold: 0.75,
        invokeCallbackOnNoiseAndUnknown: true,
        overlapFactor: 0.5
      });
    }
  </script>
</body>
</html>






#define GREEN_LED 7
#define RED_LED 8

void setup() {
  Serial.begin(9600);
  pinMode(GREEN_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
}

void loop() {
  if (Serial.available()) {
    String input = Serial.readStringUntil('\n');

    if (input.indexOf("HELLO") >= 0) {
      digitalWrite(GREEN_LED, HIGH);
      digitalWrite(RED_LED, LOW);
    } else if (input.indexOf("NOISE") >= 0) {
      digitalWrite(GREEN_LED, LOW);
      digitalWrite(RED_LED, HIGH);
    }
  }
}

MUD Three Mode operation Manual Automatic GPS

 Code for three mode operation: /*   3-Mode Headlight Controller   - Manual mode (driver uses a toggle to pick high/low)   - Auto mode (LDR...