Comunicaţii


Senzori şi actuatori comunicarea cu conectori de intrare-ieşire numit “CODUL PIN”

Senzori şi actuatori comunică cu pini standard prin 3 numai fire. Primul pilot (GND) este masa, conducătorul auto al doilea (+5V) este puterea ’, dirijor al treilea (SIG) este un semnal. Pinii sunt toate la fel si ele toate ieşi poate fi configurat atat ca la ce.

Module de masterat au şase ace de InOut SlaveServo au zece şi modules CapSensor nici unul.

Peste şase Pin c ’ este inscripţia “ÎN AFARĂ DE ACE”. Nu obţine confuz de acest scris. Şase ace sunt toate la fel şi sunt toate configurabile, şi, ca în, ele ies afară.

Când a face conexiuni poate fi dificil de citit scris, e bine de stiut ca: în toate componentele sistemului Theremino, conectaţi GND este întotdeauna aproape de muchia plăcii de.

Pinii sunt configurate ca OUT produce o tensiune de 0 în 3,3 volţi, cei configurat ca accepta tensiuni la 0 în 3.3 Volţi. Dacă aplicaţi tensiune de intrare AC în afara acestui interval ar trebui să fie limita curentă 100 au maxim (cu un rezistor de cel puţin 33k aproape de PIN) altfel comunicarea USB este perturbată şi chiar poate fi închis.

În cazul în care link-uri lungi, Citiţi, de asemenea Această pagină.

Aici este un link de probă


Conectarea switch-uri si butoane, cu sau fără PullUp

Aici puteţi vedea două moduri de a conecta switch-uri, Microîntrerupător, Reed şi butoane. Primul mod este simplu, dar acesta din urmă este mai tolerantă la interferente.

În partea de sus veţi vedea o legătură directă (seta Codul Pin de intrare cu PullUp)

În partea de jos veţi vedea o scurtătură prin rezistenţe de protecţie (Setaţi pinii de intrare fără PullUp). Prezenţa unui rezistor de foarte mare valoare, în serie cu sârmă “Semnal”, limitele actuale, chiar dacă extra foarte mari tensiuni (de asemenea, sute de volti). Acest lucru asigură că comunicarea USB nu va fi deranjat, chiar şi în zgomot puternic, induse pe fire lungi, din surse de alimentare externe, motoare sau puterea relee.

Dacă în loc de tamponare butoane, Măsuraţi tensiunea (Deci, cu PIN-ul de intrare configurat ca ADC) un rezistor de 330K ar cauza prea mult căderea de tensiune, şi tu ar trebui să-l reducă la 33K. De asemenea, în acest caz 10 k rezistor ar şi ar trebui să fie eliminate.


Conectați butoane în caz de zgomot electric puternic

Soluția prezentată în secțiunea precedentă protejează comunicarea cu PC-ul master, dar aceasta nu împiedică zgomotul de impulsuri scurte să fie interpretat de greșeală, ca de închidere manuală a butonului.

Deci, în medii dure, de exemplu, în cazul în care firele trec din butoanele de lângă firele de alimentare a unui solenoid sau un motor, de asemenea, este recomandabil să se adauge un condensator. Acest condensator elimină impulsuri scurte de o zecime de secundă și în plus crește protecția în cazul extra- foarte tensiuni înalte.

Cele două imagini de mai jos arată schema electrică și cablajul acestor conexiuni (click pe imagini pentru a le mări).

Push Button Filtru Push Button Filtru

Următoarea imagine arată cum să facă conexiuni direct pe firele (click pe imagine pentru o vizualizare mai mare).

AirWires PUSHBUTTON Filtru

 

Cu ajutorul unui cablu cu un conector mamă, componente pot fi, de asemenea, lipite direct pe firele.

Apoi, ai putea umple componentele cu o bucată de teacă termoretractabil.

Alternativ, puteți utiliza o placă de bază matrice pătrată mică.

 

Rețineți că, atunci când utilizați aceste link-uri (cu rezistor de protecție), trebuie să vă Setaţi pinii de intrare fără PullUp.

De asemenea, amintiți-vă că, dacă în loc de butoane de legătură au făcut măsurători de tensiune (Deci, cu PIN-ul de intrare configurat ca ADC), un rezistor de 330K ar cauza prea mult căderea de tensiune, şi tu ar trebui să-l reducă la 33K. De asemenea, în acest caz 10 k rezistor ar şi ar trebui să fie eliminate. Mai mult decât atât, adăugarea condensatorului limitează lățimea de bandă ADC la aproximativ 10 Hz.


