Kommunikation


Sensoren und Aktoren, die Kommunikation mit Input-Output-Steckverbinder genannt “POLIG”

Sensoren und Aktoren teilt mit der standard-PIN durch 3 nur Drähte. Der erste Fahrer (GND) ist die Masse, der zweite Fahrer (+5V) ist die Macht ’, der dritte Dirigent (SIG) ist das signal. Die Pins sind alle gleich, und sie alle kommen kann, was beides konfiguriert.

Master-Module haben sechs Pins INOUT haben die SlaveServo Ten und CapSensor-Module keine.

Über die sechs Pin c ’ ist die Inschrift “IN HERAUS PINS”. Nicht werden verwirrt durch diese schriftliche. Die sechs Pins sind alle gleich und sind alle konfigurierbaren, und wie IN der, Sie kommen.

Wenn Verbindungen herstellen schwer zu lesen, die geschrieben werden kann, So ist es gut zu wissen: in allen Komponenten des Systems Theremino, Verbinden Sie GND ist immer nahe an den Rand der Platte.

Die Pins sind als OUT erzeugen eine Spannung von konfiguriert 0 in 3,3 Volt, den konfigurierten da Spannungen von akzeptieren 0 in 3.3 Volt. Wenn Sie auf Spannungseingang PIN außerhalb dieses Bereichs anwenden sollte die Strombegrenzung 100 maximale au (mit einem Widerstand von mindestens 33k in der Nähe von PIN) ansonsten die USB-Kommunikation gestört wird und möglicherweise sogar heruntergefahren werden.

Bei langen links, Lesen Sie auch Diese Seite.

Hier ist ein Beispielhyperlink


Schließen Sie Schalter und Knöpfe, mit oder ohne PullUp

Hier sehen Sie zwei Möglichkeiten zum Anschließen von switches, Mikroschalter, Reed und Schaltflächen. Der erste Weg ist einfach, aber Letzteres ist toleranter gegenüber Interferenzen.

Oben sehen Sie eine direkte Verbindung (Legen Sie den Filtereingang mit PullUp)

Unten sehen Sie eine Abkürzung durch Schutzwiderstände (Legen Sie die input-Pins ohne PullUp). Das Vorhandensein eines sehr hohen Wert-Widerstandes, in Serie mit den Draht “Signal”, begrenzt den Strom, auch wenn extra sehr hohen Spannungen (auch Hunderte von Volt). Dadurch wird sichergestellt, dass die USB-Kommunikation nicht gestört wird, auch bei starkem Lärm, auf langen Leitungen induzierten, von der externen Stromversorgung, Motoren oder Power Relais.

Wenn statt einstecken Schaltflächen, Sie messen die Spannung (also mit der Input-Pin als ADC konfiguriert) ein Widerstand von 330K würde zuviel Spannungsabfall verursachen., Sie sollten es auf 33K reduzieren. Auch in diesem Fall die 10 k Widerstand würde und sollten beseitigt werden.


Verbinden Sie Tasten bei starken elektrischen Störungen

Die Lösung in dem vorangegangenen Abschnitt dargestellt schützt die Master-Kommunikation mit dem PC, aber es verhindert nicht, kurzes Impulsrauschen irrtümlich interpretiert, als manuelles Schließen der Taste.

So in rauen Umgebungen, beispielsweise in dem Fall, dass die Drähte der Tasten neben die Stromversorgungsleitungen von einem Elektromagneten oder einem Motor passieren, es ist auch ratsam, einen Kondensator hinzufügen. Dieser Kondensator eliminiert kürzeren Impulse als ein Zehntel einer Sekunde und erhöht weiter den Schutz im Fall einer extra sehr hoher Spannungen.

Die beiden Bilder unten zeigen die Verdrahtung und Schaltplan dieser Verbindungen (Klicken Sie auf die Bilder, um zu vergrößern).

Push Button Filter Push Button Filter

Das nächste Bild zeigt, wie Verbindungen machen direkt an den Drähten (Klicken Sie auf das Bild für eine größere Ansicht).

Pushbutton Filter Luftlinien

 

