본문 바로가기
로봇프로젝트

TinkerCAD를 사용한 Sokoban 로봇 제작 - Sokoban Robot Using L0Cost Robot Controller With FPV - Designed With TinkerCAD

by 모빌리티키즈 2023. 12. 1.
728x90

TinkerCAD를 사용한 Sokoban 로봇 제작

안녕하세요!  모빌리티키즈 입니다.

오늘은 TinkerCAD를 활용하여 Sokoban 로봇을 제작하는 방법에 대해 알려드리려고 합니다. Sokoban 로봇은 컴퓨터 게임인 Sokoban을 실제로 플레이할 수 있는 로봇으로, 폴리스티렌 블록을 푸시하여 창고 안에서 상자를 재배치합니다. 이 게임은 컴퓨터 화면 대신 실제로 로봇을 조작하여 즐길 수 있습니다.

먼저, 이 로봇은 TinkerCAD에서 디자인되었습니다. TinkerCAD를 사용하면 손쉽게 로봇의 베이스를 수정하고 학습 및 플레이를 가능하게 할 수 있습니다. 또한 L0Cost Robot Controller를 사용하여 로봇을 빠르게 작동시킬 수 있으며, 사용자 정의 스크립트, 웹페이지 및 쉬운 확장 경로를 구현할 수 있습니다.

이 로봇에는 카메라가 내장되어 있어 웹페이지를 통해 일인칭 시점으로 제어하거나 로봇이 움직이는 동안 비디오를 확인할 수 있습니다. 제어는 브라우저 기반, 스크립트 기반 또는 휴대용 게임 컨트롤러를 사용할 수 있습니다.

로봇은 매끄러운 표면에서 사용해야 하며, Instructable Portable Robot Arena에서 제안하는 로봇 아레나는 로봇이 실수로 탁자에서 떨어지거나 밟히는 일을 방지할 수 있는 좋은 게임 장소입니다.

만약 TT 모터와 함께 68mm 바퀴가 제공된다면, 대체 디자인을 사용할 수 있습니다. 이 경우 인쇄된 부품 중 스키드의 크기만 변경하면 됩니다.

Sokoban 로봇을 제작하는 방법에 대한 자세한 내용은 블로그에서 확인하실 수 있습니다. 링크를 통해 자세한 설명과 단계별 안내를 확인해보세요. TinkerCAD와 L0Cost Robot Controller를 활용하여 Sokoban 로봇을 제작해보세요. 재미있는 게임과 학습 경험을 만끽할 수 있을 것입니다.

 

공급

ESP32-캠

FDTI 프로그래머 또는 ESP32-CAM-MB는 나중에 프로그래밍 단계를 참조하십시오.

SD 카드 (최대 사양은 최대 4GB이지만 보드는 더 클 수 있음)

스트립보드

PCB 핀 및 소켓

듀퐁 리드

2 x TT 모터 및 40mm 또는 68mm 휠

AAA 배터리 6개 또는 LiPo 배터리 2개(홀더 및 커넥터 포함)

L293D DIL 칩

7400 쿼드 NAND 게이트

14핀 및 16핀 IC 소켓

래칭 푸시 스위치

3D 프린팅 부품, 나중에 파일 목록 참조

M3 볼트 및 너트

지퍼 케이블 타이

옵션: 디지털 전압계

2 x 볼 베어링

Sokoban+Robot+Horizontal+Camera+Mount.stl
0.02MB
Sokoban+Robot+Fixed+Skid.stl
0.05MB
Sokoban+Robot+Camera+Stand.stl
0.07MB
Sokoban+Robot+Camera+Mount+Spacer.stl
0.01MB
Sokoban+Robot+Buffer.stl
0.11MB
Sokoban+Robot+Ball+Bearing+Skid.stl
0.06MB
Sokoban+Chassis.stl
0.34MB
Sokoban+Robot+Vertical+Camera+Mount.stl
0.08MB
Sokoban+Robot+Skid+Spacers.stl
0.03MB
Sokoban+Robot+NiCad+Voltmeter.stl
0.03MB
Sokoban+Robot+NiCad+Battery+Box.stl
0.05MB
Sokoban+Robot+LiPo+Voltmeter.stl
0.05MB
Sokoban+Robot+LiPo+Battery+Box.stl
0.10MB