Master si a conexiunilor de sclavi Pin

Să luăm ca exemplu de a conecta un cablu ecranat, pentru a transporta semnale de trei ace şi cinci de volţi la o distanţă mare.

Ai putea reduce cablu ecranat cu conectori singur, aşa cum se vede aici (Click pe imagini pentru marire). Fire albastru, Lumina verde şi galben sunt trei semnale, firul este cinci de volţi şi firul verde inchis este masa.

Dar este o soluţie greu pentru a construi şi nesigure. Aceste imagini sunt pentru un accelerometru, care a fost mutat adesea la o bancă de laborator de toate ’. Dupa cateva luni, doua din cinci fire rupt, mai sus de conectori RCA care să conducă la Master.

Mult mai bine jertfa trei extensiile standard:

Prelungitoare înjumătăţit oferi calitate bună femeie conectori, cu fire sunt bine conectate şi foarte robustă. Pentru o fracţiune din preţul de doar conectori poti cumpara pungi de zece extensiile standard de pasiune King.

Prelungitoare conecta cu uşurinţă cu fiul de cablu ecranat. Acoperire termo-scădere teaca conexiuni şi veţi obţine un robust şi profesionale de cablare.

Aici este un link care face dreapta.

Trei fire rosii transporta cinci de volţi şi conectaţi, toate împreună, cablul roşu cablu ecranat. Fire de maro sunt masa şi conectaţi, toate cele trei, inventarului de vite, de cablu ecranat. Trei fire galbene sunt InOut semnalele de pin 1, 2 şi 3 şi acestea sunt legate de trei fire în interiorul un cablu ecranat.

Pe partea opusă a cablului ecranat este acelaşi, cu femei din a doua jumătate a cablurilor.

În cazul în care link-uri lungi, Citiţi, de asemenea Această pagină.


Sclavi si stapani modulul module comunica prin serie

Linie serială furnizate de Theremino Master nu este normală RS232 sau RS485. Dar o linie specială care transmite si primeste pe un singur fir de semnal, Protocolul PDM dezvoltate de noi. Avantajele sale sunt comunicare de mare viteza si auto-recunoaştere de module. Mai multe informaţii aici: tehnic/Protocolul

Multe module Slave poate fi conectat la linia de serie de Master.

Ca pentru senzori, pentru conexiuni de linie serială, utilizând comenzile normale servo prelungire, disponibil la un preţ mare la www.hobbyking.com

Connectors

Brown = sol
Rosu = + 5V
Galben = semnal

Pentru foarte mult timp sau speciale nevoie de putere conexiuni puteţi face două fire de comunicare serială (Masa și semnal), eventual din cablu ecranat. Mai multe informaţii în secţiunea Conexiuni lung şi imunitatea la zgomot


Master şi calculatorul comunica prin USB

Chiar şi mai mulţi coordonatori pot fi conectate simultan la acelaşi PC prin USB linii separate şi toate dintre ele vor fi recunoscute de aceeaşi cerere HAL.

Utilizarea mai multor linii de USB şi mai multe Master permite în unele cazuri, pentru a creşte viteza de comunicare. În alte cazuri acesta poate servi să se specializeze unele Master lentilă şi alte mijloace de comunicare pentru a comunica cu programe care necesita rata de reîmprospătare maximă.

Cabluri USB nu ar trebui să fie speciale, bună calitate sau în special în instanţele de judecată. Am încercat cablurilor lungi (10 metri) şi link-uri cu mai multe fire în serie (Prelungitoare) şi toate acestea functioneaza perfect. Sistemul Theremino foloseste protocolul USB 2.0, dar a fost posibil pentru a face conexiuni fără erori, prin standardul HUB, de asemenea, USB 1.0.


Programul păstrează HAL comunicare Hardware modulelor cu sloturile

Theremino HAL

 

 

 

 

 

 

 

 

 

Theremino HAL Slots

L ’ HAL ( Strat de abstractizare hardware-ul ) simplifică USB comunicare şi complexitatea de hardware ’ transformarea toate semnalele de numere “Pluti” care sunt scrise în intrare de ieşire de la 0 în 999 nominalizat “Slot”, sau citit de ei şi trimis la ’ articole de fier.

.

 

 


Sloturi

The “Slot” Sistemul Theremino se identifică cu un număr de 0 în 999 si sunt toate parte din MemoryMappedFile cu numele “Theremino1”.

