Archives

Tous les articles de Jilks

Bonjour,

Sur les forums, j’avais parlé de mon ras-le-bol d’entretenir une 2.5 td. Chaque intervention demande beaucoup de démontage et de temps, les pièces commencent à se faire rare chez les vendeurs (échappement, galet tendeur, …), les pneus sont plus chère que la 2.1 td… Bref, Cette voiture n’est pas (ou plus) adapté à son usage : les simples voyages en famille. Si je veux me prendre la tête, j’ai la noire !

J’avais donc commencé à rechercher une nouvelle break, et comme cette fois ci il n’y a rien qui presse, je pouvais prendre le temps de la choisir soigneusement.

Après 5 mois et 1600 Km A/R, je l’ai trouvée : Une 2.1 Td break rouge de 1998 avec 270 000 Km au compteur.

Les photos de l’annonce représentent bien la réalité, je les réutilise donc :

XM break rouge

XM break rouge

XM break rouge

XM break rouge

XM break rouge

XM break rouge

XM break rouge

XM break rouge

La voiture a été très bien entretenue et suivie. LHM vidangé régulièrement, présence des 2 clé/télécommande en bon état, intérieur propre, sans accros et bien sur non fumeur.

– Pas de régulateur de vitesse, il sera ajouté
– Pas d’hydractive, c’est voulue, ainsi j’ai 2 sphères de moins à acheter et plus de place pour bosser
– Intérieur velours cananga d’origine, c’était un souhait, ainsi je n’aurais plus les bouts de ferraille que j’avais ajouté sur la verte (voir ici), gênant lors de certains chargements.
– Sièges manuel à l’avant, je vais bien sûr les électrifier.
– Pompe EPIC, c’était un souhait, ainsi j’ai vraiment le même moteur sur la berline et la break, cela me facilite le suivi, le stock de pièce et les réparations.
– 3ème feu stop, c’est con, mais je trouve cela important.
– Le vernis du toit est archi mort, cela ne se vois pas sur les photos mais le vendeur me l’avait dit au téléphone. Il faudra faire quelque chose rapidement.
– Pas d’alarme ni de sur-condamnation, c’était également un souhait, ces options ne m’intéressent pas sur la break.
– Les vitres arrière sont à manivelle, je les passerait en électrique.
– L’accoudoir n’est pas réglable, je prévoie de mettre un moteur (dispo en stock).
– L’essieu arrière est touché par de la rouille en surface, qu’il traite régulièrement…
– Des flexibles de freins avant à changer, l’étrier gauche à dégripper

Petite déception : je voulais un modèle a partir de 1998 pour avoir la possibilité de ne pas saisir le code pendant 1 minute après déverrouillage, elle ne le permet pas : code C1C refusé, je ne sait pas pourquoi.

En complément :

Le silencieux arrière est neuf, l’intermédiaire pas vieux

Les 6 sphères sont HS, c’était évident lors de l’essai sur route, après mesure les sphères avant sont à 40 bars au lieu de 70 et les arrières sont à 20 au lieu de 40.

J’ai déjà acheté et changé les 4 sphères d’amortisseur avec du IFHS de Norauto, celle DU CJ/DJ est acheté mais pas changée, celle de l’anti affaissement doit encore être acheté.
Je prévoie de changer la sphère anti affaissement et protéger le silencieux avec la peinture au zinc en même temps.

A noter tout de même la présence de sphères triple couche à l’avant, je les garde dans un coin pour les faire regonfler à l’occasion.

Preuve supplémentaire que la voiture a été suivie avec soin : les sphères se débloquent sans problème à la clé à chaine, sans trop forcer.

Et le LHM est… vert, c’est rare sur celles que j’ai acheté !

Allez, pour taquiner : un collier mal serré, c’est le seul détail que j’ai trouvé sur cette voiture, tout le reste n’est que bonne ou très bonne surprise à l’ouverture.

Comme beaucoup, le propriétaire à eu des soucis avec la jauges, il ne savait pas qu’elle était encode dispo. Je l’ai changé pour 13 € environs. Je ne l’ai pas remoulé, bien que Fabrice m’ait donné les moules, parce que tant qu’elle est dispo je préfère mettre du neuf. Je garde bien sur la jauge dans un coin.

