1. 시작
예전에 에어소프트건용 자동타겟을 만들어 소개한적이 있습니다.
https://heon2slow.tistory.com/2
이 시스템은 "유선으로" 연결된 메인콘트롤러와 4개의 타겟유닛으로 구성되어 있습니다.
처음에는 문제 없이 잘 사용했지만, 시간이 지나면서 서브유닛과 메인콘트롤러를 연결하는 케이블에서 여러 가지 문제가 발생하기 시작했습니다.
납땜이 떨어지거나, 노이즈로 인해 오작동이 발생하는 등의 문제들이었습니다.
더불어 유선 시스템은 설치나 해체가 번거로웠고, 타겟유닛의 배치에 제약도 많았습니다.
이런 불편함을 해결하고자, 이번 프로젝트에서는 "무선으로" 연결된 시스템으로의 전환을 결심하게 되었습니다.
2. 구성
이번 무선 시스템은 기존 유선 시스템을 그대로 이어받아 1개의 메인콘트롤러와 4개의 타겟유닛 시스템을 그대로 계승합니다.
메인콘트롤러에는 Arduino Nano, LCD 2004, nRF24l01+ 어댑터, 12V 레귤레이터, lm386 앰프와 스피커, 18650 1셀 배터리 체크 모듈, 전원 스위치, 그리고 사용자의 손끝을 즐겁게 해줄 청축 기계식 스위치가 포함됩니다.
기존의 메인콘트롤러가 만족스럽지 않아서, 새로 제작하는 과정에서 여러 가지 기능을 추가하고 개선할 예정입니다.
타겟유닛에 사용할 부품은 Arduino Nano, nRF24l01+Adaptor, 12v Regulator, 18650 1s battery check module, 전원스위치 정도가 됩니다.(타겟 유닛은 기존것에서 기구부를 살리고 내부만 새로 만들기로 합니다..)
대략적인 구상이 끝났으면 배선도를 작성합니다.
예전처럼 Fritzing 같은 소프트웨어를 통해 작업하려다가 그냥 손으로 그렸습니다.
지금은 배선도가 없어도 머리속에 다 있으니 상관없지만 나중에 고장날때를 대비해서 꼭 그려둬야 합니다.
3. 제작과정
3.1 메인콘트롤러
기본적인 구상이 끝났으면 메인컨트롤러를 만들기 시작합니다.
3D 프린터가 없기 때문에, 안쓰고 있는 플라스틱 케이스중 쓸만한걸 찾아서 케이스를 만들기로 합니다.
사격시스템용이므로 택티컬한 모습이어야 그럴싸 할텐데 다행히 RMR 케이스가 하나 있네요.
기존 시스템의 단점 중 하나는 케이스 내부가 비좁고 부품을 고정하는 방식이 불편했다는 점이었습니다.
새로운 디자인에서는 부품들을 케이스에 넣었다 뺐다 할 수 있는 프레임을 만들고, 이를 통해 수리 시 내부 프레임을 꺼내면 배선이 노출되어 수리가 훨씬 쉬워지도록 구상했습니다.
구상이 끝났으면 그 다음으로는 납땜지옥이 시작됩니다.
LCD2004 와 I2C모듈, lm386앰프모듈을 케이스 상단 뚜껑에 배치할 계획입니다.
원래는 LCD만 넣을 계획이었는데 본체의 공간이 협소하여 앰프모듈까지 넣게 되었습니다.
위와 같이 상판에 들어갈 LCD 부분과, 본체의 덮개를 만들었습니다.
메인컨트롤러에 들어갈 파워모듈도 만들어 줍니다.
배터리의 전압을 아두이노에 인가할 수 있도록 12v로 승압하는 승압보드를 포함합니다.
필요한 것들을 하나하나 납땜해 나갑니다
무선통신 모듈인 nRF24l01과 Adaptor보드도 납땜해야 합니다.
nRF24l01만을 사용하려면 3.3볼트가 필요하여 회로가 복잡해지고 배선도 복잡해집니다. 그래서 Adaptor보드를 사용했습니다.
만들어진 파워모듈과 nRF24l01을 배치하여 본체에 접합시킵니다.
그 다음에는 가장 중요한 Arduino nano를 배치하면서 공간이 충분할지 체크합니다.
슬슬 부품배치가 확정된 시점에 케이스 작업을 시작합니다.
바닥면을 커팅하여 하단부에서 배터리를 교체할 수있도록 만들겁니다.
케이스에 잘 들어가는지 넣어보고 배치할 부품들을 손대중으로 배치해가면서 공간이 충분한지 확인해봅니다.
케이스에 현재까지 작업한 것들을 넣어보면서 계속 공간이 충분한지 체크해야 합니다.
공간이 너무 협소하여 까딱 잘못하다간 뚜껑이 안닫히는 사태가 발생할 수 있기 때문입니다.
부품들을 하나 하나 붙여갈때마다 넣었다 뺐다를 수시로 반복하면서 작업을 진행합니다.
배치한 Arduino에도 배치한 부품을 연결합니다.
그 다음으로는 조작버튼 작업을 합니다.
딸깍 딸깍 누르는 손맛이 중요할것 같아서 청축 기계식 스위치를 탑재하였습니다.
이전 버전에서는 그냥 택트스위치를 썼더니 내구성도 좋지 않았고 손맛도 부족했거든요.
덕분에 키감은 아주 좋아졌습니다.
만들어진 버튼을 메인프레임에 부착합니다.
다시 본체로 돌아와서, 스피커도 달아주고, 볼륨조절 가변저항, 배터리체크 모듈, 펌웨어용 USB단자, 전원스위치 등을 배치하고 납땜 및 접합을 해줍니다.
3.2 통신기능 구현
타겟유닛을 만들기 전에 통신기능부터 구현해야 합니다.
힘들게 다 만들었는데 통신이 안되거나 하는 불상사가 있을 수 있기 때문입니다.
아래와 같이 아두이노나노,서보모터,통신모듈만으로 이루어진 간단한 테스트용 시스템을 만듭니다.
아직은 게임모드 등이 전혀 필요 없으므로, 간단한 통신 및 서보동작용 코드만 넣어서 통신 및 서보기능 동작을 위한 코드를 작성합니다.
통신이 잘 되는지 확인합니다.
3.3 타겟유닛 제작
통신이 잘 되는것을 확인했으면 계속해서 타겟유닛을 만듭니다.
타겟유닛은 외형인 기구부 그대로 활용하고 내부만 새로 만들기로 합니다.
기존에는 메인콘트롤러에만 마이크로프로세서가 들어가고 타겟에서는 타겟이 넘어진것만 감지하는 기본적인 스위치의 역할만 하면 되었으나, 이제는 독립적으로 마이크로프로세서가 들어가고 통신모듈 등도 추가되어야 합니다.
들어가야 할 부품을 이리저리 배치해서 최적의 배치를 찾아냅니다.
생각해둔 위치에 부품을 하나씩 하나씩 부착해가며 배선작업을 해나갑니다.
먼저 배터리와 스위치를 달아주었습니다.
배터리 체크모듈과, 전원스위치도 연결해줍니다.
12v승압모듈도 연결해 줍니다.
아두이노 나노도 장착하고 현재까지 부착한 부품을 배선작업 합니다.
통신모듈도 연결합니다.
각 단자를 헷갈리지 않도록 단자별 색상을 다르게 하였는데, 4개의 타겟유닛 제작시 통일되게 만들어야 나중에 헷갈림이 없습니다. (메인하고는 다른 색이네요)
추가로, 서보모터 조절용 가변저항이라던지, 서보모터안정화를 위한 캐패시터 등을 추가하고 배선작업을 완료합니다.
기존과 비교하면 아래와 같습니다.
확실히 사용하는 부품이 많아져서 내부공간이 타이트해 진것을 알 수 있습니다.
서브유닛 1대를 먼저 완성한 뒤에 잘 되나 통신 테스트 해 봅니다.
이제 남은것은 나머지 서브시스템을 모두 제작하는 것과 본격적인 소프트웨어 설계를 하는것입니다.
기존과 같이 5개정도의 게임모드를 넣을 예정이며, 그외 사격점수 계산기나 타이머 등 부가적인 소프트웨어를 넣을 예정입니다. 추가되는 부가기능을 사용하기 쉽도록 UI를 통한 메뉴도 넣으려고 합니다.
기존 시스템의 코드를 재활용하면 좋겠으나 기존의 코드는 만든지 너무 오래되어 지금 코드를 다시 이해하고 무선버전으로 컨버전 하느니 차라리 새로 만드는게 낫겠다 싶어서 새로 작성할 예정입니다.
이번 게시물은 여기까지만 작성하고 다음 게시물에서 완성단계까지 다시 작성하겠습니다.
'직접 만든 물건' 카테고리의 다른 글
기계식 스위치를 버튼으로 사용한 통합 적외선 리모컨 만들기 (0) | 2024.02.27 |
---|---|
Army Staccato C2 슬라이드 노치 강화 (0) | 2024.02.24 |
일렉기타 멀티 이펙터(GE-100)용 12v to 9v 컨버터 제작 (0) | 2022.12.12 |
RC카(타미야 와일드윌리2) 도색 및 LED 개조 (0) | 2022.11.17 |
방 없는 유부남이 거실에 자신만의 작업실을 구축하기 (0) | 2022.09.19 |