안녕하세요, 로봇 공학 또는 전자 세계의 초보자입니까? 또는 친구와 교사를 감동시킬 간단하면서도 강력한 프로젝트를 찾고 있습니까? 그렇다면 이곳이 바로 이곳입니다.
이 프로젝트에서 우리는 임베디드 시스템 및 전자 장치의 힘을 사용하여 집이나 직장을 깔끔하고 깔끔하게 유지하는 데 도움이 될 수있는 자체 로봇을 만들 것입니다. 이 로봇은 스마트하게 장애물을 피하고 동시에 바닥을 진공 청소기로 청소할 수있는 간단한 4 륜 진공 청소기입니다. 아이디어는 아래 이미지에 표시된 유명한 진공 청소기 Robot Roomba 에서 영감을 얻었습니다.
우리의 아이디어는 바닥을 청소하는 동안 장애물을 자동으로 피할 수있는 간단한 로봇을 처음부터 바로 만드는 것 입니다. 사람들을 믿으세요. 재미 있어요 !!
필요한 재료 및 구성 요소:
이제 우리는 자동 바닥 청소 로봇 에 대한 아이디어를 염두에두고 우리가 무엇을하고 있는지 알고 있습니다. 이제 어디에서 실행을 시작해야하는지 살펴 보겠습니다. 우리 아이디어의 로봇을 만들려면 먼저 다음을 결정해야합니다.
- 마이크로 컨트롤러 유형
- 필요한 센서
- 필요한 모터
- 로봇 섀시 소재
- 배터리 용량
이제 위에서 언급 한 각 사항을 결정하겠습니다. 이렇게하면 집 청소 로봇뿐만 아니라 상상력을 자극하는 다른 로봇을 만드는 데 도움이 될 것입니다.
마이크로 컨트롤러 유형:
이 컨트롤러가 로봇 의 두뇌 역할을하므로 마이크로 컨트롤러를 선택하는 것은 매우 중요한 작업 입니다. 대부분의 DIY 프로젝트는 Arduino 및 Raspberry Pi를 중심으로 이루어 지지만 동일 할 필요는 없습니다. 작업 할 수있는 특정 마이크로 컨트롤러는 없습니다. 그것은 모두 요구 사항과 비용에 따라 다릅니다.
태블릿처럼 8 비트 마이크로 컨트롤러에서는 설계 할 수 없으며 ARM cortex m4를 사용하여 전자 계산기를 설계 할 가치가 없습니다.
마이크로 컨트롤러 선택은 전적으로 제품의 요구 사항에 따라 다릅니다.
1. 먼저 필요한 I / O 핀 수, 플래시 크기, 통신 프로토콜 수 / 유형, 특수 기능 등과 같은 기술 요구 사항을 식별합니다.
2. 그런 다음 기술 요구 사항에 따라 컨트롤러 목록이 선택됩니다. 이 목록에는 다른 제조업체의 컨트롤러가 포함되어 있습니다. 많은 애플리케이션 특정 컨트롤러를 사용할 수 있습니다.
3. 그런 다음 비용, 가용성 및 제조업체의 지원을 기반으로 컨트롤러를 완성합니다.
무거운 작업을 많이하고 싶지 않고 마이크로 컨트롤러의 기본 사항을 배우고 나중에 깊이 들어가고 싶다면 Arduino를 선택할 수 있습니다. 이 프로젝트에서 우리는 Arduino를 사용할 것 입니다. 이전에 Arduino를 사용하여 여러 유형의 로봇을 만들었습니다.
- Arduino를 사용한 DTMF 제어 로봇
- Arduino를 사용한 라인 팔로워 로봇
- Arduino를 사용한 컴퓨터 제어 로봇
- Arduino를 사용한 WiFi 제어 로봇
- Arduino를 사용하는 가속도계 기반 손 제스처 제어 로봇
- Arduino를 사용한 Bluetooth 제어 장난감 자동차
필요한 센서:
시장에는 각각 자체적으로 사용되는 센서가 많이 있습니다. 모든 로봇은 센서를 통해 입력을 받고 로봇의 감각 기관 역할을합니다. 우리의 경우 로봇은 장애물을 감지하고 피할 수 있어야합니다.
향후 프로젝트에서 사용할 멋진 센서가 많이 있지만, 이제이 두 사람이 로보 카의 비전을 제공 할 것이므로 IR 센서와 US (초음파 센서)에 집중하겠습니다. 여기에서 IR 센서의 작동을 확인하십시오. IR 센서 모듈 및 초음파 센서의 사진을 보여주는 아래:
초음파 센서 는 두 개의 원형 눈으로 구성되며 그중 하나는 미국 신호를 전송하는 데 사용되고 다른 하나는 미국 광선을 수신하는 데 사용됩니다. 광선이 전송 및 수신되는 데 걸리는 시간은 마이크로 컨트롤러에 의해 계산됩니다. 이제 소리의 시간과 속도를 알고 있으므로 다음 공식으로 거리를 계산할 수 있습니다.
- 거리 = 시간 x 소리의 속도를 2로 나눈 값
광선이 동일한 거리를 앞뒤로 이동하므로 값을 2로 나눕니다. 초음파 센서 사용에 대한 자세한 설명은 여기에 있습니다.
필요한 모터:
로봇 분야에서 사용되는 모터는 상당히 많습니다. 가장 많이 사용되는 모터는 스테퍼 및 서보 모터입니다. 이 프로젝트에는 복잡한 액추에이터 또는 로터리 엔코더가 없으므로 일반 PMDC 모터를 사용합니다. 그러나 우리의 배터리는 약간 부피가 크고 무겁기 때문에 4 개의 모터를 사용하여 로봇을 구동합니다. 4 개 모두 동일한 PMDC 모터입니다. 그러나 PMDC 모터에 익숙해지면 스테퍼 및 서보 모터로 설정하는 것이 좋습니다.
로봇 섀시 재질:
학생이나 애호가로서 로봇을 만드는 동안 가장 어려운 부분은 로봇의 섀시를 준비하는 것입니다. 문제는 도구와 재료의 가용성에 있습니다. 이 프로젝트에 가장 이상적인 재료는 Acrylic이지만이를 사용하려면 드릴러 및 기타 도구가 필요합니다. 따라서 모든 사람이 쉽게 작업 할 수 있도록 목재 가 선택됩니다.
이 문제는 3D 프린터 도입 이후 현장에서 완전히 사라졌습니다. 언젠가는 부품을 3D 프린팅하고 같은 사람에게 업데이트 할 계획입니다. 이제는 나무 판을 사용하여 로봇을 만들어 보겠습니다.
배터리 용량:
배터리 용량 선택은 순전히 섀시와 모터에 의존하기 때문에 우리의 마지막 작업입니다. 여기서 우리의 배터리는 약 3-5A와 4 개의 PMDC 모터를 사용하는 진공 청소기를 구동해야합니다. 따라서 우리는 무거운 배터리가 필요합니다. 나는 12V 20Ah SLAB (밀봉 된 납축 전지) 를 선택했고 꽤 부피가 커서 로봇이이 부피가 큰 사람을 끌어 당기기 위해 4 개의 PMDC 모터를 얻었습니다.
이제 모든 필수 구성 요소를 선택 했으므로 목록을 나열 할 수 있습니다.
- 섀시 용 목재 시트
- IR 및 US 센서
- DC 전류로 작동하는 진공 청소기
- Arduino Uno
- 12V 20Ah 배터리
- 모터 드라이버 IC (L293D)
- 작업 도구
- 전선 연결
- 배우고 일하는 열정적 인 에너지.
대부분의 구성 요소는 위의 설명에서 다루고 있으며 아래에서 남은 부분을 설명하겠습니다.
DC 진공 청소기:
우리 로봇은 12V 20Ah DC 시스템에서 실행되기 때문입니다. 진공 청소기는 12V DC 진공 청소기 여야합니다. 어디서 구할 수 있는지 혼란 스러우면 eBay 또는 Amazon을 방문하여 자동차 청소용 진공 청소기 를 구입할 수 있습니다 .
위 그림과 동일하게 사용하겠습니다.
모터 드라이버 (L293D):
모터 드라이버는 Arduino와 모터 사이의 중간 모듈입니다. 이는 Arduino 마이크로 컨트롤러가 모터가 작동하는 데 필요한 전류를 공급할 수없고 40mA 만 공급할 수 있기 때문입니다. 따라서 더 많은 전류를 끌어 오면 컨트롤러가 영구적으로 손상됩니다. 따라서 모터를 제어하는 모터 드라이버를 트리거합니다.
우리는 최대 1A를 공급할 수있는 L293D 모터 드라이버 IC 를 사용할 것이므로이 드라이버는 Arduino에서 정보를 얻고 모터가 원하는대로 작동하도록합니다.
그게 다야 !! 대부분의 중요한 정보를 제공했지만 로봇 제작을 시작하기 전에 L293D 및 Arduino의 데이터 시트를 살펴 보는 것이 좋습니다. 의문이나 문제가 있으면 댓글 섹션을 통해 문의 할 수 있습니다.
로봇 빌드 및 테스트:
진공 청소기는 로봇 배치에서 가장 중요한 부분입니다. 이되어야 경사각 배치 그림에 도시 된 바와 같이 적절한 진공 작용을 제공 할 수 있도록. 진공 청소기는 Arduino에 의해 제어되지 않습니다. 로봇의 전원을 켜면 진공도 켜집니다.
우리 로봇을 만드는 데 지친 과정 중 하나는 나무 작업입니다. 나무를 조각하고 구멍을 뚫어 센서와 진공 청소기를 설치해야합니다.
센서를 연결하기 전에 모터 및 모터 드라이버를 배치 한 후 다음 코드로 로봇 을 테스트 라이드하는 것이 좋습니다.
void setup () {Serial.begin (9600); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); pinMode (12, OUTPUT); } void loop () {delay (1000); Serial.print ("forward"); digitalWrite (9, HIGH); digitalWrite (10, LOW); digitalWrite (11, HIGH); digitalWrite (12, LOW); 지연 (500); Serial.print ("backward"); digitalWrite (9, LOW); digitalWrite (10, HIGH); digitalWrite (11, LOW); digitalWrite (12, HIGH); }
모든 것이 잘 작동하면 회로도에 표시된대로 센서를 Arduino 와 연결 하고 끝에 제공된 전체 코드를 사용할 수 있습니다. 보시다시피 초음파 센서를 전면에 장착하고 두 개의 IR 센서를 로봇의 양쪽에 장착했습니다. IC가 빠르게 가열되는 경우를 대비하여 방열판이 L293D에 장착됩니다.
이와 같은 부품을 몇 개 추가 할 수도 있습니다.
이것은 Sweeping Arrangement 입니다. 측면을 따라 먼지를 흡입 영역으로 밀어 넣는 앞 부분의 양쪽 끝에 배치 할 수 있습니다.
또한 이 진공 청소 로봇 의 더 작은 버전을 이와 같이 만드는 옵션도 있습니다.
이 작은 로봇은 판지로 만들어져 ATMega16 개발 보드에서 실행됩니다. 진공 청소기 부분은 BLDC 팬을 사용하여 이루어졌으며 상자에 포장되어 있습니다. 예산을 낮게 유지하려면 이것을 채택 할 수 있습니다. 이 아이디어도 작동하지만 효율적이지 않습니다.
회로도:
이 진공 청소기 로봇 의 코드는 아래 코드 섹션에서 찾을 수 있습니다. 연결이 완료되고 프로그램이 Arduino에 덤프되면 로봇이 작동 할 준비가 된 것입니다. 코드 작업은 주석을 사용하여 설명됩니다. 이 로봇이 작동하는 모습을보고 싶다면 아래 비디오를 확인 하세요.
또한 다음 버전에서 부품을 완전히 3D 프린팅 할 계획입니다. 또한 전체 카펫 영역을 커버하고 다루기 쉽고 크기가 콤팩트하도록 몇 가지 멋진 기능과 복잡한 알고리즘을 추가 할 예정입니다. 따라서 향후 업데이트를 기대하십시오.