Die Verwendung eines Kabels mit einer Buchse, Komponenten können auch direkt auf die Drähte angelötet werden.

Dann könnten Sie die Komponenten mit einem Stück wärmeschrumpfbare Hülle füllen.

Alternativ können Sie eine kleine Basis quadratische Matrix Platte verwenden.

 

Daran erinnern, dass, wenn Sie diese Links verwenden (mit Vorwiderstand), Sie müssen Legen Sie die input-Pins ohne PullUp.

Denken Sie auch daran, dass, wenn statt der Tasten Verbindungs ​​tat Spannungsmessungen (also mit der Input-Pin als ADC konfiguriert), ein Widerstand von 330K würde zuviel Spannungsabfall verursachen., Sie sollten es auf 33K reduzieren. Auch in diesem Fall die 10 k Widerstand würde und sollten beseitigt werden. Außerdem begrenzt die Zugabe des Kondensators die Bandbreite des ADC auf etwa 10 Hz.


Der Kapitän und die Sklaven-Pin-Anschlüsse

Nehmen Sie wir als Beispiel dass ein geschirmtes Kabel angeschlossen, die Signale der drei Pins und fünf Volt bei großer Entfernung übertragen.

Geschirmte Kabel könnte mit einfach Stecker geschnitten werden, wie hier zu sehen (Klicken Sie auf die Bilder um zu vergrößern). Blauen Kabel, Hellgrün und Gelb sind die drei Signale, Das rote Kabel ist die fünf Volt und der dunkle grüne Draht ist Masse.

Aber es ist eine Lösung, die schwer zu erstellen und unzuverlässig. Diese Bilder sind für einen Beschleunigungsmesser, wurde oft von einem Labortisch alles andere verschoben ’. Nach ein paar Monaten brach zwei der fünf Drähte, über die Cinch-Stecker führt zum Master.

Viel besser Opfern Sie drei standard-Erweiterungen:

Verlängerungskabel halbiert bieten gute Qualität-Buchsen, die Drähte sind gut angebunden und sehr robust. Für einen Bruchteil des Preises von nur Connectors können Sie Taschen von zehn kaufen. Standard-Erweiterungen von Hobby King.

Verlängerungskabel verbinden sich leicht mit dem Sohn von Geschirmtes Kabel. Abdeckung Thermo-Schrumpfung Mantel Verbindungen und Sie erhalten eine robuste und professionelle Verkabelung.

Hier ist ein Link, richtig gemacht.

Die drei roten Drähte tragen fünf Volt und verbinden, alle zusammen, Das rote Kabel geschirmt Kabel. Braune Drähte sind die Masse und verbinden, alle drei, die Lagerung von Geschirmtes Kabel. Die drei gelbe Drähte sind InOut Signale der pins 1, 2 und 3 und damit verknüpften drei der Drähte im Inneren der Geschirmtes Kabel.

Auf der gegenüberliegenden Seite des abgeschirmten Kabels ist das gleiche, mit Frauen aus der zweiten Hälfte der Kabel.

Bei langen links, Lesen Sie auch Diese Seite.


Sklaven und Master Modul Module über serielle kommunizieren

Die serielle Schnittstelle zur Verfügung gestellt von Theremino-Master ist keine normale RS232 oder RS485. Aber eine spezielle Linie, die sendet und empfängt auf einem einzigen Strang des Signals, DPM-Protokoll, die von uns entwickelten. Seine Vorteile sind die high-Speed-Kommunikation und Selbsterkenntnis von Modulen. Weitere Infos hier: Technische/Protokoll

Viele Slave Module anschließbar an die serielle Schnittstelle des Meisters.

Für Sensoren, für serielle Verbindungen, mit Hilfe der normalen Servo-Erweiterung-Befehle, zu einem günstigen Preis bei www.hobbyking.com verfügbar

Connectors

Braun = Masse
Rot = + 5V
Gelb = Signal

Für sehr lange oder spezielle Bedürfnisse Stromanschlüsse können Sie Zweileiter seriellen Kommunikation machen. (Masse und Signal), möglicherweise geschirmtes von Kabel. Weitere Informationen im Abschnitt Lange Verbindungen und Störsicherheit


