Skip to content

JosepMaCases/Interhack-2026-Qualcom

Repository files navigation

ENGLISH

Authors: Natàlia Cortés, Joan Marc Samó, Carolina Espin, Josep Mª Cases, Carlos Albaladejo

SafeHelmet - Collision Detection System

Project Name: SafeHelmet

🎯 Project Objectives

  • Develop a collision detection and alert system for static and dynamic objects, integrated into certified protective helmets as an accessory tool for road circulation
  • Detect moving objects simulating the reality of the road network
  • Address the risk posed by excessive speed and proximity of objects

🏗️ Web Architecture

The web interface has been primarily structured with:

Pages and Routes (SEO Optimized)

  • / - Home page with a product introduction
  • /map - Visualization of locations, incidents and other data
  • /camera - Live monitoring with active detection
  • /about - Information about the project and team

Main Components

Enhanced Header

  • 3 columns: Map Button | Logo | About Us + Menu
  • Intuitive navigation
  • Sticky header on scroll

Sidebar

  • Contextual menu (~25% width)
  • Only visible at /map and /camera
  • Smooth transitions
  • Overlay to close

Modern Design

  • Color gradients (Orange #ff3e00 → Yellow #ffaa00)
  • Transitions and hover effects
  • Responsive design (Desktop, Tablet, Mobile)

💻 Technologies Used

Frontend

  • Svelte 5.55.2 - Reactive framework
  • SvelteKit 2.57.0 - Full-stack framework with routing
  • TypeScript 6.0.2 - Static typing
  • Vite 8.0.7 - Fast build tool

Backend (Arduino)

  • Python - Main script
  • Arduino IDE - Hardware sketch
  • Collision detection via sensors

🚨 Alert Systems

Visual Alert

  • Two hertz flashing
  • Non-saturated red LED
  • Located on the handlebar

Sound Alert and Vibration

  • System integrated into the helmet
  • Immediate proximity notification

Intelligent Detection

  • Distance identification with OpenCV (implementable)
  • Object speed analysis
  • Real-time system

Web Notifications

  • Browser popup alerts shown on the camera page
  • Triggered when a person is detected near the critical zone
  • Environmental alerts for high noise levels or poor air quality
  • Alerts are rate-limited to avoid repeated notifications
  • Messages are short and actionable, for example:
    • Person nearby: getting close to the critical zone.
    • Noise is high. Consider moving to a quieter area.
    • Air quality is poor.

📁 Project Structure

Interhack-2026-Qualcom/
├── src/
│   ├── routes/                    # SvelteKit routes
│   │   ├── +layout.svelte        # Main layout
│   │   ├── +page.svelte          # Landing
│   │   ├── map/+page.svelte      # Map
│   │   ├── about/+page.svelte    # Information
│   │   └── camera/+page.svelte   # Live monitoring
│   ├── lib/
│   │   ├── components/
│   │   │   └── molecules/templates/
│   │   │       ├── Header.svelte       # Enhanced header
│   │   │       ├── Sidebar.svelte      # Side menu
│   │   │       ├── About.svelte        # About page
│   │   │       └── MapLayout.svelte    # Map layout
│   │   └── styles/
│   │       └── global.css              # Global styles
│   └── static/icons/             # SVG icons
├── Arduino code/
│   ├── sketch/
│   │   └── sketch.ino            # Arduino code
│   └── python/
│       └── main.py               # Python script
├── package.json
└── svelte.config.js

🚀 How to Run

Development

npm install      # Install dependencies
npm run dev      # Start server (http://localhost:5173)

Production Build

npm run build    # Create optimized build
npm run preview  # Preview the build

Validation

npm run check          # Svelte check
npm run check:watch    # Check in watch mode

Arduino App Lab Structure

This project uses Arduino App Lab with:

  • sketch/ → Arduino .ino firmware running on the MCU
  • python/ → Python application running on Linux
  • Bridge communication between Arduino and Python

Arduino Project structure in Arduino App Lab:

project/
├── sketch/
│   ├── sketch.ino
│   ├── DistanceSensor.ino
│   ├── BuzzerModule.ino
│   ├── PixelsModule.ino
│   └── ThermoModule.ino
│
├── python/
│   └── main.py
│
└── app.yml

🎨 Color Palette

Color Use Value
Orange Primary (Buttons, Links) #ff3e00
Yellow Secondary (Gradients) #ffaa00
Light Gray Background #f4f4f4
Dark Gray Text #272727

🔄 Navigation Flow

Home (/)
    ↓
[Explore Map] [Learn More]
    ↓                ↓
  /map            /about
  ├─ Header       ├─ Header
  ├─ Menu ✓       ├─ Menu ✗
  └─ MapLayout    └─ Information

From /map:
  ↓ (Menu Button)
[Sidebar] - 25% width
  - Settings
  - Documentation
  - Support
  - Contact

✨ Notable Features

SEO Optimized - Meta tags and titles on each page ✅ Responsive - Works on all devices ✅ Smooth Transitions - Fade animations between pages ✅ Conditional Menu - Only visible where appropriate ✅ Sticky Header - Adapts to scrolling ✅ Interactivity - Hover effects and animations

📝 Upcoming Improvements

  • Integrate real map (Leaflet/Mapbox)
  • Websocket for live data
  • Statistics dashboard
  • Authentication system
  • Product gallery
  • 3D helmet animation

🤝 Contributors

  • Interhack 2026 Team
  • Qualcomm Innovation Challenge

Last updated: May 10, 2026

Evolution:

The next stages of the product will focus mainly on scalability and the incorporation of infrared light systems to improve illumination or even allow nighttime circulation.

SOFTWARE

AI Training

For real-time collision detection with low latency, we have implemented a TinyML model using the Edge Impulse platform. This allows us to perform Edge Computing. Image processing is done locally on the device without needing to rely on the cloud, leveraging a local model.

Training Process:

  • Data Acquisition: Creation of a custom dataset with more than 100 captures of rubber ducks, taken with the Logitech Brio 105 Business Webcam at different angles. Considering factors such as distances and lighting conditions to simulate varied obstacles.
  • Impulse Design: Image pre-processing to optimize memory consumption.
  • Feature extraction through image processing blocks.
  • Detection Model: Training of a neural network optimized for mobile devices (Object Detection).
  • Optimization: Conversion of the model to a lightweight format (TensorFlow Lite equivalent) to run on a high-performance, low-power chip.
  • Local Implementation (On-Device AI): Unlike other systems that send video to a server, our AI runs directly on a dedicated microchip integrated into the helmet.

Model characteristics

  • Minimum latency: The alert is instantaneous (critical to avoid collisions).

  • Privacy: No images of public roads are stored or sent; the system only generates alerts and anonymous numerical data.

  • Model Result. Since our product requires measuring distances to objects, we will use the ratio of the object's size relative to the full image as a reference. Since this ratio must vary in proportion to the distance, the training data available to us (oriented to work with centroids) is inefficient and therefore the model has not given us the desired results.

As a consequence, we used a pre-trained model provided by Qualcomm Innovation Challenge to carry out our demo.

Hardware

This prototype incorporates multiple hardware sensors that allow us to test the real latency of the different inputs of our design.

Main Components

Module Units Description Reference
[Arduino Modulino Vibro] 1 Sensor to alert the user with vibration (https://docs.arduino.cc/hardware/modulino-vibro/)
[Arduino Modulino Pixels] 1 Customizable display (https://docs.arduino.cc/hardware/modulino-pixels/)
[Arduino Modulino Thermo] 1 Ambient temperature sensor (https://docs.arduino.cc/hardware/modulino-thermo/)
[Arduino Modulino Distance] 1 Sensor that detects the distance of a hazard (https://docs.arduino.cc/hardware/modulino-distance/)
[Arduino Modulino Buzzer] 1 Sound alert for the user (https://docs.arduino.cc/hardware/modulino-buzzer/)
[Arduino Modulino Movement] 1 Accelerometer for decision making (https://docs.arduino.cc/hardware/modulino-movement/)

FUTURE PERSPECTIVE

To transform this prototype into a market product, our roadmap includes:

  1. High Performance AI and 360° Vision:
  • Multi-object Recognition: Training the model to identify vehicles, pedestrians, traffic signs and animals with a near-zero error rate.
  • Night Vision: Implementation of infrared sensors to maintain safety during night driving or in tunnels.
  1. Advanced Environmental Monitoring
  • Air Quality Sensors (NOx, PM2.5): Integration of specific sensors to measure suspended particles and nitrogen dioxide. This would allow the City Council to have a street-by-street pollution map in real time.
  • Asphalt Analysis: Using the accelerometer to automatically detect potholes or irregularities in the road surface and report them directly to urban maintenance services.
  1. Connectivity and Ecosystem
  • V2X (Vehicle-to-Everything): Direct connection with traffic lights and other vehicles to anticipate collisions before the object is visible to the camera.
  • User App: A mobile device-compatible interface where the cyclist can check their safety statistics and receive rewards for the environmental data contributed.Autors: Natàlia Cortés, Joan Marc Samó, Carolina Espin, Josep Mª Cases, Carlos Albaladejo

CATALAN

SafeHelmet - Sistema de Detecció de Col·lisions

Nom del Projecte: SafeHelmet

🎯 Objectius del Projecte

  • Elaborar un sistema de detecció de col·lisió i alerta d'objectes estàtics i dinàmics, integrat en cascos de protecció homologats com a eina accessòria en la circulació
  • Detectar objectes en moviment simulant la realitat de la xarxa viària
  • Resoldre el risc que implica l'exces de velocitat i proximitat d'objectes

🏗️ Arquitectura Web

La interfície web ha estat principalment estructurada amb:

Pàgines i Rutes (SEO Optimitzat)

  • / - Pàgina d'inici amb una introducció del producte
  • /map - Visualització d'ubicacions, incidents i altres dades
  • /camera - Monitoratge en viu amb detecció activa
  • /about - Informació sobre el projecte i l'equip

Components Principals

Capçalera Millorada

  • 3 columnes: Botó Mapa | Logo | About Us + Menú
  • Navegació intuïtiva
  • Capçalera sticky en desplaçament

Barra Lateral

  • Menú contextual (~25% d'amplada)
  • Només visible a /map i /camera
  • Transicions suaus
  • Overlay per tancar

Disseny Modern

  • Gradients de color (Taronja #ff3e00 → Groc #ffaa00)
  • Transicions i efectes hover
  • Disseny responsiu (Escriptori, Tauleta, Mòbil)

💻 Tecnologies Utilitzades

Frontend

  • Svelte 5.55.2 - Framework reactiu
  • SvelteKit 2.57.0 - Framework full-stack amb enrutament
  • TypeScript 6.0.2 - Tipatge estàtic
  • Vite 8.0.7 - Eina de build ràpida

Backend (Arduino)

  • Python - Script principal
  • Arduino IDE - Sketch de hardware
  • Detecció de col·lisions mitjançant sensors

🚨 Sistemes d'Alerta

Alerta Lluminosa

  • Parpelleig de dos hertzos
  • LED no saturat en vermell
  • Ubicat al manillar

Alerta Sonora i Vibració

  • Sistema integrat al casc
  • Notificació immediata de proximitat

Detecció Intel·ligent

  • Identificació de distàncies amb OpenCV (implementable)
  • Anàlisi de velocitat d'objectes
  • Sistema en temps real

📁 Estructura del Projecte

Interhack-2026-Qualcom/
├── src/
│   ├── routes/                    # Rutes SvelteKit
│   │   ├── +layout.svelte        # Layout principal
│   │   ├── +page.svelte          # Landing
│   │   ├── map/+page.svelte      # Mapa
│   │   ├── about/+page.svelte    # Informació
│   │   └── camera/+page.svelte   # Monitoratge en viu
│   ├── lib/
│   │   ├── components/
│   │   │   └── molecules/templates/
│   │   │       ├── Header.svelte       # Capçalera millorada
│   │   │       ├── Sidebar.svelte      # Menú lateral
│   │   │       ├── About.svelte        # Pàgina about
│   │   │       └── MapLayout.svelte    # Layout del mapa
│   │   └── styles/
│   │       └── global.css              # Estils globals
│   └── static/icons/             # Icones SVG
├── Arduino code/
│   ├── sketch/
│   │   └── sketch.ino            # Codi Arduino
│   └── python/
│       └── main.py               # Script Python
├── package.json
└── svelte.config.js

🚀 Com Executar

Desenvolupament

npm install      # Instal·lar dependències
npm run dev      # Iniciar servidor (http://localhost:5173)

Build per a Producció

npm run build    # Crear build optimitzat
npm run preview  # Veure la previsualització del build

Validació

npm run check          # Svelte check
npm run check:watch    # Check en mode watch

🎨 Paleta de Colors

Color Ús Valor
Taronja Principal (Botons, Enllaços) #ff3e00
Groc Secundari (Gradients) #ffaa00
Gris Clar Fons #f4f4f4
Gris Fosc Text #272727

🔄 Flux de Navegació

Inici (/)
    ↓
[Explorar Mapa] [Saber Més]
    ↓                ↓
  /map            /about
  ├─ Header       ├─ Header
  ├─ Menú ✓       ├─ Menú ✗
  └─ MapLayout    └─ Informació

Des de /map:
  ↓ (Botó Menú)
[Barra Lateral] - 25% d'amplada
  - Settings
  - Documentation
  - Support
  - Contact

✨ Característiques Destacades

SEO Optimitzat - Meta tags i títols a cada pàgina ✅ Responsiu - Funciona en tots els dispositius ✅ Transicions Suaus - Animacions fade entre pàgines ✅ Menú Condicional - Només visible on correspon ✅ Capçalera Sticky - S'adapta al desplaçament ✅ Interactivitat - Efectes hover i animacions

📝 Properes Millores

  • Integrar mapa real (Leaflet/Mapbox)
  • Websocket per a dades en viu
  • Dashboard d'estadístiques
  • Sistema d'autenticació
  • Galeria de productes
  • Animació 3D del casc

🤝 Col·laboradors

  • Equip d'Interhack 2026
  • Qualcomm Innovation Challenge

Última actualització: 10 de maig de 2026

Evolució:

Les proximes etapes del producte es centraran principalment en l'escalabilitat i la incorporació de sistemas de llum infraroiga per poder millorar la il·luminació o fins i tot permetre la circulació nocturna

SOFTWARE

Entrenament de la IA

Per a la detecció de col·lisions en temps real amb baixa latència, hem implementat un model de TinyML utilitzant la plataforma Edge Impulse. Això ens permet realitzar Edge Computing. El processament de imatges es fa localment en el dispositiu sense necessitat de dependre del núvol aprofitant un model local.

Procés d'Entrenament:

  • Adquisició de Dades: Creació d'un dataset propi amb més de 100 de captures d'ànecs de goma, realitzades amb la webcam Logitech Brio 105 Business Webcam diferents angles. Considerant factor com les distàncies i condicions de llum per simular obstacles variads.
  • Disseny de l'Impulse: Pre-processat d'imatges per optimitzar el consum de memòria.
  • Extracció de característiques mitjançant blocs de processament d'imatge.
  • Model de Detecció: Entrenament d'una xarxa neuronal optimitzada per a dispositius mòbils (Object Detection).
  • Optimització: Conversió del model a un format lleuger (equivalent TensorFlow Lite) per ser executat en un xip d'alt rendiment i baix consum.
  • Implementació Local (On-Device AI): A diferència d'altres sistemes que envien el vídeo a un servidor, la nostra IA corre directament en un microxip dedicat integrat al casc.

unknown 6o3ec6b0 ingestion-774b75fcb-lgb7punknown 6o3ed6v2 ingestion-774b75fcb-jwg66 unknown 6o3egrjb

Característiques del model

  • Latència mínima: L'alerta és instantània (crític per evitar col·lisions).
  • Privadesa: No s'emmagatzemen ni s'envien imatges de la via pública; el sistema només genera alertes i dades numèriques anònimes.

-Resultat del model. Com que el nostre producte requereix de mesura les distancies amb els objectes, utilitzarem com a refèrencia la ratio de tamany del objecte respecte a la image complerta. Com que aquesta ratio té que variar amb propocio a la distancia, els entrenaments dels que disposabem (Orientats a treballar amb centroides) son ineficients i per tant el model no ens ha donat els resultats desitjats.

Com a consequencia hem utilitzat un model previament entrenat per la compañia Qualcomm Innovation Challenge per a la realització de la nostra demo.

Hardware

Aquest prototip incorpora multiples sensors hardware que ens permeten provar quina es la latencia real de les diferents entradas del nostre diseny.

Components principals

Modul Unitats Descripció Refèrencia
[Arduino Modulino Vibro] 1 Sesnsor per avisar a l'usuari anb vibració (https://docs.arduino.cc/hardware/modulino-vibro/)
[Arduino Modulino Pixels] 1 Display personalizable (https://docs.arduino.cc/hardware/modulino-pixels/)
[Arduino Modulino Thermo] 1 Sensor de temperatura ambiental (https://docs.arduino.cc/hardware/modulino-thermo/)
[Arduino Modulino Distance] 1 Sensor que detecta la distancia de un perill (https://docs.arduino.cc/hardware/modulino-distance/)
[Arduino Modulino Buzzer] 1 Alerta sonora cap a l'usuari (https://docs.arduino.cc/hardware/modulino-buzzer/)
[Arduino Modulino Movement] 1 Acceleromatra per a presa de decisions (https://docs.arduino.cc/hardware/modulino-movement/)

PERSPECTIVA DE FUTUR

Per transformar aquest prototip en un producte de mercat, el nostre full de ruta inclou:

  1. IA d'Alt Rendiment i Visió 360°:
  • Reconeixement Multiobjecte: Entrenament del model per identificar vehicles, vianants, senyals de trànsit i animals amb un percentatge d'error proper al zero.
  • Visió Nocturna: Implementació de sensors infrarojos per mantenir la seguretat durant la conducció nocturna o en túnels.
  1. Monitorització Ambiental Avançada
  • Sensors de Qualitat de l'Aire (NOx, PM2.5): Integració de sensors específics per mesurar partícules en suspensió i diòxid de nitrogen. Això permetria a l'Ajuntament tenir un mapa de contaminació carrer a carrer en temps real.
  • Anàlisi de l'Asfalt: Utilitzar l'acceleròmetre per detectar automàticament forats o irregularitats a la calçada i reportar-ho directament als serveis de manteniment urbà.
  1. Connectivitat i Ecosistema
  • V2X (Vehicle-to-Everything): Connexió directa amb els semàfors i altres vehicles per preveure col·lisions abans que l'objecte sigui visible per la càmera.
  • App per a l'Usuari: Una interfície compatible amb dispositius mòbils on el ciclista pugui consultar les seves estadístiques de seguretat i rebre recompenses per les dades ambientals aportades.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors