Capteurs et actionneurs, communiquer avec les connecteurs d'entrée-sortie appelée “BROCHE”
Capteurs et actionneurs communiquent avec la broche standard dans 3 uniquement de fils. Le premier pilote (GND) est la masse, le deuxième pilote (+5V) est le bloc d'alimentation, le troisième chef d'orchestre (SIG) est le signal. Les broches sont tous les mêmes et ils ont tous sortent peut être configuré aussi bien quant à ce que.
Modules de maître ont six broches de InOut le SlaveServo ont dix et modules CapSensor aucun.
Au fil de la broche de six, il y a l'inscription “DANS LES PINS”. Ne pas se confondre par cet écrit. Les six broches sont tous les mêmes et sont tous configurables, et comme dans, ils viennent de sortir.
Quand effectuer les connexions peut être difficile à lire les écrits, Il est donc bon de savoir que: dans tous les composants du système Theremino, se connecter GND est toujours proche du bord de la plaque.
Les broches sont configurés comme OUT produisent une tension de 0 dans 3,3 volts, ceux configurés comme acceptent des tensions de 0 dans 3.3 Volts. Si vous appliquez à l'entrée de tension PIN en dehors de cette plage que la limite actuelle devrait être 100 au maximum (avec une résistance d'au moins 33k près de PIN) sinon la communication USB est perturbée et peut même être arrêtée.
Dans le cas de liens longue, Lire aussi Cette page.
Voici un exemple de lien
Raccorder les interrupteurs et boutons avec ou sans PullUp
Ici, vous voyez deux façons d'interconnecter des commutateurs, Microrupteur, Reed et boutons. La première façon est simple, mais ce dernier est plus tolérant aux interférences.
En haut, vous voyez une connexion directe (Définissez l'entrée Pin avec PullUp)
En bas, vous voyez un raccourci par l'intermédiaire de résistances de protection (définir les broches d'entrée sans PullUp). La présence d'une résistance de valeur très élevée, en série avec le fil “Signal”, limite le courant, même si les très hautes tensions (aussi des centaines de Volts). Cela garantit que la communication USB ne serez pas dérangée, même dans le bruit fort, induite par le fils d'une longueur, des alimentations externes, Relais de moteurs ou puissance.
Si, au lieu de brancher les boutons, vous mesurer la tension (ainsi en est-il de la broche d'entrée configurée comme ADC) une résistance de 330K causerait trop forte chute de tension, et vous devriez réduire à 33K. Aussi, dans ce cas le 10 k résistance aurait et devrait être éliminée.
Branchez les boutons en cas de forte bruit électrique
La solution indiquée dans la section précédente protège la communication principale avec le PC, mais il ne l'empêche pas de bruit d'impulsion courte étant interprété par erreur, comme la fermeture manuelle du bouton.
Ainsi, dans des environnements difficiles, par exemple dans le cas que les fils passent des boutons à côté des fils d'alimentation d'un solénoïde ou un moteur, il est également conseillé d'ajouter un condensateur. Ce condensateur élimine les impulsions plus courtes qu'un dixième de seconde et augmente encore la protection en cas de tensions très élevées extra.
Les deux images ci-dessous montrent le schéma de câblage et le câblage de ces connexions (cliquez sur les images pour agrandir).
L'image suivante montre comment établir des connexions directement sur les fils (Cliquez sur l'image pour l'agrandir).
L'utilisation d'un câble avec un connecteur femelle, composants peuvent également être soudés directement sur les fils.
Ensuite, vous pouvez remplir les composants avec un morceau de gaine thermorétractable.
Sinon, vous pouvez utiliser une petite base carte de matrice carrée.
Rappeler que lorsque vous utilisez ces liens (avec une résistance de protection), vous devez définir les broches d'entrée sans PullUp.
Rappelez-vous aussi que, si au lieu de boutons de connexion ont des mesures de tension (ainsi en est-il de la broche d'entrée configurée comme ADC), une résistance de 330K causerait trop forte chute de tension, et vous devriez réduire à 33K. Aussi, dans ce cas le 10 k résistance aurait et devrait être éliminée. De plus, l'ajout du condensateur limite la bande passante de l'ADC à environ 10 Hz.
Le capitaine et les connexions des esclaves broches
Prenons comme exemple d'avoir à raccorder un câble blindé, pour transporter les signaux de trois broches et 5 Volts à une grande distance.
Vous pourriez couper le câble blindé avec connecteurs simples comme on le voit ici (Cliquez sur les images pour les agrandir). Fils bleus, Jaune et vert clair sont les trois signaux, le fil rouge est les 5 volts et le fil vert foncé est la masse.
Mais c'est une solution difficile à construire et peu fiable. Ces photos sont pour un accéléromètre, qui a été déplacé fréquemment d'une rive à l'autre du laboratoire. Après quelques mois, deux des cinq fils cassé, au-dessus des connecteurs RCA menant à la maîtrise.
Beaucoup mieux sacrifier trois extensions standard:
Rallonges de moitié fournissent les connecteurs femelles de bonne qualité, avec les câbles sont bien connectés et très robuste. Pour une fraction du prix que des connecteurs, vous pouvez acheter des sacs de dix extensions standard de Hobby King.
Rallonges vous connecter facilement avec le fils du câble blindé. Connexions de gaine Thermo-rétrécissement couverture et vous obtenez un câblage robuste et professionnel.
Voici un lien bien fait.
Les trois fils rouges portent cinq volts et brancher, tous ensemble, le câble rouge fil blindé. Fils marron sont la masse et se connecter, tous les trois, le stockage de câble blindé. Les trois fils jaunes sont des signaux InOut des broches 1, 2 et 3 et ils sont liés à trois des fils à l'intérieur du câble blindé.
Sur le côté opposé du câble blindé est la même, les femelles de la seconde moitié des câbles.
Dans le cas de liens longue, Lire aussi Cette page.
Les esclaves et maîtriser le module modules communiquent via serial
La ligne de série fournie par le maître de Theremino n'est pas une normale RS232 ou RS485. Mais une ligne spéciale qui transmet et reçoit sur un seul brin de signal, Protocole DPM mis au point par nos soins. Ses avantages sont la communication haute vitesse et la reconnaissance de soi des modules. Plus d'infos ici: technique/protocole
Beaucoup de modules esclave peut être connecté à la ligne sérielle du maître.
En ce qui concerne les capteurs, pour les connexions de ligne série, en utilisant les commandes d'extension servo normal, disponible à un prix avantageux à www.hobbyking.com
Brun = masse
Rouge = + 5V
Jaune = Signal
Pour les connexions d'alimentation très longs ou spéciaux des besoins, vous pouvez faire deux fils communication série (La masse et le Signal), peut-être sur un câble blindé. Plus d'informations dans la section Liaisons longues et immunité au bruit
Maître et l'ordinateur de communiquer via le port USB
Même les maîtres multiples peuvent être connectés simultanément sur le même PC via USB lignes séparées et chacun d'eux sera reconnu par l'application même HAL.
Utiliser plusieurs lignes d'USB et de plusieurs Master permet dans certains cas d'augmenter la vitesse de communication. Dans d'autres cas, il peut servir à se spécialiser certains Master lentille et autres communications de communiquer avec les chaînes qui nécessitent des taux de rafraîchissement maximum.
Câbles USB ne devraient pas être spéciales, particulièrement de tribunaux ou de bonne qualité. Nous avons essayé de longs câbles (10 mètres) et des liens avec plusieurs fils en série (cordons prolongateurs) et ils ont tous fonctionné parfaitement. Le système Theremino utilise le protocole USB 2.0, mais il a été possible d'établir des connexions sans erreurs, par le biais de HUB standard, aussi USB 1.0.
Le programme conserve les modules de matériel de communication de HAL avec les fentes
LE HAL ( Couche d'Abstraction matérielle ) simplifie la communication USB et la complexité matérielle en transformant tous les signaux en chiffres “Flotteur” qui sont écrites dans la sortie d'entrée de 0 dans 999 nominé “Machine à sous”, ou lu par eux et envoyés au matériel.
.
Les machines à sous
Le “Machine à sous” Système Theremino sont identifiées par un nombre compris entre 0 dans 999 et font tous partie de la MemoryMappedFile avec nom “Theremino1”.
Chaque slot contient un certain nombre “Flotteur” qui peuvent être lues ou écrites par n'importe quel composant du système Theremino.
Sur cette photo, seulement la couche HAL écrit dans les fentes, mais en réalité que tous les composants du système peuvent être lues qu'écrire dans l'une des fentes, Bien que déjà utilisé par d'autres.
Le 1000 places disponibles sont utilisables librement, il n'y a qu'une seule règle:
Beaucoup d'applications et de NIP peut lire le même logement, mais il devrait éviter d'écrire dans un grand nombre le même logement, faisant ne rompt pas n'importe quoi mais les résultats ne sont pas définis.
Si vous envoyez plusieurs flux de données à l'emplacement même puis les données sont mélangées et gagne le dernier d'entre eux à écrire, Si vous souhaitez fusionner les données dans un règlement de façon ordonnée sont nécessaires.
D'établir des règles mathématiques et logiques entre les fentes, et aussi d'écrire des algorithmes complexes de comportement, Nous utilisons des « Theremino_Script » ou n'importe quel langage de programmation comme le C++, CSharp, VBNET, VB6, Python ou Pascal, mais vous pouvez également utiliser des langues visuelles comme MaxMSP, Traitement, PureData, LabVIEW et EyesWeb.
Pour MaxMSP sont les plugins disponibles et exemples ici: téléchargements/fondations
Les SLOTs pour les chaînes de texte
Les SlotText sont similaires aux Slots normaux, avoir des adresses similaires (De 0 dans 999) et ils sont utilisés de la même manière mais contrairement aux machines à sous, qui contiennent des nombres (entiers ou virgule flottante), SlotText contient des chaînes de caractères.
Les caractères utilisés en interne sont de type unicode pour permettre l'écriture dans différentes langues (par exemple chinois) et utilisez deux octets pour chaque caractère.
Chaque SlotText peut contenir des chaînes de texte jusqu'à 100 mille caractères. Si vous dépassez le 100 mille caractères au lieu du texte, un court message d'erreur est écrit.
SlotText n'utilise pas le MemoryMappedFile “Theremino1”, mais ils utilisent un MemoryMappedFiles différent pour chaque SlotText. Les noms de ces fichiers vont de “ThereminoSS0” dans “ThereminoSS999” (colombe ThereminoSS sta par Theremino String Slots).
Et enfin, SlotText ne peut être utilisé que pour communiquer entre les applications et non pour communiquer avec les HAL et les modules Master ou Arduino..
Actuellement (juin 2022) les seules applications qui utilisent SlotText sont:
– QRdecoder, qui les utilise pour le texte décodé par le QR-Code et le BAR-code.
– Automation (depuis la version 7 en PVE), qui fournit des commandes SlotText pour écrire et lire SlotText.
– SlotViewer, dans les versions plus récentes peut utiliser à la fois des emplacements numériques et textuels.
– Cobot, il peut recevoir des commandes de l’extérieur et également envoyer des commandes asynchrones à l’automatisation au moyen de l’événement “Commandes de Cobot”.
Pour utiliser les communications entre Automation et l'application COBOT, lisez les pages suivantes dans le fichier d'instructions Automation:
- SlotText
- Event_CommandsFromCobot
- Les commandes de COBOT à Automation
- Les commandes de l'automatisation au COBOT
Dans le dossier “Sources” in automation (toujours de la version 7 à partir de laquelle nous publierons d'ici la fin de 2021) vous trouverez le nouveau fichier “Class_ThereminoStrings.vb” que les programmeurs peuvent également utiliser pour ajouter SlotText à leurs applications.
La mémoire mappée fichiers
Les fentes sont basés sur le “Memory Mapped Files” qui sont peu connues mais très utile.
Communiquer avec les “Memory Mapped Files” est extrêmement efficace, en quelques dizaines de microsecondes peut être transféré des centaines de numéros “Flotteur” entre programmes distincts, avec différents threads et écrits dans différentes langues.
Le “Memory Mapped Files” appelé “Theremino1” C'est long 4096 octets et contient la 1000 machine à sous utilisée par le système Theremino. Tous les programmes du système Theremino peut écrire et lire leurs données, sous forme de nombres float, dans 1000 emplacement de ce fichier.
Chaque logement est quatre octets que lors de l'utilisation de bas niveau stockage fonctionne vous devez multiplier la “Machine à sous” pour quatre obtenir l'index de l'octet dans le MemoryMappedFile.
Programmes de test et exemple, avec les sources, dans les principaux langages de programmation. À l'aide de ces exemples, il est très facile d'équiper n'importe quel programme la possibilité de communiquer avec le système Theremino.
Également disponibles sont les “External” pour Scott et Max5 trouvées dans le fichier “MaxInstall.zip”. De cette façon, il est possible de communiquer “Patch” par Max avec le système “Theremino” par le biais de la MemoryMappedFiles.
Connexions avec des câbles standard
Pour toutes les connexions entre les broches, capteurs et actionneurs ainsi que communication série est des commandes d'extension servo normal très confortable disponibles à un prix avantageux à “www.hobbyking.com” dans la section “Matériel et accessoires” / “Câbles et fiches” / “Câble de servo & Bouchons de servo”
Câble standard avec connecteur mâle-femelle
Brun = Gnd rouge = + 5V jaune = Signal
- Pour des courants jusqu'à 0.5 Utilisation de SAP 26 AWG (0.13 MMQ)
- Pour des courants jusqu'à 1 ou 2 Utilisation de SAP 22 AWG (0.33 MMQ)
Plus d'informations sur les câbles de raccordement pour des courants élevés et très longues lignes, et les prix cibles et les liens dans la section: câbles de connexion
Nombres float
(valeurs minimales et maximales valides pour les emplacements numériques)
Les numéros de “Flotteur” flottent des nombres à virgule de 32 bit (simple précision). Theremino, le système utilise toujours le “Flotteur” au lieu de numéros “Nombres entiers” ou “Double” pour les raisons suivantes:
1) Être long 32 bits sont lues et écrites dans une seule instruction du processeur et ne nécessite pas des mécanismes de synchronisation afin d'éviter les erreurs.
2) Bien que les nombres avec la virgule peut contenir aucune erreur ou arrondi vers le haut de n'importe quel nombre entier au 000 000 000-16 '+ 16 'à' ' 000-odd, et puis facilement contenir les valeurs de 0 dans 65535 (16 bit) et même jusqu'à 24 peu de la meilleure existante de capteurs et d'actionneurs.
3) Peut être utilisé pour envoyer 16 millions de différentes communications “de service” à l'aide de valeurs NaN (pas un nombre) et Nan ( Nan de signalisation ).
4) Ils peuvent également contenir des valeurs spéciales “+Infini” et “-Infini”, utile quand les calculs produisent des valeurs très élevées.
5) L'exactitude de la “Flotteur” est de milliers à des millions de fois plus longues que la précision requise, parce qu'elles sont utilisées uniquement pour communiquer et ne pas d'effectuer des calculs.
6) Tous les transfert courant 32 bits dans une instruction unique, Pourquoi l'efficacité est plus élevée et deux programmes distincts peuvent communiquer en quelques microsecondes.
Pour plus de détails sur le nombre “Flotteur” lire les pages suivantes.
– – – – – –
Flotteur – Simple précision, 32 bit, nombres à virgule flottante
Max positif: 3.4028235 E + 38
Min positive: 1.401298 E-45
Max négatif: -3.4028235 E + 38
Min négatif: -1.401298 E-45
Entier de Max stocké sans erreurs d'arrondi : +16' 777 ' 216
Min entier stocké sans erreurs d'arrondi : -16' 777 ' 216
Entier de Max visualisé (7 chiffres arrondis): +9' 999 ' 999
Entier de min visualisé (7 chiffres arrondis): -9' 999 ' 999
+Zéro: 0 00000000 00000000000000000000000 (0000 0000)
-Zéro: 1 00000000 00000000000000000000000 (8000 0000)
+Infini: 0 11111111 00000000000000000000000 (7F80 0000)
-Infini: 1 11111111 00000000000000000000000 (FF80 0000)
Positif : NANS
De: 0 11111111 00000000000000000000001 (7F80 0001)
À: 0 11111111 01111111111111111111111 (7FBF FFFF) (4« valeurs de 194 ' 303)
Négatif : NANS
De: 1 11111111 00000000000000000000001 (FF80 0001)
À: 1 11111111 01111111111111111111111 (FFBF FFFF) (4« valeurs de 194 ' 303)
NAN positif
De: 0 11111111 10000000000000000000000 (7FC0 0000)
À: 0 11111111 11111111111111111111111 (7FARRAR ) (4"les valeurs de 194 ' 304)
NAN négatif
De: 1 11111111 10000000000000000000000 (FFC0 0000)
À: 1 11111111 11111111111111111111111 ( FFFF FFFF ) (4"les valeurs de 194 ' 304)
– – – – – –
Valeurs spéciales
IEEE réserve de valeurs de champ exposant de 0 toutes et tous les 1 pour désigner des valeurs spéciales dans le schéma en virgule flottante.
Zéro – Comme indiqué plus haut, zéro n'est pas directement représentable dans le format de droit, en raison de l'hypothèse d'une attaque 1 (Nous devons spécifier un véritable zéro mantisse pour donner une valeur de zéro). Zéro est une valeur spéciale notée avec un domaine exposant de zéro et une fraction de zéro. Notez que -0 et +0 sont des valeurs distinctes, Cependant, ils ont tous deux comparent comme égal.
Dénormalisées – Si l'exposant est 0 tous, mais la fraction n'est pas nulle (sinon il serait interprété comme zéro), la valeur est un nombre dénormalisé, qui n'a pas une attaque présumée 1 avant le point binaire. Ainsi, Il s'agit d'un nombre (-1)s × 0.f 2-126, où s est le bit de signe et f est la fraction. Pour double précision, les nombres dénormalisés sont de la forme (-1)s × 0.f 2-1022. De là, vous pouvez interpréter zéro comme un type spécial de nombre dénormalisé.
Infini – Les valeurs + infini et - infini sont signalées par un exposant de toutes les 1 s et une fraction de tous les 0 s. Le bit de signe établit une distinction entre l'infini et l'infini positif. Être capable de désigner l'infini comme une valeur spécifique est utile car il permet des opérations de continuer au-delà des situations de dépassement de capacité. Opérations avec des valeurs infinies sont définies dans IEEE virgule flottante.
Pas un nombre – La valeur NaN (Pas un nombre) sert à représenter une valeur qui ne représente pas un nombre réel. NaN est représentées par un modèle binaire avec un exposant toutes les 1 s et une fraction non nulle. Il existe deux catégories de NaN: QNaN (NaN tranquille) et SNaN (Signalisation de NaN).
QNaN – Un QNaN est un NaN avec la plus importante fraction bit défini. QNaN se propage librement dans la plupart des opérations arithmétiques. Ces valeurs sortir une opération lorsque le résultat n'est pas mathématiquement défini.
SNaN – Un SNaN est un NaN avec le bit le plus significatif fraction clair. Il sert à signaler une exception lorsqu'il est utilisé dans les opérations. SNaN peut s'avérer utile à attribuer aux variables non initialisées à piéger son utilisation prématurée.
Sémantiquement, QNaN désigne des opérations pour une période indéterminée, tandis que SNaN désigner des opérations non valides.
– – – – – –
Opérations spéciales
Opérations effectuées sur des numéros spéciaux sont bien définies par l'IEEE. Dans le cas le plus simple, toute opération avec une valeur NaN donne un résultat de NaN. Voici les autres opérations:
Opération | Résultat |
n ÷ ±infini | 0 |
±Infini × ±infini | ±Infini |
÷ ±Nonzero 0 | ±Infini |
Infini + Infini | Infini |
±0 ÷ ±0 | NaN |
Infini – Infini | NaN |
±Infini ÷ ±infini | NaN |
±Infini × 0 | NaN |
– – – – – –
Résumé
Signe | Exposant (et) | Fraction (f) | Valeur |
0 | 00..00 | 00..00 | +0 |
0 | 00..00 | 00..01 : 11..11 |
Résultats positifs dénormalisées Real 0.f × 2(-b+1) |
0 | 00..01 : 11..10 |
XX... XX | Positif normalisé Real 1.f × 2(et–b) |
0 | 11..11 | 00..00 | +Infini |
0 | 11..11 | 00..01 : 01..11 |
SNaN |
0 | 11..11 | 10..00 : 11..11 |
QNaN |
1 | 00..00 | 00..00 | -0 |
1 | 00..00 | 00..01 : 11..11 |
Résultats négatifs dénormalisées Real -0.f × 2(-b+1) |
1 | 00..01 : 11..10 |
XX... XX | Négatif normalisé Real -1.f × 2(et–b) |
1 | 11..11 | 00..00 | -Infini |
1 | 11..11 | 00..01 : 01..11 |
SNaN |
1 | 11..11 | 10..00 : 11.11 |
QNaN |