View on GitHub

deepThinkCar WiKi

멘토와 함께 만드는 자율주행자동차 deepThinkCar

deepThinCar 조립하기

deepThinkCar를 조립하기 전에 박스 안에 포함 되어 있는 키트구성품을 확인합니다. 구매하신 deepThinkCar키트 안에는 다음 사진과 같은 키트 구성품이 있습니다.

deepThinkCar 패킹 리스트

키트의 박스안에는 키트 패킹 리스트가 있습니다. 키트 패킹 리스트와 실제 구성품이 일치하는지 확인합니다. OS SD카드, 여분의 나사는 패킹 리스트에 기록되어 있지는 않지만 필요합니다. 라즈베리파이 보드는 포함되어 있지 않습니다. 별도 구매하셔야 합니다.

조립주의사항: 아크릴판은 깨지기 쉬우므로 나사를 체결할 때 너무 힘을 주어서 체결하지 마시기 바랍니다.

1. 아크릴 본체 상판에 모터보드 연결

패킹 리스트를 통해서 구성품을 확인했으면 그 다음에는 아크릴 본체 상판에 모터보드를 연결 조립합니다. 모터보드를 연결하기 위해서는 다음 구성품이 필요합니다.

motor_board_assy_1

2번 연결부품에는 다음 부품이 포함되어 있습니다. 드라이버와 렌치를 이용해서 이 연결 부품을 아크릴 본체 상판에 장착합니다.

아크릴 본체 상판을 확인 하시고, 아크릴 상판의 사진을 잘 확인해서 연결하시면 됩니다. motor_board_assy_2

2. 앞바퀴 제어용 서보모터 연결

모터보드 연결 다음에는 앞바퀴 제어용 서버모터를 연결합니다. 서보모터를 연결하기 위해서는 다음 구성품이 필요합니다.

servo_assy_1

19번 서보키트에서 서보모터만 준비합니다. 서보키트 안에 있는 여러 암(arm)부품과 나사 부품은 나중에 사용 합니다. 서보모터를 M2x8 볼트/너트롤 아크릴 본체 상판에 고정합니다. 아래 사진의 위치를 참고해서 조립하면 됩니다. 부품이 작아서 조립이 조금 어려운 점 참고하십시오.

servo_assy_2

3. 배터리홀더 연결

서보모터를 조립한 후에는 배터리홀더를 연결합니다. 배터리홀더를 연결하기 위해서는 다음 구성품이 필요합니다. 사용가능한 배터리는 18650 충전배터리입니다. 키트에는 포함되어 있지 않습니다. 별도 구매하셔야 합니다.

battery_holder_assy_1

배터리홀더를 아크릴 본체 상판에서 서보모터와 모터보드가 연결된 반대방향에 부착하고 볼트/너트를 연결합니다. 배터리홀더 연결은 M3x8 접시머리 나사와 M3 너트가 사용됩니다. 배터리홀더에 배터리를 넣기 위해서는 돌출부가 없어야 하므로 접시머리를 사용합니다.

battery_holder_2

4. 라즈베리파이 보드 연결

배터리홀더를 연결한 다음에는 라즈베리파이 보드를 연결합니다. deepThinkCar에 사용할 수 있는 라즈베리파이 보드는 라즈베리파이 3B+, 4B 입니다. 라즈베리파이 제로나 라즈베리파이 3A+ 는 사용할 수 없습니다. 또한 3B+ 이전 보드는 성능 문제가 있어서 사용하지 마시기 바랍니다. 라즈베리파이를 연결하기 위해서는 아크릴 본체 상판(모터보드 결합), 3번 HAT 보드 연결부품, 12번 HAT 보드, 그리고 라즈베리파이 보드가 필요 합니다. 라즈베리파이 보드 연결을 위해서는 다음 구성품이 필요합니다.

라즈베리파이 조립에 필요한 구성품

3번 HAT보드 연결부품은 다음 부품이 포함되어 있습니다. 드라이버와 렌치를 이용해서 이 연결 부품을 아크릴 본체 상판에 장착합니다.

라즈베리파이 보드 아래 사진의 순서대로 연결하면 됩니다. 제일 먼저 M2.5x12 PCB 서포트 4개와 너트 4개를 조립합니다. 그 다음에는 M2.5x12 PCB 서포트 위에 라즈베리파이 보드를 얹고, GPIO 포트가 있는 쪽을 노란색 원의 표시와 같이 M2.5x5 볼트를 체결합니다.

rpi_assy_2_3

라즈베리파이 HAT보드는 나중에 카메라 조립과 연결이 끝이나면 조랍하게 됩니다.

5. 앞바퀴 조립

아크릴 본체 상판에 부탁되는 보드들의 조립이 끝이나면 앞바퀴 어셈블리를 조립할 차례입니다. 앞바퀴 조립을 위해서 필요한 구성품은 다음과 같습니다.

front_wheel_assy_1

먼저 아래 사진과 같이 M4x25 너트, 앞바퀴 홀더, 앞바퀴 튜브를 조립합니다. 앞바퀴가 좌우 대칭이므로 사진과 같이 한쌍의 어셈블리가 마주보고 대칭이 되도록 조립합니다. 그리고 앞바퀴 튜브는 한쪽이 원형으로 되어 있고, 한쪽은 육각형으로 되어 있습니다. 이 육각형 쪽에 앞바퀴를 연결하게 되므로 방향에 주의 하시기 바랍니다.

front_wheel_assy_2

앞바퀴 홀더와 앞바퀴 튜브를 조립했다면 그 다음에는 앞바퀴를 조립하고 M4 self rocking 나사로 고정을 합니다. 이때도 역시 앞바퀴 두개가 서로 대칭이므로 방향에 주의해서 조립합니다. 그리고 M4 self rocking 나사는 self rocking 나사 특성상 체결하는데 힘이 많이 들어갑니다, 조심해서 체결해 주십시오. M4 self rocking 나사를 너무 세게 조이면 앞바퀴와 앞바퀴 홀더가 고정되어 버려서 앞바퀴가 동작을 하지 않습니다. 또 반대로 너무 헐렁하게 조이면 앞바퀴 유격이 심해져서 제대로 자율차 동작을 할 수 없습니다. 따라서 바퀴는 잘 동작하지만 차체에 잘 고정되는 정도로 M4 secl rocking 나사를 조여 주십시오.

front_wheel_assy_3_4 front_wheel_assy_5_6

6. 뒷바퀴 조립

앞바퀴 어셈블리를 조립한 후에는 뒷바퀴를 조립합니다. 뒷바퀴 조립을 위해서 필요한 구성품은 다음과 같습니다.

rear_wheel_assy_1-2

아크릴 본체 하판은 위 사진의 녹색원과 같이 가운데 큰 구멍이 있습니다. 그리고 뒤바퀴 모터는 M1과 M2 두개의 모터가 방향이 있습니다. 조립할 때 주의하셔야 합니다.

rear_wheel_assy_3

먼저 뒷바퀴 모터마운트 부품을 아크릴 본체 하판에 조립합니다. 아래 사진과 같이 마운트 부품은 좌우가 다르므로 사진과 동일하게 주의해서 조립해 주십시오. M3x8 접시머리 볼트 4개와 너트 3개를 사용해서 아래와 같이 조립해 줍니다. 녹색원으로 표시된 것처럼 좌우 구분이 있는 점 주의 하시기 바랍니다.

rear_wheel_assy_4

뒷바퀴 모터마운트를 연결한 다음에는 기어드모터를 마운트에 조립을 합니다. 아래 사진과 같이 뒷바퀴 모터마운트와 기어드모터를 조립합니다. 이 때, M3x30 접시머리 나사와 M3 너트를 사용해서 조립을 합니다. 기어드모터 M1과 M2는 좌우구분이 있으니 아래 설명을 참고해서 주의해서 조립해 주시기 바랍니다. M3x30 접시머리나사를 체결할때 아래 사진과 같이 접시부분이 바깥쪽으로 조립을 해야 합니다.

rear_wheel_assy_5_6

아크릴 본체 하판을 뒤에서 바라볼때 M2모터는 좌측, M1모터는 우측에 부착해야 합니다. 완전히 완성된 모습은 다음과 같습니다.

rear_wheel_assy_7

다 조립이 된다면 뒤바퀴는 아크릴 상판과 하판 사이에 위치하게 됩니다.

IMG_2016

7. 아크릴 본체 하판 PCB 서포터 조립

뒤바퀴 모터를 조립한 다음에는 아크릴 본체 하판 PCB 서포터를 조립합니다. 이 단계에 필요한 구성품은 다음과 같습니다.

