Projetor Controlado Serial (RS232)

Oct 07 2020

Tenho um framboesa pi zero W e um projetor NEC PA500U e estou tentando configurar uma instalação de apresentação de slides semipermanente. Meu principal problema agora é fazer com que o pi se comunique com o projetor via códigos de controle RS232, a fim de ligar e desligar o projetor e definir a entrada.

Adquiri esta unidade de interface: https://www.amazon.com/gp/product/B00OPTOKI0/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1e conectei-o de acordo com o diagrama de fiação fornecido. (GPIO 8 para a entrada do conversor, GPIO 10 para a saída do conversor, 3V VCC in e Ground to Ground).

Olhando para algumas pessoas que fizeram algo semelhante, é o que eu tenho para o código para ligar o projetor e definir a fonte para HDMI, no entanto, não está funcionando para mim.

import sys
import serial
import time


ser = serial.Serial(
    port='/dev/ttyAMA0',
    baudrate=38400,
    bytesize=serial.EIGHTBITS,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    )

ser.close()
ser.open()
ser.isOpen()
    

ON=bytearray([0x02,0x00,0x00,0x00,0x00,0x02])
HDMI=bytearray([0x02,0x03,0x00,0x00,0x02,0x01,0x1A,0x22])

ser.write(ON)
received = ser.read(8)
print(received)
time.sleep(15)
ser.write(HDMI)
received = ser.read(8)
print(received)
ser.close

O código parece estar ficando preso na linha

ser.write(ON)

o que, pelo que posso dizer, deve estar correto.

Esta é a página do manual do projetor detalhando os códigos de controle. Estou usando apenas ligar, HDMI e desligar Eu coloquei o RTS e o CTS em curto na extremidade do conversor.

Alguém pode me indicar a direção certa sobre o que posso estar fazendo de errado?

Respostas

3 DmitryGrigoryev Oct 08 2020 at 13:55

Encurtar linhas CTS / RTS não tem sentido, você deve preferir deixá-las desconectadas se não usar o controle de fluxo. Observe que os sinais CTS / RTS estão disponíveis no lado Pi (pinos 11 e 36, respectivamente), mas raramente são necessários e não estão habilitados por padrão.

Eu diria que você tem duas maneiras de depurar:

  1. Obtenha um conversor USB para serial (e talvez conecte-o a um laptop em vez do Pi) para excluir quaisquer problemas de hardware e depurar o protocolo do projetor.

  2. Conecte seu conversor a um computador em vez do projetor para excluir os problemas relacionados ao protocolo e depurar o hardware verificando os dados brutos que estão sendo enviados / recebidos.

O # 2 pode ser substituído por um teste de loopback (encurtando os pinos TX e RX no lado RS232), mas tenha em mente que o conversor provavelmente entenderá seus próprios sinais mesmo se a amplitude e a taxa de transmissão do sinal estiverem erradas.

CalebWest Oct 08 2020 at 06:42

use / dev / serial0 como porta em vez de / dev / ttyAMA0