Kronocrumb
Arjun Vinod & Daniel Eskander
Mission of the project
We propose Kronocrumb, a contactless timer that uses gesture controls.
We realized that many tasks require the use of both hands and it’s not realistic to expect that our phone’s timer is always accessible. A baker’s hands may be covered in flour and a chemist’s gloves may be contaminated with HCl, so our idea of a contactless timer is immediately applicable in a variety of industries.
Usage
State 1: Idle
State 2: Set minutes
State 3: Set seconds
State 4: Countdown & Progress Bar
Countdown sent over Bluetooth
Demo
Peripherals
STM32 Nucleo-64 development board (STM32l476RG)
As the heart of the system, the Nucleo board interfaces with the sensors and modules via their respective protocols. Internally, we use its interrupts and RTC to keep track of the time.
HCSR04 Ultrasonic Sensor
The user interfaces with the system by swiping their hand in front of the ultrasonic sensor. We can capture these swiping gestures by detecting sudden changes in the distance measured by the ultrasonic sensor. We can also capture double-swipes by programming different behavior for capturing a swipe only after a small time has elapsed since the last swipe.
HC05 Bluetooth to Serial Port Module
The bluetooth functionality makes this an IoT system. The countdown value and captured commands are streamed via the Bluetooth module to interface with other devices. With further development, an API can be implemented to connect this system to smart-home devices to be a part of a bigger system.
I2C OLED Display Module
This display module ensures the system can function standalone by displaying all the relevant data to the user. When commands are detected such as start, stop, acknowledge, and enter config mode, they’re indicated on the display. When the user configures the time using their hand, the value is continuously displayed on the screen. As the time counts down, the value is also displayed on the screen.
I2C LCD Display Module
This secondary display makes it easier to monitor the status of the countdown by showing a progress bar.
Schematic
Acknowledgement of Third-Party Source Code
Code not created by us (Daniel & Arjun).
Directly implemented in this project:
SSD1306 OLED Controller Drivers: http://ausleuchtung.ch/ssd1306-with-STM32F401RE/
Used as a reference for an implementation in this project:
PCF8574 LCD Controller Configuration: https://controllerstech.com/i2c-lcd-in-stm32/
Lab1-5 in ECE 153B Labs