C’était involontaire, mais la durite de commande de la vanne EGR à cassée, son mécano lui a conseillé de laisser ainsi, je vais bien sur faire de même.

Oui, il a eu la chance d’avoir pendant quelques années un bon mécano.

Un petit détail supplémentaire, mais j’en découvre de temps en temps…

J’en oublie surement, mais…
– La clim a été rechargé il y a quelques années, et fait toujours du froid.
– Il y a une prise d’aire sur l’arrivée de gasoil, au bout de quelques jours d’arrêt il faut pomper pour démarrer.
– Elle est fournie avec 4 pneus monté en bon / très bon état + 4 roues neige dont 2 en très bon état.

Un achat sans mauvaise surprise, tous les défaut avait été mentionné par téléphone (hors sphère HS dont il ne s’était pas rendu compte car habitué).

Côté financier :
– Voiture : 1200 €, avec un réservoir au 3/4 pleins
– rapatriement : 200 € environ, 110 € de train, 90 € de gasoil et péage
– réparation : 200 / 250 € environ (sphères, kit joint pour étrier, flexibles, jauge à huile)
– carte grise : 150 à 180 € selon si je me déplace en préfecture ou si je passe par un prestataire.

Globalement, une XM Break en bonne état pour 1800 € tout compris. Cela me convient, surtout aux vues du bon état générale.

Que vas devenir la break verte ?
Elle vas continuer à servir tranquillement, le temps que je finisse de préparer celle-ci, que je répare la berline (courroie de distrie, joints pompe HP et joints pompe EPIC).
Ensuite, je vais la démonter. Le moteur n’a que 150 000 Km environ et des courroies neuves, j’espère le vendre ainsi que la ligne d’échappement qui n’est pas vieille et 2 – 3 pièces qui ne correspondent plus à rien par rapport à mes XM. Le reste sera démonté pour faire du stock.
Le compteur affiche 420 000 Km, je ne pense pas trouver d’acheteur pour la voiture entière, et j’ai besoin du toit ouvrant et de quelques éléments pour la V6. De plus, un bout de carrosserie ne passera, à priori, pas le prochain CT en 2019 sans travaux (réalisable, mais sans intérêt).

Bonne journée,

Jilks

Bonsoir,

Comme je vous en avais parlé rapidement ici, ma première version du système permettant de générer les tensions de 1 à 4 Volts nécessaires au contrôle du fauteuil utilisait la sortie PWM de l’arduino.

C’est ce montage là :

PWM Arduino

Que j’ai depuis déporté sur une tablette :

PWM Arduino

Voyons plus précisément comment cela fonctionne…

PWM Arduino

Le principe est de faire varier sans cesse une broche de sortie entre un état haut et un état bas (5V, 0V), comme on peut le voir sur les signaux de gauche.
Le moment ou la broche passe de l’état bas vers l’état haut est toujours le même, toutes les secondes par exemple.
Par contre, on fait varier la durée à l’état haut. Pas longtemps comme le signal ‘2’, d’une durée moyenne comme le signal ‘1’ ou longtemps comme le signal ‘3’.

Ce qui vas nous intéresser, c’est la tension moyenne de ce signal.

Par exemple, il est évident que si je reste en haut 100% du temps, la tension moyenne sera de 5V et au contraire, si je reste à l’état haut 0% du temps (jamais donc), la tension moyenne sera de 0V.
Après, une simple règle de 3 permet de connaitre la tension moyenne théorique : 20% du temps => 20 x 5 /100 = 1 soit 1V.
Et comment on obtient une tension moyenne ?

Avec un condensateur et une résistance dont les valeurs ont été soigneusement choisi, pas comme moi qui ai pris plus ou moins au pif dans le stock jusqu’à ce que cela fonctionne.

Ici donc, ça marche pas …

PWM Arduino

