Étape 1: Code
Aperçu général
Le code que j’ai fournis est construit hors de projets antérieurs. Vous avez peut-être remarqué il y a deux structures de boucle. Le premier est ce que j’ai appelé la « données Aquistion boucle » qui lit essentiellement des données de la chipKIT aussi rapidement que possible. La deuxième boucle j’appellerai la « boucle de calculs ». Cette boucle gère tous les calculs que nous voulons faire avec les données. La raison pour laquelle que j’ai séparer les opérations d’acquisition de données dans les calculs des données est pour booster les performances. LabVIEW est assez intelligent pour compiler le code dans chaque boucle, donc il tourne sur un noyau distinct de votre processeur.
Pour transférer des données entre les deux boucles, j’utilise une variable locale. Chaque fois que l’itération de la boucle de calcul, il lit les données de la variable « XYZ calibré valeurs » .
Pour ce projet, j’ai inclus deux emplacements de données. On affiche les données brutes, alors que l’autre affiche les données filtrées. Les parcelles sont un bon outil pour déterminer quelle est l’efficacité notre filtrage est. Malheureusement, les parcelles données bug out s’effectue une itération de la boucle de calculs de jeûner. Si un délai doit être inclus pour plafonner le taux de la boucle.
Vue d’ensemble de filtrage sous-VI
Tout le filtrage dans ce projet se fait dans un sous-VI personnalisé. Ce sous-VI permet de conserver le code ordonné et compréhensible. Il y a deux types de méthodes de filtrage utilisées à l’intérieur de la sous-VI. La première est simple calcul de la moyenne, et le second est Low Pass Butterworth filtrage. Chaque méthode de filtrage a une sélection marche/arrêt interrupteur. Lorsque l’interrupteur est allumé, elle recrache les données filtrées. Lorsque l’interrupteur est éteint, elle recrache les données brutes non filtrées.
Filtrage à l’aide de moyennes
Si vous vous souvenez du projet précédent, l’entrée de données brutes mettrait à jour si rapidement, que c’est difficile à lire. Pour contrer cela, nous voulons à moyenne (prenez la moyenne) de quelques points de données et afficher cette valeur. Si nous en moyenne les droite numéros points de données, les données seront affichera de façon lisible. Pour ce faire, j’ai utilisé le « signifie PtByPt.vi ». Voici quelques infos sur elle si vous êtes curieux de savoir comment il fonctionne.
Filtrage à l’aide d’un filtre passe-bas
Un autre problème, vous pouvez avoir rencontré lors de la précédente instructable est la nervosité erratique des données. Cela pourrait être dû à des vibrations externes ou les hésitations de la main. Pour se débarrasser de cela, vous pouvez utiliser un filtre passe-bas. D’essentiellement le passe-bas filtre lisser brusques sauts entre les points de données. Le filtre passe-bas particulière que j’ai utilisé dans ce projet est le « filtre de Butterworth PtByPt.vi ». Si vous êtes curieux de savoir comment ce .vi fonctionne, consultez sa documentation. Notez que cette VI peut être configuré pour agir comme 4 différents types de filtres (filtre passe-bas, passe-haut, passe-bande ou Bandstop). Nous sommes préoccupés uniquement avec un filtrage passe-bas, d'où le » cuttof high freq : fh " terminal est laissé non connecté.