Anki : Différence entre versions

De fablab
Aller à : navigation, rechercher
(Bilan)
(Total budgétisation)
 
(26 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 12 : Ligne 12 :
 
== Problématique ==
 
== Problématique ==
  
Notre but est d'avoir un robot que l'on puisse commander avec un joystick ou notre téléphone depuis une application. Ce robot doit pouvoir jouer des séquences pré enregistrées pour que l'utilisateur puisse essayer de les mémoriser et les reproduire. Cela permet de lui faire travailler sa mémoire. L'utilisateur doit aussi pouvoir enregistrer ses propres séquences que le robot pourra rejouer. Cela permet d'agrandir le panel des séquences du robot pour en créer par exemple de plus compliquées.
+
Notre principal objectif est d'avoir un robot commandable via télécommande (joystick directement connecté, téléphone via une application, autre système plus innovant).
 +
 
 +
L'idée étant de permettre aux enfants ou aux personnes âgées de travailler leur dextérité et mémoire, le robot doit être capable de jouer des séquences de mouvements pré-enregistrées pour que l'utilisateur puisse les mémoriser et les rejouer.  
 +
 
 +
L'opérateur quant à lui (qui peut aussi être simplement un utilisateur) doit pouvoir enregistrer ses propres séquences que le robot devra rejouer.
 +
 
 +
Ainsi le panel des séquences du robot est simplement limité par la mémoire interne de ce dernier ''(pour le moment seulement jusqu'à 20 mouvements)'' et permet d'avoir une grande marge dans la courbe de difficultés des séquences soumises.
 +
 
 +
== Liens ==
 +
Lien vers le GitLab : https://gitlab.ensimag.fr/pilleyra/projet-object-connecte
  
 
= Scénario d'utilisation =  
 
= Scénario d'utilisation =  
  
Robot roule avec joystick
+
== Robot se déplace grâce au joystick ==
 +
Comme le montre la [https://drive.google.com/file/d/1q2Gngx68p9wxB5oTW2KsrMO_Pb6RasfW/view?usp=sharing vidéo] le robot peut être commandé avec le joystick auquel il est relié.
  
Robot roule avec tel
+
== Robot se déplace grâce à l'application téléphone ==
 +
Sur cette [https://drive.google.com/file/d/1eRFJAIh75skmUfbe2YcUNCNn7LvlcRyP/view?usp=sharing vidéo] le robot est commandé grâce à une application téléphone, vous pouvez voir l'écran de commande du téléphone sur cette [https://drive.google.com/file/d/1XUHQPdQr5hOB0gRSRXMaxOO1V4Ir-3oU/view?usp=sharing vidéo].
  
Robot joue une séquence
+
== Robot joue une séquence enregistrée ==
  
Robot enregistre et rejoue une séquence
+
[https://drive.google.com/file/d/1SXXIktrwOBbVjcjpv48NkK07ta8N-DuH/view?usp=sharing Ici] le robot joue une séquence qui est enregistrée, pour cela l'utilisateur appuie sur le bouton B2 de l'application mobile.
  
=== Vidéo de démonstration ===
+
== Robot enregistre et rejoue une séquence ==
  
= Matériel et budget =
+
Enfin dans cette [https://drive.google.com/file/d/1w5YjWN0GUG2CFplCww6v2z7D8_r0dK5B/view?usp=sharing vidéo] l'utilisateur enregistre une séquence et la fait jouer ensuite par le robot. Pour cela l'utilisateur effectue la séquence suivante:
 +
* Appuie sur le bouton B1 de l'application mobile pour commencer l'enregistrement de la séquence.
 +
* Effectue les mouvements qu'il veut enregistrer.
 +
* Appui de nouveau sur le bouton B1 pour stopper l'enregistrement.
 +
* Appui sur B3 pour jouer la séquence qu'il vient d'enregistrer.
 +
 
 +
=== Note ===
 +
''La capture d'écran du téléphone correspond à l'ensemble des actions dans l'ordre. Ainsi au début de la vidéo on a le déplacement via l'application puis le jeu d'une séquence enregistrée dans la mémoire du robot et enfin l'enregistrement puis le jeu d'une séquence.''
 +
 
 +
= Matériel, Technos & Budget =
 +
 
 +
== Technologies utilisés ==
 +
Le projet se compose exclusivement de développement Arduino. La technologie principale utilisée est donc du C++ avec quelques bibliothèques Arduino supplémentaire notamment pour les moteurs et les modules Bluetooth.
  
 
== Matériel utilisé ==
 
== Matériel utilisé ==
  
* 2 roues impression 3D
+
* 2 roues impression 3D (faible coût de filament)
*Arduino Uno (1 exemplaire) ( ~20€ )
+
*Arduino Uno (1 exemplaire) ''( ~20€ )''
*Breadbord petite (1 exemplaire) ( ~5€ )
+
*Breadbord petite (1 exemplaire) ''( ~5€ )''
*Joystick KY-023 (1 exemplaire) ( ~5€ )
+
*Joystick KY-023 (1 exemplaire) ''( ~5€ )''
 
*Ensemble câbles ( jumpers ) (1 exemplaire)
 
*Ensemble câbles ( jumpers ) (1 exemplaire)
 
*Câble usb B (1 exemplaire)
 
*Câble usb B (1 exemplaire)
*Module Bluetooth HC05 (1 exemplaire) ( ~10€ )
+
*Module Bluetooth HC05 (1 exemplaire) ''( ~10€ )''
*Stepper Motor MOTO1 (2 exemplaires) (~10€ * 2)
+
*Stepper Motor MOTO1 (2 exemplaires) ''(~10€ * 2)''
  
Prix du matériel pour un robot: ~60€
+
Coût du matériel pour un robot simple: '''''~60€'''''
 +
 
 +
''Note : au coût d'un robot simple peuvent d'ajouter des frais supplémentaires si l'on veut faire une télécommande autre et déporté (ajout d'un nouveau module Bluetooth par exemple)''
  
 
== Temps travail ==
 
== Temps travail ==
Nous avons travaillés environ 14 heures au fablab.
+
Nous avons travaillé environ 14 heures au fablab.
  
Prix en temps: Nombre heures* environ smic horaire* nombre membre équipe = 14 * 11 * 2 = 308€
+
Coût main d'œuvre : ''Nombre heures * rémunération smic horaire * nombre membre équipe = 14 * 11 * 2 ='' '''''308€'''''
  
 +
== Total budgétisation ==
 +
Pour le prototypage on peut donc considérer '''''~370€''''' pour le coût du matériel et de la main d'œuvre de conception.
 +
 +
À maturité et après mise en marché ce projet coûterait bien moins cher de par les réductions de coût lors de l'achat de matériel en grande quantité et par la non nécessité de facturer à nouveau les heures de conception. Il est sûrement possible de tabler sur un coût '''''inférieur à 100€'''''
  
 
= Bilan et pistes d'améliorations =
 
= Bilan et pistes d'améliorations =
  
 
== Bilan ==
 
== Bilan ==
Notre robot n'est qu'un prototype. Il manque des fonctionnalités et son corps n'est que provisoire. Le programme marche mais il faut encore travailler sur le design, mettre une batterie pour ne pas avoir à le branche a l'ordinateur tout le temps et faire une interface pour créer des séquences et ajouter le mode de validation pour voir si l'utilisateur a bien fais sa séquence.
+
Actuellement, le robot est un prototype avancé. En effet, il ne respecte pas toute la spécification initiale, à savoir la présence d'une télécommande universelle, mais seulement d'une API simplifiée, mais surpasse le Minimum Viable Product (MVP) qui ne portait que sur le déplacement du robot, puisque nous pouvons également le déplacer via Bluetooth et également enregistrer des séquences de mouvement.
Problème de vitesse
+
 
 +
Ce retard sur la spécification peut s'expliquer par la forte ambition que nous avions au début projet sans considérer que nous n'étions que deux et que nous n'avions pas les mêmes compétences techniques.
 +
 
 +
Ce projet a été ''(principalement pour Léa)'' une bonne introduction aux objets connectés. Il reste encore de nombreuses choses à faire comme : ajouter une batterie pour ne plus avoir besoin d'être relié à l'ordinateur, faire un corps plus joli et vérifier si les séquences jouées par l'utilisateur sont correctes.
  
 
== Pistes d'améliorations ==
 
== Pistes d'améliorations ==
Les différents pistes d'améliorations:
+
Voici quelques pistes d'améliorations :
- avoir un corps plus joli et un système de LED pour faire un retour utilisateur
+
* Structurer le ''casing'' du robot pour le rendre plus attractif
- système de validation des séquences pour voir si l'utilisateur a réussi
+
** Ajouter de l'isolation entre les câbles et le module Bluetooth pour éviter des interférences électromagnétiques qui peuvent causer l'envoie d'instructions erratiques au robot.
- Ajouter une batterie
+
* Ajouter un système de vérification / validation des séquences rejoué par l'utilisateur par rapport à celles enregistrées. Peut s'accompagner d'un système de score et d'un système de classement.
- pouvoir le faire parler et système de récompense quand l'utilisateur réussi a rejouer correctement une séquence.
+
* Ajouter une batterie pour rendre le robot plus autonome
 +
* Ajouter un système de communication à l'utilisateur :
 +
** Sous la forme de LED pour spécifier un état donné.
 +
** Sous la forme de sortie vocal pour parler à l'utilisateur et par exemple le gratifier si il réussit une séquence.
 +
* Changer les moteurs pour des plus puissants, améliorant ainsi la vitesse et la capacité à avoir un ''casing'' plus complexe et donc plus lourd que la simple boîte actuelle.
 +
* Mettre en place une API utilisable sans passer par le code pour lier des nouvelles télécommandes personnalisables.

Version actuelle en date du 1 février 2022 à 20:32

Description du sujet

Objectifs

L'objectif est de créer un robot compagnon pour enfants ou personnes âgées. Le but est de divertir l'utilisateur tout en le faisant travailler sa mémoire et dextérité.

Équipe

  • Alexandre Pilleyre
  • Léa Solo Kwan

Problématique

Notre principal objectif est d'avoir un robot commandable via télécommande (joystick directement connecté, téléphone via une application, autre système plus innovant).

L'idée étant de permettre aux enfants ou aux personnes âgées de travailler leur dextérité et mémoire, le robot doit être capable de jouer des séquences de mouvements pré-enregistrées pour que l'utilisateur puisse les mémoriser et les rejouer.

L'opérateur quant à lui (qui peut aussi être simplement un utilisateur) doit pouvoir enregistrer ses propres séquences que le robot devra rejouer.

Ainsi le panel des séquences du robot est simplement limité par la mémoire interne de ce dernier (pour le moment seulement jusqu'à 20 mouvements) et permet d'avoir une grande marge dans la courbe de difficultés des séquences soumises.

Liens

Lien vers le GitLab : https://gitlab.ensimag.fr/pilleyra/projet-object-connecte

Scénario d'utilisation

Robot se déplace grâce au joystick

Comme le montre la vidéo le robot peut être commandé avec le joystick auquel il est relié.

Robot se déplace grâce à l'application téléphone

Sur cette vidéo le robot est commandé grâce à une application téléphone, vous pouvez voir l'écran de commande du téléphone sur cette vidéo.

Robot joue une séquence enregistrée

Ici le robot joue une séquence qui est enregistrée, pour cela l'utilisateur appuie sur le bouton B2 de l'application mobile.

Robot enregistre et rejoue une séquence

Enfin dans cette vidéo l'utilisateur enregistre une séquence et la fait jouer ensuite par le robot. Pour cela l'utilisateur effectue la séquence suivante:

  • Appuie sur le bouton B1 de l'application mobile pour commencer l'enregistrement de la séquence.
  • Effectue les mouvements qu'il veut enregistrer.
  • Appui de nouveau sur le bouton B1 pour stopper l'enregistrement.
  • Appui sur B3 pour jouer la séquence qu'il vient d'enregistrer.

Note

La capture d'écran du téléphone correspond à l'ensemble des actions dans l'ordre. Ainsi au début de la vidéo on a le déplacement via l'application puis le jeu d'une séquence enregistrée dans la mémoire du robot et enfin l'enregistrement puis le jeu d'une séquence.

Matériel, Technos & Budget

Technologies utilisés

Le projet se compose exclusivement de développement Arduino. La technologie principale utilisée est donc du C++ avec quelques bibliothèques Arduino supplémentaire notamment pour les moteurs et les modules Bluetooth.

Matériel utilisé

  • 2 roues impression 3D (faible coût de filament)
  • Arduino Uno (1 exemplaire) ( ~20€ )
  • Breadbord petite (1 exemplaire) ( ~5€ )
  • Joystick KY-023 (1 exemplaire) ( ~5€ )
  • Ensemble câbles ( jumpers ) (1 exemplaire)
  • Câble usb B (1 exemplaire)
  • Module Bluetooth HC05 (1 exemplaire) ( ~10€ )
  • Stepper Motor MOTO1 (2 exemplaires) (~10€ * 2)

Coût du matériel pour un robot simple: ~60€

Note : au coût d'un robot simple peuvent d'ajouter des frais supplémentaires si l'on veut faire une télécommande autre et déporté (ajout d'un nouveau module Bluetooth par exemple)

Temps travail

Nous avons travaillé environ 14 heures au fablab.

Coût main d'œuvre : Nombre heures * rémunération smic horaire * nombre membre équipe = 14 * 11 * 2 = 308€

Total budgétisation

Pour le prototypage on peut donc considérer ~370€ pour le coût du matériel et de la main d'œuvre de conception.

À maturité et après mise en marché ce projet coûterait bien moins cher de par les réductions de coût lors de l'achat de matériel en grande quantité et par la non nécessité de facturer à nouveau les heures de conception. Il est sûrement possible de tabler sur un coût inférieur à 100€

Bilan et pistes d'améliorations

Bilan

Actuellement, le robot est un prototype avancé. En effet, il ne respecte pas toute la spécification initiale, à savoir la présence d'une télécommande universelle, mais seulement d'une API simplifiée, mais surpasse le Minimum Viable Product (MVP) qui ne portait que sur le déplacement du robot, puisque nous pouvons également le déplacer via Bluetooth et également enregistrer des séquences de mouvement.

Ce retard sur la spécification peut s'expliquer par la forte ambition que nous avions au début projet sans considérer que nous n'étions que deux et que nous n'avions pas les mêmes compétences techniques.

Ce projet a été (principalement pour Léa) une bonne introduction aux objets connectés. Il reste encore de nombreuses choses à faire comme : ajouter une batterie pour ne plus avoir besoin d'être relié à l'ordinateur, faire un corps plus joli et vérifier si les séquences jouées par l'utilisateur sont correctes.

Pistes d'améliorations

Voici quelques pistes d'améliorations :

  • Structurer le casing du robot pour le rendre plus attractif
    • Ajouter de l'isolation entre les câbles et le module Bluetooth pour éviter des interférences électromagnétiques qui peuvent causer l'envoie d'instructions erratiques au robot.
  • Ajouter un système de vérification / validation des séquences rejoué par l'utilisateur par rapport à celles enregistrées. Peut s'accompagner d'un système de score et d'un système de classement.
  • Ajouter une batterie pour rendre le robot plus autonome
  • Ajouter un système de communication à l'utilisateur :
    • Sous la forme de LED pour spécifier un état donné.
    • Sous la forme de sortie vocal pour parler à l'utilisateur et par exemple le gratifier si il réussit une séquence.
  • Changer les moteurs pour des plus puissants, améliorant ainsi la vitesse et la capacité à avoir un casing plus complexe et donc plus lourd que la simple boîte actuelle.
  • Mettre en place une API utilisable sans passer par le code pour lier des nouvelles télécommandes personnalisables.