En gros, plus la résistance et le condensateur auront une valeur élevé, plus le signal sera lisse.
MAIS :
– Si la résistance est trop élevée, alors il n’y a plus suffisamment de courant qui passe, et le signal de sortie est absorbé par le boitier de contrôle du fauteuil et disparait, le fauteuil se met en erreur.
– Si le condensateur est trop élevé, alors le signal de sortie met 3 plombes à suivre une modification du signal d’entrée et le robot de tonte est chez le voisin avant de comprendre qu’il doit tourner.

Bref, c’est simple, pas chère, mais surtout adapté pour faire varier directement la vitesse d’un moteur, pas beaucoup plus.

Comment faire la même chose, en mieux ? C’est à dire, comment à partir de mon code, avoir une tension de sortie variable, parfaitement lisse et qui réagit immédiatement ?

On utilise un Convertisseur Numérique Analogique (CNA). Il en existe avec des commandes séries ou parallèle. La commande en parallèle a l’avantage d’être plus rapide puisque pour un convertisseur 10 bits, chaque bit est envoyé en même temps sur un fil dédié alors que pour une commande série, il faut envoyer chacun des 10 bits l’un après l’autre sur le même fil.

Et la commande série, à l’avantage de n’utiliser qu’un fil (ou 2 avec l’horloge).

J’ai choisi un CNA avec une commande en I²C (série donc), je n’ai pas besoin d’atteindre les vitesses d’un port parallèle et l’arduino dispose déjà d’un port I²C et de bibliothèques dédiées.

Une recherche rapide me guide vers le DAC6573IPW

CNA Arduino

C’est pas grand, mais à priori on peut le souder sur un adaptateur :

CNA Arduino

Ha oui

CNA Arduino

Mais en vrai, j’aurais beau m’y reprendre plusieurs fois après m’être bien pris la tête à essayer de comprendre pourquoi mon code ne fonctionnais pas… je n’ai jamais réussi à le souder correctement, à moins que j’ai trop abîmé une patte. Quoi qu’il en soit, il fallait poser le doigt dessus pour qu’il fonctionne, et dans ce cas il faisait bien le boulot. Et hop, un échec pour moi !

J’ai donc recherché plus attentivement un CNA, I²C, 4 sorties, boitier DIP !

Cette fois, j’ai trouvé le MAX520BCPE+, en 8bits, ce qui après réflexion ne change pas grand chose pour mon usage.

Câblage sur une plaque à essais, réagit bien, mais la tension indiquée sur le volmètre à aiguille varie seulement de 0 à 2,5V alors que la tension de référence est de 5V…

J’ai aussi cherché un moment… Jusqu’à me rendre compte que ce CNA est un réseau R/2R SANS amplificateur. Pas d’ampli, cela signifie que le courant qui sort influe directement sur la tension mesurée, et que mon voltmètre est trop gourmand. Intuition confirmée par une mesure au voltmètre numérique, qui me donne bien un fonctionnement entre 0 et 5V.

Cette fois, pas de problème, j’ai des LM324 qui trainent … (ce sont des boitiers renfermant 4 amplis op), un montage en suiveur résout ce petit soucie.

C’est quoi un montage en suiveur ?

un amplificateur opérationnel est constitué de 2 entrée (entrée + et entrée -) et d’une sortie. si on relie la sortie a l’entrée -, et que l’on injecte un signal sur l’entrée +, alors la sortie reproduit fidèlement ce signal. Mais en plus, les entrées d’un ampli op ont une résistance infinie, il n’y a donc pas de courant qui entre, et donc pas de courant qui vient modifier la tension fournie par le CNA. Encore plus cool, le courant de sortie est infinie lui aussi (dans les limites de ce genre de truc, largement au dessus de mes besoins), ce qui signifie que je n’ai pas a me soucier du courant dont à besoin le boîtier de contrôle du fauteuil.

Un schéma pour finir de comprendre ?

CNA Arduino

En vrai, c’est un peu lourd quand même …

CNA Arduino

… mais fiable !

Et le résultat en vidéo ?

Oui, mais avec un autre sujet, j’ai d’autre vidéos un peu plus parlante, mais ce sera pour le prochain article. En attendant, je vous propose celle-ci :

