Des que je trouve 5 minutes, je redige le protocole que j'ai defini pour le transfert des données et la methode que j'utilise pour convertir les informations 'numeriques' en valeurs reeles. Bon les 'non informaticien' vont encore desertés le post, mais on s'en fout, il sont en minorité
Aquisition de données
#141
Posté 13 November 2008 - 09:33 PM
Des que je trouve 5 minutes, je redige le protocole que j'ai defini pour le transfert des données et la methode que j'utilise pour convertir les informations 'numeriques' en valeurs reeles. Bon les 'non informaticien' vont encore desertés le post, mais on s'en fout, il sont en minorité
#142
Posté 13 November 2008 - 10:10 PM
▀ M ▄▀ U ▄▀ S ▄▀ T ▄▀ A ▄▀ N ▄▀ G ▄▀▄▀▄▀ P ▄▀ A ▄▀ S ▄▀ S ▄▀ I ▄▀ O ▄▀ N ▄▀▄▀▄▀
#143
Posté 14 November 2008 - 09:12 PM
J'ai fais un premier test reel avec le capteurs d'acceleration 2 axes. Il prend en compte l'acceleration et l'angle d'inclinaison. Le truc etait vachement nerveux a la base. c'est hyper fast en temps de reaction au point que j'ai du le calmer en ajoutant une capa non negligeable (1 µf polarisé) entre la masse et chaque sortie
#144
Posté 15 November 2008 - 06:58 PM
Bon tout c'est bien bien beau, j'embarque mon premier passager, j'allume le perftracker et la sur l'afficheur je lis "No Memory Card"
#145
Posté 16 November 2008 - 08:34 PM
pour la conversion numérique en valeur réelle aucun soucis pour moi
ce qui est encore flou pour mon esprit c'est ton module de conversion série/Ip qui m'intéresse pour te répondre
ainsi que la liaison rs232 (si je ne me trompes pas) et le fait de transférer les données acquises au code (à mon avis je dirai que tu instancie un objet en passant en paramètres certain ports du pc ou certaines données de ton unité de stockage usb)
sinon je pense déjà à utiliser une class composé essentielemment de threads histoire de capter EN MEME TEMPS toutes les données qui arrivent, de les manipuler via les formules,etc,...et ensuite les afficher sous forme de graphique et autre,
ou alors créer une classe pour chaque données reçue en paramètre et ensuite les appeler avec des delegate selon ce que tu veux en faire
amuse-toi bien avec ta beauté sur circuit et un grand merci à toi
#146
Posté 18 November 2008 - 09:32 PM
La semaine prochaine, j'aurais sans doute un peu plus de temps, donc je mettrais en ligne quelques bouts de code et des explications sur les methodes utilisées
#147
Posté 18 November 2008 - 09:41 PM
#148
Posté 18 November 2008 - 11:02 PM
Oui la methode est bonne, c'est je pense ce que l'on vous apprend aujourd'hui vu que la mode est 'objet'. Creer une classe genre 'capteurs' et instancier des objets qui retournent des evenements. Apres il faut voir en termes de performance ce que cela donne par rapport a un developpement fonctionnelle, je reste persuadé qu'une variable stocké dans une structure type reste beaucoup plus rapide a lire ou a ecrire qu'une variable encapsulée dans un objet, mais bon ... faut voir. Je suis en train de developper un namespace 'perftracker' qui s'appuis sur le framework 2. Il contiend des classes qui permettent d'instancier des objets pour les 2 types de capteurs (analogiques et digitales). Tous les calculs et les evenements sont gerés par ces objets, ce qui va simplifier le developpement par la suite. La j'en suis a regarder de quelle maniere je vais envoyer mon flux de données a ces instances pour ne pas perturber l'affichage et surtout ne pas deborder
.
Salut Romu et merci pour ces nouvelles infos.
En ce qui concerne le choix entre variable stockée dans une structure ou bien attributs d'un objet, perso je pense que celà dépend du nombre d'attributs encapsulés que tu as dans ton objet. Et puis que ça soit objet ou programmation "normale", les variables autant que les objets seront accessibles n'importe où, donc pour moi celà dépend du nombre de variables créées.
Pour ce qui est de la manière dont tu vas envoyer tes flux de données a tes instances d'objets. Perso, je passerai ces flux en paramètres du constructeur de ta classe lors du chargement de ta feuille avec héritage (par exemple une super classe analogique et à l'intérieur une sous classe pour chaque flux entrant) ainsi qu'un polymorphisme. Et si tu ne veux pas perturber l'affichage je pense peut être à une histoire de timer à paramétrer toute les 0.01 secondes selon si tu veux afficher tes données dans un graphique ou un datagriedview (un tableau). Bref un peu flou tout ça, dit comme ça, mais il y a moyen.
En tout cas c'est bon de voir que quelqu'un nous comprend quand on parle de quelque chose que l'on aime, c'est comme la Mustang c'est une passion à partager !
Ce message a été modifié par Vincent62290 - 18 November 2008 - 11:47 PM.
#149
Posté 19 November 2008 - 01:46 PM
http://www.billyocte...prtcl_prft1.htm
Exemple de convertion valeur de donnée vers valeur reele
J'entend par valeur de donnée la valeur directe issue de la convertion analogique/digitale et par valeur reele la valeur explicite a afficher
representation des variables (ne sont pas toutes utilisée dans l'exemple):
_ValDataMin (long) : Valeur de donnée minimum pouvant etre renvoyé par le capteur
_ValDataMax (long) : Valeur de donnée maximum pouvant etre renvoyé par le capteur
_ValDataAmp (long) : Amplitute de valeur de donnée (= _ValDatamax - _ValDataMin)
_ValReelMin (double) : Valeur reele minimum du capteur
_ValReelMax (double) : Valeur reele maximum du capteur
_ValReelAmp (double) : Amplitude de valeur reele ( = _ValReelMax - _ValReelMax)
_ValData (long) : valeur resultante de la convertion A/D
_ValReel (double) : Valeur explicite
Exemple simple de procedure de convertion
Private Sub Calcul_ValReel()
Dim Coef As Double = CDbl(_ValDataAmp / (_ValData - _ValDataMin))
_ValReel = (_ValReelAmp / Coef) + _ValReelMin
End Sub
Si par exemple on a un capteur de position de papillon de gaz qui fourni une tension de 1 volts quand les papillons sont complement fermés et de 4 volts quand ils sont complement ouvert et que l'on veux convertir en une valeur allant de 0 a 100% d'ouverture (Rappel : la tension de référence est de 5 volts et les données sont converties sur 10 bits):
(jutilise l'arrondi par defaut pour stocker le resultat des divisions dans les long)
_ValDataMin = (1023/5 volts) * 1 volt = 204
_ValDataMax = : (1023/5 volts) * 4 volt = 818
_ValDataAmp (long) : 818 - 204 = 614
_ValReelMin (double) : 0 (%)
_ValReelMax (double) : 100 (%)
_ValReelAmp (double) : 100 - 0 = 100
Si par exemple le capteur renvois une tension de 2,9 volts, les valeurs converties seront donc les suivantes :
_ValData = (1023/5 volts) * 2.9 volt = 593
Valeur de la variable 'coef' de la procedure = 614 / ( 593 - 204) = 1,57840616966581
_Valreel = (100/1,57840616966581) + 0 = 63% d'ouverture des papillons
Bien que la valeur reele retournée soit un double, on fait la part des chose en s'affranchissant des decimales suivant les capteurs. Dans le cas de ces papillons de gaz, si on est a 50% d'ouverture et que l'on a arrondi par defaut pour les long, le resultat mathématique sera de 50,1628664495114 %
Exemple d'extraction 'bit mapping' (voir definition du protocole PerfTracker)
Si on prend les par exemple les caracteres 9,10,11,12 d'un paquet de données on va en extraire les valeurs 10 bits des capteurs analogique 4 et 5 et la valeur 8 bits de la variable d'etat
et en supposant qu'ils aient respectivement les valeurs suivante :
asc(Char 9): 2
asc(Char 10) : 123
asc(Char 11) : 161
asc(Chat 12) : 25
On commence par former la variable d'etat . Elle est contenue dans les 4 bits superieur de char 9 qui seront les 4 bit de poids fort et les 4 bit superieur de char 11 qui seront les 4 bit de poids faible :
asc(char 9) toBin = 00000010
asc(char 11)toBin = 10100001
La valeur de l'octet d'etat recomposée est donc : 00001010 = 10
La valeur du capteur Analogique 4 est contenu dans les 2 bits low de (char 9) pour les bits superieurs et des 8 bit de char 10 pour les bits inferieurs
asc(char 9) toBin = 00000010
asc(char 10) toBin = 01111011
ce qui fait : 1001111011 = 635
On realise la meme operation pour recuper la valeur du capteur Analogique 5 qui est stockée dans les 2 bit low de char 11 et dans les 8 bit de char 12 :
asc(char 11)toBin = 10100001
asc(char 12) toBin = 00011001
ce qui donne : 0100011001 = 281
Voici le code qui me fait l'extraction d'un datagramme brut entrant (en VB6).
Je passe en parametre mon datagramme composé de l'entete (facultative) et des 16 octets de paquet contenant les données et en sortie j'ai une liste de 11 valeurs en Hexa que je stock dans un tableau,un controle,un objet ou un fichier suivant les besoins.

Vala, Simple mais bigrement efficace
Ce message a été modifié par Romuald - 19 November 2008 - 01:52 PM.
#150
Posté 19 November 2008 - 01:49 PM
J'y bite rien!!!
#151
Posté 19 November 2008 - 05:37 PM
Je vais implémenter ça à tête reposée
pour ceux qui n'y bite rien
ps : merci pour le lien Billy octet Romu mais quand je veux afficher sa page d'accueil j'ai un pacman qui cligne des yeux avec un lien, mais rien d'autre , c'est normal ?
Ce message a été modifié par Vincent62290 - 19 November 2008 - 05:45 PM.
#152
Posté 19 November 2008 - 06:19 PM
Celà dit, super boulot à n'en pas douter comme d'hab
#153
Posté 19 November 2008 - 08:39 PM
je me doutais bien que la methode de comptage ne t'avais pas posé de probleme. C'est juste du decoupage et de la reconstruction de valeurs binaires si on regarde bien, rien de bien compliqué. le plus interessant reside plus je pense dans la subtilité de la methode. Pour le reste, notament le protocole de base, c'est juste une definition d'usage et effectivement il faut avoir envie ou besoin de si interesser, sinon ce n'est pas d'un grand interet. Les exemples de code son plus destinés a Vincent et aux developpeurs. J'ai toujours été convaincu que quelques lignes de code, qui plus est dans un langage basic, sont toujours beaucoup plus explicites que de longues phrases d'explication. Ce qu'il est aussi interessant de remarquer, c'est qu'informatiquement, tout se resoud avec des operations mathématique extremement simple. Si on va plus loin dans les explications, je vous expliquerais comment je dessine les courbes dans le graphique et comment je fais pour 'tracer' l'aiguille sur une image qui represente un compteur ou un compte tour et vous vous rendrez compte par vous meme que si on fait abstraction de la syntaxe du langage de programmation on est toujours sur des operations a la porté de tout le monde.Le codage binaire ok, c'est simple mais tout le reste (4 pages)..........pas la patience et le temps de m'y interesser vraiment!!!
#154
Posté 19 November 2008 - 08:45 PM
Et même si on est pas une lumière avec les primitives, probabilité ou autre cours de maths (comme moi
Perso, dans mes études, on nous apprend, en codant dans un language, à résoudre un problème en le décomposant à l'aide d'algorithmes, bref tout n'est que mathématiques.
#155
Posté 19 November 2008 - 08:49 PM
vi c'est normal, il ni a pas d'autres home page. C'est un domaine que je possede depuis 7 ou 8 ans et qui me sert a stocker des fichiers temporaires et experimenter differents trucs ... on y trouve notament une partie de l'historique cinematographique de la Orangeps : merci pour le lien Billy octet Romu mais quand je veux afficher sa page d'accueil j'ai un pacman qui cligne des yeux avec un lien, mais rien d'autre , c'est normal ?
#156
Posté 19 November 2008 - 10:46 PM
En tout cas j'imagine que tu dois avoir une bonne situation financière, car vu ce que ta beauté "subit", tu as surement du viré toutes les pièces "old" de ta Stang pour laisser place à de la haute perfo qui ne doit pas être donnée !
Ce message a été modifié par Vincent62290 - 19 November 2008 - 10:50 PM.
#157
Posté 20 November 2008 - 10:26 AM
Non, je te rassure ce n’est pas le cas. Moi y’en a juste pauvre Admin$ a revenus..Ordinaire …
Une des particularité de la Orange, c’est justement d’avoir été ‘rebuildée’ et ‘bodybuildée’ avec un très petit budget comparé a beaucoup d’autres. En tous cas, ça représente beaucoup plus de travail que d’argent. De toutes façon, si j’avais vraiment des moyens financiers conséquents, il ni aurait pas de vidéo, elle irait bien trop vite pour pouvoir être filmée
#158
Posté 20 November 2008 - 11:20 AM
Merci Romu géniale tes vidéos et comme dis ton commentateur attitré je présume
tu en met des belles de brochettes
![]()
![]()
![]()
En tout cas j'imagine que tu dois avoir une bonne situation financière, car vu ce que ta beauté "subit", tu as surement du viré toutes les pièces "old" de ta Stang pour laisser place à de la haute perfo qui ne doit pas être donnée !
Ne confond pas "personne passionnée" avec "personne plein de pognon"
Romu est un passionné, et n'hésite pas à bosser la journée + faire des moteurs pour y arriver.
Ensuite, les 3/4 du temps, les pièces perfos coutent moins cher à l'achat que l'origine!
#159
Posté 20 November 2008 - 11:36 AM
Si on va plus loin dans les explications, je vous expliquerais comment je dessine les courbes dans le graphique et comment je fais pour 'tracer' l'aiguille sur une image qui represente un compteur ou un compte tour et vous vous rendrez compte par vous meme que si on fait abstraction de la syntaxe du langage de programmation on est toujours sur des operations a la porté de tout le monde.
Et bien, j'aimerai bien voir comment c'est construit.
Ford T5 Mach1 V8 351ci 4V 1973
Mon Garage
#160
Posté 20 November 2008 - 02:40 PM
Ne confond pas "personne passionnée" avec "personne plein de pognon"
tant qu'a choisir ... les 2 en meme temps ca doit pas etre mal non plus
No problème's Mico, je vais faire un topo la dessusEt bien, j'aimerai bien voir comment c'est construit.
0 utilisateur(s) en train de lire ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)













