|
지난번에는 1 X 4, 4 X 1 무전기, 안테나의 Switching Controller제작 방법을
설명하였습니다 만, 이번에는 보다 다양한 환경에서 사용할 수 있도록 5 x 3, 3 x 5 Cross 연결이 가능한
Switching Controller제작 방법을 알아보도록 하겠습니다.
여기서도 주로 활용하는 Main CPU는 “아두이노 나노”로서 가격대비 성능이
높으며, 입출력 Port가 많아 가용 가능한 최대한의 Port를 사용하여 다 채널의 무전기, 안테나
Switching Controller을 만들고자 합니다. “아두이노 나노”의 규격을 보면 디지털 입.출력 Port가
14개로 되어 있으며, 아날로그 입.출력 Port는 8개로 되어 있습니다.
그러나 통신을 위한 TX, RX Port와 내장된 Led와 연결된 Port를 제외하면
실제 가용 가능한 디지털 입,출력 Port는 11개로서 8개의 아날로그 포트를 모두 합쳐 Full로
사용 한다면 5 x 3 무전기, 안테나 Switching Controller를 제작할 수 있습니다.
물론 이 Switching Controller는 반대로 연결한다면 3 x 5 Switching으로도
활용할 수 있으며, 안테나 Relay역시 Latching Type 또는 일반 Type 어느 것이라도
본인의 무선국 환경에 따라 적절하게 활용할 수 있도록 하여 범용성이
높은 장치로 제작할 수 있습니다.
그 뿐만 아니라, 이 장치의 가장 큰 특징은 무전기와 안테나의 수량이
5 X 3 또는 그 반대 이하라고 한다면 모든 Switching 장치의 Hardware 규격이 꼭 같다는 것입니다.
다른점은 “아두이노 나노”에 Up Load하는 Software에 따라 무선국의
다양한 환경에 따른 역할을 실행할 수 있습니다.
1. 전체 구성회로 (Hardware)
“아두이노 나노”와 몇 개의 저항으로 구성된 매우 간단한 회로입니다.
아날로그 Port에 연결된 8개의 토글 스윗치는 무전기와 안테나를 5:3의 비율로 선택하는 스윗치이며,
5x3, 또는 3x5의 비율로 무전기와 안테나를 Switching할 수 있습니다.
물론 해당 Software를 용도에 맞도록 Up Load 해야 합니다.
출력 Port에 연결된 8개의 Led에는 실제 사용할 Latching Relay와
무전기에 공급할 전원을 제어하기 위한 SSR, 무전기의 RF 출력을 연결하는 Relay를 연결해야 합니다.
앞서 제작한 1x4 Switching 회로의 경우에는 무전기 또는 안테나를 선택하는
스윗치가 하나로 구성되어 있었지만, 여기서는 두 종류의 토글 스윗치가 필요합니다.
용도에 따라 1 무전기에 어떤 종류의 안테나를 연결할 것인가를 토글 스윗치로 결정해야 합니다. 아니면 1
안테나에 어떤 무전기를 연결할 것인가는 전원 스윗치를 넣기 전에 결저왜야 만 합니다.
따라서 이 장치는 5X3의 경우에는 1 무전기에 1 – 5 까지의 안테나를 선택할 수 있고,
2무전기 역시 1 – 5 까지의 안테나, 3 무전기 역시 1 – 5 까지의 안테나를 선택할 수 있으며, 3X5의 경우는 역으로
1 안테나에 1 – 5 까지의 무전기, 2 안테나에 1 – 5 까지의 무전기,
3안테나에 1 – 5 까지의 무전기를 선택할 수 있습니다.
2. System의 전체 구성도
본 장치는 3 X 5 또는 5 X 3 Switching을 지원하는 시스템으로 “아두이노 나노”에 의해
전체 시스템이 제어되고 있다. 그림에서 보는 바와 같이 토글 스윗치에 의해 무전기 하나와
안테나 하나를 선택하여 전원을 on 시키면 선택된 무전기에 먼저 안테나가 접속되고 전원이 공급되어
원하는 장치로 Switching된다. Software 제어 방식으로 두 개 이상의 스윗치를
동시에 넣어도 내부 Software에 의해 먼저 먼저 선택된 무전기와 안테나
하나만 Processing 될 수 있는 안전장치까지 구비하고 있다.
위에서 5대의 무전기에 3개의 안테나를 연결해야 하는 경우는 왼쪽 3개의
토글 스윗치가 안테나를 선택하고, 오른쪽 5개의 토글 스윗치는 무전기를 선택할 수 있으며,
반대의 경우는 위 그림과 같이 결선됨니다.
무전기에서 출력되는 고주파 출력을 Switching Relay는 Latching Relay를
사용할 수도 있고 일반적인 Relay를 사용해도 되는데, 그 차이는 “아두이노 나노”에 Up Load 되어 있는
Software에 의해 좌우 됨니다. 이같이 모든 아마추어 무선국들의 설치 환경이 제각기
다르기 때문에 Hardware는 한가지로 통일하고, 제각각 설치 환경에 따라 Software를
달리해서 어떤 환경에서도 활용할 수 있도록 하고 있습니다.
3. “아두이노 나노”의 스케치 프로그램 실제
“아두이노 나노”는 자체적인 입력장치와 출력 모니터가 없어 일반 PC의 USB에
연결되어 PC의 모니터 화면으로 필요한 프로그램을 작성하고, Compile하여 Up Load하고 있는데,
이제 본 장치에 프로그램하는 에디터 내용을 캡쳐하여 설명하고자 합니다.
“아두이노”의 프로그램 언어는 C 언어를 기반으로 만들어 졌는데, Open Source를
기반으로 다양한 라이브러리가 있어 누구든지 그림을 그리듯 쉽게 접근하여 사용할 수 있다는
뜻에서 이 프로그램언어를 “스캐치”라고도 합니다.
전체 프로그램의 Flowchart는 앞서 설명한 내용과 비슷하기 때문에
생략하기로 하고, 프로그램의 주요 내용을 화면 캡쳐하여 설명하고자 합니다.
스케치 프로그램은 C 언어를 기반으로 하고 있으나, main 함수는 없으며,
setup과 loop로 구성되어 있으나, 이 장치는 전원이 투입되면 한번만 동작한 후 전원 스윗치를 off시키지
않는한 처음의 상태를 그대로 유지하기 위해 loop함수도 생략하고 있습니다.
이와 같이 프로그램화 되어 일단 한번만 동작하면 그 이후로
“아두이노 나노”의 입력 토글 스윗치를 멋대로 조작해도, 무전기가 동작되어 RFI가 입력되어도,
기타 전기기기에서 EMI가 발생해도 처음의 동작상태를 그대로 유지할 수 있어
매우 안정하게 동작할 수 있습니다.
스케치의 첫 순서는 9-19항과 같이 여러 Port중에 어떤 것을
어떻게 사용할 것인가를 선언한 후, 해당 pin의 입.출력 Mode를 설정합니다.
여기에서도 설명의 편의를 위해 프로그램을 짧고 간단하게 작성하여 기교를 부리는 것 보다
1차원적으로 여러 함수들을 흩어 놓고 쉽게 설명하고자 합니다.
9-11항과 13-17항은 무전기 또는 안테나를 제어하기 위한 출력신호의
pin 번호를 정의 해 두고, 여기에 무전기는 SSR의 Led를, 안테나는 Latching Relay 또는
일반 Relay의 Trigger 입력 신호단자를 연결합니다.
22-30항에서는 선택할 Device의 스윗치를 연결하는 pin을 정의하고 있는데,
무전기 또는 안테나를 선택하는 토글 스윗치를 연결할 pin번호를 나타내고 있으며,
입.출력을 위한 pinMode를 설정하고 있습니다.
이제 무전기와 안테의 Relay를 제어하기 위한 입.출격 pin과 Mode가 결정이 되었다면
다음에는 무전기와 안테나를 선택하기 위한 토글 스윗치의 동작 상태를 확인하는 변수를 정의합니다.
이 장치는 입력 아날로그 Port가 Full Down저항으로 5 K ohm의 저항이 연결되어 있으므로
평소에는 0 Level을 유지하고 있어 주위에 있는 각종 RFI, EMI 등 잡음원으로부터 불안정한 동작을 방지하고 있으며,
무전기나 안테나 선택을 위해 토글 스윗치를 on 하면 5 Volt의 전논리 신호가 입력 Port에 연결되면
다음에 있을 if 문을 이용하여 조건 동작을 하게 합니다.
여기서 3X5, 5X3 Switching조건에 따라 64-72항의 안테나선택 스윗치와
무전기 선택 스윗치의 수량이 바뀌어 져야 합니다. 현재 이 화면의 경우는 3x5 Switching 장치이나,
5x3의 Switching을 위해서는 64-68항이 5개의 무전기로 대체되어야 하고,
70-72항은 안테나로 바뀌어 져야 합니다.
위 그림은 이제 입력 토글 스윗치의 on, off 상태에 따라 변하는 스윗치의
변수에 따라 출력 Port에 5Volt의 정논리 신호를 보내는 조건 동작을 하는 함수들인데, 위의 경우는
Latching Relay를 동작시키는 신호의 출력 예입니다.
안테나 Relay의 동작을 확인 해 보면 먼저 무전기나 안테나를 선택하는
1번 스윗치를 on하면 1 스윗치에 5 Volt의 신호가 연결되어 논리적으로 HIGH상태로 변합니다.
스윗치의 입력 변수가 평소에는 Full Down저항으로 인해 0 Level, 즉 논리적으로 LOW상태에서
HIGH상태로 변화하므로 그때는 if문 다음의 함수를 실행하게 되며, 이 상태가 계속해서
LOW상태라면 첫 번째 if 문 함수를 무시하고 두 번째 if 문을 확인합니다.
이제 스윗치의 입력신호 변수 val1이 HIGH로 변하면 Latching Relay 1에
정논리 신호를 1초간 출력합니다. 87-89항에서 그와 같은 동작을 실행하는데, 이때 delay 1000은
1초간 앞의 상태를 유지하라는 뜻인데, 유지하는 시간 1000의 단위는 밀리세컨드입니다.
따라서 이 시간을 필요에 따라 밀리세컨드(ms) 단위로 변화시킬 수 있으며,
이는 Latching Relay의 특성에 따라 적절한 시간 설정을 할 수 있습니다. 본인이 갖고 있는
Latching Relay의 경우는 1초 정도가 적당하였습니다.
그런데 Latching Relay가 아니고 지속적으로 정 논리 신호로 Trigger해야 하는
일반 Relay의 경우는 99번 항의 delay 1000 함수를 삭제하고 100번 항도 같이 삭제합니다.
Latching Relay의 경우 선택하는 Chnnel이 Plus Comm 방식이 일반적이며,
혹시 Minus Comm을 사용할 경우에는 98번 항을 HIGH로 하여 Trigger해야 하며,
반대의 경우에는 98번 항에 digitalWrite(LOW); 함수로 대체해야 합니다.
이와 같은 if 조건문을 현재는 토글 스윗치가 8개가 있으므로 8가지의
조건 동작을 일일이 확인해야 하는데, 프로그램을 하는 기법에 따라 if 문을 사용하지 않고
case 함수를 사용해서 좀더 간편하게 제어하는 방법도 있습니다.
90-93번 항의 토글 스윗치 입력신호 변수 val2 ~ val4를 부 논리 신호를
LOW로 한 이유는 이 시스템의 안정화를 위해서인데, 한번 프로그램이 동작 한 후에는
어떠한 조건으로 입력 선택 토글 스윗치가 변화를 해도 무시하라는 뜻입니다.
따라서 무전기와 안테나를 선택한 후 전원을 넣어 일단 동작을 시작하면
그 후로는 인위적으로 처음의 동작 상태를 변화시킬 수 없습니다. 그 이유는
loop 문이 없기 때문인데 무한 반복을 하지 않습니다.
Software로 제어되는 이 장치는 입, 출력 Port에 연결되는 어떤
Device에도 유연하게 모든 경우를 대체할 수 있으며, Latching Relay이든,
일반 릴레이이든 제어 함수의 문장을 바꾸면 다양한 아마추어무선국의
현장 조건을 모두 충족할 수 있습니다.
그리고 보다 더 많은 수량의 무전기와 안테나를 Switching할 필요가
있을 경우에는 현재 사용하고 있는 “아두이노 나노”의 입.출력 Port가 한계에 달해 있으므로
이 보다 입.출력 Port가 훨씬 많은 “아두이노 메가” 또는 “아두이노 듀에” 등을 이용하면
10 Channel, 20 Channel 등 휠씬 많은 액추에이터를 사용할 수 있으나,
약간의 비용 증가는 감수해야만 할 것입니다.
4. 여러 가지 종류의 시험 제작한 Switching Controller
다양한 조건으로 프로그램을 하기 위해 여러 종류의
Switching Controller를 제작하여 시험을 하였습니다.
결론은 가격대비 성능 좋은 장치를 만들기 위한 Micro Controller는 “
아두이노 나노”가 적당하였으며, 무전기나 안테나를 3종류 정도 Switching 한다면
실용상 큰 문제는 없어 모릴 듯 했습니다.
그러나 “아두이노”와 같은 Micro Controller의 스케치 프로그램은
누구든지 관심을 갖고 약간의 시간 투자를 한다면 쉽게 접근할 수 있기 때문에 자신의 무선국
환경에 알맞은 프로그램을 할 수 있을것으로 확신합니다.
위 그림에서는 왼쪽으로 부터 첫 번째는 4 X 1 Switching,
두번째는 4 X 4, 세번째는 5 X 3 Switching Controller입니다.
위는 5 x 3 는 3 x 5 무전기, 안테나 Switching Controller를 만능기판으로
시험 제작하여 Test를 하였습니다.. 여기서 많은 종류의 Led와 두개의 Dip Switch는
"아두이노 나노"에 실제와 같은 엑추에이터를 부착할 수 없기 때문에 각 Port에서 나오는
신호가 실제 프로그램한 내용대로 출력되는지를 확인하는 것입니다.
위는 4 x 4 무전기, 안테나 Switching Controller를 만능기판으로 제작한여
시험 Test를 하였습니다. 4대의 무전기에 4대의 안테나를 토글 스윗치로 각각 선택할 수 있으며,
Latchin Relay 또는 일반 Relay 어느것이든 Software를 정정하여 사용할 수 있습니다.
5. 제작 후기
“아두이노”는 다 방면에 걸쳐 사용할 수 있습니다. 사실은 본인도 “아두이노”를
접 한지 얼마되지 않으며, 중 2 손자와 함께 학교에서의 숙제문제를 해결하기 위해 손자와 함께 약간의
공부를 한 것 뿐이며, 앞으로도 배워야 할 많은 부분들이 남아 있습니다.
이 번 제작활동을 통해 앞으로는 컴퓨터의 코딩기술을 이용해서 많은
아마추어 무선 동호인들이 현재 사용중인 전통적인 다양한 부가장치들을 Software 코딩기술로
보다 효율적이고 편리한 새로운 장치 기술로 한 단계 더 발전 시킬 수 있는
가능성을 충분하게 발견할 수 있었습니다.
동시에 이제는 이 경험과 기술을 활용할 수 있어 아마추어무선에서
누구나가 필요로 하고 범용성이 있는 다 Channel 무전기, 안테나 Switching Controller를 제작하는
다음 단계로 나갈 수 있어, 다음 기회에는 그 장치와 방법을 발표할 예정입니다.
아울러 이제부터는 본인보다 더 젊고 능력있는 유능한 여러 아마추어무선사들의
활동으로 AI 인공지능 기술을 이용해서 편리하게 누구나 사용할 수 있고 보다 효율적이고
다양한 새로운 장치들이 나올 수 있기를 기대합니다.