ASRock BC-250 보드 RAZER CORE X CHROMA 에 설치하기 5

주문 제작 하였던 브라켓이 도착하였다.  재질은 철이 아니고 알루미늄이라 그런지 상당히 가볍고 잘못하면 휘어질 것 같은 느낌이 든다. 제작하고 수령하기 까지 거의 3주라는 긴 시간이 걸렸다. 원래 이렇게 까지 걸리진 않는데 원인은 가공 엔지니어로 부터 온 메일을 확인하지 않고 3일이나 흐른 뒤에 답장을 하였고, 연말 기간도 걸려서 늦어져 버렸다. BC-250 카드에 기존 브라켓을 제거하고 새로 설계한 브라켓을 달아보니 아주 잘 맞았다. 버튼도 잘 눌리고 이더넷, USB, DP 포트 모두 사용에 문제가 없다. 이렇게 보고 나서 알아차린 부분이지만 하단 쪽에 고정 다리를 추가한다는 것을 빼먹었다. 다시 만드는 건 금액도 만만치 않았기 때문에 수정해서 발주를 다시 넣지는 않을 예정이고 튼튼하게 고정하기 위해 다른 솔루션을 찾아 보려고 한다. 사실 브라켓을 설계한 건 설치 문제도 있지만 완성된 시스템이 외관상으로 봤을 때 튀는 부분 없이 완성도가 높아 보이길 원했기 때문이다. 이렇게 보니 모양도 그럴싸하고 원래 이런 제품일지도 모른다는 착각도 든다. 타공 모양도 벌집 모양으로 했으면 더 완벽했겠지만 만드는 동안에는 그런 생각 없이 만들었기 때문에 큰 후회는 없다. 장착 되어있던 USB 허브 보드 대신 사용될 PCB도 도착하였다. 기존 허브 보드와 비교하자면 사이즈만 많이 커졌지만 브라켓과 호환이 되는지 확인하였고 장착하는 데는 문제가 없을 것으로 예상하고 있다.  지금 보니 오디오 앰프가 꼭 있어야 했는지 살짝 욕심이 과했다는 생각도 든다. 조립에 사용될 부품들은 아직 수급 중이며 차근차근 조립을 해 나갈 예정이다. 먼저 설계했던 PSU 전원 컨트롤 보드는 다음과 같이 장착 되었고 주요 동작에는 큰 이상이 없으나 몇 가지 수정 사항이 생겼다. 수정 사항은 허브 보드을 새로 설계하면서 발생한 것으로 두 보드 간에 별도의 통신 선이 연결된다. 사실 이렇게 기능을 분리할 필요는 없었는데 첫 번째로 만든 보드에서 하드웨어 적으로 누락된 기능이 있기 때문에 허...

[Raspberry Pi] - rc카 만들기 #7 카메라 틸트 만들기 (Camera Tilt)





#7 카메라 틸트



카메라를 사용하는 방법을 알았으니 이제 로봇에 마운트를 시켜야 한다.
물론 그냥 달아 주기만 해도 멋지지만 서보 모터를 장착한 카메라 틸트를 이용하면 로봇이 큰 이동없이 제자리에서 주변을 둘러 볼 수 있다. 
문제는 시중의 틸트들은 대부분 가격이 만만치가 않다. 
거기다 마음에드는 구조일수록 고가였다. 까짓거 만들자는 생각이 들었다.

틸트 프레임은 포맥스를 이용해 제작하였다.
포맥스는 칼로 자를 수 있을 만큼 재단이 쉽고 내구성도 좋다.
또 생상도 다양해 선택의 폭이 넓다. 
틸트는 파츠별로 제작하여 조립식으로 만들었다.





틸트는 1mm 포맥스 2장을 겹쳐서 만들었고, Pi Cam 구입시 딸려오는 마운터를 마운트 할 수 있도록 만들었다. 토션 스프링은 기타줄을 잘라 만들었다.




안쪽의 서보모터는 록타이트로 붙여진 것이 아니라 추후에 틸트가 업그레이드 될 수도 있기때문에 끼워서 고정되는 방식으로 제작하였다. (록타이트는 제질에 따라 부품이 손상될수도 있다.)




하단의 서보모터는 스크류 나사로 고정되어있다.
서보 컨트롤러 선을 각각의 핀에 할당  해주고 Dual Shock 4로 컨트롤 할 수 있도록 조건문을 작성해 준다. 입력 펄스값은 본인이 어떤 각도를 기준으로 삼았냐에 따라 다르다.

다음 코드는 카메라 틸트 부분만을 캡쳐한 것으로 L2, R2가 0보다 작거나 같으면 펄스값을 0으로 만들어 틸트가 컨트롤러(Dual Shock 4)의 입력으로 움직이지 않도록  해준다. 이는 Dual Shock 4의 오른쪽 Axis를 로봇의 앞 바퀴의 방향전환을 담당하는 서보와 함께 이용하기 때문이다. 주변 환경의 관찰이 필요할 시에 L2, R2을 당겨서 카메라의 방향을 오른쪽 Axis로 조종 할 수 있도록 한다. 

참고로 L2, R2의 값은 1부터 -1까지의 값이며 완전히 눌렸을 때의 값이 1이다.
따라서 L2, R2위의 두 키가 정해진 값이상으로 눌리지 않으면 각각의 서보모터는 작동하지 않는다.

혹은 L2, R2가 눌리지 않았을 때의 idle값으로 가장 최근에 입력받은 펄스값을 입력해주어도 된다. 일단 펄스값이 주어지면 반복문 내에서 약속된 횟수만큼 Raspberry Pi에서 계속 신호를 보내기 때문에 서보모터가 외부 힘에 의해 움직이지 않는다. (서보모터가 낼수있는 토크보다 강한 힘을 가하면 고장남) 반면에 펄스값에 0을 주게 되면 손으로도 쉽게 서보모터를 움직일수 있다.






다음 영상 내 소음은 쿨링 팬 소음이다.
스트리밍도 하고 로봇 제어도 하다보면 60도가 넘어가면서 데몬이 꺼지기도한다.
힘들어서 스스로 꺼버리는거 같다. 팬을 통해 38도 수준으로 다운시킬 수 있었다.







Thx.

Comments

  1. 안녕하세요 컴공4학년 학생입니다.
    서보 모터를 이용해서 파이카메라의 각도를 제어하고
    실시간 스트리밍해서 앱으로 보여주고 싶은데
    지금 하신 프로젝트의 소스코드를 보면 도움이 많이 될거같은데
    제공해 주 실수있을까요..??

    ReplyDelete
    Replies
    1. 대학시절 취미로 만들어본거라 도움은 아마 안될겁니다.

      그래도 보고 싶으시다면 이 곳 에 제가 진행하던 프로젝트의 "극히일부"소스가 있습니다.
      아쉽지만 저때 사정이 좀 있어서 완성본은 없습니다. (프로젝트 업데이트가 2017년도에 끊긴 이유입니다.)

      그리고 이 소스코드는 거의 맨 처음에 작성한 포로토타입 소스코드고 중요한 스트리밍 부분이 누락되었기 때문에 큰 도움은 되지 않을거 같구요.

      하지만 블로그에 있는 소스코드로도 무선 스트리밍에 컨르롤러 조종까지 충분히 구현 가능합니다.
      솔직히 제 깃허브 보다는 블로그 업데이트 기록에있는 소스코드를 보시는 쪽이 더 도움이 되실겁니다.

      Delete

Post a Comment

좋은하루되세요. ^^

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[AD보드] - 맥북 패널을 모니터로 만들기 ( LP154WP4-TLA1 )

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결