Suite

Pourquoi le signal SelectionChanged est-il déclenché chaque fois que je clique sur le calque ?


je fais des expériences avec le SélectionChangé signal d'un QgsVectorLayer.

j'essaye ce bout de code :

curLayer.selectionChanged.connect(self.test)

et "test" impriment un message d'avertissement.

Le problème que j'ai est que le signal est déclenché à chaque fois que je clique sur le calque, même s'il n'y a pas de changement de sélection…

Y a-t-il quelque chose qui me manque dans ce comportement SelectionChanged ?

Merci de votre aide.


Bon alors après quelques recherches :

Vous devez utiliser les deux listes fournies par le signal SelectionChanged :

QgsFeatureIds sélectionné, QgsFeatureIds désélectionné (comme mentionné dans la doc API… )

pour vérifier ce qui change vraiment dans votre sélection, bien sûr la sélection de plusieurs fonctionnalités est à prendre en compte…


J'ai rencontré cela avec un STM32F105. Les fonctions de la bibliothèque périphérique standard STM32F1xx sont un peu différentes de celles que vous utilisez, mais l'idée devrait être la même.

L'émission de la fonction TIM_TimeBaseInit() a entraîné la définition de l'indicateur TIM_SR_UIF. Je ne suis pas encore retourné pour comprendre pourquoi. Une fois ce bit défini, l'interruption se déclenchera dès qu'elle sera activée.

Pour résoudre ce problème, après avoir appelé TIM_TimeBaseInit() , j'ai immédiatement appelé TIM_ClearITPendingBit() . Ensuite, j'activerais l'interruption avec TIM_ITConfig() . Cela a résolu le problème.

Ma routine d'initialisation complète ressemble à ceci :

En cas de débogage, n'oubliez pas que par défaut, les périphériques ne s'arrêteront pas à l'arrêt du cœur, de sorte que les minuteries continueront de déclencher l'interruption pendant que vous êtes arrêté. J'ai également eu un bon mal de tête il y a longtemps, jusqu'à ce que je découvre les bits pour geler les périphériques en mode débogage.

Vous pouvez l'activer au début de main comme ceci :

Vous avez toutes les définitions au début de stm32f4xx_hal.h

Comme j'avais un problème similaire et que je n'avais pas trouvé de réponses, je partage mon expérience dans l'espoir d'aider d'autres personnes.

Je pense que dans votre cas, régler l'URS (Update Request Source) avant d'initialiser le timer résout également le problème.

Dans mon cas, j'utilise les pilotes de couche basse, donc un exemple de code serait :

Le problème est que j'utilisais les fonctions LL_TIM_SetPrescaler(TIM16, 7999) et LL_TIM_SetAutoReload(TIM16, 2999) pour configurer la base de temps, et j'ai découvert que lors de l'utilisation de ces fonctions, les valeurs n'étaient pas mises à jour, je devais donc générer un événement pour mettre à jour les valeurs à l'aide de LL_TIM_GenerateEvent_UPDATE(TIM16) .

Vous pouvez ensuite soit effacer l'indicateur d'événement à l'aide de LL_TIM_ClearFlag_UPDATE(TIM16) avant d'activer l'interruption, soit utiliser LL_TIM_SetUpdateSource(TIM16, LL_TIM_UPDATESOURCE_COUNTER) avant de générer l'événement.


2 réponses 2

L'étalonnage de la hauteur de la première couche comporte deux étapes :

La première étape, comme illustré sur cette image, consiste à ajuster la sonde PINDA pour qu'elle soit à peu près à la bonne distance au-dessus de la buse. Le PINDA n'a qu'une plage de détection d'environ un millimètre, donc s'il est trop élevé, il ne peut pas détecter le lit d'impression s'il est trop bas, il interférera avec l'objet imprimé.

La deuxième étape, qui vous pose problème, consiste à calibrer la distance exacte entre le PINDA et la pointe de la buse. L'imprimante imprime un motif de test pendant l'impression, vous tournez la molette sur le panneau de commande de l'imprimante pour ajuster la valeur "live-Z". Les valeurs typiques pour une imprimante correctement assemblée sont comprises entre -0,5 et -1,0 (les valeurs plus négatives sont plus proches du lit d'impression). Si la valeur live-Z est en dehors de cette plage, vous devez ajuster la position de la sonde PINDA.

La procédure officielle Prusa est bonne pour obtenir un étalonnage approximatif. Si vous voulez plus de précision, la procédure "Life Adjust Z - my way" sur les forums Prusa est bonne. Fondamentalement, vous imprimez un grand carré à une couche, ajustez la valeur live-Z à mi-chemin et voyez quelle moitié a une meilleure première couche. Répétez jusqu'à ce que vous soyez satisfait.


2 réponses 2

