# Propositions Hardware ## Philosophie Le robot Ti-Pote est un **client léger**. Il ne fait aucun traitement lourd d'IA. Son rôle est de capter l'environnement (son, image), d'envoyer les données au cloud, et de restituer les réponses (audio, écran, mouvement). Le choix du hardware est guidé par ce principe : fiable, basse consommation, suffisant pour le streaming et le wake word local. ## Configuration de base (desk robot) ### Carte principale : Raspberry Pi 5 (4 Go) | Spec | Détail | |------|--------| | CPU | Broadcom BCM2712, quad-core Cortex-A76 @ 2.4GHz | | RAM | 4 Go LPDDR4X | | Connectivité | Wi-Fi 802.11ac dual-band, Bluetooth 5.0, Gigabit Ethernet | | GPIO | 40 pins pour les modules (moteurs, LEDs, etc.) | | Prix | ~60€ | Pourquoi le Pi 5 : suffisamment puissant pour gérer le streaming audio/vidéo WebSocket, le wake word local (OpenWakeWord), et les animations LED, tout en restant abordable et bien documenté. La communauté est immense, ce qui facilite le debug. Alternative : Raspberry Pi 4 (4 Go) — moins cher (~45€), suffisant si on n'a pas besoin du surplus de puissance du Pi 5. ### Microphone : ReSpeaker 2-Mics Pi HAT ou ReSpeaker 4-Mic Array **Option A — ReSpeaker 2-Mics Pi HAT (~12€)** - 2 microphones, suffisant pour un robot de bureau - Se branche directement sur le header GPIO du Pi - Inclut des LEDs RGB programmables (utile pour le feedback visuel) - Simple à installer (driver I2S) **Option B — ReSpeaker 4-Mic Array (~30€)** - 4 microphones en array circulaire - Meilleure captation directionnelle (beamforming) - Meilleure suppression du bruit ambiant - Recommandé si le robot est dans un environnement bruyant **Recommandation** : commencer avec le 2-Mics pour le MVP. Passer au 4-Mic si la qualité audio est insuffisante. ### Haut-parleur **Option A — Mini haut-parleur 3W (~5€)** - Petit, s'intègre dans le boîtier imprimé 3D - Qualité suffisante pour la parole - Connecté via le DAC du ReSpeaker ou un ampli I2S (MAX98357A) **Option B — Haut-parleur 5W avec amplificateur (~15€)** - Meilleur volume et qualité audio - Nécessite un petit ampli (MAX98357A breakout board) - Recommandé pour un usage dans une pièce plus grande ### Caméra (module optionnel) **Raspberry Pi Camera Module 3 (~30€)** - 12 MP, autofocus - Connecteur CSI direct sur le Pi - Bon pour la reconnaissance visuelle et l'OCR - Faible latence de capture Alternative : Raspberry Pi Camera Module 3 Wide (~35€) — champ de vision plus large (120°), utile si le robot doit "voir" une grande partie de la pièce. ### Écran (module optionnel) **Option A — Écran OLED 1.3" SH1106 (~8€)** - Petit écran pour afficher des émotions (yeux), l'heure, des icônes de statut - Interface I2C, très simple à contrôler - Basse consommation - Parfait pour un robot de bureau compact **Option B — Écran LCD 3.5" ILI9486 (~20€)** - Plus grand, peut afficher du texte, des images, des animations - Interface SPI - Permet d'afficher la météo, le prochain rendez-vous, etc. **Option C — Écran tactile 5" HDMI (~40€)** - Écran complet avec tactile - Connecté en HDMI, fonctionne comme un display Linux - Peut afficher l'interface web de Ti-Pote directement - Le plus polyvalent mais aussi le plus encombrant et énergivore ### Alimentation **Alimentation secteur (configuration desk)** - Alimentation USB-C 5V 5A officielle Raspberry Pi (~15€) - Le robot desk est branché en permanence **Module batterie (optionnel, pour la mobilité)** - PiSugar 3 (~40€) — batterie intégrée pour Raspberry Pi, avec circuit de charge - UPS HAT avec 18650 (~25€) — plus de capacité, rechargeable - Autonomie estimée : 2-4h selon l'usage ## Module base mobile (optionnel) Pour rendre Ti-Pote mobile, il faut ajouter : ### Moteurs et châssis - 2x moteurs DC avec encodeur (~15€ le kit) — pour la traction différentielle - Driver moteur L298N ou DRV8833 (~5€) - Roue omnidirectionnelle arrière (bille) pour la stabilité - Le châssis est imprimé en 3D (design par Juliann) ### Contrôleur moteur Option recommandée : une carte Arduino Nano ou ESP32 dédiée au contrôle moteur, qui communique avec le Pi via série (UART). Avantage : le Pi envoie des commandes haut niveau ("avance 30cm", "tourne 90°") et l'Arduino gère le PID et les encodeurs en temps réel. ``` ┌─────────────┐ UART/I2C ┌──────────────┐ │ Raspberry Pi │ ◄────────────► │ Arduino Nano │ │ (cerveau) │ │ (moteurs) │ │ │ │ - PID control│ │ │ │ - Encodeurs │ │ │ │ - Capteurs │ └─────────────┘ └──────────────┘ ``` ### Capteurs de navigation (optionnels) - Capteurs ultrason HC-SR04 (~3€ x3) — détection d'obstacles basique - Capteur infrarouge TCRT5000 (~2€ x2) — détection de bord de table - IMU MPU6050 (~5€) — accéléromètre + gyroscope pour l'orientation ## LEDs et feedback visuel Les LEDs sont essentielles pour communiquer l'état du robot sans audio : - **Écoute** : LED bleue pulsante (comme Alexa) - **Réflexion** : LED jaune clignotante - **Parle** : LED verte - **Erreur** : LED rouge - **Veille** : LED blanche très faible Options : LEDs RGB intégrées au ReSpeaker, ou un anneau NeoPixel WS2812B (~8€) pour plus de flexibilité et d'effets visuels. ## BOM estimé (Bill of Materials) ### Configuration minimale (desk, voix uniquement) | Composant | Prix estimé | |-----------|------------| | Raspberry Pi 5 (4Go) | 60€ | | ReSpeaker 2-Mics HAT | 12€ | | Mini haut-parleur 3W | 5€ | | Carte microSD 32Go | 8€ | | Alimentation USB-C 5V 5A | 15€ | | Filament PLA (boîtier) | ~5€ | | Visserie, câbles | ~5€ | | **Total** | **~110€** | ### Configuration complète (desk, voix + caméra + écran) | Composant | Prix estimé | |-----------|------------| | Configuration minimale | 110€ | | Pi Camera Module 3 | 30€ | | Écran OLED 1.3" | 8€ | | NeoPixel Ring (12 LEDs) | 8€ | | **Total** | **~156€** | ### Configuration mobile | Composant | Prix estimé | |-----------|------------| | Configuration complète | 156€ | | 2x moteurs DC + encodeurs | 15€ | | Driver moteur DRV8833 | 5€ | | Arduino Nano | 8€ | | Batterie PiSugar 3 | 40€ | | Capteurs ultrason x3 | 9€ | | **Total** | **~233€** | ## Wake word — détail technique Le wake word est la seule tâche d'IA qui tourne localement sur le robot. Deux options : ### OpenWakeWord (recommandé pour le MVP) - Open source, gratuit - Tourne sur CPU (Pi 5 sans problème) - Modèles pré-entraînés disponibles - Possibilité d'entraîner un modèle custom pour "Hey Ti-Pote" - Latence : <200ms - Python, intégrable facilement ### Porcupine (Picovoice) - Solution commerciale, plan gratuit limité - Très optimisé, ultra basse latence (<100ms) - Console web pour créer des wake words custom - SDK disponible en Python et C - Payant si plus de 3 devices en production **Recommandation** : OpenWakeWord pour le MVP (gratuit, suffisant). Entraîner un modèle custom "Hey Ti-Pote" avec leur outil de fine-tuning. Garder Porcupine comme alternative si la précision d'OpenWakeWord est insuffisante. ## Firmware du robot Le firmware du robot tourne sur le Pi et gère : 1. **Connexion WebSocket** permanente avec le core 2. **Wake word detection** en continu (OpenWakeWord) 3. **Capture et streaming audio** (via ALSA/PulseAudio + le micro) 4. **Playback audio** (réception et lecture des chunks TTS) 5. **Capture image** (à la demande, via la caméra) 6. **Contrôle des LEDs** (feedback visuel de l'état) 7. **Communication avec l'Arduino** (si module mobile, via UART) 8. **Mode offline dégradé** (timers locaux, commandes basiques) Le firmware sera écrit en **Python** (pour la compatibilité avec OpenWakeWord et les librairies audio du Pi) ou en **TypeScript/Node.js** (pour la cohérence avec le reste du projet). À discuter avec Juliann en fonction de ses préférences côté hardware.