Fiecare slot conţine un număr “Pluti” care pot fi citite sau inscripţionate de orice componentă a sistemului de Theremino.

În această imagine, numai HAL scrie în sloturi, dar în realitate toate componentele de sistem poate fi citit că scrie în oricare dintre sloturile, Deşi deja utilizate de către alte.

The 1000 sloturi orare disponibile sunt utilizabile în mod liber există doar o singură regulă:

Multe aplicaţii şi multe ace poate citi acelaşi slot, dar ar trebui să evite scris în multe acelaşi slot, Acest lucru nu se rupe nimic, dar rezultatele sunt nedefinite.

Dacă trimiteţi mai multe fluxuri de date la acelaşi slot apoi datele sunt amestecate şi câştigă o ultima pentru a scrie, În cazul în care doriţi să le fuzionaţi sunt necesare date într-o manieră ordonată reguli.

Să se stabilească norme de matematice şi logice între sloturile, şi, de asemenea, pentru a scrie algoritmi de complexe de comportament, Vom folosi "Theremino_Script" sau orice limbaj de programare precum C++, CSharp, VBNET, VB6, Python sau Pascal, dar, de asemenea, puteţi utiliza vizuale limbi ca MaxMSP, Prelucrare, PureData, LabVIEW şi EyesWeb.

Pentru MaxMSP sunt disponibile plugin-uri şi exemple aici: Download-uri/fundatii


Slot-urile pentru șiruri de text

SlotText sunt similare cu sloturile obișnuite, au adrese similare (la 0 în 999) și sunt folosite într-un mod similar cu ei, dar spre deosebire de Slots, care contin numere (numere întregi sau virgulă mobilă), SlotText conține șiruri de caractere.

Caracterele utilizate intern sunt de tip unicode pentru a permite scrierea în diferite limbi (de exemplu chineză) și folosiți doi octeți pentru fiecare caracter.

Fiecare SlotText poate conține șiruri de text de până la 100 o mie de caractere. Dacă depășiți 100 mii de caractere în loc de text este scris un scurt mesaj de eroare.

SlotText nu utilizează MemoryMappedFile “Theremino1”, dar folosesc un MemoryMappedFiles diferit pentru fiecare SlotText. Numele acestor fișiere variază de la “ThereminoSS0” în “ThereminoSS999” (porumbel ThereminoSS sta per Theremino String Slots).

Și, în sfârșit, SlotText poate fi folosit doar pentru a comunica între aplicații și nu pentru a comunica cu HAL-uri și modulele Master sau Arduino..

În prezent (iunie 2022) singurele aplicații care folosesc SlotText sunt:
– QRdecoder, care le folosește pentru textul decodat de QR-Code și BAR-code.
– Automatizare (de la versiunea 7 începând cu anul), care oferă comenzi SlotText pentru a scrie și citi SlotText.
– SlotViewer, în versiunile mai noi se poate utiliza atât sloturi numerice, cât și sloturi text.
– Cobot, care pot primi comenzi din exterior și, de asemenea, trimite comenzi asincrone la Automatizare prin intermediul evenimentului “Comenzi de la Cobot”.

Pentru a utiliza comunicațiile dintre Automation și aplicația COBOT, citiți următoarele pagini din fișierul de instrucțiuni Automation:

  • SlotText
  • Event_CommandsFromCobot
  • Comenzile de la COBOT la automatizare
  • Comenzile de la automatizare la COBOT

În folderul “Surse” de automatizare (întotdeauna din versiune 7 in continuare pe care o vom publica pana la sfarsitul lui 2021) veți găsi noul fișier “Class_ThereminoStrings.vb” pe care programatorii îl pot folosi pentru a adăuga SlotText și în aplicațiile lor.


Memorie mapate fişiere

Sloturile sunt bazate pe “Memorie mapate fişiere” care sunt puţin cunoscute, dar foarte util.

Comunicarea cu “Memorie mapate fişiere” este extrem de eficient, în câteva zeci de microsecunde poate fi transferat sute de numere “Pluti” între programe separate, cu fire de diferite şi scris în diferite limbi.

The “Memorie mapate fişiere” numit “Theremino1” Este lung 4096 octeţi şi conţine 1000 slotul folosite de sistemul de Theremino. Toate programele sistemului de Theremino poate scrie şi citi datele lor, în formă de plutească numere, în 1000 slotul de acest fisier.

