Android Studio + Arduino ESP32 based project for Hack the Hill Hackathon event held in University of Ottawa between March 3-5, 2023, with the task of completing one or more of the challenges within 36 hrs.
- Maker Con Challenge Presented by Maker Jam
The project is tasked to provide a solution to the problem that many people with disabilities who use power recliner chairs or remote controlled hospital beds with reduced mobility cannot push the buttons on their chairs/beds' remote controls with physical power. The challenge was introduced by TetraSociety.
A design solution comprising of 5 cascading communicating components to achieve a voice operated, software+hardware driven mechanical system was layed out:
- Command based voice recognition
- Text filtering/parsing and generating data packets containing control signals
- Android Bluetooth Low Energy (BLE) client/peripheral system
- Arduino ESP32 Bluetooth Low Energy (BLE) server/center system
- Mechanical servo system controlled by Arduino ESP32
The Android app is capable of selectively receiving voice commands, with optional duration parameter passing through voice as well. The speech is transcribed and filtered, then converted to serially transmittable string packets to be sent through the peripheral output of the Android system's BLE functionality.
Speech is transcribed in real-time in determined short time intervals using Android's SpeechRecognizer library. Provides the user to prompt a programmable button command, e.g. "up two" for pressing the up button for two seconds, or just "down" for pressing the down button for a programmed default interval.
The ESP32 board is programmed to host a BLE server to scan for serial peripheral input at a baud rate of 115200 bps. The serial input is converted into control signals for the servos to control button interaction.
The ESP32 is also programmed to get the serial control input and translate that into a set of servo control signals for button interaction. The placement of the buttons can be customizable for possible future implementations, allowing up to multiple button interactions and different time intervals, potentially allowing generic application for various remote control devices.