Nous utilisons des cookies pour vous garantir une expérience optimale. Si vous acceptez, vous êtes en accord avec cette utilisation. Pour plus d'informations, veuillez consulter notre politique de confidentialité.
Une solution unique pour la configuration des contrôleurs de vélos électriques
Photo aérienne d'un homme qui fait du vélo en ville.

Le contexte

Notre client FTEX est une entreprise montréalaise qui conçoit des solutions avancées de gestion de l’énergie et un système d’exploitation pour vélos électriques. Son objectif? Fabriquer des contrôleurs de moteur efficaces et intelligents ainsi que des modules de communication IoT pour les marques de vélos électriques qui les intégreront dans le design des cadres de leurs vélos électriques. Ces micro-ordinateurs contrôlent le comportement du véhicule : marche avant ou arrière du moteur, fonctionnement des feux avant et arrière, réglage de la vitesse et de la tension, réaction à la batterie, etc. La programmation exige beaucoup de codage et de mathématiques, même pour des choses aussi simples que le réglage de la luminosité des phares.

Auparavant, la programmation des contrôleurs de moteur connectés de FTEX était une tâche compliquée et chronophage. Chacun d’entre eux nécessitait la configuration manuelle de plus de 200 paramètres par un ingénieur en matériel informatique. Une seule valeur omise (par exemple un zéro) pouvait perturber le comportement du véhicule électrique. On nous a donc demandé de développer une application de bureau pour semi-automatiser la configuration de ces contrôleurs afin que les clients puissent le faire eux-mêmes (sans connaissances techniques).

Voici comment nous avons procédé.

Détails du projet

Industry
Autre
Technologies
Python
Services
Développement
Design

Le défi

Jusque-là, FTEX et ses clients devaient s’expédier réciproquement les contrôleurs pour les tester et en modifier la programmation jusqu’à ce que le comportement soit idéal. FTEX souhaitait en finir avec ces pertes de temps en expédiant des contrôleurs en masse grâce à l’application de bureau prévue, baptisée « FTEX Configurator ».

Les clients de FTEX avaient besoin d’un dispositif supplémentaire, un lecteur-scripteur, pour permettre à l’application de bureau de communiquer avec le contrôleur. Ce dispositif « renifle » le bus de données CAN (Controller Area Network), c’est-à-dire le support de communication physique servant à transmettre des messages entre les différents nœuds du réseau. Le CAN est souvent utilisé dans les systèmes embarqués pour le débogage et le diagnostic afin de trouver les erreurs de communication, d’identifier les nœuds défectueux et de déboguer les problèmes au niveau du système.

De nombreux appareils convenaient, mais nous avons conçu l’application avec un analyseur de SeeedStudio pour qu’elle fonctionne avec un analyseur CAN,, un dispositif facile à acheter en ligne à un prix raisonnable. Le défi à relever était que la documentation sur l’analyseur CAN est très limitée et qu’il n’existe aucun exemple de mise en œuvre concrète. Nous avons dû apprendre à l’utiliser par essais et erreurs, et nous avons rencontré des problèmes de contrôle de qualité avec le matériel. Avec l’aide des ingénieurs de FTEX, nous avons résolu ces problèmes et trouvé un moyen de faire de cet appareil un dispositif convivial et prêt à l’emploi.

Autre point à souligner : ce projet nous a donné l’occasion d’utiliser une nouvelle technologie, soit QT pour Python. Il s’agit d’un cadre d’applications (très répandu dans l’industrie automobile) qui repose sur un code base unique, ce qui signifie que le produit peut fonctionner sur Mac, Linux, iOS ou Android. QT pour Python n’est pas très courant dans notre secteur d’activité (applications Web, éditeurs de logiciels, etc.). Les occasions d’apprentissage ont donc été nombreuses.

Gros plan d'une batterie de vélo électrique.

Deux personnes roulant sur des vélos électriques dans un champ.

La mission

Les véhicules électriques légers tels que les vélos électriques sont un domaine relativement nouveau pour nous, mais Jonathan, notre développeur full stack principal pour le projet, se passionne pour la recherche et le développement et adore se faire la main sur les nouvelles technologies. C’est pourquoi il était enthousiaste à l’idée de piloter le projet.

Nous avons suivi notre processus de développement caractéristique pour créer FTEX Configurator, passant beaucoup de temps dans la phase d’assurance qualité. De nombreux échanges avec les ingénieurs de FTEX ont été nécessaires pour affiner le logiciel afin d’obtenir le comportement attendu. Nous devions apporter quelques petites modifications, les tester de notre côté, puis envoyer le tout à un ingénieur de FTEX pour obtenir son avis. En fonction de la complexité de sa réponse, l’opération pouvait se répéter quelques fois par jour. Nous avons utilisé une approche AGILE pour rester très réactifs.

L’une des tâches les plus lourdes pour FTEX a été de faire remplir par son ingénieur une feuille de calcul reprenant toutes les « adresses » possibles utilisées par un vélo électrique. Ces adresses sont des nombres qui représentent un réglage d’une capacité du contrôleur, par exemple la vitesse des roues, la tension du moteur ou le fonctionnement des clignotants. Nous avons ensuite appliqué une configuration de base avec des réglages minimaux et maximaux compris dans une fourchette raisonnable et sûre.

Pour le déploiement du projet, nous avons utilisé le développement en intégration continue avec GitHub Actions, ce qui nous a permis de déployer chaque jour une nouvelle version de l’application de bureau. Grâce aux mises à jour automatiques, FTEX n’avait pas à attendre nos développeurs et leur équipe avait toujours accès à la dernière version.

Photo aérienne d'un homme qui fait du vélo en ville.

Le résultat

Nous avons réussi à automatiser un processus très manuel qui nécessitait à l’origine un codage et des mathématiques complexes. L’application de bureau finale est dotée d’une interface utilisateur simple et accessible, permettant à l’utilisateur moyen de l’utiliser sans aucune connaissance en programmation grâce à un didacticiel intégré qui montre aux revendeurs comment configurer et personnaliser leurs contrôleurs pour leurs utilisateurs finaux. À l’heure actuelle, environ 50 paramètres peuvent être ajustés par l’utilisateur final via FTEX Configurator. Ce nombre est appelé à croître, puisque nous avons conçu l’application de manière à ce que FTEX puisse facilement mettre à jour les adresses si un nouveau client se présente avec un nouveau type de véhicule électrique doté de fonctionnalités supplémentaires.

Le projet a nécessité deux sprints, soit un peu plus d’un mois de développement et de tests. FTEX Configurator est maintenant utilisé en interne par FTEX et par ses clients fabricants de vélos électriques. FTEX est très satisfait du logiciel, qui lui permet de gagner énormément de temps. Les envois aller-retour de matériel à leurs clients sont chose du passé, de même que le paramétrage manuel des valeurs pour chaque contrôleur. Il suffit désormais au client de brancher l’appareil, de cliquer sur un bouton pour appliquer automatiquement les paramètres par défaut nécessaires au contrôleur, puis de raffiner les réglages à partir de là. Les limites supérieures et inférieures peuvent être enregistrées dans un fichier de configuration, qui peut ensuite être appliqué successivement à plusieurs vélos électriques et plus tard à des scooters aussi.

La suite...

La première version de FTEX Configurator étant la preuve de concept, nous sommes impatients de travailler sur la deuxième version, qui prendra en charge encore plus de types de véhicules électriques légers comme des scooters. Nous sommes satisfaits de l’aspect précis et professionnel du logiciel, même si c’était la première fois que nous utilisions la technologie en question.

En tant que développeurs, nous trouvons très gratifiant de construire quelque chose qui va au-delà de l’espace virtuel. Certes, nous créons régulièrement des applications Python, mais mettre en place des contrôleurs qui fonctionnent avec des véhicules physiques qui transportent des personnes d’un point A à un point B, c’est une autre histoire. Il n’y a rien de tel que de voir les résultats concrets du logiciel que nous créons!

 Deux personnes debout à côté de vélos électriques dans une forêt.

Perspectives

Tout commence par une idée
Culture

Portraits Osedea : IA, aventures et culture avec Isabelle Bouchard

Marie-Pier Houle
Marie-Pier Houle
5
min read
Développement

Approche minimaliste de DataOps et MLOps avec DVC et CML

Nicholas Nadeau
Nicholas Nadeau
11
min read
Culture

Comment on mène la barque chez Osedea (sans aucun patron)

Ivana Markovic
Ivana Markovic
6
min read
Base de données vectorielles
Développement

Exploiter les données de votre organisation avec les bases de données vectorielles

Carl Lapierre
Carl Lapierre
7
min read
Culture

Comment élever l'engagement dans le contexte de travail hybride?

Ivana Markovic
Ivana Markovic
4
min read
Membres de l'équipe Osedea qui marchent près d'un Canal en France
Culture

Osedea crée un programme équitable et inclusif pour les parents

Ivana Markovic
Ivana Markovic
3
min read

Nous cherchons constamment à élargir nos horizons et à partager nos acquis. Rien de mieux pour repousser les limites et nous surpasser!

Consulter nos articles
Button Arrow