Master und dem Computer über USB miteinander kommunizieren

Selbst mehrere Meister können gleichzeitig auf demselben PC über USB Leitungen getrennt angeschlossen werden und alle von der gleichen Anwendung HAL anerkannt werden.

Verwenden Sie mehrere USB-Linien und mehrere Master kann in einigen Fällen die Kommunikations-Geschwindigkeit erhöhen. In anderen Fällen kann es dazu dienen, einige spezialisieren Master Objektiv und andere Kommunikation mit Kanälen zu kommunizieren, die maximale Bildwiederholfrequenz erfordern.

USB-Kabel sollte keine spezielle, gute Qualität und vor allem Gerichte. Wir haben lange Kabel versucht. (10 Meter) und Links mit mehr Drähte in Serie (Verlängerungskabel) und sie alle arbeiteten perfekt. Das Theremino-System verwendet das USB-Protokoll 2.0, aber es war möglich, Verbindungen ohne Fehler zu machen, über standard-HUB, auch USB 1.0.


Das Programm hält HAL-Kommunikation-Hardware-Module mit den slots

Theremino HAL

 

 

 

 

 

 

 

 

 

Theremino HAL Slots

L ’ HAL ( Hardware-Abstraktionsschicht ) vereinfacht die USB-Kommunikation und die Komplexität der Hardware ’ alle Signale in Zahlen umwandeln “Schwimmen” in der input-Output von geschrieben sind 0 in 999 nominiert “Steckplatz”, oder von ihnen gelesen und an ’ Hardware.

.

 

 


Die Schlitze

Die “Steckplatz” System Theremino werden anhand einer Reihe von 0 in 999 und sind Teil der MemoryMappedFile mit Namen “Theremino1”.

Jeder Steckplatz enthält eine Reihe “Schwimmen” die gelesen oder von einer beliebigen Komponente des Systems Theremino geschrieben werden kann.

In diesem Bild schreibt nur die HAL in den Slots, aber in Wirklichkeit, die alle Systemkomponenten gelesen werden können, dass schreiben, dass in keinem der slots, Obwohl bereits von anderen verwendet.

Die 1000 freie Steckplätze sind frei verwendbar, dass gibt es nur eine Regel:

Viele Anwendungen und vielen Pins können den gleichen Steckplatz lesen., aber Sie sollten vermeiden, Schreiben in vielen denselben Steckplatz, damit bricht nicht alles aber die Ergebnisse sind nicht definiert.

Wenn Sie mehrere Datenströme an den gleichen Steckplatz senden dann die Daten werden gemischt und der Gewinner der letzten schreiben, Wenn Sie zusammenführen möchten sind Daten in ein geordneter Weise Regeln notwendig..

Mathematische und logische Regeln zwischen den Steckplätzen aufzustellen, und auch komplexe Algorithmen des Verhaltens zu schreiben, Wir verwenden "Theremino_Script" oder einer beliebigen Programmiersprache wie C++, CSharp, VBNET, VB6, Python oder Pascal, aber Sie können auch visuelle Sprachen als MaxMSP, Verarbeitung, PureData, LabVIEW und EyesWeb.

MaxMSP sind verfügbaren Plugins und Beispiele hier: Downloads/Stiftungen


Die SLOTs für Textstrings

SlotText ähneln normalen Slots, habe ähnliche adressen (Von 0 in 999) und sie werden ähnlich wie sie verwendet, aber im Gegensatz zu den Slots, die Zahlen enthalten (Ganzzahlen oder Gleitkomma), SlotText enthält Zeichenketten.

Die intern verwendeten Zeichen sind vom Typ Unicode, um das Schreiben in verschiedenen Sprachen zu ermöglichen (zum Beispiel Chinesisch) und verwende zwei Bytes für jedes Zeichen.

Jeder SlotText kann Textstrings bis zu enthalten 100 tausend Zeichen. Wenn Sie die überschreiten 100 tausend Zeichen statt des Textes wird eine kurze Fehlermeldung geschrieben.

SlotText verwendet nicht die MemoryMappedFile “Theremino1”, aber sie verwenden unterschiedliche MemoryMappedFiles für jeden SlotText. Die Namen dieser Dateien reichen von “ThereminoSS0” in “ThereminoSS999” (dove ThereminoSS sta pro Theremino String Slots).

Und schließlich kann SlotText nur zur Kommunikation zwischen Anwendungen verwendet werden und nicht zur Kommunikation mit HALs und Master- oder Arduino-Modulen..

Aktuell (Juni 2022) die einzigen Anwendungen, die SlotText verwenden, sind:
– QRdecoder, die sie für den vom QR-Code und BAR-Code decodierten Text verwendet.
– Automatisierung (ab version 7 ab), die SlotText-Befehle zum Schreiben und Lesen von SlotText bereitstellt.
– SlotViewer, In neueren Versionen können sowohl numerische als auch Textsteckplätze verwendet werden.
– Cobot, Es kann Befehle von außen empfangen und auch asynchrone Befehle über das Ereignis an die Automatisierung senden “Befehle von Cobot”.

Um die Kommunikation zwischen Automation und der COBOT-Anwendung zu nutzen, lesen Sie die folgenden Seiten in der Automation-Anweisungsdatei:

  • SlotText
  • Event_CommandsFromCobot
  • Die Befehle von COBOT an Automation
  • Die Befehle von Automation zu COBOT

Im Ordner “Quellen” in Automation (immer aus der Version 7 ab, die wir bis Ende veröffentlichen werden 2021) Sie finden die neue Datei “Class_ThereminoStrings.vb” mit denen Programmierer auch SlotText zu ihren Anwendungen hinzufügen können.


Die Memory-Mapped-Dateien

Die Slots basieren auf der “Memory-Mapped-Dateien” die sind wenig bekannte, aber sehr nützliche.

Kommunikation mit “Memory-Mapped-Dateien” ist extrem leistungsfähig, in ein paar Dutzend Mikrosekunden kann übertragene Hunderte von Zahlen “Schwimmen” zwischen separaten Programmen, mit Gewinde und schriftliche in verschiedenen Sprachen.

Die “Memory-Mapped-Dateien” aufgerufen “Theremino1” Es ist lange 4096 Bytes und enthält die 1000 Schlitz, die durch das System Theremino verwendet. Alle Programme des Systems Theremino kann lesen und schreiben ihre Daten, in Form von Float-Zahlen, in 1000 Diese Datei-Steckplatz.

Jeder Steckplatz ist vier Bytes, dass bei der Verwendung von niedrigen Speicherebene Sie Funktionen müssen multiplizieren, die “Steckplatz” für vier l bekommen ’ Index auf die Bytes in MemoryMappedFile.

Test und Beispielprogramme, mit den Quellen, in den wichtigsten Programmiersprachen. Anhand dieser Beispiele ist es sehr einfach, jedes Programm die Möglichkeit zur Kommunikation mit dem System Theremino auszustatten.

Ebenfalls erhältlich sind die “Externe” Scott und Max5 in Datei gefunden “MaxInstall.zip”. Auf diese Weise ist es möglich, zu kommunizieren “Patch” von Max mit dem system “Theremino” durch die MemoryMappedFiles.


Verbindungen mit standard-Kabel

Für alle Verbindungen zwischen den Stiften, Sensoren und Aktoren sowie serielle Kommunikation sind sehr komfortabel normalen Servo Verlängerung Befehle verfügbar zu einem tollen Preis an “www.hobbyking.com” in Abschnitt “Hardware und Zubehör” / “Kabel und Stecker” / “Servo-Draht & Servo Stecker”

Standard-Kabel mit Stecker-Buchse-Stecker

Braun = Gnd Rot = + 5V Gelb = Signal
  • Für Ströme bis zu 0.5 Verstärker verwenden 26 AWG (0.13 MMQ)
  • Für Ströme bis zu 1 oder 2 Verstärker verwenden 22 AWG (0.33 MMQ)

Weitere Informationen über Verbindungskabel für hohe Ströme und sehr lange Zeilen, und Richtpreise und Verknüpfungen im Abschnitt: Anschlusskabel


Float-Zahlen
(Minimal- und Maximalwerte, die für Nummernfelder gültig sind)

Die Zahlen “Schwimmen” sind von Gleitkommazahlen 32 bisschen (für Single precision). Theremino das System immer verwendet die “Schwimmen” anstelle von Zahlen “Ganze Zahlen” oder “Doppelzimmer” aus folgenden Gründen:

1) Lange 32 Bits sind gelesen und geschrieben in einer einzelnen Anweisung des Prozessors und keine Synchronisationsmechanismen, Fehler zu vermeiden.

2) Obwohl die Zahlen mit dem Dezimalkomma keine Fehler oder das Aufrunden jede ganze Zahl von 000 000 000-16 '+ 16 'bis' ' enthält 000-odd, und dann einfach enthalten die Werte aus 0 in 65535 (16 bisschen) und sogar bis zu 24 bisschen die besten vorhandenen Sensoren und Aktoren.

3) Kann verwendet werden, um zu senden 16 Millionen von verschiedenen Kommunikation “Service” mit Hilfe von NaN-Werte (keine Zahl) und NaNs ( Signalisierende Nan ).

4) Sie können auch spezielle Werte enthalten. “+Unendlichkeit” und “-Unendlichkeit”, nützlich, wenn die Berechnungen sehr hohe Werte erzeugen.

5) Die Genauigkeit der “Schwimmen” von tausend bis Millionen mal länger als die Genauigkeit erforderlich ist, Da sie nur zu kommunizieren und nicht für Berechnungen verwendet werden.

6) Alle aktuellen Übertragung 32 Bit in einer einzelnen Anweisung, die ’ Effizienz ist am höchsten und zwei verschiedene Programme können in ein paar Mikrosekunden kommunizieren.

Für weitere Details über die Zahlen “Schwimmen” Lesen Sie die folgenden Seiten.

– – – – – –

Schwimmen – Für Single precision, 32 bisschen, Fließkomma-Zahlen

Positive max: 3.4028235 E + 38
Positive min: 1.401298 E-45

Negativen max: -3.4028235 E + 38
Negativen min: -1.401298 E-45

Max-Ganzzahl gespeichert, ohne Rundungsfehler : +16’ 777 ’ 216
Min-Ganzzahl gespeichert, ohne Rundungsfehler : -16’ 777 ’ 216

Max-Ganzzahl visualisiert (7 Ziffern gerundet): +9’ 999 ’ 999
Min-Ganzzahl visualisiert (7 Ziffern gerundet): -9’ 999 ’ 999

+0 (null): 0 00000000 00000000000000000000000 (0000 0000)
-0 (null): 1 00000000 00000000000000000000000 (8000 0000)
+Unendlichkeit: 0 11111111 00000000000000000000000 (7F80 0000)
-Unendlichkeit: 1 11111111 00000000000000000000000 (FF80 0000)

Positive NANS
Von: 0 11111111 00000000000000000000001 (7F80 0001)
An: 0 11111111 01111111111111111111111 (7FBF-FFFF) (4’ 194 ’ 303-Werte)

Negativen NANS
Von: 1 11111111 00000000000000000000001 (FF80 0001)
An: 1 11111111 01111111111111111111111 (FFBF FFFF) (4’ 194 ’ 303-Werte)

Positive NAN
Von: 0 11111111 10000000000000000000000 (7FC0 0000)
An: 0 11111111 11111111111111111111111 (7FFF-FFFF ) (4’ 194 ’ 304-Werte)

Negativen NAN
Von: 1 11111111 10000000000000000000000 (FFC0 0000)
An: 1 11111111 11111111111111111111111 ( FFFF FFFF ) (4’ 194 ’ 304-Werte)

– – – – – –

Spezielle Werte

IEEE behält sich Exponent Feldwerte alle 0en und alle 1en um spezielle Werte in das Floating-Point-System zu bezeichnen.