Fiecare slot este patru octeţi că, atunci când se utilizează scăzut nivel de stocare funcţiile tu trebuie să vă înmulţiţi “Slot” pentru patru să-l ’ indicelui octeţi în MemoryMappedFile.

Programe de testare şi de exemplu, cu sursele, în principalele limbaje de programare. Folosind aceste exemple este foarte uşor pentru a dota orice program de posibilitatea de a comunica cu sistemul de Theremino.

De asemenea, sunt disponibile “Externe” Scott şi Max5 găsit în fișierul “MaxInstall.zip”. În acest fel este posibil pentru a comunica “Patch-uri” de Max cu sistemul de “Theremino” prin MemoryMappedFiles.


Legături cu cabluri standard

Pentru toate conexiunile dintre ace, senzori şi actuatori, precum şi comunicare în serie sunt foarte confortabile servo normale extensia comenzi disponibile la un preţ mare la “www.hobbyking.com” în secţiunea “Hardware şi accesorii” / “Cabluri şi mufe” / “Servo sârmă & Servo prize”

Cablu standard cu conector de sex masculin-feminin

Brown = Gnd rosu = + 5V galben = semnal
  • Pentru curenţi până la 0.5 Amperi utilizaţi 26 AWG (0.13 CMM)
  • Pentru curenţi până la 1 sau 2 Amperi utilizaţi 22 AWG (0.33 CMM)

Mai multe informaţii despre cabluri de conectare pentru curenţi mari şi linii foarte lungi, şi preţurile orientative şi link-uri în secţiunea: cabluri de conectare


Flotor numere
(valorile minime și maxime valabile pentru sloturile numerice)

Numerele “Pluti” sunt numerele cu virgulă flotantă din 32 pic (unic de precizie). Theremino sistemul utilizează întotdeauna “Pluti” în loc de numere “Numere întregi” sau “Dublu” din următoarele motive:

1) Fiind lung 32 biţi sunt citit şi scris într-o singură declaraţie a transformatorului şi necesită mecanisme de sincronizare pentru a evita erorile.

2) Deşi numere cu zecimală pot conţine nici o eroare sau rotunjirea orice număr întreg de 000 000 000 de la-16 '16 'la' ' 000-odd, şi apoi cu uşurinţă conţin valorile din 0 în 65535 (16 pic) şi chiar şi până la 24 pic de cele mai bune existente senzori şi actuatori.

3) Poate fi folosit pentru a trimite 16 milioane de comunicare diferite “de serviciu” folosind valorile NaN (nu un număr) şi NaNs ( Semnalizare Nan ).

4) Acestea pot conține, de asemenea, valori speciale “+Infinit” şi “-Infinit”, util atunci când calculele produc valori foarte ridicate.

5) Precizia de “Pluti” este de la mii de milioane de ori mai mult decât precizia cerută, deoarece acestea sunt utilizate doar pentru a comunica şi nu pentru a efectua calculele.

6) Toate transfer de curent 32 biţi într-o declaraţie unică, pe cui l ’ efficienza è massima e din cauza programmi separati possono comunicare în pochi microsecondi.

Fiecare maggiori particolari sui numeri “Pluti” leggere le pagine seguenti.

– – – – – –

Pluti – Unic de precizie, 32 pic, numerele plutitoare

Max pozitive: 3.4028235 E + 38
Min pozitiv: 1.401298 E-45

Negativ maxim: -3.4028235 E + 38
Negativ min: -1.401298 E-45

Max număr întreg depozitate fără erori de rotunjire : +16’ 777 ’ 216
Min întreg depozitate fără erori de rotunjire : -16’ 777 ’ 216

Max număr întreg vizualizate (7 cifre rotunjite): +9’ 999 ’ 999
Min întreg vizualizate (7 cifre rotunjite): -9’ 999 ’ 999

+Zero: 0 00000000 00000000000000000000000 (0000 0000)
-Zero: 1 00000000 00000000000000000000000 (8000 0000)
+Infinit: 0 11111111 00000000000000000000000 (7F80 0000)
-Infinit: 1 11111111 00000000000000000000000 (FF80 0000)

Pozitiv NANS
la: 0 11111111 00000000000000000000001 (7F80 0001)
pentru a: 0 11111111 01111111111111111111111 (7FBF FFFF) (4’ 194 ’ 303 valorile)

Negativ NANS
la: 1 11111111 00000000000000000000001 (FF80 0001)
pentru a: 1 11111111 01111111111111111111111 (FFBF FFFF) (4’ 194 ’ 303 valorile)

Pozitiv NAN
la: 0 11111111 10000000000000000000000 (7FC0 0000)
pentru a: 0 11111111 11111111111111111111111 (7FFF FFFF ) (4’ 194 ’ 304 valorile)

Negativ NAN
la: 1 11111111 10000000000000000000000 (FFC0 0000)
pentru a: 1 11111111 11111111111111111111111 ( FFFF FFFF ) (4’ 194 ’ 304 valorile)

– – – – – –

Valori speciale

IEEE rezervele valorile câmpului exponent de toate 0s şi 1s toate pentru a indica valori speciale în schema de virgulă mobilă.

Zero – Aşa cum am menţionat mai sus, zero nu este direct realizabile în formatul drepte, din ipoteza de lider 1 (avem nevoie pentru a specifica un adevărat mantisă zero pentru a produce o valoare de zero). Zero este o valoare deosebita, numerotat cu un câmp exponent de zero şi un câmp de fracţie de zero. Reţineţi că -0 şi +0 sunt valori distincte, Deşi ambele compara ca egal.

Denormalizate – În cazul în care exponentul este toate 0s, dar fracţiunea este non-zero (altfel acesta ar fi interpretat ca fiind zero), atunci valoarea este un număr denormalizate, care nu au un lider asumate 1 înainte de punctul binare. Astfel, Aceasta reprezintă un număr (-1)s x 0.f x 2-126, unde s este bitul de semn şi f este fracţie. Pentru dublă precizie, numerele denormalizate sunt de forma (-1)s x 0.f x 2-1022. De aici puteţi interpreta zero ca un tip special de denormalizate numărul.

Infinit – Valorile + infinit şi - infinit sunt notate cu un exponent al tuturor 1s şi o fracţiune din toate 0s. Bitul de semn distinge între negativ infinit şi infinit pozitiv. Posibilitatea de a desemna infinit ca o valoare specifică este utilă deoarece permite operaţiuni pentru a continua trecut preaplin situaţii. Operaţiuni cu valori infinit sunt definite în IEEE virgula.

Nu un număr – Valoarea NaN (Nu un număr) este folosit pentru a reprezenta o valoare care reprezintă un număr real. NaN ’ s sunt reprezentate de un model de biti cu un exponent al tuturor 1s şi o fracţiune diferită de zero. Există două categorii de NaN: QNaN (NaN liniştită) şi SNaN (Semnalizare NaN).

QNaN – Un QNaN este un NaN cu setul de biţi fracţiune cele mai semnificative. QNaN ’ s propaga liber prin cele mai multe operaţii aritmetice. Aceste valori pop din o operaţie atunci când rezultatul nu este definite matematic.

SNaN – Un SNaN este un NaN cu Bitul cel mai semnificativ fracţiune clar. Este folosit pentru a semnala o excepţie atunci când sunt utilizate în operaţiunile. SNaN ’ e poate fi la îndemână pentru a atribui neinitializata variabile pentru a prinde prematură de utilizare.

Semantic, QNaN ’ s denotă operaţiunile nedeterminat, în timp ce SNaN ’ s denotă operaţiunile nevalid.

– – – – – –

Operaţiuni speciale

Operaţiuni pe numere speciale sunt bine definite de IEEE. În cazul cel mai simplu, orice operaţiune cu o NaN randamentelor un rezultat de NaN. Alte operaţiuni sunt după cum urmează:

Funcţionarea Rezultatul
n ÷ ±Infinity 0
±Infinity × ±Infinity ±Infinity
±nonzero ÷ 0 ±Infinity
Infinit + Infinit Infinit
±0 ÷ ±0 NaN
Infinit – Infinit NaN
±Infinity ÷ ±Infinity NaN
±Infinity × 0 NaN

– – – – – –

Rezumat

Semn Exponentul (şi) Fracţiune (f) Valoarea
0 00..00 00..00 +0
0 00..00 00..01
:
11..11
Pozitiv denormalizate Real
0.f × 2(-b+1)
0 00..01
:
11..10
XX... XX Pozitiv normalizat Real
1.f × 2(şib)
0 11..11 00..00 +Infinit
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
Negativ denormalizate Real
-0.f × 2(-b+1)
1 00..01
:
11..10
XX... XX Negativ normalizat Real
-1.f × 2(şib)
1 11..11 00..00 -Infinit
1 11..11 00..01
:
01..11
SNaN
1 11..11 10..00
:
11.11
QNaN

Comentariile sunt închise.