Bah, et le code ? Pareil, vous l’aurez avec le prochain article 🙂

Bonne soirée,

Jilks

Edit : Bon aller, je vous la met quand même… vous connaitrez le prochain sujet 😉

Bonsoir,

Une ZX laissée sur une aire de covoiturage, c’est un jeux sympa pour des abrutis malhabile de leurs mains, non ?

Comment braquer une ZX avec un antidémarrage codé ?

Je vous donne un indice : Détruire le clavier ne fera pas démarrer la voiture.

Forcer une ZX

Pour accéder au câbles du neiman, il suffit de faire faire 1/4 de tour aux éléments de fixation, inutile de casser le plastique.

Forcer une ZX

Pour schunter les fils, équipez vous d’abord en casse, et préparer le schéma… là, vous vous fatiguez à couper et dénuder des câbles, trops court pour être manipulés correctement, en plus vous m’ajoutez du boulot pour rien.

Forcer une ZX

Ha, et pour pas péter les plastique d’entourage de la colonne de direction, prévoyez un tournevis torx, quelques euros chez Norauto et plus confortable pour vos petits doigts. De plus, après votre échec, on aura pas besoin de retourner le stock pour trouver les pièces de remplacement.

Démarrer la voiture, c’est une chose, mais même si dans les films un coup sec sur le volant casse le neiman et libère le volant, dans la vraie vie c’est un barreau d’acier de 7mm x 12 mm… Le volant casse bien avant. Heureusement pour cette ZX, ils s’en sont rendu compte sur une autre voiture ce soir là 🙁

Bon, bah, on vas réparer cela …

Pour commencer, un nouveau clavier.

Forcer une ZX

Ayant la clé de la voiture, on a hésité entre réessayer avec un couteau ou utiliser le code… finalement on a utilisé le code, mon stock de clavier n’est pas inépuisable.

Ensuite, un neiman dont on a la clé permet de démarrer la voiture et me l’apporter.

Forcer une ZX

Ici, c’est un neiman de XM, les câblages ne sont pas identiques et on perd la ventilation habitacle. Mais, ça tourne. Bien sûr, il faut la clé de la ZX pour débloquer le volant.

Une petite vis torx, et ce pion a pousser vers le bas permet de sortir le neiman. Pour pouvoir pousser le pion, il faut la bonne clé, et la tourner jusqu’au premier cran.

Forcer une ZX

On à fait quelques essais, donc démonté un petit peu plus que nécessaire.

Forcer une ZX

Schéma repéré et vérifié, de nouveaux connecteurs venant du stock, yapluka !

Forcer une ZX

Le fer à souder de 80W est nécessaire sur ces sections.

Forcer une ZX

Forcer une ZX

Remise en place.

Forcer une ZX

Branchement, rangement.

Forcer une ZX

Ça repart pour un tour, par contre le stock de plastiques d’habillage n’est pas chez moi, l’esthétique sera donc réglé plus tard.

Vous voulez voler une ZX ? Bossez bien mieux votre sujet avant. Ce travail est ridicule !

Bonne soirée,

Jilks

Bonjour,

La dernière fois, j’ai réalisé un câblage propre pour prendre la main sur le boitier de commande, et un circuit tout pourri pour en vérifier le fonctionnement. C’est normal. On vas y aller par étapes …

Faire des essais en suivant le fauteuil n’est franchement pas pratique, avant de finaliser la “fabrication” des signaux, je dois prendre le contrôle à distance.

Pour cela, j’ai choisi une flysky FS-i6. Elle n’est pas chère, et je pourrais l’utiliser lorsque je me ferais un hexacopter brushless.

fsi6

Je l’ai acheté un peu moins de 40€ chez banggood (lien) avec un récepteur FS-iA6B. La référence du récepteur est importante.
Ce même récepteur est vendu seul 8€ environ et la télécommande peut en mémoriser 20. Ce qui permet facilement de piloter le future hexacopter sans reprogrammer sans cesse la télécommande.

