Skip to content

Latest commit

 

History

History
117 lines (93 loc) · 5.13 KB

README.md

File metadata and controls

117 lines (93 loc) · 5.13 KB

Binny, the Smart Bin

Binny is an intelligent and interactive trash bin that automatically sorts waste while providing an engaging and educational experience for children. The project aims to combine technological innovation with eco-friendly practices, making recycling fun and efficient.

Table of Contents

Overview

Developed as part of the courses INFOM450, INFOM451, and INFOM453 at Université de Namur, Binny addresses the needs of eco-conscious individuals with limited time, particularly parents wanting to teach their children about recycling. The bin uses AI to sort waste and interacts with children by sharing jokes and educational tips on recycling.

Key Features

  • Automatic Waste Sorting: Utilizes a camera and AI model to identify and sort waste in real-time.
  • Educational Interactions: Engages children with interactive conversations and jokes about recycling.
  • Reliable Connectivity: Supports both local and server-based operation with a robust REST-mesh architecture.

Technologies Used

Software

  • Scala with Akka framework for sensor management and real-time data handling:
    • Event-driven actor system for seamless communication between components.
    • Animation features using ScalaFX for a child-friendly interface.
    • WebSocket for interaction between Python AI and Scala components.
  • Python for AI and voice interaction:

Hardware

  • Raspberry Pi 4: Central processing unit.
  • Camera: For waste image capture and identification.
  • Phidget Sensors: For proximity detection, touch interaction, lid blockage detection and fill-level monitoring.
  • Servo Motors: For automatic lid operation.
  • Microphone and Speaker: For voice interaction and responses.

Hardware Requirements

The following components are required to build and operate Binny:

Setup and Installation

The project needs Java 17, Scala, SBT and Python to run.

  1. Clone the repository to your local machine:
    git clone https://github.com/ZeTioZ/Binny.git
  2. Create a virtual environment for the Python dependencies:
    python -m venv venv
    source venv/bin/activate # On Windows, use venv\Scripts\activate
  3. Install the required dependencies:
    pip install -r requirements.txt
  4. Run the Scala project:
    sbt "~run"
  5. Start the servers for the AI and voice interaction:
    python ./src/main/python/tts-rest-server/rest_api.py
    python ./src/main/python/glados-tts/engine.py
    python ./src/main/python/llm/llm_hook.py

You may need to adjust the ip addresses in the python files to match your local network. For the AI to work, you need to have a llm server running on your network. Checkout LMStudio for an easy way to do this.

Possible Improvements

Binny is a work in progress, with several potential enhancements:

  • Improving object recognition accuracy with additional AI training.
  • Optimizing hardware for faster response times.
  • Introducing mobile app integration for bin management.
  • Upgrading the visual interface with a faster and larger touchscreen display.
  • Implementing a more robust voice interaction system with better natural language processing.
  • Adding a reward system for children to encourage recycling.
  • Incorporating a cloud-based data storage system for waste statistics and user feedback.
  • Enhancing the educational content with more recycling tips and fun facts.
  • Adding a battery backup system for uninterrupted operation.
  • Adding a remote control system for bin operation.
  • Adding buttons for manual operation.

Contributors

  • Donato Gentile
  • Diego Alarcon
  • Matteo Devigne
  • Arthur Barbieux
  • Rodrigue Yando Djamen

License

This project is licensed under the MIT License.


We hope Binny inspires fun and sustainable recycling habits. Contributions and suggestions are welcome!