Posts

Showing posts with the label RC CAR

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

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

[Arduino] - rc car 만들기

Image
Arduino로 넘어오면서 원점으로 돌아왔지만 훨신 깔끔해졌다. nRF 모듈과 Arduino Pro Mini 등을 이용했다. 라즈베리 파이로 만들었을때 보다 라이트 한 느낌이다. 아쉬운 점은 nRF은 3.3v 로 작동하지만, 가지고 있던 프로 미니는 5v 였다. 작동전압이 3.3v 인 프로 미니가 있으면 좀더 간단하게 만들 수 있다. 원래는 테스트만하고 기판을 따로 만들어 줄 예정이었지만 Arduino Pro mini는 3.3출력이 없고, 빵판 파워 서플라이가 3.3를 뽑아줄 수 있기 때문에 그대로 사용했다. 스위치도 달려있고 좋다. 빵판으로 들어오는 전압은 ESC에 달려있는 BEC의 전압(6v)을 사용한다. nRF24l01 nRF를 연결한 Arduino의 핀번호다. 송신측과 수신측 모두 같은 핀을 사용했다. Servo는 5번 ESC의 시그널 핀은 6번을 사용하였다. 보기쉽게 적어 놓았으니 잘못 연결할 일은 없다. ESC 전자변속기로도 불리는 ESC에는 기본적으로 모터에 연결되는 2선(브러시드) 혹은 3선(브러시리스), 전원입력 단자(사진 deans), 스위치, 컨트롤러 선을 포함한 BEC단자가 있다. 위 사진속 제품 가장 오른쪽에 검정(Ground), 적색(6v), 흰색(Signal) 단자가있다. 참고로 BEC의 전원선은 입력이 아니고 출력선이다. 수신기로 부터 흰색 선으로 심호만 입력받는다. Servo Servo모터는 일반적으로 황적갈의 3가지선을 갖고 있다. 적색은 전압(4.5~6v), 갈색은 그라운드(GND), 황색이 신호선(Signal)이다. Servo모터의 전원는 ESC의 BEC에서 출력되는 6v를 사용했다. 회로가 역 전압이 발생할 수 있는 구조라면 입력 전원을 별도로 사용하는 것이 좋다. 다이오드를 다는 것도 좋은 방법이겠지만, 심하면 Arduino가 고장이 날 수도 있다. 따라서 아두이노와 다른 부품...

RC CAR 섀시 변경

Image
로봇 자동차의 섀시를 변경했다.  이유는 너무 지저분했기 때문다.  위 사진은 저번에 카메라를 올렸을때 찍은 사진이다. 무게중심이 뒤 쪽으로 치중되었고 앞 쪽은 너무 가벼워서 구동시 샤프트의 움직임이 부드럽지 못했다. 또한 급경사를 오르다 넘어지기라도 하면 카메라 케이블에 손상이 생길만한 상황이 쉽게 발생한다. 앞 쪽으로 무게를 분산시키려 했으나 번번히 실패했다. 섀시를 교체하는 것은 상당히 번거로운 작업이다. 새로운 섀시가 튜브 형태라 내부에 컴퓨터를 배치할 것이다.  하지만 모든 하드웨어를 배치하기에 충분할것이라 생각 했는데 예상보다 좁았다.  아무래도 Rapsberry Pi 3 는 너무크다.  최근에 친구가 Pi Zero 가 새롭게 나온다고 했는데 한번 생각해보아야겠다. 이번에도 1mm짜리 포맥스의 힘을 빌렸다.  튼튼하고 재단이 쉽기 때문에 원하는걸 만들 수 있었다.  덕분에 카메라 틸트를 비교적 깔끔하게 설치했다. 너저분 했던 선들도 가려져서 훨씬 깔끔해 보인다.  재조립을 하면서 샤프트릐 고무밴드가 상했는지 어디에 긁힌건지 찢어져  있었다.  대용품이 없기때문에 기타줄로 묶었다. 방수지만 ESC를 밖으로 배치한건 마음에 들지 않는다. 지금은 저렇게 두기로했다.  작업을 모두 마치고 정상작동을 하는지 테스트를 하는데 카메라에 문제가 발생했다. 전원은 들어오는데 스트리밍이 안되고 사진 저장이 되질 않았다.  원인 파악을 위해 콘솔에 직접 명령을 주었다. raspistill -p 100,100,400,400 -o /media/pi/PIC/Test.png 정상적이라면 데스크톱 화면 100,100,400,400, 위치에 미리보기가 나타나고 경로 /media/pi/PIC 에 Test.png 라는 이름으로 찍힌 사진이 저장되어야한다. 하지만 아래와 ...

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