2단계: L0Cost 로봇 컨트롤러 소개

L0Cost 로봇 컨트롤러는 듀얼 코어 프로세서, Wi-Fi, Bluetooth, SD 카드 리더기, 고휘도 LED 및 디지털 카메라를 포함하는 ESP32-CAM 보드입니다. 이러한 모든 기능은 많은 처리를 할 수 있지만 물리적 인터페이스가 제한된 장치를 만들기 때문에 다른 마이크로 컨트롤러가 전용 제어 기능을 제공하는 다른 로봇에 통신 및 제어 기능을 제공하는 데 활용되었습니다. 구성된 컨트롤러는 전용이 아니라 재사용이 가능하며 서로 다른 로봇 섀시 간에 이동하여 인터페이스를 제공할 수 있습니다.

가장 기본적인 형태로, 컨트롤러는 이 지시에서와 같이 두 개의 서보 또는 두 개의 모터에 대한 로컬 제어를 제공할 수 있습니다.

SD 카드는 원격 액세스 모드, 핸드헬드 컨트롤러 또는 웹 페이지, Wi-Fi 또는 Bluetooth, 클라이언트 또는 액세스 포인트를 설명하는 구성 정보를 저장하는 데 사용되며 필요한 기능을 제공하기 위해 사용자가 코딩하거나 사용자 정의할 수 있는 웹 페이지를 보유합니다. 첨부된 pdf 문서는 SD 카드 내용과 간단한 명령 구문을 설명합니다.

코드 및 컨트롤러에 대한 추가 설명은 github에 있습니다.

L0Cost+Robot+SDcard+Files.pdf
0.45MB
L0Cost+Robot+Command+Syntax.pdf
0.44MB

3단계: ESP32-CAM 테스트

로봇 제작을 완료하기 전에 수평 또는 수직일 수 있는 카메라의 방향을 발견하는 것이 중요하며, 그렇지 않으면 화면에서 카메라 이미지를 보기 어려울 수 있습니다. 이를 위해 ESP32-CAM은 컨트롤러 소프트웨어와 비디오 피드로 프로그래밍됩니다.

먼저 여기 github에서 최신 컨트롤러 소프트웨어를 다운로드하고 Arduino IDE에서 새 프로젝트를 만듭니다. Arduino, ESP32Servo (Kevin Harrington 및 John K Bennett) 및 PS3 Controller Host (Jeffery van Pernis)에 두 개의 라이브러리를로드해야합니다.

SD 카드 세트 files는 재부팅하기 전에 SD 카드에 로드하고 ESP32-CAM에 삽입해야 합니다. github에 Sokoban으로 표시된 예제가 있습니다. 초기 테스트의 경우 로컬 SSID 및 암호를 제공하도록 WiFi.txt 파일을 편집해야 합니다. ESP32를 액세스 포인트 모드에서 사용할 경우 config.txt 파일을 편집해야 이 옵션을 활성화하려면 이전 단계의 L0Cost Robot SDcard Files pdf에 따라 편집해야 합니다.

컨트롤러가 재부팅되면 web 로컬 Wi-Fi 네트워크에서 또는 정의된 액세스 포인트 SSID에 연결한 후 'Sokoban' 페이지. 비디오를 보고 방향을 확인합니다.

Programming+the+ESP32-CAM+board+from+an+Arduino+IDE.pdf
1.21MB

4단계: 컨트롤러 회로 조립

간단히 말해서, LRC의 모터 출력은 한 쌍의 NAND 게이트를 통해 L293D 모터 컨트롤러 IC로 라우팅됩니다. 하나의 출력이 직접 라우팅되어 속도 제어를 제공합니다. 나머지 293개는 로직 게이트를 인버터로 사용하여 신호를 반전시켜 L<>D에 대한 <>개의 입력으로 변환됩니다.

컨트롤러 회로는 스위치와 함께 두 개의 ic 소켓, pcb 핀 및 pcb 소켓을 사용하여 작은 스트립 보드에 조립되었습니다. 가능한 한 모든 장착된 연결부는 그림에서 검은색으로 표시된 장착 구멍을 피하기 위해 스트립을 따라 장착된 연결을 제외하고 스트립을 가로질러 이어집니다.

PCB 핀은 기판 전면에서 세워서 장착할 수 있지만 기판을 통해 장착하고(그림 참조) 후면에 연결하면 연결이 더 쉽습니다.

Sokoban+schematic+2.fzz
0.09MB

5단계: 전원 공급 장치 조립

여기에 설명된 로봇에 전원을 공급하는 데 사용할 수 있는 두 가지 옵션이 있습니다.

  1. 4xAAA NiCad 배터리 직접 사용
  2. LRC 전원 공급 장치에 2 x LiPo 셀 사용, 여기에 설명된 내용.

사진은 NiCad 배터리 상자에 고정되어 컨트롤러 보드에 직접 연결되는 4 x AAA 배터리 홀더를 보여줍니다. 전선에 두 개의 듀퐁 암 커넥터가 장착되어 있어 쉽게 연결하고 재사용할 수 있습니다.

LiPo 전원 공급 장치용 배터리 상자는 올바른 장착 구멍과 함께 이 설명서에 제공되며 회로 및 어셈블리는 원본과 동일합니다.

6단계: 로봇 조립

사진에는 조립을 돕기 위해 번호가 매겨져 있습니다.

끝에 수 듀퐁 커넥터가 있는 모터에 4개의 와이어를 납땜합니다. 이것은 두 개의 와이어를 추가한 다음 수 커넥터를 장착하거나 수 끝이 있는 기존 듀퐁 케이블을 가져와 불필요한 끝을 제거하여 수행할 수 있습니다.

두 개의 모터를 섀시에 끼우고 4 x M3 x 30m 볼트로 제자리에 고정합니다. 볼트는 플라스틱에 대해 제자리에 고정될 수 있지만 각 볼트 끝에 너트를 통합하기에 충분한 길이가 있습니다. 섀시 플라스틱을 과도하게 조이거나 파손하지 않도록 주의해야 합니다. 그런 다음 와이어 커넥터를 지퍼 타이를 사용하여 모터 본체에 고정하여 사용 중 파손에 대한 복원력을 높일 수 있습니다.

나사를 사용하여 바퀴를 차축에 맞춥니다.

인쇄된 스페이서를 사용하여 섀시가 거의 수평이 되도록 피팅을 조정하기 위해 선택한 스키드를 섀시에 앞쪽과 뒤쪽에 하나씩 끼우고 바퀴가 잘 접촉되도록 0.5-1mm의 흔들림이 있어야 합니다. 볼 베어링을 사용하려면 이를 위해 볼 베어링을 장착해야 합니다.

전압계를 사용할 경우 NiCad 또는 LiPo 배터리용 적절한 홀더에 장착하십시오. NiCad 홀더의 경우 카메라 스탠드에 부착합니다.

M3 너트와 2 x M3 x 10mm 볼트를 사용하여 카메라 스탠드와 버퍼를 모두 섀시 전면에 맞춥니다.

선택한 배터리 상자(NiCad 또는 LiPo)를 맞춥니다. NiCad 상자는 후면 스키드 고정 장치에 맞고 LiPo 상자의 경우 후면 스키드를 제거하고 배터리 상자의 구멍을 통해 다시 부착해야 합니다.

이전에 인쇄한 M3 너트, 볼트 및 플라스틱 스페이서를 사용하여 스트립보드 회로를 적절한 카메라 마운트에 부착합니다.

너트와 볼트를 사용하여 카메라 마운트를 카메라 스탠드에 부착한 다음 볼트를 조이기 전에 카메라를 원하는 위치로 조정하십시오.

 

7단계: 배선

       사진은 연결이 어디로 가는지 보여줍니다.

모터를 회로 기판에 연결하고 테스트 중에 모터를 제거하고 교체할 준비를 하십시오.

NiCad 배터리를 사용하는 경우 전압계를 컨트롤러 회로 기판의 전압계 단자에 연결합니다. LiPo 배터리 상자를 사용하는 경우 전압계 연결이 그림에 있습니다.

Nicad의 경우 배터리를 그림에 표시된 컨트롤러 보드의 단자에 직접 연결하고 이것이 올바른 방향인지 다시 확인하십시오. 그렇지 않으면 회로가 손상될 수 있습니다. LiPo 배터리에는 배터리 상자와 컨트롤러 보드 사이에 연결하는 이중 암 듀퐁 패치 리드가 필요합니다.