20220221_215545

M3 너트 10개와 M3x25 PCB 서포터 10개를 아래 사진과 같이 조립합니다.

rear_wheel_assy_8

8. 카메라 마운트 조립

아크릴 상하판을 완전히 조립하기 전에 카메라 마운트, 카메라를 조립합니다. 먼저 카메라 마운트를 조립합니다. 카메라 마운트 조립에 필요한 구성품은 다음고 같습니다.

camera_mnt_assy_1

아래 사진과 같이 M2x8 볼트/너트 2개를 사용해서 카메라 마운트를 아크릴 본체 상판 앞부분에 조립합니다.

camera_mnt_assy_2

9. 카메라 조립 및 HAT 보드 조립

카메라 마운트를 조립한 다음에는 카메라를 조립합니다. 카메라를 카메라 마운트에 조립하기 위해서는 다음 구성품이 필요합니다.

camera_assy_1

카메라와 카메라 리본 케이블은 아래 사진과 같이 파락색 띠표시가 카메라 렌즈쪽으로 향해야 합니다. 그리고 카메라 마운트에 카메라를 아래 사진과 같이 M2x8 볼트 너트를 사용해서 연결합니다. 그리고 카메라 리본 케이블을 아래 사진과 같이 처리해서 뒤로 뺍니다. 이 케이블의 다른 끝은 라즈베리파이와 연결해야 합니다.

camera_assy_3_4

카메라 리본 케이블은 라즈베리파이의 카메라 커넥터에 아래 사진과 같이 연결합니다. 리본 케이블의 파란색 띠표시가 라즈베리파이의 USB 포트쪽으로 향하게 연결하면 됩니다.

camera_assy_5

카메라 조립이 다 끝이났으면 이제 HAT 보드를 조립합니다. HAT보드를 얹기 위해서 라즈베리파이보드의 아래 사진의 노란색 원처럼 M2.5x12 PCB 마운트를 2개 체결합니다. 사진에는 카메라 케이블이 없지만 케이블이 연결된 상태에서 HAT보드를 조립합니다.

rpi_assy_4

그리고 HAT보드를 라즈베리파이 보드 위에 얹습니다. 이 때 꼭 라즈베리파이 핀과 HAT의 핀이 일치하게 얹어야 합니다. 잘못 얹은 상태로 전원을 인가하면 라즈베리파이의 GPIO 부분이 손상되어 라즈베리파이 보드를 사용하지 못할 수가 있습니다. 따라서 꼭 아래 사진을 참고해서 정확하게 pin과 pin이 맞게 얹어 주십시오.

rpi_assy_5

마지막으로 M2.5x5 볼트로 HAT 보드를 고정해 주면 라즈베리파이보드 및 HAT보드 조립이 끝이 납니다.

rpi_assy_6

HAT보드와 카메라 케이블의 처리는 아래 사진을 참고해서 정리해 주시면 됩니다.

camera_assy_6

10. 뒷바퀴 조립 및 아크릴 상/하판 어셈블리 조립

아크릴 본체 하판 어셈블리에 뒷바퀴를 연결합니다. 뒷바퀴를 연결할 때 뒷바퀴가 하판 구조물에 닿지 않도록 적당히 끼워 줍니다.

rear_wheel_assy_9_10

뒤바퀴 조립후에는 아크릴 상/하판 어셈블리를 조립합니다. 이전 4번 연결 부품의 M3 너트를 사용해서 아크릴 상하 어셈블리를 조립합니다. 앞바퀴 조립 또한 아래 사진을 보고 우선 조립을 해 놓습니다.

total_assy_1_2

11. 앞바퀴 암 조립

아크릴 상/하 아셈블리가 조립되면 비로소 deepThinkCar가 모양을 갖추게 됩니다. 하지만 아직 몇단계가 남아있는데 이번에는 앞바퀴 암과 서보모터 연결을 합니다. 앞바퀴 2개를 앞바퀴 암으로 서로 연결하고 앞바퀴 암을 서보모터에 연결하려면 다음 구성품이 필요합니다.

servo_arm_1_2

이 앞바퀴암과 서보암을 나사로 연결하여 다음과 같이 조립합니다.

servo_arm_3

