- współpracuje z dwoma typowymi miniaturowymi serwomechanizmami,
- dwa dodatkowe wyjścia są zabezpieczone wbudowanymi diodami, co upraszcza podłączenie, np. przekaźników elektromagnetycznych,
- zastosowano przetwornicę podwyższająco-obniżającą, która pracuje poprawnie w zakresie napięcia 3,6…9 V.
Moduł współpracuje z dwoma typowymi miniaturowymi serwomechanizmami podłączanymi do złączy SVAB, SVB, w standardzie Grove. Na złącze SVAB wyprowadzone są oba sygnały sterujące, co umożliwia wykorzystanie sygnałów PWM nie tylko do sterowania serwomechanizmami. Na wyjście OUT wyprowadzone są buforowane sygnały 12 i 13 płytki Pi Pico. Wyjścia są zabezpieczone wbudowanymi diodami, co upraszcza podłączenie przekaźników elektromagnetycznych lub cewek niewielkich elektromagnesów.
Budowa i działanie
Schemat modułu został pokazany na rysunku 1.
Serwomechanizmy zasilane są napięciem 5 V z wbudowanej przetwornicy. Sygnały PWM z wyprowadzeń 8 i 9 płytki Pi Pico są buforowane oraz wykonywana jest konwersja poziomów logicznych z 3,3 V do 5 V w układach U2, U3. Zastosowana przetwornica podwyższająco-obniżająca U1 typu TPS63061 jest zasilana z napięcia VM.
Dostarcza ona napięcia VSRV = 5 V do zasilania serwomechanizmów i obciążeń podłączonych do wyjść OUT oraz napięcia VSYS o wartości ok. 4,8 V do zasilania płytki Pi Pico. Dioda D1 zapobiega przepływowi prądu wstecznego, gdy moduł zasilany jest także z USB np. podczas uruchamiania. Przetwornica pracuje poprawnie w zakresie napięcia VM = 3,6...9 V, obciążalność sumaryczna napięcia VSRV nie powinna przekraczać 800 mA.
Montaż i uruchomienie
Moduł zmontowano na dwustronnej płytce drukowanej o wymiarach zgodnych z Raspberry Pi Pico. Jej schemat został pokazany na rysunku 2. Montaż jest typowy, należy tylko zwrócić uwagę na przylutowanie padu termicznego układu U1, dla zapewnienia prawidłowego odprowadzania ciepła.
Zmontowany moduł nie wymaga uruchamiania. Sterowanie serwomechanizmami odbywa się poprzez konfigurację wyprowadzeń GPIO w tryb PWM. Szybkiego sprawdzenia modułu, po podłączeniu silników i zasilania, można dokonać, korzystając z IDE Thonny i micropythona oraz terminalu szeregowego. Na początek musimy wykonać import bibliotek Pin, PWM, sleep:
from time import sleep
Następnie definiujemy wyjścia sterujące:
OUT2 = Pin(13, Pin.OUT)
pwm1 = PWM(Pin(8))
pwm2 = PWM(Pin(9))
pwm1.freq(50)
pwm2.freq(50)
Teraz możemy sterować stanem wyjść OUT, np.:
OUT1.value(1)
OUT2.value(0)
OUT2.value(1)
Ustawienie serwo zmieniamy, ustawiając odpowiednio wypełnienie sygnału PWM, np.:
pwm1.duty_u16(2000)
pwm1.duty_u16(2500)
pwm1.duty_u16(2000)
pwm2.duty_u16(2000)
pwm2.duty_u16(2500)
pwm2.duty_u16(2000)
Jeżeli po sprawdzeniu wszystko działa poprawnie, można moduł zastosować we własnej aplikacji.
Adam Tatuś, EP
- R1, R2: 33 kΩ SMD0603
- R3, R4: 10 kΩ SMD0603
- C1, C4: 0,1 μF SMD0603
- C3: 10 μF/10 V
- C5, C6: 47 μF SMD1206
- CE1, CE2: 100 μF/10 V kondensator elektrolityczny miniaturowy SMD
- D1: MBR0520L (SOD123)
- D2, D3: 1N4448W-TP (SOD123)
- Q1, Q2: tranzystor MOSFET DMG3414U (SOT-23)
- U1: TPS63061DSC (WSON10)
- U2, U3: 74LVC07DCK (SC70-5)
- L1: 1 μH dławik HPI0420-1R0
- IO1, IO2: listwa żeńska 20 PIN, 2,54 mm lub listwa przelotowa GPIO Pico
- PWR: złącze DG 3,5 mm, 2 piny