Sensores e atuadores comunicar com os conectores chamados Input-Output “PIN”
Os sensores e actuadores comunicar com PIN padrão através 3 apenas os fios. O primeiro condutor (GND) É a massa, o segundo condutor (+5V) Ele está alimentando, o terceiro condutor (SIG) É o sinal. Os pinos são todos iguais e são todos configurados como IN e OUT como.
Os módulos principais têm seis PIN InOut o SlaveServo ter dez módulos eo CapSensor nenhum.
Ao longo de seis Pin está escrito “IN grampos”. Não pode ser confundido por este escrito. Pin Os seis são todos iguais e todos eles são configuráveis, tanto quanto NO, que, como OUT.
Ao fazer as conexões podem ser difíceis de ler escrita, por isso, é bom saber que: em todos os componentes do sistema Theremino, a ligação à terra é sempre perto da borda da placa.
Configurado como pino para fora produzir uma tensão 0 em 3,3 volts, aqueles configurado como EM aceitar tensões de 0 em 3.3 Volts. Se você aplicar a tensões pino de entrada fora desta faixa deve ser confinado no atual 100 uA massimi (com uma resistência de pelo menos 33k perto do PIN) caso contrário, a comunicação USB é perturbado ou pode mesmo parar.
No caso de ligações de longas, também ler Esta página.
Aqui está um exemplo de conexão
Ligue interruptores e botões de pressão com ou sem pullup
Aqui existem duas maneiras de interruptores que ligam, micro interruptor, Reed e botões. A primeira maneira é simples, mas o segundo é mais tolerante ao ruído.
Na parte superior você vê uma conexão direta (definir o pino de entrada com pullup)
Na parte inferior você vê uma conexão através da protecção resistores (definir o pino de entrada sem pullup). A presença de uma resistência de valor muito elevado, em série para o fio “Sinal”, limita a corrente, mesmo em caso de tensões extra-altas (até centenas de volts). Isso garante que a comunicação USB não será perturbado, mesmo na presença de interferência forte, induzida em fios longos, a partir de fontes de energia externas, motores ou relé de potência.
Se você conectar botões, Fizeram medições de tensão (em seguida, a entrada pino configurado como ADC) um 330K resistor iria causar muita queda de tensão, e deve reduzi-la a 33K. Também neste caso, a 10K resistor não iria servir e deve ser eliminado.
Ligue botões em caso de forte ruído elétrico
A solução mostrada na seção anterior protege a comunicação mestre com o PC, mas não impede o ruído pulso curto sendo interpretado por engano, como um fechamento manual do botão.
Assim, em ambientes agressivos, por exemplo no caso em que os fios passam dos botões ao lado dos fios de um solenóide ou um motor de alimentação, também é aconselhável adicionar um capacitor. Este condensador elimina impulsos mais curtos do que um décimo de segundo e aumenta ainda mais a protecção em caso de tensões muito elevadas extra-.
As duas imagens abaixo mostram o diagrama de fiação e a fiação de estas ligações (clique nas imagens para ampliar).
A imagem seguinte mostra como fazer conexões diretamente nos fios (Clique na imagem para uma visão ampliada).
Utilizando um cabo com um conector fêmea, componentes também podem ser soldados diretamente nos fios.
Então você poderia preencher os componentes com um pedaço de bainha termoretráctil.
Alternativamente, você pode usar uma placa de matriz quadrada pequena base.
Lembre-se que quando você usar esses links (com resistência de protecção), você deve definir o pino de entrada sem pullup.
Lembre-se também que, Se em vez de botões que ligam fez medições de tensão (em seguida, a entrada pino configurado como ADC), um 330K resistor iria causar muita queda de tensão, e deve reduzi-la a 33K. Também neste caso, a 10K resistor não iria servir e deve ser eliminado. Além disso, a adição do capacitor limita a largura de banda do ADC para cerca de 10 Hz.
Conexões com Pin mestre e escravos
Tomemos como exemplo de ter que conectar um cabo blindado, para transportar os sinais de três pinos e cinco volts a uma grande distância.
Você poderia intestare o cabo blindado com conectores individuais como visto aqui (Clique nas imagens para ampliar). I com fio azul, A luz amarela e verde são os três sinais, fio vermelho é de cinco volts e do fio verde escuro é a massa.
Mas é uma solução difícil de construir e não confiável. Estas fotos relacionar com um acelerômetro, que ele foi muitas vezes passou de uma bancada de laboratório para outro. Depois de alguns meses, dois dos cinco elementos são quebrados, acima dos conectores que vão para o mestre.
Muito melhor do que sacrificar três extensões padrão:
cabos de extensão cortadas em conectores fêmeas metade fornecer boa qualidade, com os fios bem relacionados e muito robusto. Por uma fração do preço de apenas conectores você pode comprar sacos de dez extensões padrão de Hobby Rei.
As extensões podem ser facilmente conectado aos fios de cabo blindado. Eles cobrem as conexões com bainha termoencolhível e você terá um cabeamento robusta e profissional.
Isso é um fato bem ligado.
Os três fios vermelhos transportar cinco volts e são conectados, todos juntos, o fio vermelho do cabo blindado. Os fios castanhos são a massa e conecte, todos os três, a blindagem do cabo blindado. Os três fios amarelos são o InOut de sinais Pin 1, 2 e 3 e conectá-los a três dos fios internos do cabo blindado.
Do lado oposto do cabo blindado é feita da mesma, com fêmeas obtidos a partir da segunda metade dos cabos.
No caso de ligações de longas, também ler Esta página.
Os módulos escravos e o módulo mestre comunicam via serial
A linha de série fornecido por Theremino Mestre não é um RS232 normal ou RS485. Mas uma linha especial que transmite e recebe em um fio de sinal único, de acordo com o protocolo DPM desenvolvido por nós. Suas vantagens são a alta velocidade de comunicação e auto-reconhecimento de módulos ligados. Mais informações aqui: técnico / protocolo
Muitos módulos escravos pode ser conectado à linha de série do Mestre.
Tal como para sensores, Também para conexões em série, utilizando as extensões de controlo de servo normais, disponíveis a um preço excelente em www.hobbyking.com
Brown = Terra
Vermelho = + 5V
Amarelo = Sinal
Para conexões muito longas ou particulares necessidades de energia, é possível realizar a comunicação serial de dois fios (Massa e sinal), possivelmente em um cabo blindado. Há mais em ligações longas e imunidade a ruídos
Mestre computador e comunicar via USB
Ainda mais mestre podem ser simultaneamente conectados ao mesmo PC através de linhas separadas USB e todos eles serão reconhecidos pela mesma aplicação HAL.
Use as linhas de USB e mais Master permite em alguns casos, para aumentar a velocidade de comunicação. Em outros casos, pode servir para se especializar Mestre alcni para comunicações lentas e se comunicar com outros canais que exigem taxa de atualização máxima.
O cabo USB não deve ser especial, boa qualidade ou particularmente curta. Também tentou cabos longos (10 metros) e as ligações com vários cabos em série (extensões) e todos eles funcionou perfeitamente. O sistema Theremino usa o protocolo USB 2.0, mas foi possível estabelecer conexões sem erro, HUB através normais, Também um USB 1.0.
O programa HAL leva em módulos de comunicação Hardware com slot
L'HAL ( Camada de abstração de hardware ) simplifica a comunicação USB e da complexidade hardware, transformando todos os sinais em números “Carro alegórico” que eles são escritos nas caixas de entrada-saída 0 em 999 nomear “Slot”, ou ler a partir deles e enviado para o hardware.
.
o SLOT
O “Slot” Theremino do sistema são identificados com um número de 0 em 999 Eles são todos parte de MemoryMappedFile Como “Theremino1”.
Cada placa contém uma série “Carro alegórico” que pode ser lido ou escrito por qualquer componente do sistema Theremino.
Neste somente o HAL escreve no slot mas na verdade todos os componentes do sistema podem ler e escrever em qualquer dos slots, embora já utilizado por outro.
O 1000 slots disponíveis são livremente utilizável só há uma regra:
Muitas aplicações e muitos PIN pode ler o mesmo slot, mas você deve evitar escrever muitos no mesmo slot, fazendo isso não quebrar nada, mas você obtém resultados indefinidos.
Se você enviar mais dados flui para o mesmo slot, em seguida, os dados são misturados e ganha o último a escrever, se você deseja mesclar os dados em uma forma ordenada regras são necessárias.
Para estabelecer regras matemáticas e lógicas entre slot, e também para escrever algoritmos de comportamento complexo, usando "Theremino_Script" ou qualquer linguagem de programação como C ++, CSharp, VBNET, VB6, Python o Pascal, mas você também pode usar linguagens visuais como MaxMSP, Processamento de, morder, LabView e EyesWeb.
Para MaxMSP Plugins disponíveis e exemplos aqui: downloads/fundações
Os SLOTs para strings de texto
SlotText são semelhantes aos slots regulares, tem endereços semelhantes (De 0 em 999) e eles são usados de forma semelhante a eles, mas ao contrário dos Slots, que contém números (inteiros ou ponto flutuante), SlotText contém cadeias de caracteres.
Os caracteres usados internamente são do tipo Unicode para permitir a escrita em diferentes idiomas (por exemplo chinês) e use dois bytes para cada personagem.
Cada SlotText pode conter strings de texto até 100 mil caracteres. Se você exceder o 100 mil caracteres em vez do texto uma curta mensagem de erro é escrita.
SlotText não usa o MemoryMappedFile “Theremino1”, mas eles usam um MemoryMappedFiles diferente para cada SlotText. Os nomes desses arquivos variam de “ThereminoSS0” em “ThereminoSS999” (dove ThereminoSS sta per Theremino String Slots).
E, finalmente, SlotText só pode ser usado para se comunicar entre aplicativos e não para se comunicar com HALs e módulos Master ou Arduino..
Atualmente (Junho 2022) os únicos aplicativos que usam SlotText são:
– QRdecoder, que os usa para o texto decodificado pelo código QR e código BAR.
– Automação (da versão 7 em diante), que fornece comandos SlotText para escrever e ler SlotText.
– SlotViewer, que em versões mais recentes podem usar slots numéricos e de texto.
– Cobot, que pode receber comandos de fora e também enviar comandos assíncronos para Automação por meio do evento “Comandos do Cobot”.
Para usar as comunicações entre a automação e o aplicativo COBOT, leia as seguintes páginas no arquivo de instruções de automação:
- SlotText
- Event_CommandsFromCobot
- Os comandos do COBOT para Automação
- Os comandos de automação para COBOT
Na pasta “Fontes” em automação (sempre da versão 7 em diante, que publicaremos até o final de 2021) você encontrará o novo arquivo “Class_ThereminoStrings.vb” que os programadores podem usar para adicionar SlotText aos seus aplicativos também.
I arquivos de memória mapeada
O slot são baseados em “Arquivos de memória mapeada” que são pouco conhecidos mas útil.
comunicando-se através “Arquivos de memória mapeada” É extremamente eficiente, em algumas dezenas de microssegundos, você pode transferir centenas de números “Carro alegórico” entre programas distintos, com diferentes tópicos e escrito em diferentes línguas.
O “Memória arquivo mapeado” chamado “Theremino1” é longo 4096 byte e Contiene i 1000 slots utilizados pelo sistema Theremino. Todos Theremino programas do sistema pode ler e escrever seus dados, sob a forma de números flutuador, em 1000 ranhura deste arquivo.
Cada slot é de quatro bytes de comprimento por isso, quando utilizando funções de memória de baixo nível, multiplique o “Slot” por quatro para obter o índice para os bytes em MemoryMappedFile.
programas de teste e exemplo estão disponíveis, com as fontes, nas principais linguagens de programação. Usando esses exemplos é muito fácil para equipar qualquer programa a capacidade de comunicar com o sistema Theremino.
Também estão disponíveis o “Externo” para Max4 e max5 que são encontradas no arquivo “MaxInstall.zip”. Isso torna possível para se comunicar “remendo” Max com o sistema “Theremino” attraverso i MemoryMappedFiles.
Conexões com fios padrão
Para todas as ligações entre o pino, sensores e atuadores e também para a linha de comunicação serial são muito confortáveis para os normais extensões servo-controles disponíveis a um preço excelente em “www.HobbyKing.com” seção “Hardware e acessórios” / “Fios e tampões” / “fio servo & servo Plugs”
conector macho-fêmea cabo padrão
Brown = Gnd Vermelho = + 5V Amarelo = Sinal
- Para até atual 0.5 uso Ampere 26 AWG (0.13 MMQ)
- Para até atual 1 ou 2 uso Ampere 22 AWG (0.33 MMQ)
Mais informações sobre os cabos de ligação para altas correntes e linhas muito longas, bem como os preços indicativos e links secção: conexão-cabos
I numeri Float
(valores mínimos e máximos válidos para Slots Numéricos)
Os números “Carro alegórico” Eles são números de ponto flutuante de 32 pouco (de precisão simples). O sistema sempre usa Theremino “Carro alegórico” em vez de números “todo” ou “em dobro” pelas seguintes razões:
1) contanto 32 bits são escritos e lidos em uma única instrução do processador e, portanto, não requer mecanismos de sincronização para evitar erros.
2) Embora os números com vírgulas podem conter erros de arredondamento ou sem qualquer número inteiro de -16`000`000 a + 16`000`000 e quebrado, e, portanto, facilmente manter os valores de 0 em 65535 (16 pouco) e mesmo até 24 bits dos melhores sensores e atuadores existentes.
3) Eles podem ser usados para enviar 16 milhões de comunicações diferentes “de serviço” por meio de valores de NaN (não é um número) e NaNs ( sinalização NaN ).
4) Eles também podem conter valores especiais “+infinidade” e “-infinidade”, útil quando os cálculos produzem valores muito elevados.
5) A precisão do “Carro alegórico” é milhares de milhões de vezes maior do que a precisão necessária, porque eles só são usados para se comunicar e não para executar cálculos.
6) Todos fluxo de transferência de processadores 32 bits em uma única instrução, por isso a eficiência é maximizada e dois programas distintos podem se comunicar em poucos microssegundos.
Para mais detalhes sobre os números “Carro alegórico” leia as seguintes páginas.
– – – – – –
Carro alegórico – precisão simples, 32 pouco, Números de ponto flutuante
max positiva: 3.4028235 E + 38
min positiva: 1.401298 E-45
max negativo: -3.4028235 E + 38
min negativo: -1.401298 E-45
Max inteiro armazenado sem erros de arredondamento : +16‘777'216
Min inteiro armazenado sem erros de arredondamento : -16‘777'216
Max inteiro visualizado (7 dígitos arredondado): +9‘999'999
Min inteiro visualizado (7 dígitos arredondado): -9‘999'999
+Zero: 0 00000000 00000000000000000000000 (0000 0000)
-Zero: 1 00000000 00000000000000000000000 (8000 0000)
+Infinidade: 0 11111111 00000000000000000000000 (7F80 0000)
-Infinidade: 1 11111111 00000000000000000000000 (FF80 0000)
NANS positiva
De: 0 11111111 00000000000000000000001 (7F80 0001)
Para: 0 11111111 01111111111111111111111 (7FBF FFFF) (4‘194'303 valores)
NANS negativo
De: 1 11111111 00000000000000000000001 (FF80 0001)
Para: 1 11111111 01111111111111111111111 (FFFF FFBF) (4‘194'303 valores)
positiva em
De: 0 11111111 10000000000000000000000 (7FC0 0000)
Para: 0 11111111 11111111111111111111111 (7FFF FFFF ) (4‘194'304 valores)
em negativo
De: 1 11111111 10000000000000000000000 (FFC0 0000)
Para: 1 11111111 11111111111111111111111 ( FFFF FFFF ) (4‘194'304 valores)
– – – – – –
Valores especiais
valores de campo reservas expoente IEEE de todos os 0s e 1s para denotar valores especiais no esquema de ponto flutuante.
Zero – Como acima mencionado, zero não é diretamente representável no formato reto, devido à suposição de um líder 1 (precisamos especificar um verdadeiro mantissa de zero para produzir um valor de zero). Zero é um valor especial denotado com um expoente campo de zero e um campo fracção igual a zero. Observe que -0 e +0 são valores distintos, embora ambos são considerados iguais.
denormalized – Se o expoente é todos os 0s, mas a fracção é diferente de zero (então ele seria interpretado como zero), em seguida, o valor é um número desnormalizado, que não tem um líder assumido 1 antes do ponto binário. portanto, isto representa um número (-1)s × 0.f × 2-126, onde s é o bit de sinal e f é a fração. Para precisão dupla, denormalized números são da forma (-1)s × 0.f × 2-1022. A partir desta você pode interpretar zero como um tipo especial de número desnormalizado.
Infinidade – A valores + infinito e -infinity são denotadas com um expoente de todos os 1s e uma fracção de todos 0s. O bit de sinal distingue entre infinito negativo e infinito positivo. Ser capaz de denotar o infinito como um valor específico é útil porque permite operações para continuar situações de estouro do passado. As operações com valores infinitos são definidos no IEEE ponto flutuante.
Não é um número – O valor NaN (Não é um número) é usado para representar um valor que não representa um número real. NaN do são representados por um padrão de bits com um expoente de todos os 1s e uma fração diferente de zero. Existem duas categorias de NaN: QNAN (calmo NaN) e Snan (NaN sinalização).
QNAN – Um QNAN é um NaN com o conjunto fracção bit mais significativo. propagar de QNAN livremente através da maioria das operações aritméticas. Esses valores saem de uma operação quando o resultado não é matematicamente definido.
Shnn – Um Snan é um NaN com o bit fração mais significativa clara. Ele é utilizado para assinalar uma excepção, quando utilizado em operações. Snan de pode ser útil para atribuir a variáveis não inicializadas ao uso prematuro armadilha.
semanticamente, operações indeterminadas denotam do QNAN, enquanto as operações inválidos denotam do Snan.
– – – – – –
Operações Especiais
Operações em números especiais são bem-definida pelo IEEE. No caso mais simples, qualquer operação com um NaN produz um resultado NaN. Outras operações são as seguintes:
Operação | Resultado |
n ÷ ± Infinito | 0 |
± Infinito × ± Infinito | Infinito ± |
± diferente de zero ÷ 0 | Infinito ± |
Infinidade + Infinidade | Infinidade |
± 0 0 ± ÷ | NaN |
Infinidade – Infinidade | NaN |
± Infinito ÷ ± Infinito | NaN |
± Infinito × 0 | NaN |
– – – – – –
Resumo
Placa | Expoente (e) | Fração (f) | Valor |
0 | 00..00 | 00..00 | +0 |
0 | 00..00 | 00..01 : 11..11 |
Positivo desnormalizado real 0.f × 2(-b+1) |
0 | 00..01 : 11..10 |
XX..XX | Normalizado positivo real 1.f × 2(e–b) |
0 | 11..11 | 00..00 | +Infinidade |
0 | 11..11 | 00..01 : 01..11 |
Shnn |
0 | 11..11 | 10..00 : 11..11 |
QNAN |
1 | 00..00 | 00..00 | -0 |
1 | 00..00 | 00..01 : 11..11 |
Negativo desnormalizado real -0.f × 2(-b+1) |
1 | 00..01 : 11..10 |
XX..XX | Negativo Normalizada real -1.f × 2(e–b) |
1 | 11..11 | 00..00 | -Infinidade |
1 | 11..11 | 00..01 : 01..11 |
Shnn |
1 | 11..11 | 10..00 : 11.11 |
QNAN |