Boa noite pessoal.

Para ajudar um amigo aqui do LdG, comecei a desenvolver um projeto de controle

de um step motor usando o arduino.

Este arduino recebe os dados para controlar o motor via uma interface DMX512.

Um canal do DMX controla a posição do motor de 0 a até 360 graus,

e posiciona o motor de acordo com o ajuste feito no ajuste deslisante do canal.

Um outro canal controla a velocidade com a qual o motor vai para a posição selecionada.

Tudo funcionou corretamente.  O motor ajusta a velocidade e vai para a posição que eu

ajusto dentro da circunferência de 0 a 360 .

Para testar usei um software gratuito que encontrei na net:

https://www.google.com.br/url?.sa=t&rct=j&q=&esrc=s&...

É o Open DMX Theater.

Tudo funciona muito bem, mas somente se eu usar como interface um modulo que tenha

o chip FTDI232.

Com qq outro chip não funciona. Testei com o CH340 tanto instalado no meu UNO qto um

em um USB/TTL.

Fui verificar a pasta onde instalei o software e verifiquei que ele só tem arquivos

para o FTDI.  (FTD2XX.dll,  FTD2XX.H, FTD2XX.lib).

Pensei em copiar arquivos para o CH340, mas a chamada para estes arquivos

deve estar dentro do programa.

Procurei outros softwares na net e os poucos que encontrei usam este mesmo chip.

Alguém sabe ou já usou o DMX512 rodando no PC com saída em USB/TTL que não seja com

FTDI, ou tem alguma solução para "enganar"o soft para pensar que usa o FTDI?

Rui

Exibições: 976

Responder esta

Respostas a este tópico

A questão toda, temo, está no baudrate.

O DMX usa uma velocidade fora do padrão.

Vide:

https://en.wikipedia.org/wiki/DMX512

Ele usa 250 kbit/s

Como pode ser visto na tabela em:

https://en.wikipedia.org/wiki/Serial_port

Não é uma velocidade suportada pelo windows.

Para fazer funcionar com esse kra já houve uma gambiarra, feita dentro desse driver específico.

Acredito que nada seja impossível mas não é banal fazer isso. Se só foi feito para o FTDI possivelmente é pq só com ele conseguiram ou coisa assim.

Enfim, não sei se ajudei, mas digo que apenas um driver para windows não resolve por ser uma velocidade não suportada pelo windows.

Bom dia  Eduardo H. Marcondes,

Ajudou sim. Obrigado.

RV

Oi  Eduardo H. Marcondes

Estive analisando as suas observações, e me deparei com a seguinte questão.

Quem define a velocidade de transmissão é o FTDI232 (ou o CH320G), uma vez que o windows 

vai se preocupar somente em enviar os dados pela USB , que no pior dos casos suporta

até 1.5 Mbs (USB 1) .

O FTDI suporta até 3Mbaud:

 Data transfer rates from 300 baud to 3 Mbaud (RS422, RS485, RS232) at TTL levels.

                    http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf

E o CH340 suporta até 2Mbaud:

CH340 have built-in FIFO buffer, and supports simplex, half- and full-duplex asynchronous communication. The UART interface supports 1 start bit, 5-8 data bits, 1 or 2 stop bits, and odd, even, space or mark parity bits. CH340 supports common baud rates: 50, 75, 100, 110, 134.5, 150, 300, 600, 900, 1200, 1800, 2400, 3600, 4800, 9600, 14400, 19200, 28800, 33600, 38400, 56000, 57600, 76800, 115200, 128000, 153600, 230400, 460800, 921600, 1500000, 2000000 baud. Transmitter baud rate error is less than 0.3%, receiver baud rate error tolerance is at most 2%.

                   https://www.insidegadgets.com/wp-content/uploads/2016/12/ch340g-dat...

E acredito que o software não use como uma serial, e sim como uma USB, se não usaria os drivers

default do Windows e não precisaria do seu próprio drivers.

Faz sentido meu raciocínio?

RV

Até uma certa versão do windows era possivel acessar as seriais diretamete (port 3F8/378 e tal), depois disso passou a ser obrigatorio para o programa windows acessar as seriais do PC por entradas do windows.

Isso foi feito para permitir as seriais virtuais, o windows assumir o driver, o windows poder configurar (por ex mudar de COM).

Assim a abertura da porta serial é feita sempre com uma chamada "buildCommDCB" ( https://msdn.microsoft.com/en-us/library/windows/desktop/aa363143(v=vs.85).aspx )

As linguagens mascaram com outros nomes, mas no fundo é uma chamada indireta dela. E ela não aceita velocidades fora do padrão.

Se o kra fez é pq criou sua propria DLL para o USB que faz chamadas diretas aos registradores do FTDI e faz  um "gato ninja", que não chama a buildcommdcb.

Ainda, na lista de velocidades suportadas pelo CH340 não vi a velocidade 256000bps tem 230400 e depois 460800. Acho que não rola mesmo.

Ainda, o FT232 tem todos os pinos de uma serial (TX, TX, RI, DTR, RTS, etc), não sei se o CH340 tem.

Temo que o José Gustavo Abreu Murta tenha razão. O melhor e mais fácil a fazer é comprar um que use o FTDI mesmo.

Caro Mestre, 

Infelizmente nunca mexi com DMX512. 

DMX512 é mais usado para projetos de iluminação e  cenário em Boates, teatros, etc. 

Normalmente os softwares do Windows estão amarrados com os drivers. 

Será que nesse SW dá para configurar o uso de outra interface ? 

Se não tiver essa opção, acho  muito difícil usar um outro driver que não foi configurado. 

Tenho feito muitos estudos sobre CAN Bus ! Já consegui comunicação entre dois Arduinos usando o CAN Bus.

Veja que as controladoras mais modernas de Motor de passo estão usando essa interface. 

Robôs também tem usado CAN Bus, porque essa interface é muito robusta e versátil. 

Imune à ruídos (ambiente industrial) , alcança longas distâncias e com alta velocidade. 

https://www.can-cia.org/can-knowledge/  

Abraços, 

Gustavo 

Bom dia JGAM.

obrigado pelas dicas.

Mas o amigo que estou tentando ajudar precisa sim de DMX512.

Ele é um amigo que faz uso destas consoles (DMX512)  para iluminação de teatro e festas.

Este protocolo é pouco conhecido porque não é um protocolo seguro.

É recomendado que não use ele em equipamentos que possam colocar pessoas em risco.

Ele envia os dados, mas não faz nenhum check se foram recebidos pelo receptor ou se foram 

corretamente recebidos.

Mas é um protocolo amplamente usados em ambientes de movimento e controle de luzes.

Rui

Caro Rui, 

Não seria mais fácil usar modulo que tenha o chip FTDI232? 

Ou não é possível?

Boa noite JGAM,

o problema é que a maioria dos arduinos UNO, ou usam o Atmega16u, se for o original ou o

CH340G se for o chines.

Rui

Use Arduino NANO. Meus Arduinos NANO são todos FTDI232. 

Abraços, 

Foi isso que falei pro amigo, mas ele disse: "To duro pra comprar outro". kkkkkkkkkk

RV

Véio, tá danado ! Dá um Arduino NANO pro coitado. 

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço