라인 팔로워 로봇은 단순성 때문에 학생과 초보자 사이에서 인기있는 로봇 프로젝트 중 하나입니다. 마이크로 컨트롤러를 프로그래밍하는 방법에 따라 검은 색 또는 흰색 선을 따릅니다. 여기 에서는 텍사스 인스트루먼트의 MSP430 런치 패드 를 사용 하여 검정색 선을 따라가는 라인 팔로워 로봇을 만듭니다. MSP430 런치 패드를 처음 사용하는 경우 MSP430 시작하기 튜토리얼을 읽어보십시오.
필요한 재료
- Texas Instruments의 MSP430G2 LaunchPad
- L298D 모터 드라이버 모듈
- 전선 연결
- IR 센서 모듈
- 섀시, 휠, 롤러 코스터
- Energia IDE
- 전원 공급 장치 (3.3v) 및 5v-12v
Line Follower의 개념
라인 추종자의 개념은 빛과 관련이 있습니다. 우리는 흑백 표면에서 빛의 동작을 사용했습니다. 빛이 흰색 표면에 떨어지면 거의 완전히 반사되고 검은 색 표면의 경우 검은 색 표면에 빛이 흡수됩니다. 이 설명 된 빛의 동작은이 라인 팔로워 로봇 에서 사용됩니다.
이 MSP430 기반 라인 팔로워 로봇에서 우리는 IR 송신기와 IR 수신기를 포토 다이오드라고도 사용했습니다. 빛을 보내고받는 데 사용됩니다. IR은 적외선을 전송합니다. 적외선이 흰색 표면에 떨어지면 반사되어 약간의 전압 변화를 일으키는 포토 다이오드에 포착됩니다. IR 빛이 검은 색 표면에 떨어지면 빛이 검은 색 표면에 흡수되고 광선이 다시 반사되지 않으므로 포토 다이오드는 빛이나 광선을받지 않습니다. IR 센서에 대해 자세히 알아 보려면 링크를 따르십시오.
이 MSP430 기반 라인 팔로워 로봇에서 센서가 흰색 표면을 감지하면 MSP가 입력으로 1을 얻고 검은 선을 감지하면 MSP가 입력으로 0을 얻습니다.
회로 설명
라인 팔로워 로봇 전체를 센서 부, 제어부, 드라이버 부 등 다양한 부분으로 나눌 수 있습니다.
센서 섹션: 이 섹션에는 IR 다이오드, 전위차계, 비교기 (Op-Amp) 및 LED가 포함됩니다. 전위차계는 비교기의 한 단자에서 기준 전압을 설정하는 데 사용되며 IR 센서는 라인을 감지하고 비교기의 두 번째 단자에서 전압 변화를 제공합니다. 그런 다음 비교기는 두 전압을 비교하고 출력에서 디지털 신호를 생성합니다. 이 회로에서 우리는 두 개의 센서에 대해 두 개의 비교기를 사용했습니다. LM358은 비교기로 사용됩니다. LM358에는 두 개의 저잡음 연산 증폭기가 내장되어 있습니다.
제어 섹션: MSP430 Launchpad는 라인 팔로워 로봇의 전체 프로세스를 제어하는 데 사용됩니다. 비교기의 출력은 MPS430 Launchpad의 디지털 핀 P1_3 및 P1_4에 연결됩니다. MSP430 Launchpad는 이러한 신호를 읽고 라인 팔로워를 구동하기 위해 드라이버 회로에 명령을 보냅니다.
드라이버 섹션: 드라이버 섹션은 모터 드라이버와 2 개의 DC 모터로 구성됩니다. MSP430 Launchpad는 모터에 충분한 전압과 전류를 공급하지 못하기 때문에 모터 구동기는 모터 구동에 사용됩니다. 그래서 모터에 충분한 전압과 전류를 얻기 위해 모터 드라이버 회로를 추가했습니다. 여기서는 DC 모터를 구동하기 위해 L298d 드라이버를 사용했습니다. MSP430 Launchpad는이 모터 드라이버에 명령을 보낸 다음 모터를 구동합니다.
우리는 다른 Micrcontroller를 사용하여 Line Follower Robot을 개발했습니다.
- 8051 마이크로 컨트롤러를 사용하는 라인 팔로워 로봇
- Arduino를 사용한 라인 팔로워 로봇
- Raspberry Pi를 사용하는 라인 팔로워 로봇
- PIC 마이크로 컨트롤러를 사용하는 라인 팔로워 로봇
MSP430을 이용한 Line Follower Robot의 작업
라인 추종자의 작업은 매우 흥미 롭습니다. Line follower 로봇은 센서를 이용하여 검은 선을 감지하여 MSP430 Launchpad로 신호를 보냅니다. 그런 다음 MSP430 Launchpad는 센서의 출력에 따라 모터를 구동합니다.
이 프로젝트에서는 왼쪽 센서와 오른쪽 센서라는 두 개의 IR 센서 모듈을 사용합니다. 왼쪽과 오른쪽 센서가 모두 흰색을 감지하면 로봇이 앞으로 나아갑니다.
왼쪽 센서가 검은 색 선에 있으면 로봇이 왼쪽으로 돌립니다.
오른쪽 센서가 검은 선을 감지하면 두 센서가 흰색 표면에 올 때까지 로봇이 오른쪽으로 돌립니다. 흰색 표면이 오면 로봇이 다시 앞으로 이동하기 시작합니다.
두 센서가 모두 검은 색 선에 있으면 로봇이 멈 춥니 다.
회로도
이 MSP430 라인 팔로워 로봇의 회로 는 매우 간단합니다. 비교기의 출력은 MSP430 Launchpad의 디지털 핀 번호 p1_3 및 P1_4에 직접 연결됩니다. 그리고 모터 드라이버의 입력 핀 IN1, IN2, IN3, IN4는 MSP430 Launchpad의 디지털 핀 P1_5, P2_0, P2_1, P2_2에 각각 연결됩니다. 하나의 모터는 모터 드라이버 OUT1 및 OUT2의 출력 핀에 연결되고 다른 모터는 OUT3 및 OUT4에 연결됩니다. 여기서는 모터 드라이버 모듈을 제외한 전체 회로에 3.3v 전원을 사용했습니다. 모터 드라이버 모듈에 8v를 공급했습니다. 사용자는 5v-12v를 사용할 수 있습니다.
Perf Board에서 구축 한 것처럼 자신 만의 IR 모듈을 구축 할 수도 있습니다. 아래는 IR 모듈 의 회로입니다.
프로그래밍 설명
전체 프로그램 및 비디오 는이 문서의 끝에 있습니다.
프로그램에서 먼저 센서와 모터에 대한 입력 및 출력 핀을 정의합니다. 그런 다음 라인 추종자의 방향에 대한 일부 매크로를 정의한 다음 센서 출력을 선택하는 지시문을 작성하십시오.
참고: 센서는 액티브 로우 또는 액티브 하이 일 수 있으므로 먼저 센서의 출력을 확인한 다음 activeLowMode 를 주석 처리하거나 주석 해제하여 지시문을 선택하십시오. 활성 HIGH의 경우 activeLowMode 매크로를주석 처리하십시오.
#define l_sensor P1_3 #define r_sensor P1_4 int pins = {P1_5, P2_0, P2_1, P2_2}; #define forward 0x05 #define left 0x06 #define right 0x09 #define stop 0x00 // # define activeLowMode #ifdef activeLowMode int res = {forward, left, right, stop}; #else int res = {stop, right, left, forward}; #endif
그 후 설정 기능에서 센서와 모터 핀에 방향을 지정합니다. 그런 다음 루프 기능에서 입력을 확인하고 모터를 구동하기 위해 모터 드라이버 모듈에 출력을 보냅니다.
void setup () { for (int i = 0; i <4; i ++) pinMode (pins, OUTPUT); pinMode (l_sensor, INPUT); pinMode (r_sensor, INPUT); } void loop () {int sense = (digitalRead (l_sensor) << 1)-digitalRead (r_sensor); for (int i = 0; i <4; i ++) digitalWrite (핀, (res >> i) & 0x01); }
이 라인 추종자에는 MSP430 Launchpad를 사용하여 읽은 네 가지 조건이 있습니다. 우리는 두 개의 센서, 즉 왼쪽 센서와 오른쪽 센서를 사용했습니다.
조건: 활성 HIGH 출력
입력 |
산출 |
운동 로봇의 |
||||
왼쪽 센서 |
오른쪽 센서 |
왼쪽 모터 |
오른쪽 모터 |
|||
LS |
RS |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
중지 |
0 |
1 |
1 |
0 |
0 |
0 |
우회전 |
1 |
0 |
0 |
0 |
1 |
0 |
왼쪽으로 돌아 |
1 |
1 |
1 |
0 |
1 |
0 |
앞으로 |
위의 표 조건에 따라 프로그램이 작성됩니다. 아래 의 전체 코드 및 데모 비디오를 확인하십시오.