Raspberry Pi 는 전자 엔지니어 및 애호가를 위해 설계된 ARM 아키텍처 프로세서 기반 보드입니다. PI는 현재 가장 신뢰할 수있는 프로젝트 개발 플랫폼 중 하나입니다. 더 높은 프로세서 속도와 1GB RAM을 갖춘 PI는 이미지 처리 및 사물 인터넷과 같은 많은 주요 프로젝트에 사용할 수 있습니다.
중요한 프로젝트를 수행하려면 PI의 기본 기능을 이해해야합니다. 이 튜토리얼 에서는 Raspberry Pi의 모든 기본 기능을 다룰 것 입니다. 각 튜토리얼에서 PI의 기능 중 하나에 대해 설명합니다. 이 라즈베리 파이 튜토리얼 시리즈 가 끝날 무렵, 당신은 혼자서 유명한 프로젝트를 할 수 있습니다. 아래 자습서를 살펴보십시오.
- Raspberry Pi 시작하기
- Raspberry Pi 구성
- LED 깜박임
- Raspberry Pi 버튼 인터페이스
- Raspberry Pi PWM 생성
- Raspberry Pi를 사용하여 DC 모터 제어
이 튜토리얼에서는 Raspberry Pi를 사용하여 스테퍼 모터의 속도를 제어합니다. 스테퍼 모터에서 이름 자체에서 알 수 있듯이 샤프트의 회전은 스텝 형태입니다. 스테퍼 모터에는 여러 유형이 있습니다. 여기에서는 가장 인기있는 Unipolar Stepper Motor를 사용 합니다. DC 모터와 달리 스테퍼 모터는 적절한 지침을 제공하여 특정 각도로 회전시킬 수 있습니다.
이 4 단계 스테퍼 모터를 회전시키기 위해 스테퍼 모터 드라이버 회로를 사용하여 파워 펄스를 전달합니다. 드라이버 회로는 PI에서 로직 트리거를 가져옵니다. 로직 트리거를 제어하면 전력 펄스와 스테퍼 모터의 속도를 제어합니다.
Raspberry Pi 2 에는 40 개의 GPIO 출력 핀이 있습니다. 그러나 40 개 중 26 개의 GPIO 핀 (GPIO2 ~ GPIO27) 만 프로그래밍 할 수 있습니다. 이러한 핀 중 일부는 몇 가지 특수 기능을 수행합니다. 특별한 GPIO를 제쳐두고 17 개의 GPIO 만 남아 있습니다. 이 17 개의 GPIO 핀은 각각 최대 15mA 전류를 전달할 수 있습니다. 그리고 모든 GPIO 핀의 전류 합은 50mA를 초과 할 수 없습니다 . GPIO 핀에 대해 자세히 알아 보려면 다음을 참조하십시오. Raspberry Pi로 LED 깜박임
거기 + 5V (핀 2 및 4) + 3.3V (핀 1 및 17) 출력 핀 다른 센서 모듈을 접속하기위한 보드는. 이 파워 레일은 스테퍼 모터를 구동하는 데 사용할 수 없습니다. 회전하는 데 더 많은 전력이 필요하기 때문입니다. 그래서 우리는 다른 전원에서 스테퍼 모터로 전원을 공급해야합니다. 스테퍼 모터는 정격 전압이 9V이므로 9v 배터리를 두 번째 전원으로 사용하고 있습니다. 정격 전압을 확인하려면 스테퍼 모터 모델 번호를 검색하십시오. 등급에 따라 적절하게 보조 소스를 선택하십시오.
앞서 언급했듯이 스테퍼 모터를 구동하려면 드라이버 회로가 필요합니다. 여기서도 간단한 트랜지스터 드라이버 회로를 설계 할 것입니다.
필요한 구성 요소:
여기 에서는 Raspbian Jessie OS와 함께 Raspberry Pi 2 Model B를 사용 하고 있습니다. 모든 기본 하드웨어 및 소프트웨어 요구 사항은 이전에 논의되었으며 필요한 것 외에 Raspberry Pi 소개에서 찾아 볼 수 있습니다.
- 연결 핀
- 220Ω 또는 1KΩ 저항기 (3)
- 스테퍼 모터
- 버튼 (2)
- 2N2222 트랜지스터 (4)
- 1N4007 다이오드 (4)
- 커패시터-1000uF
- 브레드 보드
회로 설명:
스테퍼 모터는 200 단계를 사용 하여 360도 회전 을 완료합니다. 즉, 단계 당 1.8도 회전 합니다. 4 단계 스테퍼 모터를 구동 할 때 단일 로직 사이클을 완료하려면 4 개의 펄스를 제공해야합니다. 이 모터의 각 단계는 1.8도 회전을 완료하므로 사이클을 완료하려면 200 개의 펄스가 필요합니다. 따라서 단일 회전을 완료하려면 200/4 = 50 로직 사이클이 필요합니다. 스테퍼 모터 및 주행 모드에 대해 자세히 알아 보려면 이것을 확인하십시오.
우리는 NPN 트랜지스터 (2N2222) 에 의해이 4 개의 코일 각각을 구동 할 것입니다.이 NPN 트랜지스터는 PI에서 로직 펄스를 가져와 해당 코일을 구동합니다. 4 개의 트랜지스터는 PI에서 4 개의 로직을 사용하여 스테퍼 모터의 4 단계를 구동합니다.
트랜지스터 드라이버 회로는 까다로운 설정입니다. 여기서 우리는 트랜지스터를 잘못 연결하면 보드에 과부하가 걸려 손상 될 수 있다는 점에주의해야합니다. 스테퍼 모터 드라이버 회로를 올바르게 이해하려면 이것을 확인하십시오.
모터는 인덕션이므로 모터를 전환하는 동안 유도 스파이크를 경험합니다. 이 스파이 킹은 트랜지스터를 심하게 가열하므로 다이오드 (1N4007) 를 사용하여 유도 성 스파이 킹 으로부터 트랜지스터 를 보호 할 것 입니다.
위해서는 전압의 변동을 감소시키기 우리는 연결한다 1000uF의 커패시터 서킷 다이어그램에 도시 된 바와 같이 전원에 걸쳐있다.
작동 설명:
회로도에 따라 모든 것이 연결되면 PI를 켜서 프로그램을 PYHTON으로 작성할 수 있습니다.
PYHTON 프로그램 에서 사용할 몇 가지 명령에 대해 이야기하겠습니다.
라이브러리에서 GPIO 파일을 가져올 것입니다. 아래 기능을 사용하면 PI의 GPIO 핀을 프로그래밍 할 수 있습니다. 또한 "GPIO"의 이름을 "IO"로 변경하고 있으므로 프로그램에서 GPIO 핀을 참조 할 때마다 'IO'라는 단어를 사용합니다.
RPi.GPIO를 IO로 가져 오기
때때로 우리가 사용하려는 GPIO 핀이 다른 기능을 수행 할 때도 있습니다. 이 경우 프로그램을 실행하는 동안 경고를 받게됩니다. 아래 명령은 PI가 경고를 무시하고 프로그램을 진행하도록 지시합니다.
IO.setwarnings (False)
PI의 GPIO 핀을 보드의 핀 번호 또는 기능 번호로 참조 할 수 있습니다. 보드의 'PIN 35'와 같이 'GPIO19'입니다. 그래서 우리는 여기서 핀을 '35'또는 '19'로 나타낼 것이라고 말합니다.
IO.setmode (IO.BCM)
스테퍼 모터의 4 개의 코일을 구동하기위한 출력으로 GPIO 핀 4 개를 설정하고 있습니다.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
GPIO26 및 GPIO19를 입력 핀으로 설정하고 있습니다. 이 핀으로 버튼 누름을 감지합니다.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
중괄호 안의 Condition이 참이면 루프 내부의 문이 한 번 실행됩니다. 따라서 GPIO 핀 26이 낮아지면 IF 루프 내부의 명령문이 한 번 실행됩니다. GPIO 핀 26이 로우가되지 않으면 IF 루프 내부의 명령문이 실행되지 않습니다.
if (IO.input (26) == False):
이 명령은 루프를 100 번 실행하며 x는 0에서 99까지 증가합니다.
x 범위 (100):
동안 1: 무한 루프에 사용됩니다. 이 명령을 사용하면이 루프 내의 명령문이 계속 실행됩니다.
이것 으로 스테퍼 모터 의 속도 제어 를 달성하는 데 필요한 모든 명령 이 있습니다.
프로그램을 작성하고 실행 한 후 남은 것은 컨트롤을 조작하는 것뿐입니다. PI에 연결된 두 개의 버튼이 있습니다. 하나는 4 개의 펄스 사이의 지연을 증가시키고 다른 하나는 4 개의 펄스 사이의 지연을 감소시킵니다. 지연 자체는 속도를 말합니다. 경우 생성 지연이 높은 모터는 각 단계 사이 등 브레이크 걸리는 회전을 느리게. 경우] 지연은 거의 제로이며, 다음 최대 속도로 회전하는 모터.
여기에서 펄스 사이에 약간의 지연이 있음을 기억해야합니다. 펄스를 제공 한 후 스테퍼 모터는 최종 단계에 도달하는 데 몇 밀리 초가 걸립니다. 펄스 사이에 지연이 없으면 스테퍼 모터가 전혀 움직이지 않습니다. 일반적으로 펄스 사이에는 50ms 지연이 좋습니다. 보다 정확한 정보는 데이터 시트를 참조하십시오.
따라서 두 개의 버튼으로 지연을 제어 할 수 있으며, 이는 차례로 스테퍼 모터의 속도를 제어합니다.