Projects

Voice-Controlled Wheelchair Project

Enhancing mobility and independence through innovative technology

Project Description

This project involves the development of a voice-controlled wheelchair that can be operated using simple voice commands. The system integrates mechanical, electrical, and electronic components to provide a hands-free solution for individuals with limited physical abilities.

Components

Mechanical Components

  • Wooden Wheel (Friction Gear Type Rotator) Wooden Wheel
  • Coupler Coupler
  • Ball Bearings Ball Bearings
  • Nut-Bolts Clamps Nut-Bolts Clamps
  • 12V Planetary Motor 12V Planetary Motor
  • Wires Wires
  • 12V 14Ah Battery 12V 14Ah Battery
  • Breadboard Breadboard

Electronic Components

  • Arduino Uno R3 Microcontroller Arduino Uno R3
  • HC-05 Bluetooth Module HC-05 Bluetooth Module
  • Motor Driver Motor Driver
  • 4-way Relay 4-way Relay

Mechanical Design and Setup

The mechanical design includes a robust frame, friction gear wheels, and secure clamps to ensure stability and smooth operation. The setup involves integrating these components to create a functional and reliable wheelchair system.

Mechanical Design

Circuit Design

The circuit design incorporates voice recognition, signal transmission, motor control, and safety measures. It ensures accurate interpretation of voice commands and reliable operation of the wheelchair.

Circuit Design

Software Development

The software development includes creating an Android application for voice recognition and control, integrating Bluetooth communication, and using Firebase for data collection and security features.

Software Development

Tini Militia Game Project

A comprehensive gaming experience developed using CMake and Visual Studio

Project Overview

The Tini Militia game project is a game development project structured using CMake and Visual Studio. It integrates various third-party libraries and custom modules to create a comprehensive gaming experience.

Project Structure

Root Directory

  • .gitignore: Specifies files and directories to be ignored by Git.
  • .vs/: Contains Visual Studio-specific files and settings.
  • app.aps: Application settings file.
  • app.rc: Resource script file.
  • CMakeLists.txt: The main CMake configuration file.
  • coverimage.psd: Photoshop file, likely used for game cover art.
  • README.md: Project documentation file.

Build Directory

  • build/: Contains build-related files and directories, including CMake configurations, project files, and compiled binaries.

Include Directory

  • include/: Contains header files for various modules.
  • gameLayer/: Header files related to the game layer.
  • platform/: Header files related to platform-specific implementations.

Resources Directory

  • resources/: Contains game assets such as images, sounds, and other media files.

Source Directory

  • src/: Contains the source code for the game.

Third-Party Libraries

  • thirdparty/: Contains third-party libraries used in the project.
  • glfw-3.3.2/: Library for creating windows and handling input.
  • glad/: OpenGL loader library.
  • stb_image/: Library for loading images.
  • stb_truetype/: Library for loading TrueType fonts.
  • raudio/: Audio library.
  • glm/: Mathematics library.
  • imgui-docking/: Immediate Mode GUI library with docking support.
  • safeSave/: Library for saving game data with backup support.
  • profilerLib/: Library for profiling and measuring elapsed time.
  • gl2d/: 2D rendering library.
  • glui/: UI library for creating game menus.

Detailed Description of Components

The project uses CMake for build configuration. The main CMakeLists.txt file sets up various build options and includes subdirectories for third-party libraries and custom modules.

  • Third-Party Libraries: The project includes several third-party libraries for window management, OpenGL loading, image loading, font loading, audio, mathematics, and UI.
  • Custom Modules: The project includes custom modules for saving game data, profiling, and 2D rendering.

Visual Studio Project Files

The project includes several Visual Studio project files (.vcxproj) for different examples and configurations. These files define the build configurations for Debug and Release modes, as well as for different platforms (Win32 and x64).

  • example_sdl2_opengl3.vcxproj: Example project using SDL2 and OpenGL3.
  • example_sdl2_directx11.vcxproj: Example project using SDL2 and DirectX11.
  • example_sdl2_opengl2.vcxproj: Example project using SDL2 and OpenGL2.
  • example_glfw_opengl3.vcxproj: Example project using GLFW and OpenGL3.
  • example_sdl3_opengl3.vcxproj: Example project using SDL3 and OpenGL3.
  • example_sdl2_sdlrenderer.vcxproj: Example project using SDL2 and SDL Renderer.
  • example_glfw_opengl2.vcxproj: Example project using GLFW and OpenGL2.

Game Development

The game development aspect of the project is handled through various custom modules and third-party libraries. The main game logic and rendering code are likely located in the src directory, while the include directory contains the corresponding header files.

  • Game Layer: Manages the core game logic and interactions.
  • Platform: Handles platform-specific implementations and optimizations.
  • Rendering: Utilizes the gl2d library for 2D rendering and imgui-docking for the user interface.
  • Audio: Uses the raudio library for audio playback.
  • Profiling: Uses the profilerLib library for performance measurement and optimization.
  • Saving Data: Uses the safeSave library to save game data and create backups.

Conclusion

This project is a well-structured game development project that leverages various third-party libraries and custom modules to create a comprehensive gaming experience. The use of CMake and Visual Studio allows for flexible build configurations and easy integration of different components. The project is organized into clear directories and files, making it easy to navigate and understand.