Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 01 Fév 2015 21:40 Sujet du message: |
|
|
Ouais effectivement, c'est avec un O ...
Sinon pour répondre à la question, oui j'ai de sérieuses bases dans l'informatique, quelques connaissances en électronique, et c'est le genre de sujets qui m’intéressent quand je bricole... |
|
|
Revenir en haut |
|
|
|
Arthur_035
Inscrit le: 11 Nov 2007 Messages: 182 Localisation: 35
|
Posté le: 01 Fév 2015 22:29 Sujet du message: |
|
|
Bonjour,
Voici des éléments supplémentaires, pour les personnes intéressées. Désolé, cela n’a toujours pas la forme de tuto !
1/ Avaler le contenu du protocole des outils OBD, sur base d’ELM327 :
http://elmelectronics.com/obdic.html#ELM327v14b pour savoir comment dialoguer avec les modules OBD.
2/ A partir de là, on peut commencer à espionner ce qui est diffusé sur le bus (depuis un PC par exemple), via les commandes : ATZ, ATSPC, ATE0, ATAL, ATH1, ATMA.
3/ Pour l’analyse des trames, je me suis inspiré de :
http://www.canhack.de/viewtopic.php?t=28&highlight=can+stilo
Par exemple : dans la trame 180, le premier octet passe de 0 à 80 lorsqu’on appuie sur la pédale de freins…. Le deuxième octet indique le niveau de phares (lumières, codes, phares, anti-brouillards, avant, Arrière, …), ……
4/ Concernant l’affichage de l’autoradio sur le TDB, je n’ai pas trouvé de source d’inspiration sur le net, …
La séquence d’initialisation de l’autoradio : 525 00 2B 03, suivi de 540 00 A7 B2. (je n'ai pas la signification exacte des infos transmises). En espérant que cela ne soit pas dépendant de la voiture, …
Pour envoyer des informations sur le TDB, c’est la commande 565. Les 6 octets qui suivent codent 8 caractères, codés sur 6 bits (6x8=8x6 !), selon un code spécifique. http://www.canhack.de/viewtopic.php?t=52
« ALFA 147 » se code 31 74 4C A0 21 48.
5/ Pour lire les informations de l’ECU, c’est beaucoup plus simple.
La séquence d’initialisation est : ATZ, ATSP3.
Il faut intérroger l’ECU. 01 04 demande la charge du moteur. La réponse est du type 41 04 XX. http://en.wikipedia.org/wiki/OBD-II_PIDs
6/ Pour la partie électronique, j’ai utilisé un Arduino Nano (http://arduino.cc/en/Main/arduinoBoardNano). Il faut apprendre à le programmer (voir sur le site).
Les modules Bluetooth HC-05 doivent d’abord être configurés en mode Master, sur l’adresse bluetooth d’un des module OBD. L’opération, pas triviale, est décrite ici (http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/step2/The-Arduino-Code-for-HC-05-Command-Mode/)
A partir de là, il est donc possible de programmer le micro-controlleur (arduino nano) pour envoyer, via le module Bluetooth, des commandes au module OBD, … par exemple lire des informations reçues sur le bus CAN, et les faire afficher…
Bon courage à ceux qui veulent tenter l'expérience. Il faut un minimum de connaissances en électronique et programmation, ou s'y investir. Je répondrai aux questions.
PS1 : J’avais tenté de poster sur alfagtpassion également, …. Mais je n’ai pas réussi !!! (pb de droits ?).
PS2 : Si d’aucun a des lumières complémentaires sur l’utilisation du bus, je suis intéressé.
PS3 : J‘ai depuis, mis en œuvre un indicateur de changement de vitesse, basé sur les rapports de boite (rapport entre vitesse véhicule et rotation moteur), la courbe de puissance du moteur (modélisée dans le programme), et le niveau de charge actuel du moteur.
- J’ai considéré que la puissance réelle requise est la puissance max (au régime actuel) x la charge du moteur (Load).
- Il suffit alors de simuler le niveau de charge requis pour avoir la même puissance, mais à un régime moteur inférieur (celui qui permet d’avoir la même vitesse avec la vitesse supérieure enclenchée). Si c’est inférieur à 100% (j’ai positionné 90%), alors on peut passer la vitesse supérieure (le moteur tournera moins vite, mais avec une charge supérieure, donc un meilleur rendement). Je ne sais pas si le raisonnement est bon, .. mais çà marche pas mal ! |
|
|
Revenir en haut |
|
|
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 01 Fév 2015 23:46 Sujet du message: |
|
|
Les passages des rapports c'est un excellent gadget je trouve !
En attendant que je m'équipe correctement, et que je lise la littérature associée, je me pose juste une question : pourquoi le BT plutôt que l'USB ? |
|
|
Revenir en haut |
|
|
willy
Inscrit le: 16 Déc 2008 Messages: 3238 Localisation: Pas loin de Perpignan
|
Posté le: 02 Fév 2015 13:15 Sujet du message: |
|
|
Merci Arthur por toutes ces infos
Je vais étudier cela _________________ 147 GTA bleu cosmo ,cuir noir ,18",Q2 ,intermédiaire et silencieux Ragazzon ,barres eibach,Bilstein B16,Tarox F2000,élargisseurs 16mm Ar,Pioneer AVIC F910
156 SW Ti 2.4 Jtd ,siège sport cuir gris ,barres Eibach
Mito 1.4 T-jet (ouais,on n'aime pas les Alfa à la maison!) |
|
|
Revenir en haut |
|
|
julienmop
Inscrit le: 17 Nov 2014 Messages: 112
|
Posté le: 03 Fév 2015 22:52 Sujet du message: |
|
|
Oui désolé Léo pour l'écorchage de nom, et merci Arthur pour les explication.
Moi comme je l'avais dit, je suis en étude d'info avec de la progra notamment c++.
A plusieurs, on doit avoir moyen de faire quelque chose je pense.
J'attend toujours mon Elm, une fois qu'il arrivera je commanderai le reste ;) |
|
|
Revenir en haut |
|
|
Arthur_035
Inscrit le: 11 Nov 2007 Messages: 182 Localisation: 35
|
Posté le: 05 Fév 2015 22:46 Sujet du message: |
|
|
Pourquoi le BT plutot que usb ?
dans les + : modules plus petits, moins de fils à tirer. facilite la mise au point ; il faut de toute façon un convertisseur USB-TTL pour être utilisé par le microcontrolleur. Une alternative serait d'ouvrir les modules pour récupérer directement les signaux ttl, ..
Dans les - : çà fait des ondes, ... et probablement une latence de connexion au module qu'on n'aurait pas avec du filaire.
voilà ! |
|
|
Revenir en haut |
|
|
grise147
Inscrit le: 14 Oct 2007 Messages: 8762 Localisation: TOULOUSE !
|
Posté le: 07 Fév 2015 11:36 Sujet du message: |
|
|
Arthur_035 a écrit: | Désolé, cela n’a toujours pas la forme de tuto ! |
j ai pas compris a 100%, maintenant, je suis a 40 %
mais j ai pas tout pigé
tu peux nous detailler les etapes, car franchement, ton travail merite d etre exposé |
|
|
Revenir en haut |
|
|
grise147
Inscrit le: 14 Oct 2007 Messages: 8762 Localisation: TOULOUSE !
|
Posté le: 07 Fév 2015 14:37 Sujet du message: |
|
|
Arthur_035 a écrit: | A partir de là, il est donc possible de programmer le micro-controlleur (arduino nano) pour envoyer, via le module Bluetooth, des commandes au module OBD, … par exemple lire des informations reçues sur le bus CAN, et les faire afficher… |
j ai essayé de comprendre ton post
j ai a peu pres compris
si je comprends bien, tu enleve le module CAN du post afin d'injecter par le canal de la radio, la lecture du CAN par l'autre module sur une frequence precise ( par ex la pression turbo)
comment tu programme ton controlleur micro arduino afin d injecter l info ? |
|
|
Revenir en haut |
|
|
grise147
Inscrit le: 14 Oct 2007 Messages: 8762 Localisation: TOULOUSE !
|
Posté le: 13 Fév 2015 01:52 Sujet du message: |
|
|
bah, j ai de l ail dans ma bouche ou quoi
tout le monde est parti, alors que c est interessant |
|
|
Revenir en haut |
|
|
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 14 Fév 2015 21:02 Sujet du message: |
|
|
Le facteur a été gentil aujourd'hui ... Il manque encore le reste mais je vais pouvoir jouer un peu en attendant
|
|
|
Revenir en haut |
|
|
grise147
Inscrit le: 14 Oct 2007 Messages: 8762 Localisation: TOULOUSE !
|
Posté le: 15 Fév 2015 10:08 Sujet du message: |
|
|
ouais, moi aussi, j ai commandé la meme chose !
n oublie pas de detailler pour les non-electroniciens de ce site
merci leo ! |
|
|
Revenir en haut |
|
|
Arthur_035
Inscrit le: 11 Nov 2007 Messages: 182 Localisation: 35
|
Posté le: 15 Fév 2015 12:09 Sujet du message: |
|
|
Hello, de retour.
Commander aussi 1 ou 2 HC-05 pour le dialogue en bluetooth avec le module ODB bluetooth.
A noter qu'on peut commencer à découvrir le bus avec un module Odb (Bluetooth c'est plus partique) et un PC (bluetooth). Ue émulation de terminal et c'est parti (ATZ, ATSPC, ATMA, ...) |
|
|
Revenir en haut |
|
|
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 15 Fév 2015 23:49 Sujet du message: |
|
|
Perso les 2 HC-05 et le module ODB multi-protocoles sont aussi en route ...
L'odb blutooth classique je l'ai déjà, il faut juste que je fasse une modification de la pin 16. Par contre, je vais faire une truc un peu plus pratique avec un petit inter pour pouvoir choisir la source d'alim (via prise OBD ou 12V APC) ...
J'ai pas eu le temps de jouer avec l'arduino (enfin sa copie) pour le moment (c'est un truc que je maitrise pas) mais plus je lis des trucs dessus, plus ça me plait).
J'ai encore du boulot, pour comprendre exactement comment les modules HC-05 se paramètrent parce que je me vois pour le moment assez mal piloter tout ça avec les seules fonctions setup et loop ....
Avec le "kit" complet. Le premier truc que j'aimerais faire, c'est déclencher la fermeture centralisée, dès que l'on roule plus de 10 secondes au dessus de 20Km ... |
|
|
Revenir en haut |
|
|
Arthur_035
Inscrit le: 11 Nov 2007 Messages: 182 Localisation: 35
|
Posté le: 21 Fév 2015 12:55 Sujet du message: |
|
|
Hello,
Bien relire le 1er article :
" La limitation est que s’agissant de commandes, a priori de diagnostic, on ne peut interagir quand la voiture roule.
o Je n’ai pas réussi à afficher les warnings en cas de freinage brutal par exemple.
".
D'où la fermeture automatique déclenchée sur le frein à main, et non sur la vitesse ! |
|
|
Revenir en haut |
|
|
grise147
Inscrit le: 14 Oct 2007 Messages: 8762 Localisation: TOULOUSE !
|
Posté le: 23 Fév 2015 13:41 Sujet du message: |
|
|
le HC-05 c est identique au HC-06 ?
comment avez vous pu faire l alim ? une resistance ?
merci a vous de vos reponses |
|
|
Revenir en haut |
|
|
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 23 Fév 2015 19:36 Sujet du message: |
|
|
Hello,
Oui, j'ai pas mal potassé le sujet ... Et je pense juste que j'ai juste imaginé une approche différente de la solution.
Pour faire simple, la lecture de la vitesse + le calcul de la durée, on est bien d'accord, c'est possible sans souci. De ma compréhension de la chose, c'est ni plus ni moins que ce qui est fait dans le "mécanisme du changement de rapport"... Les données lues sont juste un peu différentes.
Pour le déclenchement de la fermeture des portes, là par contre, il y a 2 méthodes : Celle concernant l'injection d'une trame CANBUS et comme tu le fait remarquer, en roulant ce n’est pas possible. Soit !
Une autre option est de simuler le déclenchement du bouton sur la console centrale. L'arduino étant principalement constitué d'E/S programmable, je ne vois pas trop en quoi, il ne serait pas possible d'envoyer une tension (12V au pire des cas), dans la bonne broche du bouton... Du point de vue, ECU, à mon avis impossible de faire la différence ....
Alors, comme je n'ai pas encore tout le matériel pour jouer, je peux me tromper, mais dans ce cas-là, je veux bien un peu plus d'explications...
Sinon, aujourd'hui au courrier
Sinon HC-05 et 06 sont identiques sauf que le 05 dispose de la fonction master .... Hors ça fait partie des besoins énoncés.
Pour l'alimentation, 5V direct à mon avis mais j'ai pas encore regardé....
PS: j'aurais pourtant juré avoir activer les notifications sur ce sujet .... |
|
|
Revenir en haut |
|
|
Arthur_035
Inscrit le: 11 Nov 2007 Messages: 182 Localisation: 35
|
Posté le: 24 Fév 2015 00:34 Sujet du message: |
|
|
Hello,
Bon, je n'ai plus rien à dire !
Prendre en effet HC-05 qui fait slave (comme le HC-06) et Master (la fonction qui nous intéresse, pour se connecte à l'OBD qui est slave).
Le +5V est à prendre sur le microcontrolleur.
En effet, on peut se brancher sur le bouton de fermeture, physiquement, pour rendre cette fonction.
- il faut gérer les aspects fermé/ouvert dans le microcontrolleur
- la volonté était de faire un montage très général, pour piloter un maximum de fonctions, donc en passant exclusivement via le bus.
Du coup, avec ta solution, ton pourrais aussi récupérér la commande des warnings, pour déclenchement en cas de forte décéllération. |
|
|
Revenir en haut |
|
|
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 24 Fév 2015 01:15 Sujet du message: |
|
|
Bon, là ou tu marques un point c'est qu'effectivement être obligé de repiquer les E/S un peu partout ça rends le système un peu plus "bordélique" ... |
|
|
Revenir en haut |
|
|
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 24 Fév 2015 21:05 Sujet du message: |
|
|
Suis quasi prêt !!!
Réception des deux modules HC-05 et d'un autre arduino (le 1er ne fonctionne pas !!!)
Et une petite nappe pour faciliter les branchements
Test ultra rapide (led qui clignote ...) Yes !!!!
|
|
|
Revenir en haut |
|
|
leo
Inscrit le: 13 Nov 2008 Messages: 18
|
Posté le: 25 Fév 2015 12:01 Sujet du message: |
|
|
J'ai joué hier avec mes modules et j'adore !!!!
En moins d'une heure, montage et lecture comprise, j'avais le moyen de piloter l'allumage d'une LED à distance depuis mon PC en bluetooth et affichage de l'état dans un terminal série (texte) en retour... Bon ça sert à rien sauf à prendre en main l'ensemble.
Pour ceux qui se posent une question sur le branchement des HC-05 (et du reste en général), il n'y a rien de compliqué : le fils rouge, sur le bouton rouge etc...
L'alimentation de l'arduino est faite via le câble USB (5V). Pour alimenter les modules HC-05, il n'y a que 4 fils :
- le 5V, la masse qui sont communs aux 2 modules, il suffit de lire sur les circuits pour trouver les broches.
- le TX et le RX (envoi/réception) que l'on branche sur une sortie digitale individuelle (D1 à D13), donc 2 modules utilisent 4 broches D.
Le reste de l'intelligence est dans le programme à écrire, où il suffit de bien se rappeler quelles broches sont réliées et pour quel usage.
Code: | #include <SoftwareSerial.h>// import de la librairie serie
SoftwareSerial Genotronex(10, 11); // RX, TX
int ledpin=13; // la led en broche 13 qui va clignoter
int BluetoothData; // les données à transmettre
void setup() {
Genotronex.begin(9600);
Genotronex.println("Bluetooth actif, appuyez sur 0 ou 1 ..");
pinMode(ledpin,OUTPUT);
}
void loop() {
if (Genotronex.available()){
BluetoothData=Genotronex.read();
if(BluetoothData=='1'){ // si on entre 1
digitalWrite(ledpin,1);
Genotronex.println("LED D13 ON ! ");
}
if (BluetoothData=='0'){// si on entre 0
digitalWrite(ledpin,0);
Genotronex.println("LED D13 Off ! ");
}
}
delay(100);// pause pour attendre la suite (retour au début du code loop) ...
}
|
|
|
|
Revenir en haut |
|
|
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
ok
|