Raspberry Cars : RC 2.0 !
Pour mon travail personnel de l’année 2019-2020 au Lycée Ermesinde, je vais étendre mon travail personnel de l’année dernière, avec de nouvelles technologies pour le rendre plus performant et avancé.
Le travail personnel de l’année dernière consistait à connecter le site Salesforce avec une voiture Mercedes pour recevoir des donnés sur la voiture en fonctionnement. Par exemple la position de la voiture, sa vitesse, le niveau de carburant. Avec ces informations, on a eu l’idée de faire une course virtuelle où des personnes peuvent aller d’un point de départ à un point d’arrivée, à des dates différentes, et par la suite on peut comparer les trajets entre eux.
Le projet de l’année dernière avait comme limitations que les données passaient par les serveurs de Mercedes : Les données de la voiture étaient lues par une application Mercedes sur le téléphone mobile puis envoyée sur le serveur Mercedes ; Ensuite, un programme exécuté chez Salesforce allait se connecter automatiquement au serveur Mercedes pour demander les données de la voiture et les enregistrer dans la base de données de Salesforce.
En résumé, les limitations étaient les suivantes :
- On avait besoin d’avoir le téléphone dans la voiture
- Ceci fonctionnait juste sur les voitures Mercedes
- Pour que Salesforce se connecte aux API du serveur cloud de Mercedes il fallait un contrat avec Mercedes et une fois la phase de développement terminée il faut payer un abonnement
- On ne pouvait pas facilement se connecter très souvent du serveur Salesforce au serveur Mercedes (on a fait toutes les 10min.)
- L’application Mercedes n’enregistrait pas les donnés à une haute fréquence, on voudrait enregistrer toute les 2-10 secondes par exemple pour avoir une course plus dynamique
Ce que je veux réaliser cette année c’est :
- Un petit ordinateur autonome dans la voiture,
- Fonctionnant avec toutes les marques de voiture,
- Ne nécessitant pas d’abonnement particulier,
- Enregistrant de la même manière la position de la voiture, la vitesse, le niveau de carburant, l’état des pneus et d’autres paramètres,
- Les envoyant à Salesforce le plus souvent possible.
Ce travail personnel va donc nécessiter différents groupes de tâches :
- La conception technique de l’ordinateur et de ses composants. Cela ressemble en partie à ce que j’avais fait dans mon deuxième travail personnel « Construire un ordinateur personnel de gaming » (http://wollef.org/fr/category/ordinateur-personnel/) , mais cette fois-ci avec une base Raspberry Pi.
- La programmation des tâches de cet ordinateur (recueillir les informations et les envoyer automatiquement à Salesforce, les mettant en attente si l’internet mobile n’est pas disponible). Pour cela je vais avoir besoin d’un nouveau langage de programmation : Python, particulièrement adapté au Raspberry Pi. Cela continue ma découverte de la programmation commencée avec le travail personnel sur l’histoire de la programmation et sa partie pratique en java (http://wollef.org/fr/category/java/) et la partie pratique du travail personnel sur les jeux vidéo où j’avais programmé le jeux historique Pong en java.
- Les modifications du jeu Salesforce du travail personnel de l’année passée ,pour tirer parti des informations envoyées plus fréquemment : plus grand volume de données à gérer, mais plus de fun dans la visualisation de la course !
- J’ai voulu appeler cet ordinateur Raspberry Car, soit R.C. 2.0 comme clin d’œil à mon premier travail personnel au Lycée Ermesinde qui portait sur les voitures Radio Commandée (R.C. 1.0)
Voici la suite d’articles décrivant les différentes étapes du projet :
- La conception du Raspberry Car : l’ordinateur
- La Programmation en Python sur Raspberry Pi
- La programmation des différents composants
- Conception du logiciel RaspberryCars
- Le logiciel Raspberry Cars
- Évolution du jeu Salesforce