J'aime votre approche PLL, car elle n'essaie pas de "récupérer le signal d'origine du bruit", mais va de l'avant et détecte ce qui vous intéresse réellement, la présence d'une fréquence spécifique, et l'utilise pour générer un " ton parfait". Beaucoup plus intelligent que de dépenser des centaines pour le meilleur filtre à cristal imaginable sur le marché ! (Je suis toujours déconcerté quand je vais à des salons professionnels et que les gens se vantent de combien ils ont dépensé pour les filtres de leurs récepteurs analogiques. Félicitations, ces gens ont trouvé un moyen coûteux de faire quelque chose qui n'est pas ce qu'ils veulent.)

Lorsque nous disons "filtre", nous entendons généralement le système linéaire invariant dans le temps qui convolue la réponse impulsionnelle du filtre avec le signal (soit en analogique soit en numérique). Et pour ceux-ci, le calcul n'est pas négociable : une bande passante étroite (pour un filtre passe-bas) signifie littéralement « rien ne peut changer rapidement ». Une "fin d'impulsion CW" est un changement rapide, la fin est donc traînée dans la longueur. (On peut faire le même calcul pour un filtre passe-bande, ça ne change pas). C'est la transformée de Fourier pour vous : elle ne peut pas être définie avec précision dans les deux domaines, le temps et la fréquence (tout comme vous ne pouvez pas connaître exactement la position dans l'espace et l'emplacement des impulsions, Heisenberg dit bonjour et veut récupérer ses calculs).

Si convolution est un nouveau terme pour vous, cherchez-le, il y a beaucoup de belles animations là-bas, c'est très intuitif. Vous êtes un physicien théoricien, donc je suppose que vous comprendrez quand je dis que la convolution n'est que le produit intérieur d'un espace $mathcal L^2$ de fonctions. Pour les systèmes linéaires invariants dans le temps comme les filtres classiques, vous obtenez un très bel ensemble de fonctions propres : $left<> ight>,,omegainmathbb R$ , et cela vous indique comment nous pouvons sélectionner des fréquences avec un filtre : pour tout système LTI donné, la réponse du système à un $omega$ donné est juste la valeur propre.

Ainsi, avec les filtres linéaires, la sonnerie et la bande passante étroite sont un seul et même phénomène.

Or, rien ne dit qu'un filtre que nous optimisons pour une bande passante étroite est la meilleure solution ici - au contraire : bien qu'il s'appelle "CW", ce n'est pas du tout une onde continue (un si mauvais usage des mots !) : c'est un séquence d'impulsions modulées.

Si vous connaissez la longueur des impulsions potentielles, vous pouvez construire un filtre apparié à la forme d'impulsion transmise. Encore une fois, en tirant la carte du physicien théorique : c'est le filtre qui maximise la convolution, c'est-à-dire celui qui maximise le produit interne. Et si l'inégalité de Cauchy-Schwarz nous a dit autre chose que pour les fonctions à valeurs complexes, cela signifie que votre filtre de réception doit avoir une réponse impulsionnelle qui est l'inverse du temps conjugué de la forme d'impulsion du signal de transmission.

