1. Introduction

Pour ce projet H, mon idée était de construire un artefact qui pourrait m’aider dans la vraie vie. Etant un grand fan de sport de raquette, et que je ne possède pas beaucoup de partenaire à proximité pour jouer, j’ai décidé de créer un lanceur/propulseur de balles de ping-pong automatique qui pourrait me servir d’adversaire.

Ce projet devrait me permettre d'utiliser un robot d'entrainement comme adversaire, donc qu'il puisse me renvoyer des balles dans des côtés différents, suivant de où le joueur tire une balle, afin de ne pas avoir un jeu trop simple.

2. Matériel et méthodes

Dans cette section, tous les matériaux ainsi que la méthode sont expliqué pour mené au mieux le projet.

2.1 Matériel

Matériel électronique et informatique: 1x Raspberry Pi 3 1x Pi Wedge 40-Pin 2x Breadboards 2x Microphone à électret 1x Two Phase Stepper Motor 1x Transformateur 5V à 1.25V 1x Adafruit DC & Stepper Motor HAT for Raspberry Pi 1x Générateur 12V 15x Câbles

Matériel de construction et utilisé pour le ping-pong: 1x Lanceur de balle (muni d'un réservoir) 10x Balles des tennis de table 1x Table de ping-pong (ou une table de 2.74x1525 m) 1x plateforme en bois de 20x20cm 1x système de poulies (pour lier le moteur et la plateforme)

Le schéma ci-dessous représente ce à quoi le montage devrait ressembler. Figure 1, schéma du montage.jpg, fév. 2020

2.2 Méthode

Le but réel de ce projet est de créer, en quelque sorte, un adversaire robotique. Il s’agit d’automatiser un lanceur de balle de ping-pong. A savoir réussir un envoyer des balles de façon régulière ainsi qu’à renvoyer une balle à un côté différent d’où le joueur la tire. Pour se faire, l’idée est de connecter à l’aide d’un Raspberry Pi. Pour réussir à détecter où le joueur envoie la balle, deux capteurs de son (microphone à électret) sont utilisés. En utilisés deux permet de détecter les coordonnées de la balle en “mixant” les données trouvées par les microphones. Ensuite, pour réussir à renvoyer la balle à des positions différentes de l’autre côté de la table, un moteur (moteur à pied?) est utilisé. Quand les capteurs de son détecteront que la balle est plus vers la gauche, ou plus vers la droite, le moteur tournera pour permettre au lance balle de tirer dans le sens opposé. Le moteur et le lance balle seront reliés avec un système de poulies, qui permettra à une plateforme un dessous du lance balle de tourner. Bien évidemment, tout ceci est connecté au Raspberry Pi grâce deux breadboards permettant de tout coder en python directement dans l’interface du Raspberry.

3. Résultats

Aucun résultat n’a pu être obtenu, les raisons sont développées dans la partie suivante, Discussion.

4. Discussion

Un manque de matériel conséquent montre que ce projet ne peut pas être porté à sa fin, mais j’ai quand même essayé de développer avec ce qui m’était disponible. Je voulais utiliser un lanceur de balle déjà fait, mais le produit étant bien trop cher (au minimum CHF200.-), j’avais donc décidé d’en commander un beaucoup moins cher sur internet, mais la livraison ayant pris du temps, ce composant est arrivé lundi 3 février au matin, le temps n'est donc pas suffisant pour réussir à obtenir un projet optimal. Ne savant pas que les détecteurs utilisaient seulement du 1.25V et ne possédant point de transformateur, il fallait donc en commander. Pareil pour le générateur de 12V pour alimenter le moteur. Les poulies n’étant pas été achetée, donc non utilisée, m'a dissuader d'acheter la plateforme en bois en plus. Par conséquent, le système n’est donc pas complet. Certaines raisons de ce manque de matériaux sont expliquées deux paragraphes en dessous.

Etant donné que je ne possédais pas le matériel nécessaire pour faire fonctionner ce projet, je n'avais aucun moyen de vérifier si mes codages ou câblages étaient corrects. J'ai quand même essayer de coder quelque chose, mais sans aucune certitude d'avoir réussi. Un code a été effectué pour le moteur, mais en utilisant certains chiffres aléatoirement, en partant du principe que la position aurait dû être trouvée. Tandis que pour la position de la balle grâce au détecteur de son, le code n'a pas pu être effectué. La programmation étant assez compliqué, et je ne sais commander "fusionner" les deux capteurs pour trouver une position.

Un autre point conséquent pour la non-réussite de mon projet est une perte de motivation exponentielle. Après m'être rendu compte du manque de matériel et une difficulté assez élevée pour le code (pour mon niveau actuel), j'ai très vite perdu prise. J'ai également dû subir une opération durant le temps imparti pour faire ce projet, qui m'a donc impliqué dans un repos forcé d'environ une semaine. Mais je ne considère pas ceci comme une excuse, car avec un travail acharné j'aurais très certainement pu réaliser ce projet. Tous ces événements m'ont donc quand même fait prendre du retard sur les commandes, et m'ayant rendu compte du manque de matériel un peu trop tard, il m'était donc impossible de commander pour avoir les composants à temps. Le prix est aussi un élément à prendre en compte, sachant le manque de temps, de motivation et de réussite, je n'avais aucune envie de dépenser encore plus d'argent pour au final recevoir les composants trop tard et ne pas avoir à les utiliser.

Plusieurs améliorations peuvent, heureusement, être effectuées. Premièrement, la prise de connaissance de tous ce qui est nécessaire pour absolument tous les matériaux, ce qui éviterait d'avoir un manque de composant essentiel. Regarder dès le début du projet ce qui est réalisable et ce qu'il ne l'est pas, pour éviter de penser directement que tout va marcher, même si cela a l'air extrêmement compliqué. Etablire un planning au commencement, être organisé est très important quand un ce lance dans une expérience comme celle-ci, suivre un plan effectué à l'avance peut aussi permettre de résoudre les problèmes de motivation et surtout le suivre, car si on ne le suit pas, moins on travaille, moins on a envie de travailler par la suite alors qu'il y a encore plus à faire.

5. Conclusion

Ce projet de possédant pas de résultats, il est donc possible d'en conclure que le but n'est pas réalisé. Beaucoup de points me l'ont fait raté. Il y a évidemment beaucoup à améliorer, mais je pense quand même avoir appris certaines choses. Notamment la responsabilité d'entretenir un projet comme celui-ci, de ne pas trop se surestimer au niveau du timing et malgré n'avoir pas obtenu de résultat, j'ai appris quelques éléments pour coder en python et utilisation du Raspberry Pi. Je considère avoir une grande marge de progression pour le prochain projet et j'espère surtout ne pas reproduire les mêmes erreurs.

Références

Pour apprendre comment fonctionne un stepper motor : https://learn.adafruit.com/adafruit-dc-and-stepper-motor-hat-for-raspberry-pi/using-stepper-motors Pour apprendre à coder les bases en python : https://docs.python.org/2/tutorial/controlflow.html Pour apprendre à utiliser un microphone à électret : https://learn.adafruit.com/adafruit-microphone-amplifier-breakout/measuring-sound-levels