Une motorisation électrique OK, mais pour quoi ?

Parution de l’article d’origine :

Un petit rappel dans ce bref article. Le miracle technologique est souvent plus facile à imaginer que des changements individuels et collectifs face aux risques environnementaux actuels. Illustrations typiques, certains s’émerveillent depuis quelques années de la tendance à électrifier la mobilité, pour remplacer le moteur à explosion et ses émissions de gaz à effets de serre.

On serait plus avisé de considérer qu’un remplacement d’une technique par une autre, sans changer les règles du jeu et la promesse d’une croissance sans fin ne règlent aucun problème. Au mieux elles le déplacent et le repoussent à plus tard. On peut s’interroger sur les fondements inconscients de cet idéal de croissance et les intérêts matériels et politiques bien établis que son ancrage dans nos imaginaires préserve. Pour l’heure je vous invite en tout cas à considérer les dégâts de l’extraction de lithium, avec cet article.

Salar_de_Uyuni_exploitation

Je ne dis pas ici qu’il faut nécessairement éviter le lithium et la motorisation électrique qu’il permet notamment. Le principal avantage du lithium est sa densité énergétique (nombre de Watt heure accumulables / kilogramme de matière, pour un vecteur d’énergie électrique (donc potentiellement renouvelable). On peut stocker de l’énergie de façon plus propre. Mais plus facilement avec le lithium, sur un véhicule léger. Personnellement je trouve ça même potentiellement génial. C’est tellement potentiellement génial que Tesla et consorts ont décidé de fabriquer des véhicules un peu moins léger. Deux tonnes environ la bête, excuser du peu, pour transporter en moyenne une personne et demi, 100 kg de passagers.  Contre 11-15kg pour un vélo à assistance électrique, 20 kg et quelques pour un vélocargo transportant éventuellement 2-3 personnes. Le jour où il n’y aura plus de lithium au nom d’une prétendue transition énergétique ne questionnant pas nos besoins et notre démesure énergétique, on aura l’air malin d’avoir anéanti les écosystèmes des salares bolivien, chilien et argentin pour cette fuite en avant. Les flamands roses remercient Elon Musk.

Sur ce sujet je recommande une réflexion fondatrice il me semble, le texte facile à lire et court de Ivan Illich, Energie et équité.

Concluons donc que le lithium est certainement pertinent pour faciliter la prise en main de véhicule légers et le retour à des déplacements doux, mais ne nous sauvera pas plus de l’absurdité de la démesure. Et si on est sportif, jeune, ou pas trop pressé, et qu’on peut s’en passer, il faut y penser. Rien n’empêche non plus de ne mettre sa batterie sur son vélo que lorsque c’est nécessaire pour se délester d’un poids, voire même de changer la roue avant motorisée par une roue normale pour en enlever encore plus, ou d’opter pour un niveau d’assistance raisonnable, puisque la consommation suit une progression exponentielle en fonction de la vitesse qu’on en attend.

Code pour VAE piloté par Arduino

Publication de l’article original le 0

Capture d’écran de 2019-04-07 18-31-03
Code basique pour piloter un contrôleur de moteur pour VAE

Après des heures heureuses mais brèves de code, voici un tout premier jet opérationnel pour piloter une assistance électrique.

J’avais déjà essayé de me mettre à la tâche, mais avec des ambitions démesurées. Il fallait que tout soit bien et beau, donc j’avais même pour projet d’y intégrer directement un affichage LCD, pour voir la vitesse, le niveau des batteries, etc. Avec l’expérience, on apprend que trop vouloir, c’est aussi la voie royale vers la frustration et le découragement.  Donc d’autres fonctionnalités viendront sûrement, mais petit à petit, chaque chose en son temps.

Comment utiliser le code :

  • A télécharger sur une carte arduino ou un microcontrôleur capable de l’interpréter (AtMega328 par exemple ?) Si vous débutez, le pus simple est de passer par Arduino.
  • La carte arduino est à brancher au levier de frein, au détecteur de pédalage,  et à un potentiomètre que vous fixerez sur votre guidon dans l’idéal. S’assurer que le levier de frein pour VAE que vous avez fonctionne dans le sens du code (frein activé = pas de courant, tension nulle vers l’arduino ; sinon inversez cela dans le code)La sécurité avant tout
  • installer un driver de moteur BLDC, entre Arduino, la batterie et le moteur. Veiller à ce qu’il soit pourvu d’un radiateur suffisant pour éviter de le griller
  • trouver une façon d’alimenter votre Arduino et ce contrôleur de BLDC (ce derneir s’alimente aussi en 5V en général, ne pas confondre avec l’entrée de puissance à 24- 36-48 V !) On peut envisager un régulateur de tension partant de la batterie alimentant les deux, il faudrait en voir le rendement.
  • vérifier tout les branchements : senseurs hall, câbles de bobine moteur, alimentations, PAS, freins, potentiomètre, plus un fil de signal PWM d’arduino vers le driver BLDC.  Si ledit driver ne sait interpréter que des commandes en tension, comme c’est souvent le cas, recourir à un filtre passe bas et éventuellement un amplificateur opérationnel le redressant.
  • S’assurer que sur votre selle vous avez facilement accès au contact de la batterie avant de tester. Le code ne vous fera pas faux bond, mais on ne sait jamais ce qu’un mauvais branchement peut engendrer.

Ce que ce code fait :

Le plus simple pour le savoir est de lire le code. Même si vous n’y connaissez rien, ce sera aussi l’occasion de voir que coder en Arduino est plus facile que le mandarin. Mais je laisse au paresseux ici un résumé :

  • Le code « écoute » ce que vous êtes en train de faire : pédaler (dans le bon sens), freiner ; il regarde aussi systématiquement le niveau d’assistance que vous demandez selon la rotation du potentiomètre sur votre guidon.
  • Tant que vous pédalez ET ne freinez pas, il indique au contrôleur de moteur de tourner. Si vous freinez OU ne pédalez pas,  il lui dit de s’arrêter.
  • Il assure une certaine progressivité à l’accélération ou au freinage, jusqu’à arriver au un niveau d’assistance requis (celui indiqué par le potentiomètre, ou 0). Ce degré de progressivité peut être changé en modifiant les variables adéquates dans le code.

Ce que le code ne fait pas encore :

  • Il ne regarde pas la vitesse atteinte, et continue donc de faire tourner le moteur au delà des 25km/h réglemtaires. En l’état, il n’est pas utilisable sur la voie publique. Il va sans dire qu’il vous indique encore moins la vitesse atteinte.
  • Il n’arrête pas le moteur si votre driver BLDC ne s’arrête pas malgré une tension de signal très faible. C’est donc un inconvénient bénin avec certains drivers, de le voir continuer à tourner au ralenti.
  • Il ne mesure pas le niveau de la batterie et ne vous l’indique pas
  • Il ne sert pas le café au lit avec des pains au chocolat.
  • Il n’installe pas de virus tenaces sur les SUV alentours pour les transformer en briques.

Les améliorations à venir :

  • Prioritaire : La coupure totale et réglementaire du moteur et notamment au delà de 25km/h. Cela signifie qu’il faudra étoffer le code pour lui faire lire les signaux de tours par minute du driver. Aussi simple que ça puisse paraître, cela n’a rien de simple de faire écouter une variable tout en demeurant attentif aux autres. La coupure totale requiert aussi de contrôler l’alimentation du pilote, avec transistor ou opto-coupleur, normalement c’est simple
  • quitte à introduire ces modifications, il serait utile d’en faire bénéficier le cycliste en les affichant. Un écran LCD requiert cependant beaucoup de broches et de codes, à étudier donc sans urgence
  • indication de niveau de batterie : cela peut se faire avec un pont diviseur de tension pour en permettre la lecture dirctement par arduino, qui peut l’afficher de façon élémentaire avec des DEL, sans LCD.

Le code :

/*
Pilotage basique d’assistance électrique pour vélo.
A associer à une carte de contrôle de moteur BLDC.
Mettre entre les deux un filtre passe bas Si ce driver BLDC ne lit pas les PWM :
Le filtre doit convertir le signal PWM en signal en tension correspondant à l’amplitude lue par votre contrôleur

Assurez vous d’avoir un signal de frein concordant : tension basse quand on tire sur un des leviers de freins, et non l’inverse !

circuit:
– potentiomètre alimenté en +5V, Gnd et analog input pin 0 (A0)
– 10 Kohm resistor connected from ground to analog in pin 0 ??? A voir si nécessaire
– PAS (détecteur de pédalage) connecté : 5V, Gnd et sa sortie en 8
– freins : vers broche 9
– sortie PWM vers broche 10

Créé par Tristan Cousin le 7 avril 2019
Ce code est dans le domaine public.
*/
// These constants won’t change:
const int assistance = A0; // entrée potar niveau d’assistance
const int PAS = 8;
const int frein = 9; // broche du frein
const int sortiedriver; // broche d’émission du signal PWM (ensuite filtré passe bas pour un pilotage en tension

// These variables will change:
int pedalage; // état du pédalage (1 ou 0)
int freinage; // état du frein (1 ou 0)
int nivassist; // niveau effectif d’assistance
int cibleassist; // objectif vers lequel faire tendre l’assistance,
// tranquilement pour un pilotage moins nerveux
int nervosite = 5; // temps en milliseconde d’un cran d’ajustement du niveau d’assistance
// (à hauteur d’un 256ème de l’assistance max) vers le niveau ciblé
int nervfreinage = nervosite/2; // la vitesse de freinage est arbitrairement définie comme
// la le double de la « nervosite » à l’accélération.
void setup() {
// set the pins as output or inputs:
pinMode(sortiedriver, OUTPUT);
pinMode(frein, INPUT);
pinMode(PAS, INPUT);
}

void loop() {

// tant que les conditions sont réunies, arduino demande au pilote du moteur d’activer le moteur:
while ((digitalRead(PAS) == HIGH)&&(digitalRead(frein) == LOW))
{
fonctionassistance();
}
//le frein est activé ou le pédalier s’arrête, les conditions en sont plus réunies
cibleassist = 0;
if(nivassist>cibleassist){
int nivassist = nivassist-1;
analogWrite(sortiedriver,nivassist);
delay(nervfreinage);
};
}

void fonctionassistance() {
// faire tourner le moteur en amenant la commande de vitesse de façon progressive vers ce que demande le potar :
int cibleassist = (analogRead(assistance)/4);//l’entrée analogique va de 0 à 1023, la sortie d

//s’il faut augmenter la vitesse
if(nivassist<cibleassist){
int nivassist = (nivassist+1);
}
//s’il faut augmenter la vitesse
if(nivassist>cibleassist){
int nivassist = (nivassist-1);
}
//changer d’un cran la commande de vitesse, temporiser un peu
analogWrite(sortiedriver,nivassist);
delay(nervosite);

}

La soudure sur vélo, introduction et pertinence

Pubicaiton de l’article d’origine le

photo soudure
Les amateurs de bricolage sur vélo voudront certainement se mettre à souder pour aller plus loin, dans la customisation, la capacité de charge, l’adaptation, ou le plaisir de se faire démiurge en général, de voir la matière se transformer sous ses mains. Je tiens à partager mon modeste avis sur la question. Je ne soude pas depuis très longtemps, mais je le fais régulièrement, j’aime beaucoup, et me suis beaucoup renseigné sur la question par ailleurs. Ce sont là les seuls intérêts de ce témoignage, mais la proximité ma situation avec de complets néophytes peut avoir son intérêt, pour mieux percevoir des problèmes partagés, qui ne sont pas ceux des soudeurs professionnels, déjà équipés et expérimentés.

Un poste à souder coûte de l’argent. Il requiert un savoir faire, et tous les postes ne sont pas destinés aux mêmes usages.

  • La soudure à la baguette : c’est le moins cher, l’électrode enrobée, aussi appelé soudage MMA. Il requiert un certain savoir faire. Pour souder l’aluminium vous oubliez, Pour le cadre du vélo ou la fourche oubliez aussi. Trop imprécis, trop de risque de faire des trous, ou encore pire, de déformer le métal. C’est pas cher, mais assez fastidieux et nul tant en vitesse qu’en esthétique de cordons. Plus adapté aux grosses épaisseurs qu’à celle de tubes de cadres (d’épaisseur souvent inférieure au millimètre). On pourra l’utiliser pour réaliser des remorques, des porte-bages personnalisé, avant comme arrière, mais avec un système d’attache au vélo par vis, boulonnage ou collier de serrage par contre.
  • Le poste semi-automatique  (MIG/MAG) est plus onéreux, plusieurs centaines d’euros, + la bouteille de mélange Ar+CO2. Il permet des soudures plus fines que la baguette, avec une facilité d’usage fascinante et attractive pour le débutant fortuné. On peut souder l’acier, mais aussi l’alu. En théorie, car concrètement, les avis d’experts découragent. Les cordons sont sales, la chaleur difficile à contrôler entraîne des risques d’effondrement ou de trous, et d’éclaboussure, avec beaucoup de travail de nettoyage à la meuleuse ensuite. Sur des alu fins, les risque et galères sont encore plus forts. Il faut par ailleurs se payer une bouteille de gaz différente pour la soudure sur alu (argon pur)
  • Le TIG DC, la soudure à électrode en tungstène avec gaz inerte et courant continu est utilisable pour la soudure sur métaux ferreux, dont l’acier donc. Pour de beaux cordons, une soudure bien pénétrante et une finition propre, on devance largement la qualité du semi-automatique. C’est plus lent, mais pour la taille et l’enjeu des soudures en mécanique vélo, cela importe peu. Cela exige plus de dextérité et d’expérience que le semi-auto, puisqu’on doit ici coordonner le mouvement des deux mains : une, manipulant la torche, apporte la chaleur de l’arc électrique et l’argon, l’autre amène le métal d’apport. Le coût est proche de celui d’un poste semi-auto,. Le gaz reste de l’argon pour la soudure acier comme pour l’alu. Mias le TIG en courant alternatif ne permettra pas d’attauqer l’alu.
  • le TIG AC/DC est pour cela requis. C’est par contre plus cher.   Un commercial de Gys m’a fait un devis à 1500 euros pour le moins cher du catalogue, montant à 200A, contre 600 euros pour le Semi auto de 160 Ampères hors pris du gaz et manomètre dans les deux cas. Des postes se trouvent néanmoins pour moins cher en ligne, dont j’ignore la qualité. Un aguerri du TIG AC/DC me dit par ailleurs qu’il faut deux à trois ans pour maîtriser la soudure alu au TIG, ce qui n’est pas négligeable (j’ignore la régularité de sa pratique) Il me dit aussi que certains TIG AC/DC bon marché peuvent être de bonne qualité. Le TIG AC/DC a le mérite de fonctionner aussi comme TIG à courant continu, comme évoqué dans le paragraphe précédent. Un gros investissement en somme, dont on peut jouir au fur et à mesure que l’on apprend toutes les fonctionnalités et qu’on se perfectionne par la pratique.
  • Soudo-brasage, oxyacétilène et tutti quanti : Perso je n’y connais rien. Les passionnés et professionnels du cadre par contre le pratiquent : le cadre peut alors se construire en manchonnant les tubes dans des raccords (autour du pédalier, du tube de selle, du tube de direction et éventuellement en extrémité de haubans)
    A étudier et tester certainement.
  • Hors soudure point de salut ? Ça dépend de ce que l’on compte faire. Une remorque occasionnellement produite avec les moyens du bord, ne coûtera pas plus de 200 euros d’outillage (poste MMA 1er prix, masque, gants de cuir, baguettes) si on a déjà d’autres outils communs par ailleurs. Surtout, c’est répandu, on peut facilement trouver à qui emprunter cela plutôt que d’acheter. Le bricoleur passionné verra bien l’intérêt d’un semi-automatique pour autre chose que le vélo, en plus de celui-ci. Il pourra donc se décider à en acheter ou emprunter un. Les fourches sont en général en acier, les vieux cadres aussi, il y a déjà matière à travailler avec cela, sans compter les portes bagages, remorques et module de triporteurs assemblés au vélo par boulons, mais construits à la soudure.Il ne faut d’ailleurs pas négliger le potentiel d’assemblages mécaniques : les boulons, brides, tiges filetés et colliers de serrages bien placés et bien choisis font des assemblages solides, certes parfois plus lourd qu’une bonne soudure, mais avec le mérite de pouvoir s’enlever.
    Si l’on veut passer au TIG, il faut être déterminé, curieux d’apprendre et avoir de bonnes raisons de s’y mettre. Si c’est surtout pour souder sur des vélos, le TIG AC/DC vaudra pour les plus motivés désirant s’attaquer aux cadres récents, majoritairement en alu.

« mon moteur Bosch il est plus high-tech »

Publication de l’article d’origine le

« Quel intérêt à choisir un moteur  bas de gamme, quand les grands motoristes proposent le nec plus ultra, à seulement 2000-4000 euros ? »

Même dans les petites villes, comme à Laval, on voit clairement la hausse du recours au vélo électrique. Il fait des émules, et tant mieux si cela permet de se passer de la voiture. (ce qui n’est pas toujours vrai ; c’est pour certains cyclistes juste une aubaine que de se motoriser. Mais aussi l’occasion d’aller plus loin qu’on ne l’aurait fait à la seule force des mollets. Le report modal, comme on dit dans le jargon de l’économie des transport, est difficile à mesurer, mais forcément  approximatif à la seule échelle individuelle).

Ce qu’on constate aussi, sans trop de surprise, mais avec un certain regret, c’est le recours croissant à la motorisation par des des grandes entreprises de l’électronique. Je pense à Bosch en particulier, il y en a d’autres. Bosch s’y connaît en « moteur brushless », ou moteur sans charbon ou sans balais, comme on les appelle aussi. Il n’y a pas de doute, vu toute la gamme de moteur électrique qu’ils produisent, pour votre meuleuse préférée ou encore la perceuse de votre voisine qui travaille dans le BTP, ou le métro de votre cousin habitant une grande ville. Les grandes boites de moteur électrique s’y connaissent en moteur électrique, assurément ; là n’est pas la question. De même que Mercedes et Peugeot s’y connaissent en voiture.  S’y connaissent tellement bien qu’ils ne considèrent pas nécessaires que d’autres s’y connaissent et puissent s’arranger. D’ailleurs vous avez déjà pesté ou entendu votre garagiste pester contre l’invasion de l’électronique sous le capot des nouvelles voitures.

(Si vous n’avez pas de goût ou de temps pour une mini-nouvelle relatant une effroyable dystopie, vous pouvez directement  passer à la 2nde partie de cet article)

Il était une fois…

Donc maintenant vous avez un signal du panneau de bord pour vous rappeler de faire votre vidange. Bien pratique ce petit rappel. Vous avez aussi ce petit voyant lumineux qui vous rappelle constamment une défaillance mineure fantôme, que votre garagiste a corrigé sans pouvoir le signaler au système électronique embarqué. Et aussi ce petit signal sonore strident, qui rappelle au passager avant, votre berger allemand docile, qui ne bouge pourtant pas en voiture, ou votre pot de bégonias massif, donné par votre oncle Jacques, de mettre sa ceinture. Et l’autre fois, c’était Gillou votre pote d’enfance, qui vous a proposé de changer ensemble la courroie de distribution. Vaste et téméraire entreprise, que de changer sa courroie. Il y en a bien pour 700 euros avec le garagiste, c’est sympa de la part de Gillou, que de vous le proposer,  enfin à votre initiative en échange d’un hébergement dans votre mansarde pour ce mois d’août. Mais comme pour le vieux garagiste, il n’a pas sa mallette électronique Volkswagen, La voiture propre. Donc vous cumulez :

  • le signal lumineux pour le rappel de la vidange qu’avait aussi assuré votre sœur,
  • le signal sonore  de sécurité ceinture pour le berger allemand, le pot de bégonias et maintenant les 5-enclumes-pour-le-prix-d’une-super-affaire que Gillou avait oublié de décharger le mois dernier après vous avoir emprunté la bagnole pendant l’été
  • le signal sonore de votre courroie déjà faite, mais sans l’avoir dit au système embarqué.
  • le signal sonore indiquant un problème de vitre électrique pourtant résolu
  • le signal lumineux et sonore,  tous les 50 km, pour une « anomalie » que votre garagiste n’a pas su identifier

D’ailleurs c’est assez drôle, quand les trois signaux sonores se lancent de concert, ça vous rappelle un peu « jingle bells », les quatre premières notes quoi, avant de vous casser gentiment les oreilles.

C’était amusant le temps des fêtes de fin d’année, l’intérieur à thème « sapin de noël ». Mais voilà, on arrive au mois de mars. Même le voisin dont vous riez secrètement a enlevé les guirlandes de son pavillon. Vous vous décidez donc à aller chez un garagiste Volkswagen équipé du Graal, la fameuse mallette électronique. Celle qui rassurera de ses doux signaux électriques les angoisses récurrentes d’un système embarqué capricieux. Plein de bonne foi et aussi honnête que possible dans ses prestations, le garagiste a eu la bonne idée par ailleurs de se franchiser il y a 15 ans, quand il s’est installé, c’était plus simple. Il ne pourra pas utiliser la mallette sans que son système de comptabilité intégré, fourni par son gentil franchiseur, perçoive la facturation des prestations aux tarifs définis par le contrat de franchise.  Vous voyez le montant de la facture : vidange, courroie, vitre électrique, capteur témoin de pression de pneu arrière droit (« ah c’était donc ça qui buggait? ») 1495,83 euros.

Honnête comme il peut, le garagiste vous propose un geste commercial. Un avoir sur les prochaines opérations de changement de balais d’essuie-glace, rare opération qui n’est pas surveillée par l’électronique embarquée. Il a calculé. Vous pourrez revenir pour les changer à 82 reprises, essuie glace avant comme arrière, avant qu’il ne vous en coûte le moindre centime ! Consolé par cet arrangement à l’amiable, et fier de cette filouterie à l’insu du franchiseur, vous rentrez satisfait et serein dans votre véhicule silencieux.

Le charme du high tech dans une boite noire, ou la liberté dans la simplicité et l’open source ?

On l’aura compris, on peut être expert d’une technique et pas disposé à en laisser le contrôle à d’autres. C’est ce qui est arrivé avec la voiture ces dernières décennies. Si le moteur Bosch, entre autres, a des fonctionnalités ou paramétrages que n’ont pas la plupart des contrôleurs électroniques génériques du commerce, il aussi les défauts que n’a pas un contrôleur simple ou open source. Et s’il ne les a pas encore, il faut aussi re-situer cela dans une bataille commerciale de long terme, derrière les coulisses, pour s’imposer en leader du marché. On connaît tous des réseaux sociaux, sites de streaming  ou musique en ligne qui en grands philanthropes, n’imposaient pas de publicité à leur début…

En l’occurrence, c’est au terme de mise à jour des logiciels embarqués qu’on peu craindre de perdre le contrôle des entrailles de la bécane. Un exemple : souvent, les engrenages démultiplicateurs d’un moteur pédalier sont faits en une sorte de résine. Plus silencieux, moins lourd que l’acier, il y a sans doute des fondements à ce choix, mais c’est aussi un facteur d’usure à long terme. Un moteur brushless n’a par définition pas de friction et ne s’use pas ou si peu, vous aurez donc des roulements ou ces engrenages à changer bien avant que le moteur ne rende l’âme. Personnellement, je ne sais pas précisément ce qui se cache spécifiquement sous le capot d’un moteur d’une grande marque. On peut facilement spéculer sur la présence de capteurs de températures, d’un ampèremètre et autres fonctionnalités avancées destinées à l’estimation plus fidèle de l’autonomie, mais peut être aussi d’un sceau ou capteur d’ouverture, rompant une garantie en cas d’ouverture intempestive. Donc devra-ton aller chez le fournisseur du VAE et seulement chez lui, pour changer les engrenages démultiplicateurs, parce qu’on n’aura pas le choix ?
Et si pour une quelconque raison l’affichage LCD ne fonctionne plus, ou sa dernière mise à jour ne vous convient pas, faut-il encore dépendre du même motoriste qui a choisi ses propres fiches de connectiques et protocoles de communication avec l’écran d’affichage  ?

On voit ici que ce phénomène, qui a été dénoncé depuis un certain temps dans le monde automobile, s’invite aussi insidieusement dans le vélo électrique. Les constructeurs veulent garder la mainmise ; il s’arrogent un « monopole radical » dirait en fin analyste Ivan Illich, sur une technique dont on perd le contrôle. On n’est alors plus autonome dans sa compétence. Qu’on se comprenne. On peut ne pas s’y connaître en électronique ou en moteur, même ne pas vouloir y apprendre, et perdre tout de même au change. Une amie qui s’y connaît, un mécanicien pro, s’ils perdent en autonomie, ne peuvent pas  résoudre des problèmes ou ajouter des fonctionnalités avec la souplesse qu’ils auraient autrement.

Une autre solution peut s’envisager, concernant ces verrous techniques. Plutôt que d’acheter du contrôleur générique et/ou opensource, il est certainement possible de pirater les modèles propriétaires, par exemple en flashant un nouveau code dans la mémoire du contrôleur. Quelques objections cependant : on y perd une éventuelle garantie encore valide ; il faut s’y connaître sacrément pour ne pas faire de grosses bêtises ; enfin, est-ce si intéressant dans ce cas d’avoir payé cher un dispositif à logiciel intégré, pour ensuite hacker ce dernier ?

En conclusion,

ne préjugeons pas de la supériorité des grands motoristes. Un moteur brushless requiert un certain temps pour en comprendre le fonctionnement, mais ce n’est pas inaccessible pour autant. La lutte pour l’autonomie dans nos choix de vie est un combat quotidien et aux multiples facettes. Il passe aussi par des détails très terre-à-terre ou techniques, comme le refus de dépendre de boîtes noires qui s’imposent en nous mutilant de nos capacités.

Exigez l’open source !

Date de publication sur blog d’origine : 11 Janvier 2019

Pilotage par Arduino de moteur brushless

[ Réédition : Visiblement j’ai dans cet article redécouvert la « régulation de tension par hachage » qui était sans doute déjà évidente à certains, qui dans leur grande mansuétude me pardonneront ; l’article aborde cependant un sujet bien plus large que cela. Le titre est par ailleurs racoleur et un poil démago, bien sûr. Plus précisément, ici on parlera du fait de contrôler une carte éventuellement propriétaire qui elle même pilotera le moteur, mais par un signal envoyé par Arduino ou tout autre signal en « PWM » et donc à l’aide d’une interface open-source !]

Si vous voulez la remise en contexte et la découvertes de plein d’expériences et de projets intéressants, lisez tout. S’il ne s’agit que de savoir comment procéder passez aux derniers paragraphes

Le petit monde des moteurs brushless et des assistances Open Source

Ceux qui se penchent sur la question du pilotage des vélos à assistance électrique les plus répandus, équipés de moteurs sans charbon (brushless) perçoivent vite que l’électronique sous le capot est complexe. Le moteur brushless fonctionne par une synchronisation de plusieurs bobines (un multiple de 3 sur les VAE, peut être même tout simplement trois) qui ainsi se magnétisent et engendre la réaction de pulsion/attraction qui entraîne la rotation du moteur. Il faut connaître la position du rotor par rapport au stator à chaque instant pour que les transistors du contrôleur alimentent tantôt une bobine, tantôt une autre. Vous n’avez pas envie que votre moteur mal synchronisé résiste soudainement à votre coup de pédale alors que vous êtes sans les mains, ou en danseuse, ou en descente dans un virage en épingle à cheveux. Ok, dans ce dernier cas normalement on s’arrête de pédaler et et le moteur n’est plus alimenté non plus, pas au delà de ce que sa propre inertie exige. Mais on retiendra par ces illustration que l’électronique de piotage est cruciale, ne s’improvise pas.

C’est sans doute pour cela que le pilotage du moteur brushless est resté longtemps dans le domaine propriétaire. Quelques grosses boites ayant développé leurs cartes de contrôle ont pris d’assaut le marché et vendent à un prix suffisamment raisonnable pour que peu trouvent à y redire.
Un ESC (electric speed control) pour moteur à charbon, c’est plus rudimentaire. On l’achète pour pas cher et on peut même le faire soi-même simplement avec un transistor alimenté par le PWM d’un Arduino qui lui indiquera le niveau de puissance requise. C’est très simple et tant mieux, on peut ainsi facilement piloter le moteur. Pourquoi pas prochainement ici, et même certainement, piloter un moteur à charbon pour assistance électrique. C’est simple, c’est moins cher qu’un moyeu de roue motorisé brushless, il faut juste le monter sur une chaîne indépendamment du moyeu, et programmer le code alimentant pilotant le MOSFET qui alimente le moteur.

Pour un moteur brushless c’est plus compliqué.
J’ai passé du temps, à me renseigner, chercher comment on pouvait le faire (avec l’allusion au départ que le petit autodidacte que je suis pouvais y arriver), qui le faisait. Et par miracle ou par obstination, il s’est avéré que les réponses documentées et expérimentées se faisaient notamment pas loin de chez moi.

J’ai d’abord entendu parler du projet Hope’n Bike, qui liait la super Maison du Vélo de Caen, le Fablab de la même ville, et la mission locale, dans une ambition d’aide à la mobilité des jeunes et précaire, et de formation de certains à la conversion de vélo en VAE, le tout en Open Source.
Je n’ai pas été encore vérifier, mais il semble que le succès est mitigé. Plus personne dans la presse n’en parle, comme si c’était laissé en stand by. Le projet a plutôt abouti, il s’est fait au moins quelques prototypes fonctionnels. il faudrait aller voir de plus près. Mais le projet documenté sur GitHub n’avance plus. Les différents éléments sont documentés selon des formats de logiciels d’électronique différents, chacun difficile à s’approprier. C’est le revers de la médaille  de l’opensource spontané, on est plein de bonne volonté mais ne se coordonne pas, et ça en devient difficile à s’approprier.

Une autre solution très intéressante et approuvée est le modèle de Vedder.se . Vedder c’est un génie suédois qui a fait sa propre carte de pilotage de moteurs BLDC, et par dessus le marché le programme sur ordinateur permettant paramétrer le fonctionnement attendu puis flasher le code correspondant sur la carte. Le tout en Open Source bien sûr.  Il vend sa carte  100 euros environ, raisonnable sans doute pour une carte capable de balancer du 100 ampères sans griller .Une communauté a émergé autour de son projet, utilisé pour différents types d’engins notamment trottinettes et skateboards électriques. C’est grâce à My Human Kit que que moi et quelques rennais avons pu découvrir cela récemment, un fablab dédié aux questions de dépassement du handicap, dans le cadre d’un Hackathon coorganisé avec la Petite Rennes dédié à un une roue motorisée amovible de l’avant d’un fauteuil roulant

Bon mais nous on balance déjà entre 40 et 150 Watt de puissance musculaire dans les pédales, a-t-on besoin d’une carte capable de balancer 100 A * 36 V =3600 W ?
C’est surdimensionné, évidemment, mais la compréhension de cette carte est aussi par ailleurs hors de portée de ma patience ou de mon cerveau, et de ceux de beaucoup d’usagers lambdas du vélo. J’ai beau avoir cherché à comprendre comment communiquer avec la carte, je me rappelle plus si on la piloter en tension, je vous laisse aller voir, mais les autres méthodes (« UART » « PPT »…) m’étaient inaccessibles.  On est dans l’Open Source, et c’est très bien, mais pas adapté au vélo et aux bricoleuses et bricoleurs moyens. Pour des raisons de budget, de complexité, et de puissance requise. Il faudrait donc dans l’idéal trouver une autre solution.

Et alors concrètement, on fait comment ?

Heureusement il y a moyen d’acheter des cartes moins puissantes et moins chères. C’est chose faite depuis quelques temps déjà. Il faut maintenant en prendre le contrôle.

Ladite carte se commande en tension. Avec une tension plus ou moins importante, entre 0 et 5V, on lui demande quelque chose ente laisser le moteur à l’arrêt et envoyer toute la purée. Ce type de commande est pratique pour un pilotage manuel. Un potentiomètre faisant office de pont diviseur de tension, brancher les deux broches des côtés sur du 5v et la masse permet à la broche du milieu d’envoyer la tension désirée.

Très pratique, sans doute très sollicité en Chine, ou le vélo est directement électrique sans assistance. Une poignée de gaz en guise de potard, et biiim, c’est parti les petits loups.
Le problème de ce pilotage  c’est qu’il n’est pas directement adapté à un pilotage électronique de la carte. Je ne sais pour ma part qu’utiliser Arduino, ou des microcontrôleurs Atmel, donc il fallait trouver une solution pour qu’un signal de sortie d’Arduino, selon certaines conditions (celles de la réglementation européenne notamment  : arrêt du moteur en cas de freinage, au delà de 25km/h ou de non pédalage) permette de solliciter la carte et le moteur. Pour avoir un signal analogique, on a du PWM à 5V : un clignotement entre 0V et 5V avec une proportion modulable de 0 ou de 5 V .

Allez zou, il nous faut transformer le PWM en vrai signal analogique. Il nous faut donc pour cela trouver de quoi lisser le signal, transformer des impulsions plus ou moins longue en proportion de la période, en tension plus ou moins haute sur une échelle de 0 à 5 V.

Ça semble simple comme ça, moi je ne savais pas faire. Et les recherches en lignes ne furent pas si simple qu’on en a l’habitude. Peu de gens documentent et publient ce genre de montage pourtant accessible à l’électronicien presque débutant. C’est cette page là et leurs auteurs que je dois remercier.
Il fallait encore adapter le montage à du 0-5V au lieu de 0-10V. (Je crois qu’une partie du montage est inutile ou peu utile, le filtre passe-bas de sortie) Après plusieurs tâtonnements sur un site de simulation, on trouve quelque chose de relativement linéaire et proche de 0-5 ici.

capture du 2019-01-11 00-57-12

Voilà, je suis content d’avoir réussi à mettre ça au point. Bientôt il n’y aura plus qu’à coder le reste des instructions sur Arduino et l’agrémenter d’un petit « digitalWrite » pour donner un ordre directement convertit en analogique pour le pilotage du moteur.