Voice-Controlled Smart Drawer System

 Status : Completed

Tags: featured Rasa 2.8.13 MediaPipe Pyttsx3 Python 3.8 Espeech Recognition package



AIM

We aim to create a home automation system with a voice-controlled smart drawer system that responds to voice commands and hand gestures, using Python, Rasa, and Espeech Recognition.


COMPONENTS AND TECHNOLOGIES USED

  • Python 3.8

  • Rasa 2.8.13

  • Espeech Recognition package

  • Pyttsx3

  • MediaPipe


OVERVIEW

MEMBERS:

Team Name: Technotron

Bipul Karna

20201037

CE

Final Year

Sarthak Kumar

20215089

ECE

Third Year

Avneesh Sahu

20224039

ECE

Second Year

Piyush Chourasia

20226098

ME

Second Year

 

 

OBJECTIVE:

This project was developed for participation in AtomQuest conducted by Techfest IIT Bombay, where our team achieved 2nd place overall. The main objective of our project is to enhance the convenience, efficiency, safety, and comfort of daily life by integrating technology and automation into various aspects of a home. We achieve this by creating a voice-based smart drawer system that opens and closes drawers using voice commands and hand gestures according to the objects present inside them. This can be a convenient and innovative addition to your home, providing hands-free access to drawer contents and reducing the time it takes to search for things we need. This project was made for participating in AtomQuest conducted by Techfest IIT Bombay in which our team secured an overall ranking 2nd position.

 

DESCRIPTION:

A 4*2 drawer system that opens and closes drawers using voice commands and hand gestures. This can be a convenient and innovative addition to your home, providing hands-free access to drawer contents.

 

COMPONENTS:

 

  • uncheckedArduino -: The application of Arduino, based on principles of embedded systems and microcontroller programming, facilitates the seamless integration of hardware and software, enabling users to customize and control the smart drawer effortlessly. Arduino's versatility and open-source nature empower developers to create user-friendly interfaces and implement various automation features. We have used Arduino Uno in our project.
  • uncheckedSG90 Servo Motors - A servo motor is a type of motor that can precisely control its position, speed, and acceleration. Unlike regular motors that continuously rotate, servo motors have a built-in mechanism that allows them to move to a specific angle and hold that position. These motors are used to pull and push the drawers to open and close them.

 

  • uncheckedRasa - Rasa is machine learning software that allows our device to recognize objects and choose which drawer to open and sends data back to our motor which opens the drawer for us.

 

  • uncheckedEspeech and pyttsx - These allow us to perform the input and output operations for rasa where the speech recognizer converts voice signals to input for rasa and pyttsx converts rasa data to send to Arduino. 

 

  • uncheckedLEDs – Various LEDs are used in the drawer system. Whenever a drawer opens, the corresponding LED light also starts glowing and when the drawer closes, the light switches off. This helps in retrieving items from the drawers easily.

 

  • unchecked16x2 LCD Module – An LCD module is also added which shows the drawer no. being opened with the words “opening” and “closing”.

 

  • uncheckedUltrasonic sensors – Ultrasonic sensors are also added to detect people near the drawer. The drawer remains open until the person is within the defined range of the sensor and will close automatically once the person leaves.

 

TechStack:

  • Python 3.8
  • Rasa 2.8.13
  • Espeech Recognition package
  • Pyttsx3
  • MediaPipe

 

FEATURES:

  • Motorized Operation: Automated drawer systems are equipped with servo motors and motor drivers that enable smooth and precise opening and closing of drawers.

 

  • Voice Control Integration: 
    • Utilizing Espeech recognizer for voice input and speech recognition.
    • We use rasa as machine learning software to understand the context of the speech and identify the drawer to open based on the speech.
    • We use pyttsx3 as an output tool that sends the rasa output to Arduino.
  • Technology Integration: Meticulous integration of components including drawer sliders, housing, electronics, sensors, and voice control systems.

 

  • Motion Sensors: Motion sensors can detect when someone approaches the drawer, allowing it to open automatically for hands-free access. Ultra-sonic sensors are added to detect people and accordingly open the drawers until the person goes away.

 

  • Lighting: Built-in LED lighting can illuminate the drawer's contents when it's open, making it easier to see and retrieve items. LCD Module also added for 

 

  • Soft-Close: Some systems use soft-closing mechanisms to prevent drawers from slamming shut.

 

  • Future Potential:
    • Setting new standards in home automation.
    • Our project is very flexible regarding new improvements and their execution that can be done with the growing technology.
    • Provides a smart sorting mechanism that will help large industries as well as shops if optimized properly. 

 

METHODOLOGY:

Project Scope and Objectives

  • Our main objective was to create a voice-controlled drawer system that should be capable of understanding voice commands from users and actuate the movement of drawers (opening-closing-stalling) accordingly.
  • For drawer movements, we used servo motors to control the opening and closing based on the recognized voice commands. 
  • For a successful voice command and proper drawer movements, we had to focus on a proper ML model and NLP techniques with all required models and inputs and also the servers that were used in the whole workflow. 
  • The ML model also handles various errors like dealing with unrecognized commands or motor malfunctions. 