Cela signifierait essentiellement que la réponse impulsionnelle du filtre que le récepteur convolue le signal reçu avec un miroir du signal de transmission attendu pour un "dit" (ou un "dah", quand vous pensez à cela comme une forme d'impulsion différente).

C'est plutôt trivial à faire si votre signal est déjà numérique - c'est-à-dire qu'au lieu de fonctions complexes continues sur $mathbb R$ , vous ne considérez qu'une séquence de valeurs complexes dans un ordinateur. Ensuite, l'intégrale de convolution s'effondre en une somme, et avec la longueur de ces impulsions, c'est même une somme finie.

L'implémenter comme ça signifie que vous obtenez un système où vous obtenez un pic clair à la sortie lorsqu'il y a un "dit" à l'antenne. Ce n'est plus aussi long qu'un "dit", remarquez, juste une valeur élevée quand il y a un "dit". Eh bien, vu cette valeur élevée, vous pouvez bien sûr synthétiser un "dit". Idem pour "dah".

Maintenant, petit problème ici : il y a des humains qui façonnent le pouls, et c'est une idée terrible (pour de nombreuses raisons, mais restons concentrés sur celle-ci) : cela fait que la forme du "dit" et du "dah" n'est pas exactement connue.

Vous pouvez résoudre ce problème en donnant à vos détecteurs « dit » (et « dah ») plus de « mouvement » pour signaler la détection d'une impulsion même lorsque le pic n'est pas si clair, ou vous pourriez avoir une banque complète de filtres pour différentes formes d'impulsion , et voyez lesquels se déclenchent. Toutes ces choses sont faites dans la pratique.


La turbulence est en effet un problème non résolu à la fois en physique et en mathématiques. Que ce soit le "plus grand" pourrait être discuté mais par manque de bonnes métriques probablement pendant longtemps.

Pourquoi c'est un problème non résolu d'un point de vue mathématique, lisez Terry Tao (médaille Fields) ici.

Pourquoi c'est un problème non résolu d'un point de vue physique, lisez Ruelle et Takens ici.

La difficulté réside dans le fait que si vous prenez un système fluide dissipatif et commencez à le perturber par exemple en injectant de l'énergie, ses états vont changer qualitativement. Au-delà d'une certaine valeur critique, le comportement deviendra de plus en plus irrégulier et imprévisible. Ce qu'on appelle la turbulence sont précisément ces états où l'écoulement est irrégulier. Cependant comme ce passage à la turbulence dépend des constituants et des paramètres du système et conduit à des états très différents, il n'existe jusqu'à présent aucune théorie physique générale de la turbulence. Ruelle et Takens tentent d'établir une théorie générale mais leur proposition n'est pas acceptée par tout le monde.

Alors pour répondre exactement à vos questions :

oui, résoudre numériquement Navier Stokes conduit à des solutions irrégulières qui ressemblent à de la turbulence

non, il n'est pas possible de résoudre numériquement Navier Stokes par DNS à une échelle suffisamment grande avec une résolution suffisamment élevée pour être sûr que les nombres calculés convergent vers une solution de N-S. Un exemple bien connu de cette incapacité est la prévision météorologique - l'échelle est trop grande, la résolution est trop faible et la précision de la solution calculée décroît extrêmement rapidement.

Cela n'empêche pas d'établir des formules empiriques valables pour certains fluides dans une certaine gamme de paramètres à de faibles échelles spatiales (par exemple des mètres) - généralement de l'air ou de l'eau à des nombres de Reynolds très élevés. Ces formules permettent f.ex de concevoir des systèmes de pompage d'eau mais sont loin d'expliquer quoi que ce soit sur Navier Stokes et les régimes chaotiques en général.

Alors que l'on sait que les solutions numériques de la turbulence deviendront toujours imprécises au-delà d'un certain temps, on ne sait pas si les états futurs d'un système turbulent obéissent à une distribution de probabilité calculable. C'est certainement un mystère.

La turbulence est ne pas l'un des grands problèmes non résolus de la physique. La physique nous dit exactement comment la turbulence émerge en tant que conséquence directe de la conservation locale de la masse et de la quantité de mouvement. Nous pouvons créer des modèles informatiques multiparticulaires tels que des automates à gaz en réseau qui génèrent des turbulences à grande échelle de temps et de longueur. Nous pouvons écrire les équations qui régissent la turbulence. Ce sont les équations de Navier-Stokes.

Du point de vue de la physique fondamentale, la turbulence est un problème résolu qui est entré dans le domaine de l'ingénierie il y a longtemps.

Et alors est le problème non résolu associé à la turbulence? En bref, la turbulence est un problème non résolu en physique mais en mathématiques. Le fait est que les mathématiciens ont du mal à répondre à la question de savoir si l'équation de Navier-Stokes permet toujours des solutions qui, à des échelles de longueur et de temps suffisamment fines, se comportent bien. En effet, si vous parvenez à répondre de manière concluante à cette question (« oui » ou « non »), vous gagnerez un prix en maths accompagné d'un beau chèque de 1 000 000 $.

Au cas où vous voudriez essayer, la question précise est :

Démontrer ou donner un contre-exemple de l'énoncé suivant : Dans trois dimensions d'espace et de temps, étant donné un champ de vitesse initial, il existe une vitesse vectorielle et un champ de pression scalaire, qui sont à la fois lisses et définis globalement, qui résolvent le Navier-Stokes équations.

Les difficultés mathématiques sont liées au fait que la turbulence apparaît lorsque le terme dérivé le plus élevé dans les équations de Navier-Stokes (le terme de viscosité) devient petit par rapport aux autres termes. Vous pouvez prendre presque toutes les équations aux dérivées partielles non linéaires et faire reculer les mathématiciens en multipliant simplement le terme dérivé le plus élevé par un facteur $epsilon$ et poser des questions sur le comportement limite de l'équation lorsque $epsilon$ approche de zéro.

Les physiciens fondamentaux haussent les épaules et continuent d'étudier de vrais mystères tels que la gravité quantique.

Re : Quel est le mystère de la turbulence ? En 1941, RA Bagnold, discutant des ondes harmoniques simples à longue crête qui apparaissent dans les courants de vent ou d'eau pendant la transition - et qui restent et augmentent en amplitude à des débits turbulents - philosophique ainsi : " au lieu de trouver le chaos et le désordre, l'observateur n'a jamais ne s'étonne pas d'une simplicité de forme, d'une exactitude de répétition et d'un ordre géométrique. DG Thomas (Science 1964) utilisant une couche de minuscules billes de verre le long d'un cylindre dans les écoulements d'eau a constaté que les billes formaient de simples ondes harmoniques à la transition, persistant à des débits turbulents, les reliant aux ondes de sable de Bagnold, sentant qu'il y avait une cause physique similaire .

Les deux ressemblent à l'accumulation de particules dans un champ sonore d'ondes stationnaires comme dans l'expérience du tube de Kundt de la physique au lycée. Les photographies de Bagnold montrent des particules de sable éjectées perpendiculairement à l'écoulement, se déposant à des angles peu profonds sur les crêtes, tout comme on pourrait s'y attendre si un simple champ sonore d'ondes stationnaires harmoniques s'était développé pendant la transition et persistait dans la turbulence.

Un modèle d'onde similaire est observé, souligné par des dilatations périodiques et un rétrécissement des parois souples des artères lors d'injections rapides de "colorants" radio-opaques aux rayons X lors d'injections rapides (ondes stationnaires artériographiques), comme si un champ sonore harmonique simple stationnaire était créé par les forces de cisaillement d'injection.

En 1867, Tyndall a découvert que des sons harmoniques simples spécifiques provoqueraient l'éruption de turbulences dans des jets laminaires, concluant que les ondes sonores se superposaient à des ondes sonores similaires ("vibrations") créées par des forces de cisaillement le long des parois du tube, les amplifiant, déclenchant des turbulences à des débits inférieurs. Tyndall croyait que cela résolvait le mystère de la transition vers la turbulence. Je suis d'accord avec Tyndall.

La transition vers la turbulence est similaire pour l'air et l'eau. Les ondes de cisaillement harmoniques simples à longue crête (SHLC) se développent lorsque l'eau, un liquide incompressible, s'écoule pendant la transition le long d'une plaque plate et lisse. Chaque lame limite contenant des oscillations LCSH doit avoir des oscillations identiques dans les deux lames adjacentes. De même, chaque couche d'eau adjacente, couche après couche, doit former des ondes SHLC similaires. Toute variation d'amplitude des lames d'eau adjacentes (augmentation ou diminution) provoquerait des bandes de compression (impossible avec les liquides) ou de décompression (impossible sans cavitation). Par conséquent, toutes les couches d'eau de la couche limite doivent afficher des ondes SHLC sinusoïdales en phase identiques - les ondes de cisaillement de transition de flutter de couche limite (BLF).

De plus, la couche d'eau la plus proche de la frontière qui affiche ces ondes ne peut pas converger vers la frontière sans compression, ni en diverger sans cavitation. Par conséquent, il doit y avoir des vagues d'eau SHLC sur la limite, sous les crêtes de vague BLF (vagues sub-BLF).

Une oscillation (vibration) de n'importe quelle masse dans un fluide crée une onde sonore et les oscillations SH dans une masse de fluide, circulant le long d'une plaque plate et lisse pendant la transition, doivent créer des ondes sonores SH. Ainsi, les oscillations SH (vibrations) de l'eau s'écoulant le long d'une plaque plate doivent être associées aux ondes sonores SH et doivent être réfléchies de la frontière transversalement dans l'écoulement. Cette analyse diffère considérablement de la compréhension acceptée des ondes de cisaillement fluides de transition, basée sur l'analyse de 1941 des oscillations de vitesse laminaire SHLC trouvées par Schubauer et Skramstad. Les oscillations de vitesse ne sont pas du tout des ondes de cisaillement, mais des effets secondaires - des représentations graphiques des vitesses lorsque les oscillations laminaires SH passent par des capteurs anémométriques à fil chaud (Hamilton G, Simple Harmonics, 2015).

En se nourrissant de la dynamique de l'écoulement, les oscillations du fluide SH (vibrations) - et les ondes sonores qu'elles produisent - créent une oscillation transversale trans-laminaire à haute énergie des molécules transmettant le son - déclenchant initialement des taches de congélation laminaire transversale de la couche limite. Les zones focales de gel brusque déplacent la résistance à l'écoulement vers la limite, arrachant des morceaux des fronts d'onde SHLC, sous forme de vortex aléatoires (« points turbulents »). Une augmentation supplémentaire du débit entraîne l'apparition soudaine d'une turbulence établie avec de nombreux points turbulents aléatoires et du bruit. Dans les écoulements cylindriques, le début du gel transversal des lames (emboîtement laminaire) modifie le profil d'isovitesse précédemment parabolique de l'écoulement laminaire en un profil d'isovitesse aplati de la turbulence, avec la résistance à l'écoulement - qui avait une relation linéaire avec la vitesse de l'écoulement laminaire – devenant maintenant lié au carré de la vitesse dans la turbulence.

Lorsqu'un bord s'avance dans la couche limite normale à l'écoulement pendant la transition, tous les points turbulents naissants sont déclenchés pour émerger à l'unisson le long d'un front d'onde SHLC, produisant le son SH des tons de bord. Dans l'écoulement de l'eau dans un cours d'eau peu profond, une déformation linéaire transversale dans le lit du cours d'eau aligne de la même manière tous les points turbulents émergents, les faisant émerger simultanément, créant des ondes stationnaires SHLC.


Le mouvement circulaire produit naturellement une onde sinusoïdale : -

C'est juste une chose très naturelle et fondamentale à faire et essayer de produire des formes d'onde différentes est soit plus compliqué, soit conduit à des effets secondaires indésirables.

Le mouvement de haut en bas (dans la nature) produit une onde sinusoïdale contre le temps : -

Les ondes cosinus et sinus (en fait leurs constituants sous la forme d'exponentielles complexes) sont les fonctions propres des systèmes linéaires invariants dans le temps, ayant une réponse système dépendante du temps de $eginfigl(a(t)+b(t),t_0igr)&= figl(a(t),t_0igr)+figl(b(t),t_0igr)&& ext figl(a(t+h),t_0igr)&=figl(a(t),t_0+higr)&& ext

Aucune autre forme d'onde ne sera généralement préservée car la réponse sera différente pour différentes fréquences d'entrée, donc si vous décomposez une entrée en ses composantes sinoïdales de fréquence unique, vérifiez les réponses individuelles du réseau à celles-ci et réassemblez les signaux sinoïdaux résultants, le résultat n'aura généralement pas les mêmes relations entre ses composantes sinoïdales qu'à l'origine.

L'analyse de Fourier est donc assez importante : les réseaux passifs répondent directement aux signaux sinoïdaux, donc la décomposition de tout en sinoïdes et inversement est un outil important pour analyser les circuits.


Nous devons utiliser différents critères pour sélectionner un type de commutateur :

  • Précision / répétabilité : l'interrupteur se déclenche-t-il à chaque fois au même endroit ? Quel est l'écart dans la position de déclenchement ? Les changements environnementaux ou les changements de réglage de la machine affectent-ils la position de la gâchette ?
  • Distance de contact : le commutateur s'enregistre-t-il avec suffisamment d'espace jusqu'à son arrêt dur pour que l'axe de référence puisse s'arrêter avant de heurter quelque chose ?
  • Rejet du bruit : l'interrupteur se déclenche-t-il UNIQUEMENT lorsqu'il est censé le faire ?

Il est important de se demander de quelle précision de commutation avons-nous réellement besoin ? Une transmission d'imprimante 3D typique utilisant un moteur pas à pas à micropas ne peut positionner avec précision la charge en mouvement qu'à +/- un 1/16ème de micropas (même si vous utilisez un micropas plus fin que cela) en raison d'effets induisant des erreurs comme le couple de friction et l'erreur d'angle de détente magnétique. C'est environ +/- 0,01 mm pour la plupart des imprimantes. Le commutateur de homing doit seulement être aussi précis que le positionnement du moteur ! Rien n'est gagné en ayant, disons, des butées de précision de 0,001 mm.

Cette précision de +/- 0,01 mm est réalisable pour tous les types d'interrupteurs de fin de course, avec une sélection et une configuration appropriées des interrupteurs.

Ensuite, il existe trois types de commutation "standard" utilisés dans les imprimantes 3D grand public/amateur :

  • Interrupteurs mécaniques, généralement des interrupteurs de fin de course NO/NC doubles, qui tirent vers le haut ou vers le bas une broche de signal en connectant un circuit électrique lorsqu'ils sont déclenchés
  • Commutateurs optiques, qui utilisent des transistors pour détecter lorsqu'un obstacle ("drapeau") bloque la fenêtre entre l'émetteur et le capteur
  • Commutateurs à effet Hall, qui utilisent des transistors pour détecter lorsqu'un champ magnétique dépasse une coupure d'intensité de champ particulière

Interrupteurs mécaniques

La précision/répétabilité dépend de la qualité du commutateur, de la longueur du bras de levier attaché (plus long augmente la distance de contact mais est pire pour la précision) et la vitesse d'impact du chariot avec le commutateur. Il est possible d'avoir un bon interrupteur mécanique ou un mauvais interrupteur mécanique. Il s'agit généralement d'un choix par défaut raisonnable car il est simple et bon marché.

Un petit interrupteur mécanique avec un bras de levier court (ou le bras de levier retiré) atteindra généralement la précision de commutation requise de +/- 0,01 mm. Des commutateurs très bon marché, des vitesses de contact élevées et des bras de levier longs peuvent fournir une résolution inadéquate pour le référencement Z ou le palpage, mais seront toujours adéquats pour les besoins de référencement X et Y de faible précision.

Là où les commutateurs mécaniques ont tendance à causer des problèmes, c'est dans la réjection du bruit. Différentes cartes contrôleur utilisent différentes manières de câbler le commutateur : certaines utilisent deux fils et n'envoient un signal que lorsqu'elles sont déclenchées. Lorsqu'il n'est pas déclenché, le fil de signal est laissé flottant ou faiblement tiré par le microcontrôleur, tout en étant attaché à un long fil qui agit comme une antenne pour capter le bruit EM. Il est TRÈS courant que le câblage de chauffage ou de moteur pas à pas émette des EMR désagréables en raison du contrôle de courant PWM. Les câbles de butée à deux fils doivent toujours être éloignés du câblage du moteur pas à pas et du chauffage. Le blindage et la torsion des conducteurs sont également une bonne idée.

Une approche plus robuste consiste à utiliser des commutateurs à trois fils qui tirent activement la ligne de signal vers le haut ou vers le bas en fonction de la position du commutateur. Ceux-ci auront tendance à mieux rejeter le bruit.

Des commutateurs mécaniques très bon marché peuvent tomber en panne pendant la durée de vie de l'imprimante. Cependant, la plupart des interrupteurs de fin de course sont conçus pour des millions de cycles, ce qui est peu probable pendant la durée de vie normale d'une imprimante.

Les commutateurs mécaniques sont faciles à aligner et à déclencher à la main pendant le dépannage.

Commutateurs optiques

Ceux-ci reposent sur un drapeau bloquant une fenêtre entre un émetteur de lumière et un détecteur. Ceci est sans contact et peut être assez fiable, mais présente certains défis. La position exacte du déclenchement (et donc la précision) peut dépendre des niveaux de lumière ambiante dans la pièce, car le capteur surveille la diminution de la lumière en dessous d'une intensité spécifique. Il peut donc être très répétable/précis à court terme, mais avoir une certaine dérive si le capteur entre et sort du soleil tout au long de la journée.

La commutation a tendance à être plus cohérente et fiable si le drapeau pénètre dans la fenêtre par le côté plutôt que par le haut.

Les commutateurs optiques tireront activement la ligne de signal vers le haut ou vers le bas, et auront ainsi une bonne réjection du bruit électrique.

Commutateurs à effet Hall

Ceux-ci mesurent l'intensité du champ magnétique à proximité et se déclenchent lorsqu'il dépasse une certaine quantité dans une certaine polarité. Ceci est très précis/répétable (mieux que +/- 0,01 mm) et extrêmement résistant au bruit et aux conditions environnementales. (À moins que votre imprimante ne se trouve à côté de quelque chose qui émet de grands champs magnétiques, de toute façon.)

Les commutateurs à effet hall que j'ai vus ont un potentiomètre réglable pour régler la distance de déclenchement. C'est une fonctionnalité intéressante lorsque vous essayez de calibrer manuellement un Delta ou un Z-bed pour la hauteur de la première couche.

Le principal inconvénient des commutateurs à effet Hall est qu'ils ont besoin d'un aimant pour déclencher le commutateur. Cela peut être difficile à déclencher à la main pendant le dépannage et nécessite de fixer un aimant quelque part sur le chariot mobile. La colle fonctionne bien. mais ne collez pas l'aimant à l'envers !

Thomas Sanladerer a effectué exactement la comparaison que vous demandez. Vérifiez toute la vidéo.

Le résultat est que les capteurs inductifs sont les plus précis, mais ils dépendent fortement du matériau du lit choisi.

Les interrupteurs mécaniques (nus, pas de bras métallique) sont à peu près aussi précis et conservent la même précision avec chaque matériau de lit (cependant, vous avez besoin d'un mécanisme pour les rétracter, ce qui peut ou non diminuer la précision).

D'autres capteurs sont moins précis.

Dans tous les cas, la plupart d'entre eux sont déjà bien meilleurs que ce qui est requis, car tout ce qui est inférieur à 50 microns est bien et pratiquement tous atteignent cette précision.

Choisissez en fonction d'autres facteurs tels que le poids, l'installation, le prix. Inductifs, après un étalonnage basé sur votre lit spécifique, peuvent être les plus faciles car ils ne nécessitent aucune rétraction, mais ils sont encombrants. BLtouch est probablement le deuxième choix, les micro-interrupteurs mécaniques le troisième.

Je pense qu'il n'y a pas de réponse simple.

À mon avis, pour un capteur domestique, la précision n'a pas d'importance. Le firmware permet généralement de définir un décalage entre la position indiquée et la position réelle. Ce qui compte vraiment, c'est la répétabilité. Chaque fois que le capteur indique une position, la position est la même.

Interrupteurs mécaniques

J'ai découvert en testant plusieurs commutateurs mécaniques que l'événement "make" est moins reproductible que l'événement "break". Pour de meilleurs résultats, je me déplace vers la position qui ferme l'interrupteur, puis je me déplace dans la direction opposée jusqu'à ce que l'interrupteur s'ouvre. Si je me souviens bien, j'ai obtenu une répétabilité "de fabrication" d'environ 0,02" (0,5 mm) et une répétabilité de "rupture" d'environ 0,005" (0,13 mm).

Commutateurs optiques

Pour une imprimante 3D delta, j'utilise des capteurs optiques. Les capteurs optiques ont un éclairage et un capteur intégrés, généralement sur les côtés opposés d'une structure fourchue. Le côté capteur a une fente qui masque la lumière reçue, aidant à la protéger de la lumière ambiante. La fente est le long d'un axe qui est soit aligné avec la fourche, soit normal à celle-ci. Le drapeau que vous utilisez pour l'interrupteur doit couvrir complètement la fente, et pour une bonne répétabilité, le bord du drapeau doit être parallèle à la fente. En d'autres termes, certains capteurs s'attendent à ce que le drapeau entre par le côté tandis que d'autres s'attendent à ce que le drapeau entre par le haut. L'un ou l'autre fonctionnera, mais vous devez choisir le bon capteur pour la configuration de votre machine.

Lumière ambiante avec commutateurs optiques

Peut-être que la lumière ambiante pourrait être un problème. Si c'est le cas, il peut être résolu en ombrant le capteur.

Supposons que les LED du capteur ont la même efficacité que les lumières LED ambiantes. Pour référence, voici une fiche technique pour un interrupteur optique typique utilisé dans les capteurs optiques : http://www.isocom.com/images/stories/isocom/isocom_new_pdfs/H21A.pdf L'ensemble du capteur optique est conçu pour réduire la sensibilité à la lumière ambiante.

L'intensité lumineuse diminue en fonction de la distance^2 et les illuminateurs du capteur sont très proches. Quel effet la lumière de la pièce a-t-elle sur le capteur ?

Dans ma boutique, j'utilise des ampoules de remplacement LED de 8 pieds pour les ampoules fluorescentes. Avec cela, j'ai 72 watts d'éclairage LED, qui, disons, éclairent uniformément la demi-sphère sous le plafond. Une sphère pleine vaut 12,56 sr (stéradians, ou stéréo-radians), donc la demi-sphère vaut 6,28 stéradians, pour une puissance de 11,46 W/sr. Au niveau du capteur, cela doit être divisé par le carré de la distance, disons 8 pieds. Cela nous donne (11,46 W/sr)/(96in^2) = 0,119 W/surface.

La LED d'éclairage a une puissance (généralement) de 1,2 V * 0,05 A, soit 0,06 W. Le cône lumineux d'une LED typique est d'environ 30 degrés, ce qui correspond à 1 sr, pour une puissance de 0,06 W/sr. Échelle pour une estimation de la distance entre l'émetteur et le capteur de 4 mm ou 0,157", est (0,06 W/sr)/(0,157in^2) = 2,43 W/surface.

Il semble peu probable que la lumière ambiante générale soit un problème. Si c'était le cas, le montage du capteur pourrait être conçu pour protéger le capteur de l'exposition directe à la lumière ambiante.

Il est important avec les capteurs optiques de s'assurer que le drapeau d'interruption est réellement opaque à la lumière de l'illuminateur. Comme je l'ai trouvé, le PLA rouge n'est pas particulièrement opaque à la lumière infrarouge, j'ai donc dû peindre les drapeaux avec une peinture pigmentée noire.

Commutateurs à effet Hall

Je n'ai aucune expérience avec les interrupteurs de fin de course magnétiques à effet Hall. D'autres réponses ici les ont félicités car ils ont un réglage qui peut être utilisé pour définir le point de détection précis. Je n'aime pas les ajustements parce qu'ils dérivent. Les pots sont sujets à l'usure, à l'oxydation et à des variations lentes et rapides de leur résistance. Je préférerais avoir quelque chose de non réglable et reproductible dans le matériel et utiliser un logiciel pour maintenir l'étalonnage.

Exemple de choix hybride

Sur une machine CNC à architecture delta à 6 axes que je construis, j'utilise une approche hybride pour détecter la position d'origine. Les commutateurs mécaniques indiquent une position proche de la position initiale et l'impulsion d'indexation d'un encodeur rotatif définit la position initiale précise. Le micrologiciel de référencement se déplace vers la maison jusqu'à ce que le commutateur mécanique se ferme, puis s'éloigne jusqu'à ce qu'il s'ouvre, puis revient vers la maison jusqu'à ce qu'il détecte l'impulsion d'indexation. Comme il y a six axes, il y a six ensembles de ces commutateurs et encodeurs. L'utilisation d'un interrupteur mécanique pour le ralliement approximatif était logique pour cette machine car le capteur d'index est touché une fois par tour, ce n'est donc pas un indicateur unique de la maison, et cette machine crée beaucoup de poussière et de copeaux, ce qui pourrait bloquer un capteur optique .

Donc, sans réponse absolue, ma préférence va aux commutateurs optiques pour la répétabilité.


La foudre est une chose désagréable. Puissant. Courant très élevé pour un temps de montée très court. Cela provoque une forte EMP (impulsion électromagnétique) qui sera captée par tout ce qui est conducteur. Un fil libre de 1 m peut créer un pic de tension entre ses extrémités. Même les connexions courtes peuvent voir des pics. Le découplage ne fonctionne pas toujours car l'EMP peut entrer directement dans un circuit intégré, il n'a pas besoin de passer par les fils (d'alimentation).
Il n'est donc pas étonnant que certains produits subissent un dysfonctionnement temporaire lors d'un éclair, et une impédance élevée signifie plus sensible. Si la perturbation reste dans la plage de tension de l'appareil, celui-ci peut se comporter de manière incorrecte sans subir de dommages. Des pointes de tension plus élevées peuvent détruire (des parties de) l'appareil.

J'ai entendu l'histoire d'une famille hollandaise où la foudre avait frappé dans la cour. Tous les produits électroniques de la maison étaient frits, de la télévision au PC en passant par les appareils photo et les téléphones portables. Se non è vero.

Et David avec son réseau/antenne de détecteur de fumée, eh bien. :-)

Juste pour ajouter ce que les autres ont dit. Les alarmes incendie de ma maison sont toutes interconnectées. Quand l'un s'éteint, ils s'éteignent tous. Il y a des fils à l'intérieur des murs/plafonds qui les relient tous. Ces mêmes fils, parce qu'ils sont longs et non blindés, sont d'excellentes antennes et capteraient facilement les EMI d'un coup de foudre. De plus, le signal sur ces fils est très simple et le bruit électrique généré pourrait facilement faire croire à l'alarme qu'une autre alarme s'est déclenchée et qu'elle devrait donc l'être aussi.

Ce que les autres gars ont dit pourrait aussi être vrai (sauf la partie sur le CO2 qui déclenche un détecteur ionisant, c'est en fait une particule de fumée qui le fait), mais si les alarmes sont interconnectées, ce serait le maillon le plus faible. Il est beaucoup plus facile pour EMI d'entrer dans un fil de 50 pieds que quelque chose d'environ un pouce de long.

Je pense que l'ionisation et les problèmes d'EMP ne sont pas pertinents. Je trouve l'ionisation en particulier très difficile à croire. Comment la foudre à des centaines de mètres va-t-elle ioniser l'air dans mes détecteurs de fumée à peu près au même moment que la foudre ? Ce n'est pas. Je ne crois pas non plus à la théorie EMP. Les micros sont sensibles et à haute impédance, mais également protégés des micros capacitifs externes. If not, ordinary power line hum and nearby static discharges would set them off, but they don't.

What is really going on is that the power got glitched. A lightning strike makes a mess of the power line for a few 10s of milliseconds. Most smoke detectors, including all the ones in my house, sound off for a short time whenever the power goes out. They are fairly sensitive to this, more so than most ordinary appliances. You may notice a small flicker in the lights or a glitch on the TV at the same time (although lightning causes TV and radio glitches by other means too). When we have a pure power glitch not caused by lightning, it is always the smoke detectors that exhibit the symptom first. Most appliances can take a cycle or two of missing power, but the smoke detectors seem to be the most sensitive. I don't know if this is deliberate or just a byproduct of their sensitive detection circuitry.


2 réponses 2

Due to your requirement for this to be reflected in the kernel's neighbors, and your reluctance to install software, try ICMP echo:

Does not really matter what protocol you attempt, so long as it is IP based.

If you are willing to install software, nmap has discovery features. Here is a NDP only scan, output to a XML file (and stdout) which includes the link layer address:

Apparently, this type of nmap scan tickles the kernel to do neighbor discovery, as in testing I see it reappear under ip neigh .


3 Answers 3

Along the lines of my response to your earlier question, surely this would be better dealt with in the stored procedure or insert/update query that is responsible for the change. That would be the logical place to increment a version column, not a trigger.

If a trigger is the only way you can be sure the revision count will be implemented, I'd suggest an INSTEAD OF trigger on any tables you need this. You can deal with the revision increment and auditing in one place then.

I find triggers are a good way to enforce things like creating before audit records and version tracking. Audit queries can get a bit bulky, so doing them in a stored procedure may be appropriate. I would still call it from a trigger.

Contrary to what others have said, what you are implementing appear to be business rules, and triggers are a good mechanism for enforcing them. Using a trigger makes it very easy to enforce the rule.

Field by field audits may be better done in a stored procedure, but I would call the procedure from a trigger. Depending on how often the data is consulted, just capturing a before image may be sufficient. In applications using pooled connections, determining who the user is can be difficult.

Which ever way you go this is a good candidate to be automated. The appropriate code can be generated from the tables metadata.

For audits I use an after trigger prefixed AUD (After Update or Delete) to capture the OLD data. I use a standard transformation of the table name for the audit table, although it is possible to use an audit schema to hold the data with a matching table name. Capturing the record image is simpler in the after trigger and helps maintain cohesion within the trigger.

For versioning data I use BIU (Before Insert or UPDATE triggers. You may want to use an if statement to select the appropriate action, or split the trigger into two pieces. Alternatively, you could split the trigger in two, BI and BU. The updates need to happen in a before trigger.

Using standard naming allows you to find missing triggers and audit tables are in place by scanning the metadata. You could use a stored procedure to generate the required components. Bonus marks if it updates the components when the tables definition changes.


Voir la vidéo: Programmable multifunctional DC 12V 4-digit timer relay YYC-2S Delinx (Octobre 2021).