ENGLISH
Authors: Natàlia Cortés, Joan Marc Samó, Carolina Espin, Josep Mª Cases, Carlos Albaladejo
Project Name: SafeHelmet
- 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
The web interface has been primarily structured with:
/- 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
- 3 columns: Map Button | Logo | About Us + Menu
- Intuitive navigation
- Sticky header on scroll
- Contextual menu (~25% width)
- Only visible at
/mapand/camera - Smooth transitions
- Overlay to close
- Color gradients (Orange #ff3e00 → Yellow #ffaa00)
- Transitions and hover effects
- Responsive design (Desktop, Tablet, Mobile)
- 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
- Python - Main script
- Arduino IDE - Hardware sketch
- Collision detection via sensors
- Two hertz flashing
- Non-saturated red LED
- Located on the handlebar
- System integrated into the helmet
- Immediate proximity notification
- Distance identification with OpenCV (implementable)
- Object speed analysis
- Real-time system
- 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.
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
npm install # Install dependencies
npm run dev # Start server (http://localhost:5173)npm run build # Create optimized build
npm run preview # Preview the buildnpm run check # Svelte check
npm run check:watch # Check in watch modeThis project uses Arduino App Lab with:
sketch/→ Arduino.inofirmware running on the MCUpython/→ 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 | Use | Value |
|---|---|---|
| Orange | Primary (Buttons, Links) | #ff3e00 |
| Yellow | Secondary (Gradients) | #ffaa00 |
| Light Gray | Background | #f4f4f4 |
| Dark Gray | Text | #272727 |
Home (/)
↓
[Explore Map] [Learn More]
↓ ↓
/map /about
├─ Header ├─ Header
├─ Menu ✓ ├─ Menu ✗
└─ MapLayout └─ Information
From /map:
↓ (Menu Button)
[Sidebar] - 25% width
- Settings
- Documentation
- Support
- Contact
✅ 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
- Integrate real map (Leaflet/Mapbox)
- Websocket for live data
- Statistics dashboard
- Authentication system
- Product gallery
- 3D helmet animation
- 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.
This prototype incorporates multiple hardware sensors that allow us to test the real latency of the different inputs of our design.
| 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:
- 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.
- 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.
- 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
Nom del Projecte: SafeHelmet
- 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
La interfície web ha estat principalment estructurada amb:
/- 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
- 3 columnes: Botó Mapa | Logo | About Us + Menú
- Navegació intuïtiva
- Capçalera sticky en desplaçament
- Menú contextual (~25% d'amplada)
- Només visible a
/mapi/camera - Transicions suaus
- Overlay per tancar
- Gradients de color (Taronja #ff3e00 → Groc #ffaa00)
- Transicions i efectes hover
- Disseny responsiu (Escriptori, Tauleta, Mòbil)
- 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
- Python - Script principal
- Arduino IDE - Sketch de hardware
- Detecció de col·lisions mitjançant sensors
- Parpelleig de dos hertzos
- LED no saturat en vermell
- Ubicat al manillar
- Sistema integrat al casc
- Notificació immediata de proximitat
- Identificació de distàncies amb OpenCV (implementable)
- Anàlisi de velocitat d'objectes
- Sistema en temps real
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
npm install # Instal·lar dependències
npm run dev # Iniciar servidor (http://localhost:5173)npm run build # Crear build optimitzat
npm run preview # Veure la previsualització del buildnpm run check # Svelte check
npm run check:watch # Check en mode watch| Color | Ús | Valor |
|---|---|---|
| Taronja | Principal (Botons, Enllaços) | #ff3e00 |
| Groc | Secundari (Gradients) | #ffaa00 |
| Gris Clar | Fons | #f4f4f4 |
| Gris Fosc | Text | #272727 |
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
✅ 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
- 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
- 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.
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.
Aquest prototip incorpora multiples sensors hardware que ens permeten provar quina es la latencia real de les diferents entradas del nostre diseny.
| 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:
- 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.
- 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à.
- 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.