0 (null) – Wie oben erwähnt, NULL ist nicht direkt in die gerade Format darstellbar, aufgrund der Annahme einer der führenden 1 (Wir brauchen einer echte NULL Mantisse um den Wert NULL ergeben angeben). NULL ist ein spezieller Wert, gekennzeichnet mit ein Exponent Feld 0 (null) und einem Bruchteil Feld 0 (null). Beachten Sie, dass -0 und +0 sind unterschiedliche Werte, Obwohl sie beide als gleichwertig zu vergleichen.

Denormalisiert – Wenn der Exponent alle 0 s ist, aber der Bruch ist ungleich (sonst würde es als NULL interpretiert werden), dann ist der Wert eine denormalisierte Zahl, Das muss keine angenommene führende 1 vor dem binären. Somit, Dies steht für eine Nummer (-1)s × 0.f × 2-126, wo s ist das Vorzeichenbit und f ist der Anteil. Für double precision, Denormalisierte Zahlen haben die form (-1)s × 0.f × 2-1022. Daraus können Sie NULL als eine besondere Art von denormalisierte Zahl interpretieren..

Unendlichkeit – Die Werte + unendlich und -Infinity sind mit einem Exponenten der alle 1 s und einen Bruchteil aller 0 s gekennzeichnet.. Das Vorzeichenbit unterscheidet zwischen minus unendlich und unendlich. Könnend unendlich zu bezeichnen, als ein bestimmter Wert nützlich ist, weil es Operationen weiterhin vorbei Überlauf Situationen erlaubt. Operationen mit unendliche Werte sind definiert in IEEE Gleitkomma.

Keine Zahl – Der Wert NaN (Keine Zahl) wird verwendet, um einen Wert darstellen, der keine reelle Zahl darstellt. NaN ’ s werden durch ein Bit-Muster mit einem Exponenten der alle 1 s und einen Bruchteil NULL dargestellt. Es gibt zwei Kategorien von NaN: QNaN (Stillen NaN) und SNaN (Signalisierende NaN).

QNaN – Ein QNaN ist ein NaN mit dem bedeutendsten Bruch-Bitset. QNaN ’ s werden frei über die meisten arithmetischen Operationen. Diese Werte pop aus einer Operation, wenn das Ergebnis nicht mathematisch definiert ist.

SNaN – Eine SNaN ist ein NaN mit der Bruchteil Bitwertigkeit klar. Es wird verwendet, um eine Ausnahme bei der Verwendung in Operationen zu signalisieren. SNaN ’ s kann praktisch nicht initialisierten Variablen zuweisen, vorzeitige Nutzung aufzufangen sein.

Semantisch, QNaN ’ s bezeichnen unbestimmte Operationen, zwar SNaN ’ s bezeichnen ungültige Operationen.

– – – – – –

Spezielle Operationen

Operationen an Sondernummern sind gut definiert durch IEEE. Im einfachsten Fall, jede Operation mit einer NaN ergibt ein NaN-Ergebnis. Andere Operationen werden wie folgt:

Betrieb Ergebnis
n ÷ ±Infinity 0
±Infinity × ±Infinity ±Infinity
±Nonzero ÷ 0 ±Infinity
Unendlichkeit + Unendlichkeit Unendlichkeit
±0 ÷ ±0 NaN
Unendlichkeit – Unendlichkeit NaN
±Infinity ÷ ±Infinity NaN
±Infinity × 0 NaN

– – – – – –

Zusammenfassung

Zeichen Exponent (und) Bruchteil (f) Wert
0 00..00 00..00 +0
0 00..00 00..01
:
11..11
Positive denormalisiert Real
0.f × 2(-b+1)
0 00..01
:
11..10
XX... XX Positive normalisiert Real
1.f × 2(undb)
0 11..11 00..00 +Unendlichkeit
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
Negative denormalisiert Real
-0.f × 2(-b+1)
1 00..01
:
11..10
XX... XX Negative normalisiert Real
-1.f × 2(undb)
1 11..11 00..00 -Unendlichkeit
1 11..11 00..01
:
01..11
SNaN
1 11..11 10..00
:
11.11
QNaN

Kommentare sind geschlossen.