Coder Social home page Coder Social logo

navxplorer's Introduction

NavXplorer

NavXplorer is a smart and automatic self-driven car designed for indoor navigation. Originally conceived as a redesigned drip stand solution, it aims to assist patients needing hands-free assistance and elderly individuals prone to getting lost in medical environments. However, it can also be applied to other complex indoor settings where GPS signals are ineffective.

Table of Contents

  1. Introduction
  2. Features
  3. Project Structure
  4. Hardware
    3.1 Materials
    3.2 Circuit Diagrams
  5. Software
    4.1 Arduino Code
    4.2 Python Code
    4.3 Code Logic and Functionality
  6. Installation
  7. How to Run
  8. Future Work
  9. References
  10. Our Team

0. Introduction

Introduction Video

1. Features

  • Automatic Navigation: Navigates autonomously in indoor environments.
  • Obstacle Avoidance: Equipped with ultrasonic sensors for detecting obstacles to ensure safety.
  • User Presence Detection: Uses ultrasonic sensors to continuously monitor the user's presence.
  • QR Code Integration: Utilizes QR codes for initial setup, location determination, and navigation updates.
  • Real-time Monitoring: Provides a web server interface for monitoring the car's status and obstacle distances.

2. Project Structure

NavXplorer/
│
├── WebServerCarControl/
│   └── WebServerCarControl.ino
├── QRcodeScanControl/
│   └── QRcodeScanControl.py
├── ModuleTest/
│   ├── MotorTest/
│   │   └── MotorTest.ino
│   ├── UltrasonicTest/
│   │   └── UltrasonicTest.ino
│   └── README.md  # This README explains the testing code
└── README.md  # This README explains the main project

3. Hardware

3.1 Materials

Material Number Note
ESP32-S3 Development Board 1
HC-SR04 Ultrasonic Distance Measurement Module 4
L298N Motor Driver Module for DC Motors 1
DC3V-6V TT Gear Motor 1:48 2
65 * 27mm TPE Rubber Wheel 2
W420 Ball Caster Wheel 1
12V Battery Power Supply 1
2D Bluetooth Barcode Scanner 1 eg. AURORA XB-6208

3.2 Circuit Diagrams


Red : 5V positive terminal
Black : Ground negative terminal
Blue : Ultrasonic Trigger
Pink : Ultrasonic Echo

4. Software

4.1 Arduino Code

Controls essential hardware modules for the operation of NavXplorer, including the ESP32 board, power supply, ultrasonic sensors, and motors. It establishes a server for remote communication and provides a web page for real-time monitoring of the car's status and ultrasonic sensor detection results.

4.2 Python Code

Manages NavXplorer's navigation logic in conjunction with a handheld QR code scanner. During initial setup, it reads QR codes to determine the area, current position, and destination. Throughout navigation, it continuously scans QR code inputs to update it's position and determine the next direction.

4.3 Code Logic and Functionality

Still writing ...

5. Installation

Download and Install Arduino IDE

  1. Visit the Arduino IDE download page
  2. Select the appropriate version for your operating system (Windows, Mac, Linux)
  3. Download and install the Arduino IDE by following the instructions provided on the page

Download and Install Python

  1. Visit the Python download page
  2. Select the appropriate version for your operating system
  3. Download and install Python by following the instructions provided on the page
  4. Make sure to check the box that says "Add Python to PATH" during the installation process

6. How to Run

6.1 Run Arduino Code

  1. Open Arduino IDE

  2. Select Files > Open > Find WebServerCarControl.ino > Click "Open"

  3. Select Tools > Board > ESP32 Arduino > Click "ESP32S3 Dev Module"

  4. Modify Code: Change Wi-Fi settings to your own Wi-Fi credentials

  5. Connect ESP32 to your computer by USB cable

  6. Click the upload (right arrow) button to upload the code

  7. Wait for the upload to finish

  8. Open Serial Monitor (baud rate set to 115200)

6.2 Run Python Code

  1. Open QRcodeScanControl.py

  2. Modify Code: Change IP to the ip address obtained from the Serial Monitor

  3. Navigate to the correct directory

    cd path_to_directory
  4. Run

    python QRcodeScanControl.py

7. Future Work

  • Transition to Soldered Circuit Board for Stability
  • Redesign Machine Exterior for Improved Fit and Weight
  • Reconfigure Battery Placement and Develop a Custom Power Switch
  • Upgrade to Advanced Motor Types for Enhanced Control
  • Purchase and Integrate OpenAI API

8. References

9. Our Team

Team Members

Special Thanks

  • TA 仲耘 for providing the AI path planning idea
  • TA 致嘉 for providing the 2D Barcode Scanner idea

navxplorer's People

Contributors

shih1999 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.