Skip to content

Final project of Practical Digital Electronics, Spring 2024 | NTU PHY

Notifications You must be signed in to change notification settings

shih1999/NavXplorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Final project of Practical Digital Electronics, Spring 2024 | NTU PHY

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published