2022. 11. 4. 00:27ㆍIT
스텝 1. 로봇 만들기
어떤 로봇을 만들까?
모터의 제어를 이용해 두 개의 바퀴를 움직이고 초음파 센서를 이용해서 앞의 장애물을 피해서 주행하는 로봇을 만들 예정이다.
필요한 준비물은 아두이노 우노 보드 이외에 다음과 같다
- 모터와 바퀴 각각 4개
- 서보 모터 (SG90)
- 초음파 센서 (HC-SR04)
- 모터 드라이브 컨트롤러 (L298N)
- 1k, 2k 저항 및 470uF 25V Capacitor 각 1개
- 18650 배터리 2개와 배터리 홀더
- PCB 지지대 볼트
- 듀퐁 케이블
- 아크릴 (로봇의 몸통의 재료)
모터 동작시키기
모터는 3V로 동작을 하고 전원의 방향을 바꾸면, +와 -의 연결을 거꾸로 하면 회전 방향도 바뀐다. 여기서는 모터 드라이브라는 것을 사용을 할 것이다. 아두이노에도 5v 또는 3.3v 출력 핀이 있기는 하지만 아두이노 보드의 출력이 낮기 때문에 사용할 수 없다. 그래서 L298N이라는 모터 드라이브를 사용하며 모터 드라이브에 별도의 전원을 연결하고 아두이노로 부터 디지털 신호를 받아서 모터를 동작시킨다.
앞의 그림을 보면 모터 드라이브 298N은 좌, 우측에 각각 두 개의 연결 단자가 있는데 이 단자는 모터와 각각 연결이 된다. 즉, 298N 하나에 모터 두 개를 연결할 수 있다.
그리고 하단에 3개의 연결 단자와 디지털 입력 핀 4개가 보인다. 3개의 연결 단자 중 첫 번째는 12V 입력 단자이다. 24V까지 연결을 할 수 있으며 우리는 7V를 입력으로 사용할 것이다. 그리고 298N의 입력으로 사용된 7V는 아두이노의 5V 입력으로 연결될 것으로 아두이노 핀에 Vin에 연결을 하면 된다. 이는 아두이노 전원에 연결하는 것과 같은 역할을 한다.
하단 우측에 4개의 핀에서 D1, D2는 좌측의 모터를 D3,D4는 우측의 모터를 각각 제어할 수 있는 디지털 입력을 받아들일 수 있다.
디지털 입력 핀 두 개가 한 쌍으로 동작을 하며 HIGH, LOW를 주면 정방향으로 모터가 회전하고 LOW, HIGH는 역방향 그리고 HIGH, HIGH는 정지이다.
최종 핀과 입력 단자가 모터, 아두이노 그리고 모터 드라이브가 연결된 그림은 앞의 그림과 같다. 하단에 빨간색과 검은색 케이블은 각각 +, - 로 배터리와 연결이 될 것이다.
모터를 동작시켜보는 첫 코딩을 해 볼 것이다. 별도로 소스를 제공하면 편하겠지만 이해를 위해서는 직접 타이핑을 해 보는 것을 권장한다.
핀 연결이 제대로 되었는지 확인하기 위해서 다음과 같이 코드를 작성했다.
핀을 할당하기 위해 변수들을 선언했다. 그리고 보드의 D1부터 D4까지의 핀을 각각 아두이노의 디지털 핀 2 ~ 5를 각각 연결을 했다. 그래서 디지털 핀을 선언을 하고 각각의 핀 번호를 넣었다.
다음은 setup과 loop 함수이다. setup은 아두이노가 시작을 하면 최초에 한 번만 실행이 되는 함수로서 여기에 모든 초기화가 필요한 코드를 넣는다. 그리고 loop 함수는 아두이노에 전원이 인가된 상태에서 무한정 반복이 되는 함수이다.
앞의 코드를 보면 setup 함수에서는 pinMode라는 함수를 이용해서 네 개의 핀이 모두 출력용으로 사용을 한다고 선언을 했다. 각각 HIGH와 LOW를 출력해서 모터를 제어할 것이기 때문에 OUTPUT으로 설정을 했다. 입력핀은 INPUT으로 정의해서 사용을 할 수 있다. 다음으로 각각의 핀에 HIGH를 digitalWrite 함수를 이용해 호출했다. HIGH를 모두 출력을 할 경우에 모터는 정지 상태가 된다.
마지막으로 delay 함수는 잠시 쉬어가는 함수로 인자로 넘겨 준 1000의 단위는 milesec으로 1초 동안 잠시 멈추라는 의미이다.
앞에서 설명한 바와 같이 setup은 한 번만 자동으로 실행이 되고 다음은 loop가 무한 반복된다. loop 내에는 D1에 HIGH, D2에 LOW를 출력하여 좌측 모터를 정방향으로 회전시키고 같은 방법으로 우측 바퀴를 정방향 회전시킨다.
여기까지 코드의 입력이 모두 끝이 났다면 아두이노와 컴퓨터를 USB 케이블로 연결을 한다. 아두이노를 연결을 하고 IDE에서 툴 → 포트를 보면 기존에 있던 Com 포트 외에 추가 포트가 보여지고 괄호 안에 Arduino UNO가 있는 포트를 선택을 한다. 아두이노가 연결이 되고 난 다음에 스케치에서 업로드를 선택하면 작성한 코드가 컴파일이 된 후에 아두이노로 업로드가 된다.
업로드가 완료된 후에는 USB 케이블을 분리하고 전원을 연결하면 된다.
컴파일시에 오류가 발생한다면 원인을 찾아 디버깅을 한다.
'IT' 카테고리의 다른 글
#5/12 아두이노 로봇 HowTo (0) | 2022.11.04 |
---|---|
#4/12 아두이노 로봇 HowTo (0) | 2022.11.04 |
#2/12 아두이노 로봇 HowTo (0) | 2022.11.04 |
#1/12 아두이노 로봇 HowTo (0) | 2022.11.04 |
Python obfuscation (난독화) (0) | 2022.07.05 |