이렇게 조립된 앞바퀴 암을 deepThinkCar 앞바퀴 쪽에 아래 사진과 같이 조립합니다. 아직 서보암을 서보모터에 완전히 고정하지 않습니다. 최종 조립단계에서 서보모터의 영점을 잡은 후에 서보암을 서보모터에 나사로 고정하게 됩니다.

front_wheel_assy_7_8

12. 배선연결

앞바퀴와 서보모터 연결이 끝이나면 그 다음에는 각종 배선을 합니다. 여러가지 선을 연결해야 하는데 먼저 배터리 전원을 HAT보드에 연결합니다.

battery_power

모터보드와 모터를 연결합니다. M1모터는 모터보드의 M1 커넥터에, M2모터는 모터보드의 M2 커넥터에 연결합니다.

motor_connect

서보모터 커넥터를 연결합니다. 모터보터의 서보모터 커넥타 1번에 연결합니다. 고동색선이 GND 핀으로 연결해야 합니다. 서보 커넥터는 방향에 바뀔수 있으니 주의하시기 바랍니다.

servo_connect

이때 한가지 점검 하셔야 하는것이 녹색점퍼 핀이 “use battery”쪽으로 설정되어 있어야 합니다.

20220221_221957

HAT보드와 모터보드 사이를 연결합니다. 다음과 같이 연결하면 됩니다.

- HAT 모터보드
- I2C Bus (J3) I2C Bus(J2)
- M1(J8) DC M1(J3)
- M2(J9) DC M2(J4)
- Motor Power(J11) Battery 5V(J1)

hat_motor_2

배터리 장착 및 SD카드 삽입

이제 서보 캘리브레이션을 제외하고는 모든 조립이 끝이 났습니다. 이제 서보 캘리브레이션을 위해서 deepThinkCar를 기동시켜야 합니다. 이를 위해서 18650 배터리를 장착해야 합니다. 18650 배터리를 아래 사진과 같이 장착을 합니다. 참고로 deepThinkCar는 병렬연결을 해야 합니다. 18650 배터리는 키트에 포함되어 있지 않습니다. 별도로 구매하셔야 합니다.

battery_install

키트에 제공된 SD카드를 라즈베리파이에 장착합니다. 사진을 참고 해서 SD카드를 장착합니다. deepThinkCar의 구조상 SD카드 장착이 조금 어려우니 주의하시기 바랍니다.

SD_card

서보 영점 잡기

이제 모든 조립이 끝이났고, 서보모터의 영점을 잡고, 서보모터 고정 나사를 체결하면 됩니다. 서보모터의 영점을 잡기 위해서는 먼저 키보드/마우스/모니터를 deepThinkCar에 연결합니다. 그리고 라즈베리파이 보드와 모터보드 전원은 on 합니다. 라즈베리파이 전원은 다음 위치에 있습니다.

라즈베리파이 스위치

모터 보드의 전원은 다음 위치에 있습니다.

모터보드 스위치

라즈베리파이 보드와 모터보드의 전원을 on 했으면 아래와 같이 deepThinkCar가 부팅을 하게 됩니다.

라즈베리파이 부팅

이제 파일탐색기를 열어서 /deepThinkCar 폴더가 있는지 확인 합니다. 만약 /deepThinkCar 폴더가 없으면 터미널을 열고 deepThinkCar 소스코드를 다운 받습니다. 그리고 test_code 폴터로 이동한 다음 assembly_servo_90.py 코드를 실행합니다.


$git clone https://github.com/cobit-git/deepThinkCar.git
$cd test_code
$python3 assembly_servo_90.py

이 assembly_servo_90.py 코드는 서보모터를 영점에 위치하도록 해 줍니다. 이렇게 한 후 서보모터와 앞바퀴 암을 조립하고 서보모터 키트에 포함되어 있던 서보암 고정 나사로 고정하면 됩니다.

서보 조립

조립완료

이제 모든 조립이 완료가 되었습니다. 다음에는 라즈베리파이 VNC 개발 환경을 만들어 보도록 하겠습니다.

링크

라즈베리파이 OS 이미지 만들기
라즈베리파이 소프트웨어 설치 및 셋업
deepThinkCar 조립
deepThinkCar 라즈베리파이 VNC 환경 구축
deepThinkCar 하드웨어 테스트
1단계 OpenCV 차선인식 주행
2단계 차선인식 데이터 라벨링
3단계 딥러닝 트레이닝
4단계 딥러닝 차선인식 주행