Skip to content

About

Progetto IOT

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Spider-Sense" Device Analysis

This project leverages an embedded system device based on the MSP432P401R Launchpad microcontroller board. The device seamlessly integrates 7 VL53L0X Time-of-Flight (ToF) sensors, connected via I2C, along with 6 5V vibration motors, and 1 piezobuzzer. Designed to be mounted on a cap, the device's architecture includes the board atop, the piezobuzzer positioned at the front, and vibration motors evenly distributed along the cap's inner circumference. Furthermore, 6 lidars are strategically placed over the vibration buttons, while one lidar faces downwards at the front of the hat.

Functionality

The device operates with the following functionalities:

  1. Initialization involves setting up the lidar addresses.
  2. Upon pressing the P1.1 button, the device commences height measurement and utilizes a probability algorithm to establish the default height.
  3. Continuous polling of all sensors ensues, activating respective vibration motors according to measured distances. Stronger vibrations indicate closer objects, lighter vibrations for distant ones, with no vibration beyond 2 meters.
  4. The downward-facing lidar triggers the piezobuzzer to emit various signals:
    • Fast beeping for heights exceeding the default (indicating a hole).
    • Continuous sound for unavoidable obstacles (height > default height + 40cm).
    • Normal beeping for detected steps.

Requirements

Hardware:

Software:

Project Layout

The project's source code is meticulously organized into logical components and modules, ensuring maintainability and clarity.

Source Code Organization:

  • project/: Contains the source code files.
  • test/: Houses test files.
  • images/: Hosts images utilized in the Readme.md file.

├── project
│   ├── project.ino               # Main code
│   ├── spider_sense.cpp          # Hardware independent library implementation code
│   ├── spider_sense.h            # Hardware independent library header file
│   ├── spider_sense_HD.cpp       # Hardware dependent library implementation code
│   └── spider_sense_HD.h         # Hardware dependent library header file
└── test
|   ├── lidar_test                # Hardare dependent code to test the lidars
|   |   └── lidar_test.ino        # Test code
|   ├── vib_button_test           # Hardare dependent code to test the vibration buttons and the piezobuzzer
|   │   ├── spider_sense.cpp      # Hardware independent library implementation code
|   │   ├── spider_sense.h        # Hardware independent library header file
|   │   ├── spider_sense_HD.cpp   # Hardware dependent library implementation code
|   │   └── spider_sense_HD.h     # Hardware dependent library header file
|   |   └── vib_button_test.ino   # Test code
|   └── library_test.cpp          # Hardware independent library test code
└── images                        # Holds the images needed for the Readme.md file
├── .gitignore
├── LICENSE
├── README.md

Build and Deployment

  1. Install Energia IDE and MSP432PXX Drivers.
  2. Install the VL53L0X library.
  3. Clone this repository.
  4. Open the project/project.ino file in Energia IDE.
  5. Build the project.
  6. Upload the compiled code onto the MSP432P401R Launchpad.
  7. Enjoy your newly acquired superpowers!

User Guide

  1. Assemble and wear the Spider Sense cap.
  2. Connect the two boards to a power source and wait a few seconds for the device to boot.
  3. Make sure to not have any obstacle in front of the lider which is pointing donwards, click the left button and stay still, Spider Sense will take about ten seconds to calculate your height.
  4. After ten seconds, you can start to move around freely.
  5. Focus on the feedback you get from the vibration motor when you get close to a wall or a big obstacle, you should be able to distinguish 4 levels of vibration:
    • Critical: the obstacle is closer than 50cm;
    • Strong: the obstacle is between 50cm and 100cm;
    • Normal: the obstacle is between 100cm and 150cm;
    • Light: the obstacle is betwwen 150cm and 200cm;
  6. Now try approaching holes, steps and tables to understand the different signals emitted by the beeper.
  7. Now that you're all set up you can use the system to be able to move around freely in low visibility (or no visibility) contitions without getting hurt. Quick tip: moving your head allows you to detect the presence of low obstacles and holes all around you!

PS: The system needs some time to sense the enviroment, thus you should not move to fast.

Links

Canva presentation

You Tube Video

Team Members

The development of the device was done almost entirely in group sessions where all members were present. Everyone worked on all aspects of the project together: research, software implementation, wiring and testing. Although the work was distributed evenly, we can define some areas in which each component had a more significant contribution:

  • Adami Filippo: Main focus on the main file and welding and wiring
  • Barborini Mattia: Main focus on the hardware independent library
  • Grisenti Matteo : Main focus on the hardware dependent library

About

Progetto IOT

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages