Communicatie


Sensoren en actuatoren communiceren met Input-Output-aansluitingen genoemd “PIN”

Sensoren en actuatoren deelt met de standaard PIN via 3 alleen draden. De eerste bestuurder (GND) is de massa, de tweede bestuurder (+5V) is de voeding, de derde dirigent (SIG) is het signaal. De pinnen zijn alle hetzelfde en ze alle komen kan worden geconfigureerd, zowel wat.

Master modules hebben zes pinnen van InOut de SlaveServo hebben tien en modules CapSensor geen.

Over de zes Pin bestaat de inscriptie “IN UIT PINS”. Niet worden verward door deze schriftelijke. De zes pennen zijn allemaal hetzelfde en zijn allemaal configureerbare, en zoals IN, ze komen.

Wanneer verbindingen tot stand brengen kunnen moeilijk te lezen de schriftelijke, Daarom is het goed om te weten dat: in alle onderdelen van het systeem Theremino, verbinding maken met GND is altijd dicht bij de rand van de plaat.

De pennen zijn geconfigureerd als OUT produceren een spanning van 0 in 3,3 volt, die zijn geconfigureerd als accepteren spanningen van 0 in 3.3 Volt. Als u moet op spanning input PIN buiten dit bereik de huidige limiet worden toegepast 100 au maximum (met een weerstand van ten minste 33k dicht bij PIN) anders de USB-communicatie wordt verstoord en kan zelfs worden afgesloten.

In het geval van lange koppelingen, Lees ook Deze pagina.

Hier is een voorbeeld-link


Aansluiten van schakelaars en knoppen met of zonder PullUp

Hier ziet u twee manieren voor het aansluiten van schakelaars, Microswitch, Reed en knoppen. De eerste manier is simpel, maar de laatste is toleranter voor interferentie.

Bovenaan zie je een directe verbinding (de invoer Pin met PullUp instellen)

Onderaan zie je een snelkoppeling door bescherming weerstanden (de input pinnen zonder PullUp instellen). De aanwezigheid van een zeer hoge waarde-weerstand, in serie met de draad “Signaal”, grenzen van de huidige, zelfs als extra zeer hoge spanningen (ook honderden volt). Dit zorgt ervoor dat de USB-communicatie zal niet worden verstoord, zelfs in sterke lawaai, geïnduceerde op lange draden, van externe voedingen, motoren of vermogen Relais.

Als in plaats van het inpluggen van de knoppen, u moet de spanning meten (dus met de Input-Pin geconfigureerd als ADC) een weerstand van 330K zou leiden tot teveel spanningsval, en u moet verlagen tot 33K. Ook in dit geval de 10 k weerstand zou en moet worden opgeheven.


Sluit de knoppen in het geval van sterke elektrische ruis

De in de vorige paragraaf oplossing beschermt de Meester communicatie met de PC, maar het belet niet dat korte puls geluid per ongeluk worden geïnterpreteerd, als een handmatig sluiten van de knop.

Dus in ruwe omgevingen, bijvoorbeeld in het geval dat de draden passeren van de knoppen naast de voedingsdraden van een solenoïde of een motor, Het is ook raadzaam om een ​​condensator voegen. Deze condensator voorkomt pulsen korter dan een tiende van een seconde en verhoogt verder de bescherming bij extra hoge voltages.

De twee foto's hieronder tonen de bedrading en het schakelschema van deze verbindingen (Klik op de afbeeldingen om te vergroten).

Push Button Filter Push Button Filter

De volgende afbeelding laat zien hoe u verbindingen maken rechtstreeks op de draden (Klik op de afbeelding voor een grotere weergave).

PushButton Filter AirWires

 

Met een kabel met een vrouwelijke connector, componenten kunnen ook direct gesoldeerd op de draden.

Dan kun je de onderdelen te vullen met een stuk krimpkous.

Als alternatief kun je een kleine basis vierkante matrix bord gebruiken.

 

Bedenk dat wanneer u deze koppelingen gebruikt (met beschermingsweerstand), je moet de input pinnen zonder PullUp instellen.

Bedenk ook dat, Als in plaats van het verbinden knoppen hebben spanningsmetingen (dus met de Input-Pin geconfigureerd als ADC), een weerstand van 330K zou leiden tot teveel spanningsval, en u moet verlagen tot 33K. Ook in dit geval de 10 k weerstand zou en moet worden opgeheven. Verder is de toevoeging van de condensator beperkt de bandbreedte van de ADC ongeveer 10 Hz.


De meester en de slaven Pin aansluitingen

Neem als voorbeeld van moetend een afgeschermde kabel, voor de uitvoering van de signalen van drie pinnen en vijf volt op een grote afstand.

Je kon de afgeschermde kabel knippen met enkele connectoren, zoals hier te zien (Klik op de foto om te vergroten). Blauwe draden, Licht groen en geel zijn de drie signalen, de rode draad is de vijf volt en de donkere groene draad is de massa.

Maar het is een oplossing moeilijk te bouwen en onbetrouwbaar. Deze foto's zijn voor een versnellingsmeter, die vaak van een bank werd verplaatst naar de andere van het laboratorium. Na een paar maanden brak twee van de vijf draden, boven de RCA connectors leidt tot de Master.

Veel beter offer drie standaard extensies:

Verlengsnoeren gehalveerd bieden goede kwaliteit vrouwelijke connectoren, met de draden zijn goed aangesloten en zeer robuust. Voor een fractie van de prijs van alleen de aansluitingen kan je zakken van tien standaard extensies van de koning van de Hobby.

Verlengsnoeren verbinden gemakkelijk met de zoon van afgeschermde kabel. Cover Thermo-krimpende schede verbindingen en je krijgt een robuust en professionele bekabeling.

Hier is een link goed gedaan.

De drie rode draden voeren vijf volt en verbinden, allemaal samen, de rode draad afgeschermde kabel. Bruine draden zijn de massa en sluit, alle drie, de kous van afgeschermde kabel. De drie gele draden zijn InOut signalen van de pinnen 1, 2 en 3 en zij zijn gekoppeld aan drie van de draden in de afgeschermde kabel.

Aan de andere kant van de afgeschermde kabel is hetzelfde, met vrouwtjes vanaf de tweede helft van de kabels.

In het geval van lange koppelingen, Lees ook Deze pagina.


Slaven en meester module modules via seriële communiceren

De seriële lijn geboden door de meester van de Theremino is geen normale RS232 of RS485. Maar een speciale begrotingslijn die zendt en ontvangt op een enkel onderdeel van het signaal, DPM protocol ontwikkeld door ons. De voordelen zijn de hoge snelheid communicatie en zelf-erkenning van modules. Meer info hier: technisch/protocol

Veel Slave modules kunnen worden aangesloten op de seriële lijn van de meester.

Zoals voor sensoren, voor seriële verbindingen, met behulp van de normale servo extensie opdrachten, beschikbaar op een geweldige prijs op www.hobbyking.com

Connectors

Brown = aarde
Rood = + 5 v
Geel = signaal

Voor zeer lange of speciale behoeften verbindingen macht kunt u twee-draads seriële communicatie (Massa en signaal), eventueel afgeschermde van kabel. Meer informatie in de sectie Lange verbindingen en lawaai immuniteit


Meester en de Computer communiceren via USB

Zelfs meerdere modellen gelijktijdig kunnen worden aangesloten op dezelfde PC via USB lijnen gescheiden en alle van hen zal worden herkend door de zelfde toepassing HAL.

Gebruik meerdere USB-regels en meerdere Master kunt in sommige gevallen de communicatiesnelheid te verhogen. In andere gevallen kan het dienen om zich te specialiseren sommige meester lens en andere mededelingen te communiceren met de kanalen waarvoor de maximale vernieuwingsfrequentie.

USB-kabels mogen geen speciale, goede kwaliteit of bijzonder rechtbanken. We hebben geprobeerd lange kabels (10 meter) en links met meer draden in serie (verlengsnoeren) en zij allen gehanteerd in de perfectie. Het Theremino-systeem maakt gebruik van het USB-protocol 2.0, maar het was mogelijk om verbindingen zonder fouten te maken, via standaard HUB, ook USB 1.0.


Het programma houdt HAL communicatie Hardware modules met de sleuven

Theremino HAL

 

 

 

 

 

 

 

 

 

Theremino HAL Slots

DE HAL ( Hardware Abstraction Layer ) vereenvoudigt de USB-communicatie en de complexiteit van de hardware door het omzetten van alle signalen in getallen “Float” die zijn geschreven in de input-output van 0 in 999 genomineerd “Slot”, of gelezen door hen en verzonden naar de ijzerwaren.

.

 

 


De "slots"

De “Slot” Systeem Theremino worden geïdentificeerd met een nummer van 0 in 999 en zijn allemaal onderdeel van de MemoryMappedFile met naam “Theremino1”.

Elke sleuf bevat een nummer “Float” dat kan worden gelezen of geschreven door elk onderdeel van het systeem Theremino.

In dit plaatje schrijft alleen de HAL in "slots", maar in werkelijkheid die alle systeemcomponenten kunnen worden gelezen dat schrijven in een van de "slots", Hoewel al gebruikt door andere.

De 1000 beschikbare "slots" zijn bruikbaar vrij er is slechts één regel:

Vele toepassingen en veel pins vindt dezelfde sleuf, maar je moet vermijden schrijven in veel dezelfde sleuf, doen niet breekt iets maar resultaten zijn gedefinieerd.

Als u meerdere gegevensstromen naar dezelfde sleuf stuurt vervolgens de gegevens zijn gemengd en wint de laatste een schrijven, Als u wilt samenvoegen in een ordelijke manier regels zijn gegevens nodig.

Wiskundige en logische regels tussen de "slots" vast te stellen, en ook te schrijven van complexe algoritmes van gedrag, We gebruiken "Theremino_Script" of elke programmeertaal als C++, CSharp, VBNET, VB6, Python of Pascal, maar u kunt ook visuele talen als MaxMSP, Verwerking, PureData, LabVIEW en EyesWeb.

Voor MaxMSP zijn beschikbare plugins en voorbeelden hier: downloads/stichtingen


De SLOT's voor tekststrings

SlotText is vergelijkbaar met gewone slots, vergelijkbare adressen hebben (Van 0 in 999) en ze worden op een vergelijkbare manier gebruikt, maar in tegenstelling tot de Slots, die getallen bevatten (gehele getallen of drijvende komma), SlotText bevat tekenreeksen.

De tekens die intern worden gebruikt, zijn van het unicode-type om in verschillende talen te kunnen schrijven (bijvoorbeeld Chinees) en gebruik twee bytes voor elk teken.

Elke SlotText kan tekstreeksen bevatten tot 100 duizend tekens. Als u de overschrijdt 100 duizend tekens in plaats van de tekst wordt een korte foutmelding geschreven.

SlotText gebruikt de MemoryMapedFile niet “Theremino1”, maar ze gebruiken een andere MemoryMappedFiles voor elke SlotText. De namen van deze bestanden variëren van “ThereminoSS0” in “ThereminoSS999” (dove ThereminoSS sta per Theremino String Slots).

En tot slot kan SlotText alleen worden gebruikt om te communiceren tussen applicaties en niet om te communiceren met HAL's en Master- of Arduino-modules..

Op dit moment (juni 2022) de enige applicaties die SlotText gebruiken zijn:
– QR-decoder, die ze gebruikt voor de tekst gedecodeerd door de QR-code en BAR-code.
– Automatisering (vanaf versie 7 vanaf), die SlotText-commando's biedt om SlotText te schrijven en te lezen.
– SlotViewer, die in nieuwere versies zowel numerieke als tekstslots kan gebruiken.
– Cobots, Het kan commando's van buitenaf ontvangen en ook asynchrone commando's naar Automation sturen via de gebeurtenis “Commando's van cobot”.

Om de communicatie tussen Automatisering en de COBOT-applicatie te gebruiken, lees de volgende pagina's in het Automatiseringsinstructiebestand::

  • SlotText
  • Event_CommandsFromCobot
  • De commando's van COBOT naar Automatisering
  • De commando's van Automatisering tot COBOT

In de map “Bronnen” van automatisering (altijd van de versie 7 vanaf die we zullen publiceren tegen het einde van 2021) je zult het nieuwe bestand vinden “Class_ThereminoStrings.vb” die programmeurs kunnen gebruiken om SlotText ook aan hun applicaties toe te voegen.


Het geheugen toegewezen bestanden

De "slots" zijn gebaseerd op de “Geheugen toegewezen bestanden” dat zijn weinig bekende, maar zeer nuttig.

Communiceren met “Geheugen toegewezen bestanden” is uiterst efficiënt, in een paar tientallen microseconden kan worden overgedragen honderden nummers “Float” tussen de afzonderlijke programma 's, met verschillende threads en geschreven in verschillende talen.

De “Geheugen toegewezen bestanden” genoemd “Theremino1” Het is lang 4096 bytes en bevat de 1000 sleuf gebruikt door het systeem Theremino. Alle programma's van het systeem Theremino kunnen schrijven en lezen van hun gegevens, in de vorm van float nummers, in 1000 sleuf voor dit bestand.

Elke sleuf is vier bytes dat bij het gebruik van laag niveau opslag u functioneert moet vermenigvuldigen de “Slot” voor vier om de index van de byte in de MemoryMappedFile.

Test- en voorbeeldprogramma 's, met de bronnen, in de belangrijkste programmeertalen. Met behulp van deze voorbeelden is het heel gemakkelijk om uit te rusten van elk programma de mogelijkheid om te communiceren met het systeem Theremino.

Ook beschikbaar zijn de “Externe” voor Scott en Max5 gevonden in bestand “MaxInstall.zip”. Op deze manier is het mogelijk om te communiceren “Patch” door Max met het systeem “Theremino” via de MemoryMappedFiles.


Verbindingen met standaard-kabels

Voor alle verbindingen tussen pinnen, sensoren en actuatoren evenals seriële communicatie zijn zeer comfortabel normale servo extensie opdrachten die beschikbaar zijn op een geweldige prijs op “www.hobbyking.com” in sectie “Hardware en accessoires” / “Kabels en pluggen” / “Servo draad & Servo stekkers”

Standaard kabel met man-vrouw connector

Brown = Gnd
Rood = + 5V
Geel = Signal
  • Voor stromen tot 0.5 Versterkers gebruik 26 AWG (0.13 MMQ)
  • Voor stromen tot 1 of 2 Versterkers gebruik 22 AWG (0.33 MMQ)

Meer informatie over aansluitkabels voor hoge stromen en lange lijnen, en de richtprijs en de koppelingen in het gedeelte: verbinding-kabels


Float nummers
(Minimum- en maximumwaarden voor nummerslots)

De nummers “Float” zijn floating point getallen van 32 bits (enkele precisie). Theremino het systeem altijd gebruikt de “Float” in plaats van nummers “Gehele getallen” of “Dubbel” om de volgende redenen:

1) Worden lange 32 bits worden gelezen en geschreven in een enkele instructie van de processor en hoeven synchronisatiemechanismen om fouten te vermijden.

2) Hoewel de nummers met de decimale komma kan bevatten geen fouten of afronding naar boven elke geheel getal van 000 000 000-16 '+16 'naar' ' 000-odd, en vervolgens gemakkelijk de waarden van 0 in 65535 (16 bits) en zelfs tot 24 bits van de beste bestaande sensoren en actuatoren.

3) Kan worden gebruikt om te verzenden 16 miljoenen verschillende communicatie “Gebruiksvoorwaarden” met behulp van NaN waarden (geen nummer) en NaNs ( Signalering van Nan ).

4) Ze kunnen ook speciale waarden bevatten “+Oneindigheid” en “-Oneindigheid”, handig wanneer de berekeningen zeer hoge waarden produceren.

5) De nauwkeurigheid van de “Float” is van duizenden tot miljoenen keren langer dan de vereiste nauwkeurigheid, omdat ze worden gebruikt, alleen om te communiceren en niet voor het uitvoeren van berekeningen.

6) Alle huidige overschrijving 32 bits in een enkele instructie, per cui l'efficienza è massima e verschuldigde programmi Noisy possono comunicare in Nada microsecondi.

Per maggiori particolari sui numeri “Float” leggere le pagine of.

– – – – – –

Float – Enkele precisie, 32 bits, floating point getallen

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

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

Max geheel getal zonder afronding fouten opgeslagen : +16' 777'216
Min geheel getal zonder afronding fouten opgeslagen : -16' 777'216

Max integer gevisualiseerd (7 cijfers afgerond): +9' 999'999
Min integer gevisualiseerd (7 cijfers afgerond): -9' 999'999

+Nul: 0 00000000 00000000000000000000000 (0000 0000)
-Nul: 1 00000000 00000000000000000000000 (8000 0000)
+Oneindigheid: 0 11111111 00000000000000000000000 (7F80 0000)
-Oneindigheid: 1 11111111 00000000000000000000000 (FF80 0000)

Positieve NANS
Van: 0 11111111 00000000000000000000001 (7F80 0001)
Aan: 0 11111111 01111111111111111111111 (7FBF FFFF) (4' 194'303 waarden)

Negatieve NANS
Van: 1 11111111 00000000000000000000001 (FF80 0001)
Aan: 1 11111111 01111111111111111111111 (FFBF FFFF) (4' 194'303 waarden)

