Created
September 21, 2024 08:26
-
-
Save erenmustafaozdal/8889a69a9b181dd95744fc4bc6e8548a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Wire.h> | |
#include <Adafruit_VL53L0X.h> | |
Adafruit_VL53L0X lox = Adafruit_VL53L0X(); | |
#define BUZZER_PIN 9 | |
#define VIBRATION_PIN 10 | |
#define WARNING_DISTANCE_1 60 | |
#define WARNING_DISTANCE_2 40 | |
#define DANGER_DISTANCE 20 | |
void setup() { | |
pinMode(BUZZER_PIN, OUTPUT); | |
pinMode(VIBRATION_PIN, OUTPUT); | |
Serial.begin(9600); | |
// Start the VL53L0X sensor | |
if (!lox.begin()) { | |
Serial.println(F("Failed to start VL53L0X")); | |
while (1); // Enter infinite loop in case of error | |
} | |
Serial.println(F("VL53L0X API Simple Range Test")); | |
// Play the C5 note on the buzzer for a whole note | |
tone(BUZZER_PIN, 523, 1000); // 523 Hz = C5, 1000 ms = whole note | |
// Turn the vibration motor on for 1 second, then off | |
digitalWrite(VIBRATION_PIN, HIGH); | |
delay(1000); | |
digitalWrite(VIBRATION_PIN, LOW); | |
} | |
// Alert function: Buzzer plays the C5 note for an eighth note, and the vibration motor vibrates | |
void uyari() { | |
tone(BUZZER_PIN, 523, 125); // 523 Hz = C5, 125 ms = eighth note | |
digitalWrite(VIBRATION_PIN, HIGH); | |
delay(125); | |
digitalWrite(VIBRATION_PIN, LOW); | |
} | |
void loop() { | |
VL53L0X_RangingMeasurementData_t measure; | |
// Take a measurement | |
lox.rangingTest(&measure, false); | |
// Check if the measurement is valid | |
if (measure.RangeStatus != 4) { | |
float distance = measure.RangeMilliMeter / 10.0; | |
Serial.print("Distance (cm): "); Serial.println(distance); | |
if (distance >= WARNING_DISTANCE_2 && distance < WARNING_DISTANCE_1) { | |
uyari(); | |
delay(600); // Wait for 0.6 seconds | |
} else if (distance >= DANGER_DISTANCE && distance < WARNING_DISTANCE_2) { | |
uyari(); | |
delay(300); // Wait for 0.3 seconds | |
} else if (distance < DANGER_DISTANCE) { | |
uyari(); // No waiting | |
} | |
} else { | |
Serial.println("Out of range"); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Processing LilyPadUSB (platform: atmelavr; board: LilyPadUSB; framework: arduino) | |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
Verbose mode can be enabled via -v, --verbose option | |
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/LilyPadUSB.html | |
PLATFORM: Atmel AVR (5.0.0) > Arduino LilyPad USB | |
HARDWARE: ATMEGA32U4 8MHz, 2.50KB RAM, 28KB Flash | |
DEBUG: Current (simavr) External (simavr) | |
PACKAGES: | |
- framework-arduino-avr @ 5.2.0 | |
- tool-avrdude @ 1.60300.200527 (6.3.0) | |
- toolchain-atmelavr @ 1.70300.191015 (7.3.0) | |
LDF: Library Dependency Finder -> https://BANNED/configure-pio-ldf | |
LDF Modes: Finder ~ chain, Compatibility ~ soft | |
Found 9 compatible libraries | |
Scanning dependencies... | |
Dependency Graph | |
|-- Adafruit_VL53L0X @ 1.2.4+sha.23dc309 | |
|-- Wire @ 1.0 | |
Building in release mode | |
Compiling .pio\build\LilyPadUSB\src\main.cpp.o | |
Compiling .pio\build\LilyPadUSB\lib192\Wire\Wire.cpp.o | |
Compiling .pio\build\LilyPadUSB\lib192\Wire\utility\twi.c.o | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\Adafruit_VL53L0X.cpp.o | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\core\src\vl53l0x_api.cpp.o | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\core\src\vl53l0x_api_calibration.cpp.o | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\core\src\vl53l0x_api_core.cpp.o | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\core\src\vl53l0x_api_ranging.cpp.o | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_core.cpp: In function 'uint32_t VL53L0X_isqrt(uint32_t)': | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_core.cpp:124:23: warning: left shift count >= width of type [-Wshift-count-overflow] | |
uint32_t bit = 1 << 30; | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_core.cpp: In function 'VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV, VL53L0X_RangingMeasurementData_t*, FixPoint1616_t*, uint32_t*)': | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_core.cpp:1716:22: warning: left shift count >= width of type [-Wshift-count-overflow] | |
pwMult *= ((1 << 16) - xTalkCorrection); | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_core.cpp:1722:21: warning: left shift count >= width of type [-Wshift-count-overflow] | |
pwMult += (1 << 16); | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp: In function 'VL53L0X_Error VL53L0X_perform_xtalk_calibration(VL53L0X_DEV, FixPoint1616_t, FixPoint1616_t*)': | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp:115:52: warning: left shift count >= width of type [-Wshift-count-overflow] | |
(FixPoint1616_t)((uint32_t)(sum_ranging << 16) / total_count); | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp:117:50: warning: left shift count >= width of type [-Wshift-count-overflow] | |
(FixPoint1616_t)((uint32_t)(sum_spads << 16) / total_count); | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp:159:18: warning: left shift count >= width of type [-Wshift-count-overflow] | |
((1 << 16) - (xTalkStoredMeanRange / xTalkCalDistanceAsInt)); | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp: In function 'VL53L0X_Error VL53L0X_perform_offset_calibration(VL53L0X_DEV, FixPoint1616_t, int32_t*)': | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp:240:52: warning: left shift count >= width of type [-Wshift-count-overflow] | |
(FixPoint1616_t)((uint32_t)(sum_ranging << 16) / total_count); | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp: In function 'VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV, int32_t*)': | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api_calibration.cpp:317:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] | |
if (RangeOffsetRegister > cMaxOffset) | |
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api.cpp: In function 'VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV, VL53L0X_DeviceModes, FixPoint1616_t*, FixPoint1616_t*)': | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api.cpp:2610:64: warning: left shift count >= width of type [-Wshift-count-overflow] | |
*pThresholdLow = (FixPoint1616_t)((0x00fff & Threshold16) << 17); | |
^~ | |
.pio\libdeps\LilyPadUSB\Adafruit_VL53L0X\src\core\src\vl53l0x_api.cpp:2615:67: warning: left shift count >= width of type [-Wshift-count-overflow] | |
*pThresholdHigh = (FixPoint1616_t)((0x00fff & Threshold16) << 17); | |
^~ | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\core\src\vl53l0x_api_strings.cpp.o | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\platform\src\vl53l0x_i2c_comms.cpp.o | |
Archiving .pio\build\LilyPadUSB\lib192\libWire.a | |
Compiling .pio\build\LilyPadUSB\lib9ae\Adafruit_VL53L0X\platform\src\vl53l0x_platform.cpp.o | |
Archiving .pio\build\LilyPadUSB\libFrameworkArduinoVariant.a | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\CDC.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\HardwareSerial.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\HardwareSerial0.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\HardwareSerial1.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\HardwareSerial2.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\HardwareSerial3.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\IPAddress.cpp.o | |
Archiving .pio\build\LilyPadUSB\lib9ae\libAdafruit_VL53L0X.a | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\PluggableUSB.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\Print.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\Stream.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\Tone.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\USBCore.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\WInterrupts.c.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\WMath.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\WString.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\abi.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\hooks.c.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\main.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\new.cpp.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\wiring.c.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\wiring_analog.c.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\wiring_digital.c.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\wiring_pulse.S.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\wiring_pulse.c.o | |
Compiling .pio\build\LilyPadUSB\FrameworkArduino\wiring_shift.c.o | |
Archiving .pio\build\LilyPadUSB\libFrameworkArduino.a | |
Linking .pio\build\LilyPadUSB\firmware.elf | |
Checking size .pio\build\LilyPadUSB\firmware.elf | |
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" | |
RAM: [===== ] 46.5% (used 1190 bytes from 2560 bytes) | |
Flash: [======== ] 76.2% (used 21838 bytes from 28672 bytes) | |
Building .pio\build\LilyPadUSB\firmware.hex | |
Configuring upload protocol... | |
AVAILABLE: avr109 | |
CURRENT: upload_protocol = avr109 | |
Looking for upload port... | |
Using manually specified: COM15 | |
Forcing reset using 1200bps open/close on port COM15 | |
Waiting for the new upload port... | |
Error: Couldn't find a board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload. | |
*** [upload] Explicit exit, status 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment