Esse projeto é uma interface sem fio entre duas calculadoras HP50G permitindo o envio de caracteres alfa-numéricos entre elas:
Foram utilizados para isso, módulos TX, RX de 315MHz. Foi preciso usar inversores transistorizados para que, na ausência de caracteres transmitidos, os módulos TX ficassem desligados, liberando a freqüência para outros usos.
Montagem da calculadora no projeto:
As duas calculadoras, cada uma com sua interface: a parte de cima da tela mostra os caracteres transmitidos e, a parte de baixo, os recebidos:
Aqui, os módulos utilizados:
Atrás dos módulos:
Uma placa de fenolite de 10cm x 20cm usada no projeto:
A placa atrás:
O conector RS232 foi improvisado:
Foi necessária a retirada de um capacitor, curto-circuitando-o no módulo RX pois originalmente esses módulos apresentam um ruído de saída que prejudica o funcionamento das UARTS:
É necessário configurar a calculadora p/ trabalhar em 2400 bauds com conexão via fio:
Botão APPS, I/O Functions, Transfer, Port: colocar "Serial", Baud: "2400" NXT, OK;
Botão MODE, FLAGS, em 33: Transfer via wire, OK, OK;
Abaixo o programa que cria algumas variáveis na primeira execução, sendo preciso criar uma pasta específica para ele, no meu caso a pasta HPT.
Esse programa usa um truque, esvaziando o buffer RX logo após a transmissão de um caractere, evitando que ocorram "ecos" com a aparição do mesmo caractere transmitido, na tela de recepção da mesma calculadora.
Como os módulos são iguais, podem ocorrer "colisões" onde o caractere é perdido mas tem uma vantagem que é a possibilidade de se utilizar mais de duas calculadoras na "rede".
Quanto ao alcance, pegou bem do quarto p/ sala e, num corredor de 10 metros.
Vídeo:
O programa para as calculadoras:
%%HP: T(3)A(R)F(.);
\<<
OPENIO
" "
1
DISP
" "
2
DISP
" "
3
DISP
" "
4
DISP
"----------------------"
5
DISP
" "
6
DISP
" "
7
DISP
" "
8
DISP
" "
9
DISP
" "
'STT'
STO
1
'STTL'
STO
1
'STTC'
STO
" "
'SRT'
STO
6
'SRTL'
STO
1
'SRTC'
STO
0
'CH'
STO
DO
KEY
IF
THEN
DUP
17
<
IF
THEN
54
+
ELSE
DUP
24
<
IF
THEN
50
+
ELSE
DUP
34
<
IF
THEN
43
+
ELSE
DUP
45
<
IF
THEN
36
+
ELSE
DUP
56
<
IF
THEN
30
+
ELSE
DUP
66
<
IF
THEN
25
+
ELSE
DUP
75
<
IF
THEN
17
-
ELSE
DUP
85
<
IF
THEN
30
-
ELSE
DUP
95
<
IF
THEN
43
-
ELSE
DUP
103
<
IF
THEN
54
-
ELSE
DUP
104
<
IF
THEN
57
-
ELSE
DUP
105
<
IF
THEN
72
-
ELSE
END
END
END
END
END
END
END
END
END
END
END
END
CHR
DUP
XMIT
DROP
CLOSEIO
OPENIO
STT
STTC
ROT
REPL
DUP
'STT'
STO
STTL
DISP
STTC
1
+
DUP
'STTC'
STO
23
==
IF
THEN
1
'STTC'
STO
" "
'STT'
STO
STTL
1
+
DUP
'STTL'
STO
5
==
IF
THEN
1
'STTL'
STO
ELSE
END
ELSE
END
ELSE
END
BUFLEN
DROP
0
>
IF
THEN
1
SRECV
DROP
CLOSEIO
OPENIO
0
'CH'
STO
NUM
DUP
64
>
IF
THEN
DUP
91
<
IF
THEN
1
'CH'
STO
ELSE
END
ELSE
END
DUP
48
>
IF
THEN
DUP
58
<
IF
THEN
1
'CH'
STO
ELSE
END
ELSE
END
DUP
48
==
IF
THEN
1
'CH'
STO
ELSE
END
DUP
46
==
IF
THEN
1
'CH'
STO
ELSE
END
DUP
32
==
IF
THEN
1
'CH'
STO
ELSE
END
CH
IF
THEN
CHR
SRT
SRTC
ROT
REPL
DUP
'SRT'
STO
SRTL
DISP
SRTC
1
+
DUP
'SRTC'
STO
23
==
IF
THEN
1
'SRTC'
STO
" "
'SRT'
STO
SRTL
1
+
DUP
'SRTL'
STO
10
==
IF
THEN
6
'SRTL'
STO
ELSE
END
ELSE
END
ELSE
DROP
END
ELSE
END
UNTIL 0
END
\>>
Nenhum comentário:
Postar um comentário