Positieve NAN
Van: 0 11111111 10000000000000000000000 (7FC0 0000)
Aan: 0 11111111 11111111111111111111111 (7FFF FFFF ) (4' 194'304 waarden)

Negatieve NAN
Van: 1 11111111 10000000000000000000000 (FFC0 0000)
Aan: 1 11111111 11111111111111111111111 ( FFFF FFFF ) (4' 194'304 waarden)

– – – – – –

Speciale waarden

IEEE behoudt zich exponent veldwaarden van alle 0s en alle 1s ter aanduiding van de speciale waarden in de drijvende-regeling.

Nul – Zoals hierboven vermeld, nul is niet direct weergegeven in de rechte indeling, Als gevolg van de veronderstelling van een toonaangevende 1 (We moeten specificeren een echte nul mantisse zodanig dat deze een waarde van nul). Nul is een bijzondere waarde aangeduid met een exponent gebied van nul en een breuk veld met nul. Merk op dat -0 en +0 zijn verschillende waarden, Hoewel ze beide als gelijke te vergelijken.

Gedenormaliseerde – Als de exponent alle 0s is, maar de breuk is niet-nul (anders zou het worden geïnterpreteerd als een nul), dan is de waarde een gedenormaliseerd getal, die hoeft niet een veronderstelde toonaangevende 1 vóór de binaire punt. Dus, Dit staat voor een nummer (-1)s × 0.f × 2-126, waar s is de teken-bit en f is de breuk. Voor dubbele precisie, Gedenormaliseerde getallen zijn van het formulier (-1)s × 0.f × 2-1022. Hieruit kunt u nul als een speciaal soort gedenormaliseerde getal interpreteren.

Oneindigheid – De waarden + oneindigheid en -oneindigheid worden aangeduid met een exponent van alle 1s en een fractie van alle 0s. De teken-bit onderscheidt negatief oneindig tot positief oneindig. Kunnend duiden oneindig als een specifieke waarde nuttig is omdat het toelaat activiteiten voort te zetten langs overloop situaties. Operaties met oneindige waarden zijn gedefinieerd in IEEE zwevend punt.

Geen nummer – De waarde NaN (Geen nummer) wordt gebruikt voor een waarde die niet tot een reëel getal leidt. NaN van worden vertegenwoordigd door een bitpatroon met een exponent van alle 1s en een niet-nulzijnde Fractie. Er zijn twee categorieën van NaN: QNaN (Rustige NaN) en SNaN (Signalisatie-NaN).

QNaN – Een QNaN is een NaN met de meest significante fractie bit is ingesteld. QNaN van doorvoeren vrij voor meeste rekenkundige bewerkingen. Deze waarden pop uit een bewerking wanneer het resultaat niet wiskundig is gedefinieerd.

SNaN – Een SNaN is een NaN met het meest significante bit van fractie duidelijk. Het wordt gebruikt om het signaal van een uitzondering wanneer gebruikt in bewerkingen. De SNaN kunnen handige toewijzen aan niet-geïnitialiseerde variabelen te vangen voorbarig gebruik.

Semantisch, QNaN de duiden onbepaalde operaties, terwijl SNaN de duiden ongeldige bewerkingen.

– – – – – –

Speciale operaties

Operaties op speciale nummers zijn welomschreven door IEEE. In het eenvoudigste geval, handelingen met een NaN levert een resultaat NaN. Andere bewerkingen zijn als volgt:

Operatie Resultaat
n ÷ ±Infinity 0
±Infinity × ±Infinity ±Infinity
±nonzero ÷ 0 ±Infinity
Oneindigheid + Oneindigheid Oneindigheid
±0 ÷ ±0 NaN
Oneindigheid – Oneindigheid NaN
±Infinity ÷ ±Infinity NaN
±Infinity × 0 NaN

– – – – – –

Samenvatting

Teken Exponent (en) Breuk (f) Waarde
0 00..00 00..00 +0
0 00..00 00..01
:
11..11
Positieve gedenormaliseerde Real
0.f × 2(-b+1)
0 00..01
:
11..10
XX... XX Positieve genormaliseerd Real
1.f × 2(enb)
0 11..11 00..00 +Oneindigheid
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
Negatieve gedenormaliseerde Real
-0.f × 2(-b+1)
1 00..01
:
11..10
XX... XX Negatieve genormaliseerd Real
-1.f × 2(enb)
1 11..11 00..00 -Oneindigheid
1 11..11 00..01
:
01..11
SNaN
1 11..11 10..00
:
11.11
QNaN

Reacties zijn gesloten.