The Sonorbeam
.jpg)
Vandecasteele gebruikt clarks om hun hout te vervoeren. Jammer genoeg gebeurt het dat de lading te hoog staat en tegen een ligger botst bij het betreden van een in- of uitgang. Om dit te vermijden laten wij de clark stoppen bij bepaalde voorwaarden zodat de bestuurder zijn lading kan verlagen. De eerste voorwaarde is wanneer de clark in een gevarenzone rijdt. Deze zone is bepaald door een zwarte lijn. Door middel van een infraroodsensor zal de arduino weten wanneer hij in de zone zit. Alleen in de zone zal er een ultrasone sensor werken die zich op het dak van de clark bevindt. Die zal dan de afstand meten tussen de clark en de lading. Als de lading te hoog is, dan zal de sensor dat detecteren en zal de clark stoppen. De bestuurder moet de lading dan verlagen.
Supplies
wij maken gebruik van arduino. Er is een ultrasone en infrarode sensor nodig met de nodige draden. Een auto/clark is van toepassing. Je kan gebruik maken van knex om die te bouwen. Om de code van de arduino te maken heb je een computer nodig. wij gebruiken een lampje om aan te tonen wanneer er detectie is.
Bouw Van De Clark
.jpg)
De eerste stap is het bouwen van een clark om de arduino erop te plakken. De clark mag je zelf ontwerpen en kiezen hoe het eruit ziet.
Bouwen Maquette
.jpg)
maak een maquette om het eindproduct te testen.
Arduino
.jpg)
Maak eerst de codes voor de sensoren apart en wanneer beide klaar zijn probeer ze dan samen te steken. wij hebben de volledige code gemaakt.
zie code:
const int irSensorPin = 2; // Pin for the IR reflective sensor
const int trigPin = 12; // Trig-pin for the ultrasonic sensor
const int echoPin = 8; // Echo-pin for the ultrasonic sensor
const int ledPin = 13; // Pin for LED
long duration;
int distance;
void setup() {
Serial.begin(9600);
pinMode(irSensorPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int irSensorValue = digitalRead(irSensorPin);
if (irSensorValue == LOW) {
Serial.println("No Black detected!");
digitalWrite(ledPin, LOW); // Turn off the LED if no black is detected
} else {
Serial.println("Black detected!");
// Trigger the ultrasonic sensor to measure distance
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Measure the duration of the echo pulse
duration = pulseIn(echoPin, HIGH);
// Convert the duration to distance in centimeters
distance = duration * 0.034 / 2;
// Print the distance
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Control LED based on distance
if (distance < 10) {
digitalWrite(ledPin, HIGH); // Turn on the LED if distance is less than 10 cm
} else {
digitalWrite(ledPin, LOW); // Turn off the LED if distance is greater than or equal to 10 cm
}
}
delay(500);
}