Research and Planning

  • Before executing our ideas, we conducted thorough research on existing similar models and products and tried to understand their functionalities, domain of use, limitations, and potential improvements.
  • We explored various platforms, APIs, and libraries that could be integrated with the Arduino Uno to facilitate voice command interpretation.
  •  We searched for the required components and items (Arduino, servos, mic, etc.) and their alternatives keeping in mind the final budget of the product or prototype. While selecting servo motors for the drawer movement mechanism, we could have also considered stepper motors but we found servo motors to be more economical.
  •  We explored various voice recognition techniques, speech-to-text algorithms, appropriate ML algorithms, and frameworks.
  • We also planned for a proper design and structure of the drawer system, wire management, component positions, and placements. 

 

Component Selection and Procurement

Select Mechanical Components

  • We chose servo motors for the drawer movements
  • Other potential options for the mechanism were using stepper motors or electromagnets for drawer movements of opening and closing. 
  • We searched for a proper sliding mechanism for smooth movement of drawers and designed it.

Select Electronic Components

  • We chose to go for Arduino Uno as it was economically satisfying all the requirements. 
  •  Looking for alternatives, we also considered using Raspberry Pi which would have indeed helped us to integrate all the operations and processes in one single processor (from voice recognition to servers to Arduino and finally the movement of drawers) 
  • We also used Ultrasonic sensors in our project which was used to detect people in its set vicinity and keep the drawer open until the person leaves the vicinity.
  • Additionally, we could also use IR sensors for counting the objects kept in the drawers.
  • For speech recognition, we used a simple microphone for clear voice input. 

Mechanical Design and Assembly

The structure was properly designed, including the sliding mechanism and the drawers. Proper placing marks for each component to be used were also given for easy management. 

 

Electronic System Development

Develop Control Software

  • Proper codes were implemented in Arduino IDE to synchronize the servo movements with the voice signals from the voice recognition algorithm and datasets.
  • Proper logic for the servo motor movement is implemented considering the angle to be moved, the delay to be given during different processes, and synchronizing with the sensors used.

Develop Voice Control System

To configure speech input and recognition, the project utilized the ‘espeech recognizer’ package, which provided a convenient interface for capturing and processing speech input. Rasa, a powerful machine learning framework, was employed to train a model that could understand the speech signal and identify the desired drawer based on user commands. Additionally, ‘pyttsx3’ was integrated to generate speech output, providing feedback to the user regarding the system's actions or responses. By combining these components, the system offered a seamless interaction experience, enabling users to effortlessly control the drawers through voice commands while receiving audible feedback for confirmation and guidance.

 

Integration of Mechanical and Electronic Systems

  • After individual setups, the main challenge was to properly integrate each of those setups which included processes like synchronizing the servo motors with the servers and ML models and speech recognition systems using serial monitors.
  • Ensuring the integration of voice and gesture control was a must.

Testing and Debugging

Conduct Comprehensive Testing

  • Testing the voice commands and ensuring correct interpretation by the system
  • Ensuring that the server can recognize the correct word and command spoken and accordingly send the correct data using the ML input data.
  • It ensured the correct movement of the servo motors after a certain voice command. This also ensured proper integration of the codes and processes. 

 

User Interface Development

  • A proper user-friendly front-end was also developed giving the information about which drawer contains what items. The items could be changed according to the user’s wish and the drawers would open with the command of respective items placed in the front-end.

 

Final Testing

  • After the integration and proper setups and placement of each component and final touching of the structure, final testing was done to ensure that the correct drawer opened after a certain voice command.
  • Trying to optimize the system and processes and debugging it to make it more efficient and faster.

 

APPLICATIONS:

  • Students and Educational Institutes: Students, both at the college and high school levels, can benefit from the efficiency this system offers in accessing study materials, stationery, and personal items. Educational institutions can also consider implementing such sorting systems in various places to make it more convenient for storing important stuff.
  • Homeowners: Homeowners seeking to enhance their living spaces with automation and convenience will benefit from automated drawers. Their daily routines will become more efficient and enjoyable. This also includes individuals with busy schedules looking to improve their daily tasks and increase time efficiency.
  • Individuals with Disabilities: People with mobility challenges or disabilities represent a significant market segment. They will be at ease while accessing drawer contents.
  • Medical shops: One of the main areas where these automated drawers can be used is the pharmacy shops where there are uncountable types of medicines. The drawers will provide a sorting mechanism and will provide ease to the shopkeeper as everything will be voice-based. This will save a lot of time and effort.

 

PROBLEMS FACED:

  • Designing drawers while taking into consideration the amount of materials to be used to make a strong model for the prototype.
  • Sorting out and synchronizing the mechanics behind the smooth pushing and pulling of drawers with the servo motor movement.
  • Wire management as a lot of servos is used along with other components.
  • Controlling the movement of servos with the help of voice input in the server and opening of drawers according to the front-end design.

 

 

Thank you 

TEAM Technotron