PrintBot est un jouet interactif et magique basé sur le concept du "Bouton Unique", conçu spécialement pour les enfants. En maintenant enfoncé le gros bouton d'un petit module Wi-Fi, l'enfant peut demander n'importe quel dessin farfelu (ex: "Dessine-moi un chat à 5 pattes qui vole dans l'espace"). Le robot lui répond alors avec une voix générée par l'IA (avec un accent local personnalisé) et imprime instantanément son dessin sous forme d'autocollant grâce à une imprimante thermique portable !
- Magie du Bouton Unique : Construit autour du M5Stack ATOM Echo. Maintenez pour parler, relâchez pour imprimer.
- Transcription Locale Ultra-Rapide : Utilise
faster-whisperen local pour une reconnaissance vocale (STT) instantanée et respectueuse de la vie privée. - Prompt Engineering Intelligent : S'appuie sur Claude 3 Haiku d'Anthropic pour réécrire les requêtes des enfants en prompts vectoriels minimalistes de haute qualité, parfaits pour l'impression thermique.
- Génération d'Images Superbes : Utilise l'API Replicate (Flux-dev) pour générer des dessins aux contours nets et épurés.
- Clonage Vocal et Personnages : Utilise Qwen3-TTS via Replicate pour cloner des voix. Vous pouvez téléverser des échantillons de 5 secondes ("Papa", "Maman", "Monstre") via l'interface Web et basculer entre eux instantanément.
- Changement de Voix Vocal : L'enfant peut dire "Change de voix" à tout moment, et le robot listera les voix disponibles pour le laisser choisir oralement !
- Interface Web de Configuration : Une belle interface Web Flask locale pour gérer les clés API, téléverser des échantillons vocaux et tester la connexion à l'imprimante (Sans toucher au code !).
- Impression Thermique Bluetooth : Se connecte de façon transparente à une imprimante thermique Niimbot B1 via un Port Série Virtuel (COM) sous Windows grâce à la librairie
niimprint.
- Matériel (Hardware) :
- M5Stack ATOM Echo : Agit comme le microphone et le haut-parleur (streame l'audio I2S via UDP en Wi-Fi).
- Serveur PC (Windows) : Fait tourner le backend Flask, le modèle local Whisper STT, et s'occupe du routage API.
- Niimbot B1 : Imprimante thermique Bluetooth portable.
- Pipeline Logiciel :
Flux UDP->Pydub(Nettoyage audio) ->Faster-Whisper(STT) ->Claude 3(Réécriture du prompt) ->Flux-dev(Génération d'image) ->Qwen3-TTS(Clonage vocal TTS) ->Niimbot B1(Impression).
- Python 3.11+
- Windows OS (Requis pour l'implémentation actuelle du Port Série Virtuel Bluetooth)
- Un ATOM Echo flashé avec le firmware C++ de streaming UDP adéquat
- Une imprimante thermique Niimbot B1
- Des clés API pour Replicate et Anthropic
-
Cloner le projet :
git clone https://github.com/votre_nom/PrintBot.git cd PrintBot/server -
Créer l'environnement virtuel :
python -m venv .venv .\.venv\Scripts\activate pip install -r requirements.txt
-
Configurer l'environnement : Copiez le fichier d'exemple et ajoutez vos clés API :
copy .env.example .env
(Alternativement, vous pouvez ignorer cette étape et configurer vos clés directement via l'interface Web au premier lancement).
Double-cliquez sur le fichier start.bat à la racine du projet, ou lancez :
python server/app.pyLe serveur démarrera localement sur le port 5666.
- Allumez votre imprimante Niimbot B1.
- Allez dans les paramètres Bluetooth de Windows et Jumelez l'imprimante (
B1-...). - Ouvrez l'interface Web PrintBot (
http://localhost:5666). - Dans la section Configuration Imprimante Niimbot, cliquez sur Actualiser pour lister les ports COM disponibles.
- Sélectionnez un port et cliquez sur Tester et Sauvegarder. Si la connexion réussit, le système affichera le niveau de batterie de l'imprimante et sauvegardera la configuration pour l'avenir.
Ce projet a été pensé pour le respect de la vie privée :
- Les enregistrements audio de l'enfant sont transcrits localement puis supprimés de la mémoire.
- Seul le texte de la requête est envoyé aux APIs externes (Claude).
- Le fichier
.gitignoreest pré-configuré pour s'assurer qu'aucun fichier.env, modèle d'IA local ou clone vocal privé ne soit accidentellement poussé sur un dépôt public.
- niimprint pour le fantastique reverse-engineering du protocole Niimbot.
- Anthropic & Replicate pour leurs APIs ultra-rapides.
- M5Stack pour le superbe matériel ATOM Echo.
Conçu par Sébastien Bédard - 2026