장애물센서는 적외선을 방출하고 반사되어 되돌아 오는 양을 측정하여 전방에 장애물이 있는지 판별하기 위한 센서이다. 초음파 거리 센서에 비해 근거리에 사용되며 적외선 빛을 쏘아 반사되는 되는 특성을 이용하는 것이므로 단지 장애물이 있는지 여부 뿐만 아니라 장애물의 색상에 따라 반사되는 양이 다른 특성을 이용할 수 있다. 즉 전방 물체가 흰색인지 검정색인지 여부에 따라 반사되는 양이 다르므로 흰색 바탕에 검정색 라인을 그어 놓고 검정색라인 범위내인지 여부를 판별하는 용도로도 사용되기 때문에 라인트레이스 센서라고도 불린다.   

 

 

 

구조 및 사양

 

 

- VCC단자와 GND단자에 3~5V 전원을 공급면 적외선 발광부에서 적외선이 방출된다.  

 

- 전방에 물체가 있어 방출된 빛이 반사되어 적외선 수신부에 일정량 이상 인식되면 OUT단자에 HIGH신호가 출력되고 감지표시 LED에 불이 들어 오게 된다.

 

- 어느 정도 양 이상이 반사되어 감지되면 감지신호를 출력할 것인지 비율은 감도 조절 볼륨으로 조절할 수 있다. 즉 감지 범위 거리를 원하는 대로 조정하여 사용할 수 있는데 통상 2cm ~ 30cm범위이다.

 

 

 장애물센서 유형    

 

다음과 같이  적외선 발광부와 수신부을 아래를 향하게 해서 바닥 라인트레이스 전용으로 제작한 모듈 또는 신호 출력을  단순히 HIGH/LOW로 만 구분(D0단자)할 뿐만 아니라 A0단자로 세밀한 아날로그 값을 출력하는 단자가 추가되어 있는 경우도 있다.

 

 

 

 

 

아두이노와의 연결

 

 

위와 같이 신호 출력선을 아두이노 디지털 I/O핀에 연결하면 된다. 센서에 아날로그 출력단자(A0)가 있고 이를 읽고 싶을 경우에는 아두이노 아날로그 입력 핀에 연결하면 된다. 

 

샘플프로그램 

 

1초 간격으로 디지털 핀 2번으로 들어오는 신호값을 시리얼 모니터에 출력하는 간단한 프로그램.

 

 

스테핑모터를 기본적으로 제어하는 것은 방향, 스텝진행 그리고 스템진행시 대기시간 조절에 의한 속도조절이다. 그런데 스테핑모터로 기계장치를 움직일 때 정지상태에서 갑자기 속도를 높이거나 일정 속도로 움직이다 갑자기 정지하면 기계장치가 덜컹거리고 기계장치에 무리가 가게 된다.  기계장치에 무리가 가지않고 부드럽게 작동하기 위해서는 서서히 가속하고 서서히 감속하는 속도조절 기능이 필요하게 되는데 일일히 가속감속 속도를 계산하고 지정하는 작업은 상당히 복잡하고 번거롭다.                 

 

AccelStepper라이브러리는 스텝핑모터 사용시 가속과 감속을 자동으로 계산해서 제어해 주는 기능이 있어 편리하다. 즉, 현재 위치와 목표 위치를 지정하면 라이브러리에서 속도를 자동 계산해서 제어해 주기 때문에 기계가 부드럽게 작동되도록 자연스러운 가속과 감속을 할 수 있게 된다.  

   

 

라이브러리의 설치

 

아두이노 IDE에 공식 등록되어 있는 라이브러리이므로 메뉴에서 스케치 -> 라이브러리 포함하기 -> 라이브러리관리를 선택하여 라이브러리 매니저를 띄운 후  AccelStepper 를 검색해서 설치하면 된다.

 

 

 

 

주요기능

 

-currentPosition() : 현재 위치 값을 읽어 온다.

-setCurrentPosition(position) : 현재 위치 값을 지정한다.

 

-moveTo(position) : 이동할 목표 위치를 지정한다.

-runToPosition() : 지정된 위치로 이동하기 기능으로 부드럽게 가속하며 출발하고 목적위치에 가까워지면 서서히 감속할 부드럽게 정지할 수 있도록 속도를 자동계산하여 제어된다.

 

-move(distance) : 이동할 거리를 지정한다.

-moveTo() : 지정된 거리만큼 이동하기 기능으로 가속 및 감속이 자동 제어된다.

 

-setSpeed(speed) : 이동할 때의 속도를 지정

-runSpeed() : 지정된 속도로 이동하기(자동 가속,감속하지 않고 지정한 일정한 속도로 이동하기) 

 

상세한 사항은 라이브러리 제작자가 제공하는 다음 링크의 메뉴얼을  참조 :    

     

          http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html

 

 

샘플프로그램

 

 

 

TB6600 드라이버는 45V, 4A 까지 가능한 바이폴라 스테핑모터용 드라이버이다. 소형 3D프린터용 스테핑모터는 NEMA 17급 모터이면 되기 때문에 A4988 드라이버면 충분했으나 CNC머신(조각기) 등 강력한 회전력이 필요할 때에는 NAMA23급 이상의 모터가 필요한 데 1A 전류공급용 A4988 드라이버로는 부족하고 4A 전류공급이 가능한 TB6600 드라이버를 사용할 수 있다.   

 

 

 

 

 

TB6600 드라이버 사양

 

1) Operating voltage DC 10V-45V. DC32V switching power supply is recommended.

2) high-speed optical coupling 6N137, ensure high speed without losing step.

3) Toshiba's new high current, high voltage TB6600HG new original chip, there are low-pressure shut-off, overheating parking and over-current protection circuit, short-circuit protection and increased compared to TB6560.

4) Rated maximum output reached: ± 4.5A.

5) for 4.2A 42,57,86 within the two-phase / four-phase / four-wire / six-wire stepper motor.

6) Automatic half current function.

7) Subdivision: full step, half step, 1/4-step, step 1/8, 1/16-step, up to 16 segments.

8) Volume: Width Length 82 * 50 * high 35 (MM)

 

 

 

TB6600 드라이버 모듈의 구조 및 사용법

 

 

 

네개의 DIP스위치 중 1~3은 마이크로스텝 모드 선택스위치이고 네번째는 Holding상태 (모터가 정지되어 있는 상태)에서의 전류공급 모드 선택스위치이다.

 

 

 

DIP스위치 오른쪽의 십자형 볼륨은 전력공급제한 조절용으로서 오른쪽으로 돌릴수록 공급 전력량이 커진다.

 

아두이노와의 연결

 

 

 

위와 같이 모터용 전원과 연결케이블을 연결하고, Enable,Direction,Pulse 세개의 단자를 아두이노 디지털출력핀에 연결하면 되는데 Enable/Disable 제어를 하지 않으려면 Enable단자를 연결하지 않아도 기본이 Enable상태이다.   

 

 

샘플프로그램

 

 

10 line : Direction 단자에 HIGH/LOW값을 주어 회전방향을 정한다.

15 line : Pulse의 시간간격으로 모터의 회전속도를 정하는데, 작을수록 속도는 빨라진다.

+ Recent posts