- Wprowadzenie
Raspberry Pi to popularny komputer jednopłytkowy szeroko stosowany w projektach hobbystycznych i przemysłowych. Jest to w zasadzie mały komputer wielkości karty kredytowej. Jest szeroko wykorzystywany w różnych projektach, w tym do sterowania silnikami krokowymi — co jest częstym zadaniem w aplikacjach sterowania ruchem. W tym artykule dowiesz się, jak używać języka programowania Python i biblioteki RPi.GPIO do sterowania silnikiem krokowym, wraz z odpowiednimi instrukcjami dotyczącymi okablowania.
- Wymagane materiały
- Raspberry Pi (zalecany Raspberry Pi 3B+ lub nowszy)
- Silnik krokowy (np. NEMA 17)
- Moduł sterownika silnika krokowego (np. DRV8825 lub A4988)
- Przewody połączeniowe (złącza DuPont)
- Zasilacz DC 12V
- Płytka stykowa (opcjonalnie)
- Kondensator odsprzęgający (np. elektrolityczny 100 µF)
- Instrukcje dotyczące okablowania
Uwaga dotycząca bezpieczeństwa: Zawsze podłączaj okablowanie silnika i sterownika przed podaniem zasilania. Sprawdź dwukrotnie wszystkie połączenia, aby uniknąć uszkodzenia Raspberry Pi lub modułu sterownika.
- Podłącz cztery przewody silnika krokowego do pinów A1, A2, B1 i B2 na module sterownika silnika.
- Podłącz dodatni biegun zasilacza 12V do pinu VMOT na module sterownika, a biegun ujemny do pinu GND. Umieść kondensator odsprzęgający (np. elektrolityczny 100 µF) między pinami VMOT i GND, jak najbliżej modułu sterownika, aby tłumić przepięcia.
- Podłącz pin zasilania 5V Raspberry Pi (fizyczny pin 2 lub pin 4) do pinu VCC na module sterownika, a pin GND (np. fizyczny pin 6) do pinu GND na module sterownika.
- Podłącz następujące piny GPIO BCM na Raspberry Pi do odpowiednich pinów na module sterownika:
| GPIO Raspberry Pi (BCM) | Pin fizyczny | Pin modułu sterownika |
|---|---|---|
| GPIO 17 | Pin 11 | DIR |
| GPIO 18 | Pin 12 | STEP |
| GPIO 27 | Pin 13 | MS1 |
| GPIO 22 | Pin 15 | MS2 |
| GPIO 23 | Pin 16 | ENABLE |
Wskazówka: Pin ENABLE na większości modułów A4988/DRV8825 jest aktywny w stanie niskim. Podanie stanu LOW na ten pin włącza wyjście sterownika.
- Implementacja kodu w Pythonie
Najpierw zainstaluj bibliotekę RPi.GPIO. Wprowadź następujące polecenia w terminalu:
sudo apt-get update
sudo apt-get install python3-rpi.gpio
Następnie utwórz plik Python o nazwie stepper_motor.py i wprowadź następujący kod:
import time
import RPi.GPIO as GPIO
# Definicja pinów (numeracja BCM)
DIR = 17
STEP = 18
MS1 = 27
MS2 = 22
ENABLE = 23
# Ustawienie trybu GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.setup(MS1, GPIO.OUT)
GPIO.setup(MS2, GPIO.OUT)
GPIO.setup(ENABLE, GPIO.OUT)
# Włączenie sterownika i ustawienie kierunku
GPIO.output(ENABLE, GPIO.LOW) # Włączenie sterownika (aktywny w stanie niskim)
GPIO.output(DIR, GPIO.HIGH) # Kierunek zgodny z ruchem wskazówek zegara
# Ustawienie trybu krokowego w zależności od modelu sterownika (np. A4988)
GPIO.output(MS1, GPIO.HIGH) # 1/4 kroku
GPIO.output(MS2, GPIO.LOW)
# Sterowanie obrotem silnika
steps = 200
delay = 0.001 # Krótsze opóźnienie oznacza większą prędkość
for _ in range(steps):
GPIO.output(STEP, GPIO.HIGH)
time.sleep(delay)
GPIO.output(STEP, GPIO.LOW)
time.sleep(delay)
# Czyszczenie GPIO
GPIO.cleanup()
Na koniec zapisz plik i uruchom go w terminalu:
python3 stepper_motor.py
- Podsumowanie
W tym artykule przedstawiono, jak używać Raspberry Pi do sterowania silnikiem krokowym, w tym instrukcje dotyczące okablowania oraz kod w Pythonie wykorzystujący bibliotekę RPi.GPIO. Postępując zgodnie z tymi krokami, można łatwo osiągnąć sterowanie silnikiem. Dostosuj parametry w kodzie (takie jak liczba kroków, opóźnienie i ustawienia mikrokroku) zgodnie z wymaganiami projektu.