1. Introduction

Restaurants, bars, boites de nuit, ou bien même soirée chez un particulier, tous sont des endroits, occasions ou les cocktails serait les bien venu qu'ils soient avec ou sans alcool malheureusement la complexité accompagnant la production de cocktail et trop grande qu'elle soit d'ordre logistique, pratique, manque d'expérience ou encore temporelle.
L'idée de ce projet était de présenter un "Proof of concept" permettant de régler ou de simplifier certaines des issues mentionnées ci-dessus afin de rendre la production de cocktails, qu'elle soit privée ou public, plus accessible.

2. Matériel et méthodes

2.1 Hardware

- 1 Raspberry PI 3
- 1 Arduino UNO
- 1 Thymio
- 1 capteur a ultrasons HC-SR04
- 1 LED infrarouge
- 4 à 10 LEDs (pour les tests et simulations)
- plusieurs breadboards (cela dépend de comment on câble)
- des câbles (beaucoup de câbles)
- des résistances (pour les LEDs ainsi que le capteur)

2.2 Structure

- 2 planches de bois de mêmes dimensions (le "sol" et le "plafond")
- 4 tiges de bois pour supporter le "plafond"
- des vis pour tenir le tout ensembles
- du scotch (pour la ligne que le Thymio doit suivre)

2.3 Méthode

2.3.1 Concept

L'idée principale était d'utiliser le Thymio comme wagonnet transportant le ver et de le faire se déplacer sous les différents ingrédients. Le Thymio s'arrêtes sous l'ingrédient donné puis continue ver le suivant jusqu'à arriver au mixage. L’arrêt ainsi que le démarrage du Thymio est contrôler par la LED infrarouge en envoyant un code RC5 au Thymio.

2.3.2 RC5

Afin de faire bon usage de la LED infrarouge l'utilisation d'un Arduino a été nécessaire la library permettant d'envoyer un signal infrarouge étant plus simple que celles disponibles pour raspberry. Il faut donc que le raspberry puisse communiquer au Arduino quand envoyer un signal d’arrêt ou de départ (les signaux d’arrêt et de départ ne sont que deux signaux différents), pour cela, deux pin de l'Arduino ont été utilisés en input afin de détecter un courant. Il suffi donc au raspberry d'envoyer du courant dans l'un ou l'autre pin de l'Arduino et ce dernier s'occupe du reste.

2.3.3 Thymio

Une fois le signal reçu, le Thymio se déplace sur une ligne droite, mais par mesure de sécurité il était idéal de lui donner un chemin a suivre au cas où il lui venait une soudaine pulsion exploratrice d'où le scotch noir, le Thymio étant capable de suivre une ligne au sol alors pourquoi ne pas en user. Le Thymio suit donc sa ligne jusqu'à recevoir ordre de s'arrêter.

2.3.4 Capteur a ultrasons

Le Thymio s’arrête au bon endroit grâce au capteur a ultrasons mesurant la distance entre le point de départ et le Thymio. La distance étant mesurée grâce au temps que mets un écho a revenir a son point d'origine(le capteur) grace a la formule de la vitesse (dans notre cas la vitesse est la vitesse du sons dans l'air soit a peu près : 340 m/s) : V = d/t la distance est donc égale a : d = (V * t)/2 le tout diviser par deux car le sons fait un aller retour. Il suffit donc de poser une condition sur la distance entre le Thymio et son point de départ affin de savoir quand l’arrêter.

2.3.5 Recettes

Encore faut-il savoir où s'arrêter, il a donc fallu créer un système de "recettes". L'idée étant de pouvoir accéder a plusieurs recettes différentes ou encore en créer de nouvelle sans avoir a modifier le code même du programme, l'utilisation de fichier en l’occurrence : ".txt", paraissait alors être la meilleur solution, de part la créations d'un fichier contenant le nom de toutes le recettes différentes ainsi qu'un fichier propre a chacune d'entre elles contenant les ingrédients ainsi que leurs quantités (le nom de la recette étant également le nom du fichier sans l'extension). Il est donc plutôt simple de sélectionner, de lire ou encore de créer de nouvelles recettes sans avoir a modifier le code du programme.

2.3.6 Simulations

Finalement l'installation des LEDs a pour but de simuler l'activation du remplissage du ver ainsi que le mixage.

3. Résultats

Le Thymio reçoit bien la commande d’arrêt ainsi que la commande de démarrage, il s’arrête au bon endroit cela montre que le capteur rempli sa fonction correctement. Du côté du programme, la fonction d'ajout de recette fonctionne comme désiré.

4. Discussion

Malgré tout, de nombreux problèmes se sont dressé sur la route ver la complétion de ce "Proof of concept" tel que des erreurs de câblage du capteur a ultrasons résultant en des mesures erronées, erreur de syntaxe habituel ainsi qu'un Arduino récalcitrant ne sont que quelque uns des problèmes les plus embêtant rencontré durant la réalisation de ce projet. Il aurait été envisageable d'utiliser le raspberry pour envoyer les commandes infrarouge mais la library paraissant trop complexe pour le temps restant une solution de simplicité s'imposait. De manière générale, les objectifs ont été atteint bien que le produit fini diffère légèrement de la vision de base(en dessin ci-dessous).

5. Conclusion

Le "Proof of concept" et un succès bien que sont fonctionnement non optimal puisse nécessiter quelques ajustement.
Les objectifs ayant été atteint je pense pouvoir dire que j'ai appris pas mal de chose en terme de câblage et de programmation de matériel ainsi que la gestion de fichiers ".txt" dans le but de gérer les différentes recettes. Si il y a une chose a rajouter au projet ce serait de pouvoir supprimer des recettes, je ne pense pas que ce soit très compliqué ayant déjà une base d'idée sur comment le faire.

Références

https://python.doctor/page-lire-ecrire-creer-fichier-python
https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/