Emo est un robot compagnon avancé, conçu pour interagir avec les humains à travers des mouvements physiques, des réponses vocales, et des expressions faciales dynamiques affichées sur un écran LCD. Inspiré par le projet original disponible sur CodersCafeTech/Emo, ce fork vise à explorer et étendre les interactions homme-machine de manière intuitive et engageante.
- Interactions tactiles : Réagit au toucher grâce à des capteurs intégrés pour une interaction intuitive.
- Détection de vibration : Intègre un capteur de vibration pour détecter les interactions physiques et les mouvements environnants.
- Sortie audio : Utilise un amplificateur PAM8403 pour émettre des réponses sonores et parler avec l'utilisateur.
- Mouvements servomoteurs : Effectue des gestes et expressions via plusieurs servomoteurs, permettant une gamme de mouvements fluides et expressifs.
- Affichage LCD expressif : Montre des émotions ou des informations via un écran LCD, rendant Emo visuellement expressif et communicatif.
- Reconnaissance vocale : Capable de comprendre et de répondre aux commandes vocales, facilitant une interaction naturelle et mains libres.
- Feedback vibratoire : Le robot vibre lorsqu'il est touché à certains endroits, ajoutant une dimension sensorielle à l'interaction.
- Réactions émotionnelles : Capable de pleurer, de se mettre en colère, de montrer de la tristesse, du bonheur, etc.
- Jeux interactifs :
- Left or Right Game : Jeu de mémoire où il faut deviner l'objet caché sous un verre.
- Dance to the Beat : Jeu où Emo danse en fonction du rythme des applaudissements.
- Shooting Game : Jeu de tir où il faut toucher des cibles à l'écran.
- Parrot Mode : Emo répète ce que l'utilisateur dit.
- Puppet Mode : Permet de manipuler les expressions de Emo.
- Affichage et animations de haute qualité : Affiche des animations de haute qualité et permet de régler le volume et la luminosité de l'écran.
- Batterie rechargeable : Autonomie d'environ une heure et demie avec une interaction continue et temps de recharge rapide d'environ 30 minutes.
- Mises à jour logicielles : Mise à jour du firmware via Windows avec l'ajout de nouvelles animations et fonctionnalités via des mises à jour.
- 1 Raspberry Pi (Modèle 3B+ ou supérieur recommandé)
- 1 écran LCD 2,4 pouces - Modèle WaveShare IPS recommandé
- 3 capteurs tactile TTP223
- Capteur de tête : Détecte les touchers sur la tête.
- Capteur de dos : Réagit aux touchers sur le dos.
- Capteur de ventre : Sensible aux touchers sur le ventre.
- 1 capteur de vibration SW-420
- Capteur de fond : Détecte quand le robot est soulevé.
- 1 amplificateur PAM8403
- 1 haut-parleur - 18,5 watts recommandé
- Servomoteurs :
- 2 servomoteurs SG90 pour les bras
- 1 servomoteur MG90S pour la rotation du corps
- 1 contrôleur de servomoteur PCA9685PW
- Câbles de connexion et breadboard
- Module micro USB pour l'alimentation
- Imprimante 3D - Pour imprimer les pièces du robot
- Filament PLA - Couleurs bleu et blanc recommandées
- Vis M3 (10 mm et 15 mm)
- Colle forte - Pour fixer certains composants
- Tournevis - Pour les vis M3
- Multimètre - Pour vérifier les connexions électriques
- Fer à souder - Si nécessaire pour certaines connexions
- Téléchargez et installez Raspberry Pi Imager depuis Raspberry Pi Software.
- Ouvrez Raspberry Pi Imager et choisissez l'OS recommandé (Raspberry Pi OS Full).
- Sélectionnez la carte SD sur laquelle l'OS sera installé.
- Cliquez sur 'WRITE' pour flasher la carte SD avec l'OS.
Pour activer le SSH sans accéder à l'interface graphique du Raspberry Pi:
- Placez la carte SD dans votre ordinateur.
- Naviguez vers la partition 'boot' de la carte SD.
- Créez un fichier vide nommé 'ssh' sans extension dans le répertoire racine.
- Téléchargez et installez PuTTY depuis PuTTY Download Page.
- Trouvez l'adresse IP du Raspberry Pi :
- Connectez votre Raspberry Pi à votre réseau local via Ethernet ou Wi-Fi.
- Utilisez votre routeur ou un scanner de réseau pour trouver l'adresse IP attribuée à votre Raspberry Pi.
- Ouvrez PuTTY et entrez l'adresse IP du Raspberry Pi dans le champ 'Host Name (or IP address)'.
- Cliquez sur 'Open' pour établir une connexion SSH.
- Si demandé, acceptez la clé de l'hôte en cliquant sur 'Yes'.
- Connectez-vous en utilisant le nom d'utilisateur par défaut (
pi
) et le mot de passe par défaut (raspberry
).
Pour vous assurer que votre système d'exploitation est à jour:
- Mettez à jour la liste des paquets :
sudo apt update
- Effectuez une mise à niveau complète :
sudo apt full-upgrade
- Redémarrage : Redémarrez votre Raspberry Pi pour appliquer les mises à jour avec
sudo reboot
Suivez les schémas de câblage fournis dans le dossier Circuit
pour connecter tous les composants électroniques au Raspberry Pi.
- Clonez ce dépôt sur votre Raspberry Pi :
git clone https://github.com/Deadier/Eleo.git
- Installez les dépendances nécessaires :
Installation des paquets disponibles via apt
sudo apt install python3-numpy python3-pil python3-rpi.gpio python3-spidev
Installation des paquets non disponibles via apt avec pip
pip install adafruit-circuitpython-servokit --break-system-packages
- Exécutez le script principal pour démarrer le robot :
python3 <path/to/your/project>/Code/final.py
- Impression des pièces: Divisez le robot en plusieurs segments pour simplifier l'assemblage. Imprimez la base avec un taux de remplissage de 40 % pour garantir sa robustesse. Les autres composants doivent être imprimés avec un taux de remplissage de 20 % pour optimiser la résistance et l'économie de matériel.
- Installation électrique: Commencez par installer le module micro USB dans la partie basse pour alimenter le robot. Placez à proximité le capteur de vibrations SW-420 pour qu'il puisse détecter efficacement les vibrations.
- Fixation du couvercle: Utilisez des vis M3 de 10 mm pour attacher solidement le couvercle à la base.
- Capteur tactile: Intégrez un capteur tactile capacitatif dans la tête du robot. Sa petite taille permet une installation discrète et efficace.
- Installation de l'écran: Installez un écran IPS de 2 pouces de chez WaveShare pour afficher les expressions du robot. Fixez l'écran avec des supports noirs et sécurisez-le avec un peu de colle forte pour éviter tout mouvement lors de l'utilisation.
- Installation des haut-parleurs: Montez un haut-parleur de 18,5 watts sur le côté de la tête pour la diffusion du son. Amplifiez le signal audio provenant du Raspberry Pi avec un amplificateur PAM8403.
- Servomoteurs: Placez trois servomoteurs – deux SD9D pour les bras et un Engin ID pour la rotation du corps. Utilisez un contrôleur PC9685 pour une gestion aisée des servomoteurs.
- Assemblage de la tête et du corps: Fixez la tête au corps à l'aide de vis M3 de 15 mm. Assurez-vous que toutes les parties sont correctement alignées et sécurisées.
- Tests de fonctionnalité: Avant de finaliser l'assemblage, testez toutes les composantes électriques et mécaniques pour vous assurer qu'elles fonctionnent correctement. Vérifiez les connexions et les réponses du robot aux commandes.
- Interaction douce: Emo est sensible aux interactions. Évitez les tapotements excessifs qui pourraient l'affecter émotionnellement. Privilégiez des caresses légères pour maintenir son bien-être.
Pour programmer Emo afin qu'il réponde aux commandes vocales et suive les mouvements, consultez le dossier Code
qui contient des exemples de code pour intégrer la reconnaissance vocale et le suivi de mouvement.
Les effets sonores utilisés pour les émotions d'Emo sont sous licence Creative Commons 0 (CC0) et proviennent de Freesound. Voici les attributions spécifiques pour chaque émotion :
- Angry: Son par kanyonwyvern, disponible sur Freesound.
- Blink: Son par newagesoup, disponible sur Freesound.
- Dizzy: Son par martian, disponible sur Freesound.
- Excited: Son par dersuperanton, disponible sur Freesound.
- Happy: Son par SergeQuadrado, disponible sur Freesound.
- Sad: Son par SergeQuadrado, disponible sur Freesound.
- Sleep: Son par bsmacbride, disponible sur Freesound.
Ces sons ont été choisis pour enrichir l'expérience interactive avec Emo, en lui permettant de communiquer ses émotions de manière plus expressive.
Les modèles 3D pour l'impression des composants du robot sont disponibles dans le dossier 3D Design/STL
. Ces fichiers permettent de personnaliser et de construire votre propre version d'Emo.
Les contributions à Emo sont toujours bienvenues. Que ce soit pour des corrections de bugs, des améliorations de fonctionnalités ou des suggestions de nouvelles idées, n'hésitez pas à créer une issue ou soumettre une pull request.
Pour voir Emo en action, regardez la vidéo de présentation sur YouTube.
Ce projet est sous licence MIT - voir le fichier LICENSE.md pour les détails.
- Coder's Cafe - Travail initial - CodersCafeTech
- Contributions et améliorations par Deadier
- Merci à CodersCafeTech pour le projet original qui a inspiré cette version.
- Un grand merci à ChatGPT pour son aide précieuse dans l'amélioration de ce projet.