A noter que je n’y connais pas grand chose en radio, juste le fonctionnement basic des servos, je peux donc être imprécis sur certains points.
Pourquoi ce choix ? Grâce à cet article : lien ou il explique que ce récepteur fournis des signaux CPPM. Cela signifie donc qu’il peut être raccordé à un arduino via 1 seul fil pour transmettre toutes les commandes.

Finalement, et c’est la que la référence du récepteur est importante, il est encore mieux que prévu : il fournit aussi des signaux iBus, une communication sur le port série à 115200 bauds avec un protocole connu.

iBus, c’est bien, surtout qu’en cherchant un peu, on trouve le code de quelqu’un qui a déjà fait tout le boulot : C’est ici
Pour mémoire, j’ai gardé une copie du code source ici

Et pourquoi iBus, c’est mieux que CPPM ? Et, c’est quoi CPPM ?
En RC, pour gérer un servomoteur on envoi une impulsion d’une durée comprise entre 1 et 2ms, la durée de cette impulsion correspond à la position désirée du servo entre son min (1ms) et son max (2ms). Sur un récepteur 6 voies, il y a donc 6 connecteurs pour 6 servos différents.
Sur un multirotor, on a pas de servomoteur, mais un contrôleur de vol qui gère la stabilité (oui, pour ceux qui connaissent, je prend des raccourcies). Pour éviter d’avoir a relier les 4 voies des commandes au contrôleur de vol, il existe le CPPM : les impulsions de chaque voies passent les une après les autres sur le même file. Et hop, 1 seul câble entre le récepteur et le contrôleur de vol.
C’est cool, mais il y a peut être mieux à faire… le récepteur reçoit une info numérique (les récepteurs actuels en 2.4GHz, pas les anciennes générations) puis doit créer une impulsion, et le récepteur doit compter le temps qui passe, avec sa propre précision pour transformer cela en valeur numérique… autant tout passer en numérique, ainsi la valeur 1240 reçut par le récepteur, reste 1240 dans le contrôleur de vol, et pas 1238 ou 1243 (par exemple).
Et voilà, donc le iBus, c’est toutes ces valeurs transmises sur 2 octets en série, avec un en-tête spécifique et un code de validation à la fin pour être certain de la qualité des données.

Moi, je n’ai pas un contrôleur de vol, mais un arduino : c’est pareil.

Pour la connexion, j’ai choisi d’utiliser le port série N°1 de l’arduino, et ainsi garder le N°0 libre pour les communication avec le PC (via l’usb, mais c’est un port série quand même)..

Ce qui donne :

Cablage ibus arduino

On peut difficilement faire plus simple …

Pour le code, je reprend la partie qui m’intéresse dans celui publié par povlhp et je remplace la partie télécommande filaire.
Le nouveau programme est donc : celui-ci

Une fois de plus, c’est juste un code de test/travail, il permet de vérifier la logique du système mais est loin d’être parfait.

Je reçoit donc bien les infos des 6 voies : les 4 voies joystick et 2 interrupteurs ou potentiomètre au choix.
ici, j’utilise le levier 3 position (interrupteur C) pour choisir un mode (1, 2 ou 3). Pour cela, j’ai paramétré la télécommande pour que cet interrupteur soit assigné à la voie 5.

Et le résultat :

Dans les prochains articles nous parlerons d’une bien meilleur façon de commander le fauteuil et d’une amélioration notable du fonctionnement avec cette radiocommande.

Bonne journée,

Jilks

PS : j’ai essayé d’être plus précis que la dernière fois, si c’est cool ou si c’est chiant, dites le moi.

Bonsoir,

Gérer correctement la partie commande des moteurs est compliquée. Il est bon de prévoir des accélérations progressives, des limitations de courants si besoin, d’évacuer la chaleur générée par la partie “puissance”, etc…
Hors, le boitier de commande du fauteuil fait déjà cela très bien. Il est donc bien plus simple de commander ce boitier, que de tout recréer.

J’en profite pour vous parler de l’architecture que j’ai choisie :

Un circuit, à priori sur base d’arduino Mega, sera en charge de :

  • Contrôler les déplacements du fauteuil
  • Détecter les obstacles
  • Récupérer de manière fiable les ordres d’une télécommande permettant une prise en main a coup sûr du robot
  • Obéir aux ordres de déplacements reçu par le port USB
  • Fournir les informations d’obstacle via le port USB
  • Gérer le démarrage/arrêt du moteur pour le robot de tonte

Un PC (ou équivalent) :

  • Sera lié via USB a la carte de contrôle
  • Obtiendra les informations GPS
  • Obtiendra les informations sur les obstacles
  • Connaitra une cartographie des lieu
  • Gérera les algos de déplacement du robot.

Ainsi, je vais pouvoir facilement développer la première partie, ensuite je n’aurait plus qu’a faire un logiciel … heu …

Bon, le début de la partie elec. Si on ouvre la petite boite :

On trouve un circuit de très bonne qualité. On remarque sans difficulté la liaison entre le joystick et la carte de contrôle. C’est par ici que je vais passer.

Ho ! Je n’ai rien inventé, l’idée m’a été donnée par ce blog : http://bennurre4.blogspot.fr/2012/12/modif-de-la-commande.html

Le principe est le suivant : le joystick fourni 4 tensions sur 4 fils différents.

Pour la marche avant/arrière, l’un des fils varie de 1 à 4V, pendant que l’autre varie de 4V à 1V, la position milieu étant 2.5V sur les 2 fils.

Pour la direction gauche/droite, c’est la même chose.

Ce fonctionnement avec des tensions complémentaires permet au microcontrôleur de vérifier que l’information fourni par le joystick est fiable. Nous en reparlerons, mais il y a un petit problème, si on ne génère pas exactement ce qui est attendu, il se met en sécurité…

Pour commencer, le câblage :

Je ressort du boitier :

  • Les signaux du joystick
  • L’entrée vers la carte
  • Du 24V en direct des batteries.

Ainsi, je peut garder le fonctionnement normal du fauteuil (p’tit bout et moi, on aime bien jouer avec …)

Ou alors, débrancher le joystick et le remplacer par mon système.

Après quelques hésitations, l’emplacement est choisi, et hop, un petit trou !

Je met moi aussi ma ferrite, il serait dommage que j’apporte des perturbations electromagnétiques.

Quelques soudures, gaine thermo, etc …

Je fait le malin, mais il en a fallut du temps pour tout faire… et hop, refermé, et encore “étanche” 🙂

Je peut maintenant brancher “mon” circuit.

L’Arduino ne dispose pas de sortie analogique, on est donc obligé de jouer avec les sorties PWM et filtrer le signal pour le lisser.

Mouais, vas falloir augmenter la valeur du condo ! (Si j’augmente la résistance, ça passe plus) Il y à en effet trop de vagues, et le boitier se met en sécurité.

Bah voilà ! de mémoire 47µF et 1KOhm

Ensuite, par taton, je trouve le rapport cyclique min pour obtenir 1V, et le max pour obtenir 4V. Et ce, sur chaque voie, étant donné que je n’ai pas trouvé 4 condos identiques dans mon stock.

Comme vous avez pu le voir sur les photos, j’ai relié une télécommande à l’Arduino. Il s’agit d’une vieille façade dont je n’ai que les potentiomètres, utilisé en pont diviseur, sans rien ajouter de plus.

 

Pour le code, il est ici : TelecommandeFilaire.ino

Gardez bien a l’esprit que c’est un code de test … Ce n’est pas sur celui-ci qu’il faudrait me juger en tant que développeur.

Et le résultat :

Bon, de base, le système est OK. Je vais pouvoir y monter une vrai télécommande.

Attention, ce n’est qu’une base de travail. Par exemple, au bout de 20 minutes d’utilisation je commence a avoir une dérive vers la gauche. Ce n’est pas grave, mais c’est à garder à l’esprit.

De plus, en butée ou lors de certaines manœuvres le fauteuil n’aime pas les infos qu’il reçoit et se met en sécurité (ne bouge plus et les leds clignotes). Il faut alors éteindre et rallumer le boitier.

Bonne soirée et à la prochaine,

Jilks