테스트가 완료될 때까지 연결을 묶지 마십시오.

8단계: 테스트

  1.  
  1. 테스트를 위해 바퀴를 관찰할 수 있지만 아무 것도 만지지 않도록 로봇을 세우거나 잡고 있는지 확인하십시오. 이것은 로봇이 작업대나 테이블에서 달리는 것을 멈추기 위한 것입니다.
  2. 볼륨이tagESP32 보드에 공급되는 e는 약 5V입니다.
  3. 모든 연결이 올바르고 SD 카드가 사용자 지정되었는지 확인한 후 기본 사항은 3단계를 참조하고 전원을 켜면 모터가 잠시 작동하고 Wi-Fi가 연결됩니다.
  4. 웹 브라우저를 사용하여 로봇 웹 페이지에 연결하고 방향 명령을 시험해 봅니다. 하나 또는 두 모터가 잘못된 방향으로 회전하는 경우 해당 휠의 회로 연결을 반대로 하십시오.
  5. 전진 - 두 바퀴가 모두 앞으로 회전합니다.
  6. 왼쪽 - 왼쪽 바퀴가 뒤로 회전하고 오른쪽 바퀴가 앞으로 회전합니다.
  7. 오른쪽 - 왼쪽 바퀴가 앞으로 회전하고 오른쪽 바퀴가 뒤로 회전합니다.
  8. 후진 - 두 바퀴가 모두 뒤로 회전합니다.
  9. 비디오가 작동하고 LED 컨트롤도 작동하는지 확인하십시오.
  10. 전선을 제자리에 지퍼로 묶어 모양을 개선하고 연결을 더 안정적으로 만듭니다.
  11. 이제 로봇을 시험할 준비가 되었습니다. 웹 페이지를 편집하여 사용을 사용자 지정할 수 있으며 개별 명령을 시도할 수 있도록 테스트 웹 페이지가 포함되어 있습니다.

9단계: 게임

Sokoban 게임 레이아웃이 그림에 나와 있으며 더 많은 것을 만들 수 있습니다. 목표는 로봇이 설정된 위치에서 시작하여 상자를 밀어 목표 사각형으로 이동하는 것입니다. 이를 위해 로봇은 다른 상자를 밀어낼 수 있지만 한 번에 두 개 이상의 상자를 밀어서는 안 됩니다. 로봇은 검은색 선으로 둘러싸인 영역을 벗어나지 않아야 합니다. 이러한 제한 사항은 현재 플레이어를 위한 규칙이지만 누구나 이를 개선하고 로봇에 기능을 추가하여 빌드할 수 있습니다.

사진은 시작부터 최종 목표 위치까지 게임의 진행 상황을 보여줍니다. 느슨한 전선은 블록에 걸리거나 연주할 때 걸릴 수 있으므로 느슨한 와이어가 없는지 확인하는 것이 중요하므로 지퍼 타이가 중요합니다.

LRC는 비디오 프레임을 처리할 수 있으므로 선, 모양 및 색상 감지를 추가하여 선 및 물체 추종을 지원하는 데 사용할 수 있습니다.

10단계: 대체 68mm 휠

이 지시 사항은 40mm 휠을 사용했지만 종종 65mm 휠이 TT 모터와 함께 제공됩니다. 이전 설계 지침은 여전히 유효하지만 로봇의 균형을 맞추기 위해 다른 스키드 세트를 사용해야 합니다. 이에 대한 stl 파일이 첨부되어 있으며 이 휠에 대한 TinkerCAD의 디자인이 여기에 있습니다. 이 바퀴는 로봇을 조금 더 넓게 만들기 때문에 게임 보드를 적절하게 확대해야 합니다.

Sokoban+Robot+Fixed+Skid+68mm.stl
0.05MB
Sokoban+Robot+Ball+Bearing+Skid+68mm.stl
0.06MB

11단계: 기타 로봇

L0Cost 로봇 컨트롤러의 목적은 스크립트, 웹 페이지 및 TinkerCAD를 통해 정교한 로봇을 빠르고 쉽게 사용자 정의할 수 있는 재미있는 로봇을 제작할 수 있도록 하여 특정 로봇이 빌더에게 고유할 수 있도록 하는 것입니다. 

728x90