Image
#7 카메라 틸트 카메라를 사용하는 방법을 알았으니 이제 로봇에 마운트를 시켜야 한다. 물론 그냥 달아 주기만 해도 멋지지만 서보 모터를 장착한 카메라 틸트를 이용하면 로봇이 큰 이동없이 제자리에서 주변을 둘러 볼 수 있다.  문제는 시중의 틸트들은 대부분 가격이 만만치가 않다.  거기다 마음에드는 구조일수록 고가였다. 까짓거 만들자는 생각이 들었다. 틸트 프레임은 포맥스를 이용해 제작하였다. 포맥스는 칼로 자를 수 있을 만큼 재단이 쉽고 내구성도 좋다. 또 생상도 다양해 선택의 폭이 넓다.  틸트는 파츠별로 제작하여 조립식으로 만들었다. 틸트는 1mm 포맥스 2장을 겹쳐서 만들었고, Pi Cam 구입시 딸려오는 마운터를 마운트 할 수 있도록 만들었다.  토션 스프링은 기타줄을 잘라 만들었다. 안쪽의 서보모터는 록타이트 로 붙여진 것이 아니라 추후에 틸트가 업그레이드 될 수도 있기때문에 끼워서 고정되는 방식으로 제작하였다. (록타이트는  제질에 따라 부품이 손상될수도 있다. ) 하단의 서보모터는 스크류 나사로 고정되어있다. 서보 컨트롤러 선을 각각의 핀에 할당  해주고 Dual Shock 4로 컨트롤 할 수 있도록 조건문을 작성해 준다. 입력 펄스값은 본인이 어떤 각도를 기준으로 삼았냐에 따라 다르다. 다음 코드는 카메라 틸트 부분만을 캡쳐한 것으로 L2, R2가 0보다 작거나 같으면 펄스값을 0으로 만들어 틸트가 컨트롤러(Dual Shock 4)의 입력으로 움직이지 않도록  해준다.   이는 Dual Shock 4의 오른쪽 Axis를 로봇의 앞 바퀴의 방향전환을 담당하는 서보와 함께 이용하기 때문이다.   주변 환경의 관찰이 필요할 시에  L2, R2을 당겨서  카메라의 방향을  오른쪽 Axis로  조종 할 수 있도록 한...

[Raspberry Pi] - rc카 만들기 #6 카메라(Pi Cam)

Image
 #6 카메라(Pi Cam) 이번에는 로봇에 카메라를 달아 볼 것이다. 카메라의 쓰임은 원격 조종시 로봇 주변 환경의 탐사와, 동영상 혹은 스틸컷을 데이터로 남기기 위함이다. 또한 로봇에 장착된 AP에 접속한 기기들은 실시간 스트리밍 영상을 볼 수 있다. 카메라를 사용하시위해서는 환경 설정에서 카메라를 활성화 시켜주어야한다. 환경설정 - 인터페이스 옵션에 있다. sudo raspi-config 코드는 듀얼 쇼크(DualShock4) 기준으로 작성되었다. square 버튼다운시 스틸컷을 찍어 날짜 및 시간을 이름으로 외부 저장 장치에 저장된다. circle 버튼다운시 동영상 스트리밍을 시작한다.  왜 스크립트를 따로 만들어야 하는지는 조금있다 설명하겠다. cross 버튼다운시 스트리밍을 종료한다. if  joystick.get_button( 0 ):      #print("spuare pressed")     now  =  time.localtime()      file   = '%04d-%02d-%02d-[%02d.%02d.%02d]'  % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)      print ( 'picture time'   +   file   +   '.png' )     call( 'sudo raspistill -v -p 100,100,400,300 -o...

[Raspberry Pi] - rc카 만들기 #5 진행상황

Image
초반에는 배터리팩 하나로 Raspberry Pi, Servo, ESC 모두 구동하는 것 이었으나 ESC 최대 출력 로드시 배터리 파워를 혼자 독식하게 되면서 Raspberry Pi의 파워가 순간 끊겨 재부팅 되는 문제가 발생했다. 안정적인 작동을 위해선 Raspberry Pi의 전원은 별도로 공급 해주는 것이 좋다. 12V 배터리 팩에 연결하여 SDM을 이용해 5V로 컨버팅 후 Servo에 공급해준다. 오래되서 그런지 배터리 소모가 빠른 Dual Shock 4를 SDM의 USB  단자를 통해 충전 할 수 있게 되었다. 아직 최종 적인 모습도 아니고 모든기능이 구현 된 것도 아니다. Picar의 목적은 처음 시작은 단순히 이동하는 로봇 이었지만 지금은 AP가 필요한 지점에 이동하여 네트워크에 접속 할 수 있도록 해주고, 카메라를 탑재해 스트림 화면을 통해 원격 구동을 원활하게 만들 예정이다. Picar의 Camera Stream, WiFi Access Point 등의 기능이 구현 중에 있다. Thx .

[Raspberry Pi] - rc카 만들기 #4 라즈베리 파이 부팅시 자동실행(Raspberry Pi Autostart)

Image
 #4 라즈베리 파이 부팅시 자동실행 지난번까지 작성한 스크립트를 Raspberry Pi가 부팅하면서 알아서 실행하도록 해보겠다. 우선 Raspberry Pi가 켜질때 스크립트 혹은 데몬을 자동으로 실행 시키는 방법에는 여러가지가 있다. 우선 시작하기 전에 자신이 작성한 코드가 정상적으로 작동하는지 확인을 한다. 데스크톱 화면이 나올때 실행하는 방법 프로그램 경로를 모르겠다면 whereis 나 which 명령어를 이용하면 알수있다. sudo nano /etc/xdg/lxsession/LXDE-pi/autostart @program root nano 편집기로 연후 경로를 포함해서 프로그램을 적어주면된다. @sudo /usr/local/bin/ds4drv @python  /home/pi/rc.py & rc.local을 편집해 부팅시 실행하는 방법 sudo nano /etc/rc.local 먼저 스크립트 상단에 다음과 같이 추가해준다. 스크립트나 데몬 뒤에 " &" 를 붙이는 이유는 파이가 부팅중에 루프에 빠지는 것을 막기 위함이다. 파이선 코드 맨위에 #!/usr/bin/env python 을 적어주면 명령어 앞에 python 없이 실행이 가능해진다. #!/usr/bin/env python call("sudo pgpio", shell=True) call("sudo ds4drv &", shell=True) #!/usr/bin/env python import  time from  subprocess  import  call   print ( "ds4drv load" ) call( "sudo /usr/local/bin/ds4drv &" , shell = True) ...

Popular posts from this blog

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

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

짱구개미 사육장에 위치한 브리기테 동상