Robotyka bez granic – polsko – ukraińska akademia techniki, przedsiębiorczości i ekonomii przyszłości

PORADNIK METODYCZNY / МЕТОДИЧНИЙ ПОСІБНИК

10.2 REZULTATY PROJEKTU / РЕЗУЛЬТАТУ ПРОЄКТУ – Dokumentacja techniczna

 

Typ urządzenia: edukacyjne ramię robotyczne SCARA 3 DOF + chwytak 2 DOF

Sterownik: ESP32 D1 Mini / WeMos D1 Mini ESP32

Sterowanie: kontroler Bluetooth + przyciski na płytce

Oprogramowanie: C++ / Arduino Framework / PlatformIO

Repozytorium: Attiny2313/SCARA-Robot-Controler-BT

SPIS TREŚCI

  1. CEL PROJEKTU
  2. CHARAKTERYSTYKA ROBOTA
  3. PARAMETRY TECHNICZNE
  4. BUDOWA MECHANICZNA
  5. UKŁAD NAPĘDOWY
  6. UKŁAD ELEKTRYCZNY I ELEKTRONICZNY
  7. ARCHITEKTURA STEROWANIA
  8. OPROGRAMOWANIE
  9. TRYBY PRACY
  10. STEROWANIE RĘCZNE – JOINT
  11. STEROWANIE RĘCZNE – TOOL
  12. KINEMATYKA
  13. POZYCJA HOME I HOMING
  14. FUNKCJA TEACH
  15. TRYB AUTO
  16. PRZEBIEG CYKLU AUTO
  17. REGULACJA PRĘDKOŚCI W AUTO
  18. ZABEZPIECZENIA PROGRAMOWE
  19. PROCEDURA MONTAŻU ELEKTRONIKI
  20. PROCEDURA URUCHOMIENIA
  21. TESTY ODBIORCZE
  22. BEZPIECZEŃSTWO
  23. KONSERWACJA
  24. MOŻLIWOŚCI ROZBUDOWY
  25. PRZYKŁADOWA SEKWENCJA PICK AND PLACE
  26. ZALEŻNOŚĆ PARAMETRÓW MECHANICZNYCH I PROGRAMOWYCH
  27. WERSJONOWANIE DOKUMENTACJI
  28. POCHODZENIE ELEMENTÓW PROJEKTU
  29. PODSUMOWANIE

1. CEL PROJEKTU

Celem projektu jest wykonanie, uruchomienie i zaprogramowanie edukacyjnego robota typu SCARA (Selective Compliance Assembly Robot Arm), przeznaczonego do nauki zagadnień z zakresu mechaniki, elektroniki, automatyki, robotyki, programowania oraz technologii druku 3D.

Robot umożliwia:

  • ręczne sterowanie poszczególnymi osiami,
  • sterowanie położeniem końcówki roboczej w układzie kartezjańskim,
  • sterowanie chwytakiem,
  • zapisywanie punktów metodą TEACH,
  • automatyczne odtwarzanie zapisanej sekwencji ruchów,
  • realizację zadań typu Pick and Place,
  • dalszą rozbudowę o dodatkowe czujniki, system wizyjny i inne narzędzia robocze.

Projekt ma charakter edukacyjny i eksperymentalny. Nie jest urządzeniem przemysłowym ani certyfikowanym robotem przeznaczonym do pracy w środowisku produkcyjnym.

2. CHARAKTERYSTYKA ROBOTA

Robot jest manipulatorem typu SCARA, którego główna część wykonawcza składa się z:

  • osi obrotowej ARM1,
  • osi obrotowej ARM2,
  • liniowej osi pionowej Z,
  • serwomechanizmu obrotu chwytaka,
  • serwomechanizmu otwierania i zamykania chwytaka.

Za ruch trzech głównych osi odpowiadają silniki krokowe NEMA 17. Ruch obrotowy chwytaka i jego otwieranie realizują serwomechanizmy.

Konstrukcja mechaniczna bazuje na rozwiązaniach projektu PyBot i wykorzystuje elementy wykonane metodą druku 3D oraz standardowe elementy mechaniczne stosowane m.in. w drukarkach 3D.

Sterowanie realizuje mikrokontroler ESP32 współpracujący z dedykowaną płytką PCB. ESP32 komunikuje się z bezprzewodowym kontrolerem poprzez Bluetooth i samodzielnie realizuje logikę sterowania, kinematykę, generację trajektorii PTP, obsługę TEACH/AUTO oraz zabezpieczenia programowe.

Komputer nie jest wymagany do normalnej pracy robota. Jest wykorzystywany do programowania, aktualizacji firmware oraz diagnostyki przez port szeregowy.

 

3. PARAMETRY TECHNICZNE

3.1. Parametry konstrukcji i sterowania

Parametr

Wartość

Typ robota

SCARA

Liczba głównych osi

3

Osie robocze

ARM1, ARM2, Z

Dodatkowe osie chwytaka

2

Silniki główne

3 × NEMA 17

Kąt pełnego kroku silnika

1,8°

Liczba pełnych kroków na obrót

200

Mikrokrok

1/16

Serwomechanizmy

2 × klasy SG90/MG90/MG92R

Sterownik główny

ESP32 D1 Mini

Sterowniki silników

A4988

Środowisko programistyczne

PlatformIO / Visual Studio Code

Framework

Arduino

Język programu

C++

Komunikacja z padem

Bluetooth / Bluepad32

3.2. Parametry wykorzystywane przez aktualny firmware

Parametr

Wartość

Długość członu ARM1

91,61 mm

Długość członu ARM2

97,528 mm

Przełożenie ARM1

4,5

Przełożenie ARM2

7,280

Skok śruby osi Z

2,0 mm/obr.

Przełożenie Z

1,0

Zakres programowy ARM1

−105° … +105°

Zakres programowy ARM2

−125° … +125°

Zakres programowy Z

0 … 300 mm

Zakres obrotu chwytaka

0 … 180°

Zakres serwa chwytaka

15 … 95°

Prędkość ręczna ARM1

25°/s

Prędkość ręczna ARM2

25°/s

Prędkość ręczna Z

3,0 mm/s

Prędkość TCP w trybie TOOL

20 mm/s

Bazowa prędkość AUTO ARM1

20°/s

Bazowa prędkość AUTO ARM2

20°/s

Bazowa prędkość AUTO Z

3,0 mm/s

Override prędkości AUTO

50…250% dla ARM1, ARM2 i Z

Przyspieszenie ARM1

12000 STEP/s²

Przyspieszenie ARM2

5000 STEP/s²

Przyspieszenie Z

6000 STEP/s²

Liczba punktów programu TEACH

maks. 20

3.3. Parametry wymagające pomiaru rzeczywistego egzemplarza

Nie należy bez dodatkowych pomiarów przyjmować wartości deklarowanych dla bazowego projektu PyBot jako parametrów gotowego robota.

W szczególności wymagają pomiaru:

  • rzeczywista masa robota,
  • rzeczywista przestrzeń robocza,
  • rzeczywista powtarzalność pozycjonowania,
  • maksymalny bezpieczny udźwig,
  • maksymalne praktyczne prędkości osi,
  • dokładność pozycjonowania TCP.

Do czasu wykonania prób odbiorczych wartości te powinny być traktowane jako „do wyznaczenia”.

4. BUDOWA MECHANICZNA

4.1. Podstawa

Podstawa stanowi element nośny całej konstrukcji. Mocowane są do niej m.in.:

  • prowadnice osi Z,
  • napędy,
  • elementy przekładni pasowych,
  • elektronika sterująca,
  • elementy zabezpieczające przewody.

Podstawa powinna zapewniać sztywność konstrukcji oraz możliwość stabilnego ustawienia robota na stanowisku.

4.2. Pierwszy człon ramienia – ARM1

Pierwszy człon łączy podstawę z centralnym przegubem robota. Jego ruch zmienia kierunek całego manipulatora w płaszczyźnie XY.

Napęd realizowany jest silnikiem krokowym poprzez przekładnię pasową.

4.3. Drugi człon ramienia – ARM2

Drugi człon łączy pierwszy człon z końcówką roboczą. Wspólnie z osią ARM1 określa położenie TCP w płaszczyźnie XY.

Ruch realizowany jest niezależnym napędem krokowym poprzez układ przekładni pasowych.

4.4. Oś pionowa Z

Oś Z realizuje ruch pionowy końcówki roboczej. Napęd odbywa się za pomocą silnika krokowego i śruby o skoku 2 mm/obrót.

Ze względu na dużą liczbę kroków przypadających na 1 mm ruchu oraz ryzyko gubienia kroków, oś Z pracuje z wyraźnie niższą prędkością niż osie obrotowe.

4.5. Chwytak

Chwytak jest wyposażony w dwa serwomechanizmy:

  • serwo obrotu narzędzia,
  • serwo otwierania i zamykania chwytaka.

Położenia serw mogą być zapisywane razem z punktami programu TEACH.

5. UKŁAD NAPĘDOWY

5.1. Silniki krokowe

Każda z trzech głównych osi korzysta z silnika NEMA 17 o kącie pełnego kroku 1,8°.

Pełny obrót odpowiada:

360° / 1,8° = 200 kroków

Przy zastosowaniu mikrokroku 1/16:

200 × 16 = 3200 mikrokroków na obrót silnika

Dodatkowo liczba kroków roboczych jest zależna od przełożenia danej osi.

Dla osi Z, przy skoku śruby 2 mm/obrót i mikrokroku 1/16:

3200 / 2 = 1600 kroków/mm

Wartość ta jest wykorzystywana przez firmware do przeliczania położenia osi Z.

5.2. Sterowniki A4988

Sterowniki A4988 odpowiadają za zasilanie i sterowanie silników krokowych. Każdy sterownik otrzymuje z ESP32 sygnały:

  • STEP,
  •  

Należy prawidłowo ustawić prąd sterowników zgodnie z zastosowanymi silnikami i chłodzeniem.

Nie wolno podłączać ani odłączać silnika krokowego przy załączonym zasilaniu sterownika.

6. UKŁAD ELEKTRYCZNY I ELEKTRONICZNY

6.1. Główne elementy

  • ESP32 D1 Mini,
  • 3 sterowniki A4988,
  • przetwornicę LM2596,
  • złącza silników,
  • złącza serwomechanizmów,
  • przyciski TEACH i MODE,
  • obwód E-STOP,
  • diody sygnalizacyjne,
  • wyświetlacz OLED SSD1306 128×64 I2C,
  • złącza krańcówek,
  • elementy bierne i zabezpieczające.

Dokumentacja płytki PCB znajduje się w katalogu PCB repozytorium.

6.2. Przypisanie wejść i wyjść ESP32

Funkcja

GPIO

STEP ARM1

13

DIR ARM1

26

STEP ARM2

23

DIR ARM2

14

STEP Z

18

DIR Z

19

Servo ROTATE

27

Servo GRIP

32

TEACH

25

MODE

33

E-STOP

39

Krańcówka Z

34

Krańcówka ARM1

35

Krańcówka ARM2

36

LED Bluetooth

4

LED ERROR

16

LED STATUS

17

I2C SDA (OLED)

21

I2C SCL (OLED)

22

6.3. Krańcówki

Płytka posiada wejścia dla krańcówek osi ARM1, ARM2 i Z.

W aktualnej wersji firmware krańcówki nie realizują automatycznego homingu. Wejścia zostały zachowane sprzętowo na potrzeby przyszłej rozbudowy.

6.4. E-STOP

E-STOP jest elementem bezpieczeństwa układu.

Po jego aktywacji firmware:

  • natychmiast zatrzymuje generowanie kroków,
  • blokuje sterowanie ręczne,
  • ustawia program AUTO w stan FAULT,
  • sygnalizuje błąd,
  • wymaga restartu sterownika przed ponowną pracą.

Układ powinien być wykonany tak, aby E-STOP nie opierał się wyłącznie na programie, lecz dodatkowo ograniczał możliwość dalszego zasilania lub aktywacji napędów zgodnie z założeniami płytki sterującej.

 

6.5. Wyświetlacz OLED

Sterownik obsługuje wyświetlacz OLED SSD1306 128×64 podłączony przez I2C. Magistrala wykorzystuje GPIO21 jako SDA i GPIO22 jako SCL.

Podczas inicjalizacji firmware automatycznie sprawdza adresy 0x3C i 0x3D. Brak wyświetlacza nie blokuje pracy robota — informacja o problemie jest wysyłana przez Serial.

W czasie pracy OLED pokazuje m.in.:

  • tryb MANUAL/AUTO i stan programu,
  • stan połączenia Bluetooth,
  • liczbę zapisanych punktów TEACH,
  • override prędkości w AUTO,
  • aktualne położenia ARM1, ARM2 i Z,
  • pozycję TCP X/Y lub numer aktualnego punktu programu,
  • stany błędów, w tym E-STOP i NUM ERR.

7. ARCHITEKTURA STEROWANIA

Rzeczywisty przepływ sterowania można przedstawić następująco:

Pad Bluetooth → Bluepad32 → ESP32 → logika sterowania → kinematyka / AUTO → FastAccelStepper → A4988 → silniki NEMA17

Równolegle:

ESP32 → ESP32Servo → serwo obrotu + serwo chwytaka

ESP32 pełni jednocześnie funkcję:

  • odbiornika poleceń,
  • sterownika osi,
  • sterownika serw,
  • układu kinematyki,
  • generatora sekwencji AUTO,
  • pamięci programu TEACH,
  • modułu bezpieczeństwa programowego,
  • układu diagnostycznego.

8. OPROGRAMOWANIE

8.1. Środowisko

Program sterujący został przygotowany w języku C++ z wykorzystaniem:

  • Arduino Framework,
  • PlatformIO,
  • Visual Studio Code.

8.2. Główne biblioteki

Bluepad32

Biblioteka odpowiada za obsługę kontrolerów Bluetooth.

FastAccelStepper

Biblioteka generuje sygnały STEP dla trzech osi i umożliwia definiowanie prędkości, przyspieszeń oraz pozycji.

ESP32Servo

Biblioteka steruje serwomechanizmami chwytaka.

Preferences

Biblioteka obsługuje pamięć NVS ESP32. W pamięci zapisywany jest program TEACH, dzięki czemu punkty pozostają dostępne po wyłączeniu zasilania.

Adafruit GFX / Adafruit SSD1306

Biblioteki odpowiadają za obsługę wyświetlacza OLED SSD1306 128×64, prezentację stanu robota oraz podstawową diagnostykę.

9. TRYBY PRACY

Sterownik wykorzystuje dwa niezależne poziomy trybów.

9.1. Tryb pracy głównej

  • MANUAL
  • AUTO

9.2. Tryb sterowania ręcznego

W trybie MANUAL dostępne są:

  • JOINT
  • TOOL

Dzięki temu wybór JOINT/TOOL nie jest tym samym co wybór MANUAL/AUTO.

10. STEROWANIE RĘCZNE – JOINT

W trybie JOINT operator steruje bezpośrednio poszczególnymi osiami robota.

Aktualne mapowanie pada:

Element kontrolera

Funkcja

Lewy analog X

ARM1

Lewy analog Y

ARM2

Prawy analog Y

Z

Prawy analog X

obrót chwytaka

A / B

otwieranie / zamykanie chwytaka

START

JOINT / TOOL

Wartości z analogów są normalizowane i posiadają martwą strefę, aby niewielkie odchylenia drążka nie powodowały ruchu robota.

Po połączeniu kontrolera robot nie zostaje od razu uzbrojony. Wymagane jest około 300 ms neutralnego położenia wszystkich elementów sterujących. Rozwiązanie to zapobiega niekontrolowanemu ruchowi tuż po sparowaniu pada.

11. STEROWANIE RĘCZNE – TOOL

W trybie TOOL operator nie steruje bezpośrednio kątami ARM1 i ARM2.

Lewy analog zadaje ruch końcówki roboczej w płaszczyźnie XY, a program oblicza wymagane kąty ramion za pomocą kinematyki odwrotnej.

Sterowanie osi Z i chwytakiem pozostaje analogiczne jak w trybie JOINT.

Jeżeli zadany punkt jest poza obszarem osiągalnym lub wymaga przekroczenia limitu osi, polecenie nie jest wykonywane i może zostać zasygnalizowany błąd.

12. KINEMATYKA

12.1. Kinematyka prosta

Dla dwóch ramion SCARA położenie TCP w płaszczyźnie XY wyznaczane jest z zależności:

X = L1·cos(θ1) + L2·cos(θ1 + θ2)

Y = L1·sin(θ1) + L2·sin(θ1 + θ2)

oraz:

Z = położenie osi Z

gdzie:

  • L1 – długość pierwszego członu,
  • L2 – długość drugiego członu,
  • θ1 – kąt ARM1,
  • θ2 – kąt ARM2.

W aktualnej konfiguracji:

  • L1 = 91,61 mm,
  • L2 = 97,528 mm.

12.2. Kinematyka odwrotna

W trybie TOOL zadawana jest pozycja (X,Y), a program oblicza kąty θ1 i θ2.

Najpierw obliczana jest zależność:

cos(θ2) = (X² + Y² − L1² − L2²) / (2·L1·L2)

Jeżeli wynik znajduje się poza zakresem −1…1, punkt leży poza geometrycznym obszarem pracy.

Następnie wyznaczane są kąty przegubów. Dla typowego robota dwuprzegubowego istnieją dwie konfiguracje geometryczne, odpowiadające położeniu „łokcia” po dwóch stronach.

Aktualny firmware wykorzystuje jedną z tych konfiguracji (ELBOW_UP).

Po obliczeniu kątów sprawdzane są również programowe ograniczenia zakresów ARM1 i ARM2.

13. POZYCJA HOME I HOMING

Aktualny robot nie wykonuje automatycznego homingu.

Pozycję HOME należy ustawić ręcznie przed włączeniem zasilania lub resetem ESP32.

Firmware przyjmuje następujące wartości startowe:

Oś

Pozycja HOME

ARM1

0°

ARM2

0°

Z

0 mm

Obrót chwytaka

90°

Chwytak

30°

Po starcie licznik kroków każdej osi zostaje ustawiony na pozycję odpowiadającą HOME.

Jeżeli mechanika nie została rzeczywiście ustawiona w tej pozycji, wszystkie późniejsze obliczenia położenia będą obarczone błędem.

Automatyczny homing z wykorzystaniem krańcówek jest przewidywany jako możliwe przyszłe rozszerzenie.

14. FUNKCJA TEACH

Przycisk TEACH na płytce umożliwia zapis aktualnej pozycji robota.

TEACH działa tylko:

  • w trybie MANUAL,
  • przy zatrzymanych osiach,
  • gdy E-STOP nie jest aktywny.

14.1. Krótkie naciśnięcie

Zapisuje kolejny punkt programu.

Każdy punkt zawiera:

  • pozycję ARM1,
  • pozycję ARM2,
  • pozycję Z,
  • pozycję serwa obrotu chwytaka,
  • pozycję serwa chwytaka,
  • czas postoju dwellMs.

Maksymalna liczba punktów wynosi 20.

14.2. Długie naciśnięcie

Przytrzymanie przycisku przez około 1,8 s usuwa cały zapisany program.

14.3. Pamięć

Program jest przechowywany w pamięci NVS ESP32. Dzięki temu nie jest tracony po wyłączeniu zasilania.

15. TRYB AUTO

Przycisk MODE przełącza pracę pomiędzy MANUAL i AUTO.

Zmiana trybu jest możliwa tylko przy zatrzymanych osiach.

W AUTO pad nie służy do bezpośredniego sterowania osiami.

Przycisk START realizuje funkcję:

  • IDLE → START,
  • RUN → PAUSE,
  • PAUSED → RESUME.

AUTO odtwarza punkty zapisane wcześniej funkcją TEACH.

16. PRZEBIEG CYKLU AUTO

Dla każdego punktu programu wykonywane są następujące działania:

  1. ustawienie pozycji docelowych serwomechanizmów,
  2. wyznaczenie odległości do przejechania przez ARM1, ARM2 i Z,
  3. dobranie prędkości osi,
  4. rozpoczęcie ruchu PTP,
  5. oczekiwanie na zakończenie ruchu wszystkich osi,
  6. odczekanie zadanego czasu postoju,
  7. przejście do kolejnego punktu.

W aktualnej konfiguracji program pracuje domyślnie w pętli.

 

16.1. Typ ruchu

Obecna implementacja AUTO realizuje ruch PTP (Point To Point).

Oznacza to, że synchronizowane są czasy przejazdu osi, ale tor TCP pomiędzy punktami nie musi być linią prostą.

Interpolacja liniowa LIN jest przewidywana jako możliwe przyszłe rozszerzenie.

17. REGULACJA PRĘDKOŚCI W AUTO

W gałęzi dev dostępna jest regulacja prędkości całego ruchu w trybie AUTO.

D-pad

Funkcja

góra

+10%

dół

−10%

lewo

powrót do 100%

Zakres regulacji:

50% … 250%

Override skaluje bazowe prędkości wszystkich trzech osi: ARM1, ARM2 i Z. Przy 100% wartości bazowe wynoszą odpowiednio 20°/s, 20°/s i 3,0 mm/s.

Zmiana prędkości zaczyna obowiązywać od kolejnego ruchu PTP. Bieżący ruch nie jest przeliczany w locie.

18. ZABEZPIECZENIA PROGRAMOWE

Firmware zawiera kilka warstw zabezpieczeń i kontroli poprawności danych.

18.1. Limity pozycji

Polecenia ruchu są ograniczane do zakresów:

  • ARM1: −105° … +105°,
  • ARM2: −125° … +125°,
  • Z: 0 … 300 mm.

18.2. Częstotliwość STEP i prędkość

Aktualny firmware nie stosuje dodatkowych twardych górnych limitów częstotliwości STEP. Częstotliwość STEP wynika z zadanej prędkości osi, przełożenia, mikrokroku oraz override AUTO.

W MANUAL prędkość jest ograniczana do skonfigurowanych prędkości JOG, natomiast w AUTO do bazowych prędkości AUTO pomnożonych przez override 50…250%. Przyspieszenia są realizowane przez FastAccelStepper.

18.3. Walidacja wartości numerycznych

Przed przeliczeniami i wydaniem części poleceń ruchu sprawdzane są wartości typu NaN i Inf. W przypadku wykrycia błędu firmware nie przekazuje nieprawidłowej pozycji do napędów, może zsynchronizować pozycję z licznikami kroków i zgłasza błąd przez Serial/OLED.

18.4. Walidacja programu TEACH/NVS

Podczas odczytu programu z NVS sprawdzany jest rozmiar danych oraz poprawność zapisanych punktów. Nieprawidłowy program, np. zawierający NaN, Inf lub pozycję poza zakresem osi, jest odrzucany i czyszczony.

18.5. Timeout pada

W MANUAL brak aktualnych danych z kontrolera przez określony czas powoduje zatrzymanie ruchu i rozbrojenie sterowania.

18.6. Neutralne uzbrojenie pada

Po połączeniu kontrolera wymagane jest neutralne położenie elementów sterujących przez około 300 ms przed uzbrojeniem ruchu.

18.7. Utrata kontrolera w AUTO

Rozłączenie kontrolera podczas aktywnego cyklu AUTO powoduje przejście programu w PAUSE.

18.8. E-STOP

E-STOP zatrzaskuje stan awaryjny do czasu restartu sterownika. Programowo zatrzymywane są generatory kroków, AUTO przechodzi w FAULT, a sterowanie ręczne pozostaje zablokowane.

19. PROCEDURA MONTAŻU ELEKTRONIKI

  1. Sprawdzić PCB pod kątem zwarć, uszkodzeń ścieżek i jakości lutowania.
  2. Zweryfikować polaryzację kondensatorów elektrolitycznych i diod.
  3. Sprawdzić orientację tranzystorów, układów scalonych i sterowników A4988.
  4. Zamontować ESP32 na przewidzianych złączach goldpin.
  5. Przed podłączeniem ESP32 i serw ustawić napięcie LM2596 na 5,0 V.
  6. Podłączyć przewody silników, serw i elementów panelu zgodnie ze schematem.
  7. Uporządkować przewody tak, aby nie kolidowały z ruchomymi częściami.
  8. Zapewnić luz przewodów w miejscach ruchu.
  9. Zapewnić wentylację A4988 oraz elementów wydzielających ciepło.
  10. Sprawdzić działanie E-STOP przed testami ruchu.

20. PROCEDURA URUCHOMIENIA

Przed pierwszym uruchomieniem:

  1. sprawdzić wszystkie połączenia mechaniczne,
  2. sprawdzić naciąg pasków,
  3. sprawdzić prowadzenie przewodów,
  4. sprawdzić poprawność zasilania,
  5. ustawić LM2596 na 5,0 V,
  6. sprawdzić ustawienie prądów A4988,
  7. upewnić się, że obszar pracy robota jest wolny,
  8. ręcznie ustawić robot w pozycji HOME,
  9. włączyć zasilanie,
  10. obserwować diody sygnalizacyjne i komunikaty Serial,
  11. połączyć kontroler Bluetooth,
  12. pozostawić analogi i przyciski w neutralnym położeniu do czasu uzbrojenia,
  13. wykonać krótkie testy pojedynczych osi przy małych wychyleniach analogów,
  14. sprawdzić kierunki ruchu,
  15. sprawdzić działanie E-STOP,
  16. dopiero po poprawnym wykonaniu powyższych testów przejść do pełnego zakresu pracy.

 

21. TESTY ODBIORCZE

Zamiast ograniczać testy do stwierdzenia „działa poprawnie”, zaleca się zapisywanie wyników pomiarowych.

21.1. Kontrola PCB

Kryterium: brak zwarć, zimnych lutów, błędnej orientacji i uszkodzeń.

21.2. Kontrola napięcia 5 V

Kryterium: napięcie LM2596 ustawione na 5,0 V przed podłączeniem odbiorników wymagających tego napięcia.

21.3. Test ARM1

Zadać ruch np. o 30°, 60° i 90° w obu kierunkach.

Sprawdzić:

  • kierunek,
  • płynność,
  • brak gubienia kroków,
  • zgodność kąta rzeczywistego z zadanym.

21.4. Test ARM2

Analogicznie jak dla ARM1.

21.5. Test osi Z

Wykonać przejazdy kontrolne np. 5 mm, 10 mm i 20 mm.

Pomiar wykonać suwmiarką lub czujnikiem zegarowym.

21.6. Test chwytaka

Sprawdzić:

  • pełne otwarcie,
  • pełne zamknięcie,
  • brak mechanicznego blokowania,
  • brak nadmiernego poboru prądu przy dojeździe do ograniczeń.

21.7. Test TEACH

Zapisać kilka punktów, wyłączyć zasilanie, uruchomić ponownie i zweryfikować obecność programu.

21.8. Test AUTO

Zapisać minimum 5 punktów i uruchomić wielokrotne odtwarzanie.

Sprawdzić:

  • osiąganie wszystkich punktów,
  • poprawną obsługę serw,
  • czasy postoju,
  • działanie START/PAUSE/RESUME,
  • poprawne przejście do kolejnego cyklu.

 

21.9. Test utraty kontrolera

MANUAL

Rozłączenie pada powinno zatrzymać sterowanie.

AUTO

Utrata kontrolera podczas aktywnego cyklu powinna przełączyć program w PAUSE.

21.10. Test E-STOP

Po aktywacji E-STOP:

  • wszystkie osie powinny zostać zatrzymane,
  • stan AUTO powinien przejść w FAULT,
  • dalsza praca powinna być niemożliwa do czasu restartu.

21.11. Test powtarzalności

Wybrać minimum trzy punkty w przestrzeni roboczej.

Dla każdego wykonać co najmniej 20 dojazdów i zmierzyć rozrzut pozycji TCP.

Na podstawie tych pomiarów można dopiero wpisać rzeczywistą powtarzalność robota.

21.12. Test długotrwały

Zaleca się wykonanie co najmniej 30-minutowej pracy cyklicznej.

Należy monitorować:

  • temperaturę A4988,
  • temperaturę silników,
  • temperaturę LM2596,
  • stabilność Bluetooth,
  • ewentualne gubienie kroków,
  • samoczynne resety ESP32.

22. BEZPIECZEŃSTWO

Podczas pracy nie wolno:

  • wkładać rąk w obszar pracy robota,
  • zatrzymywać ramienia ręką,
  • dotykać poruszających się pasków,
  • pracować z uszkodzonymi przewodami,
  • podłączać i odłączać silników krokowych przy załączonym zasilaniu,
  • pozostawiać robota bez nadzoru podczas testów,
  • uruchamiać pełnej prędkości przed zakończeniem testów pojedynczych osi.

Przed pracami serwisowymi należy odłączyć zasilanie.

Ze względu na edukacyjny charakter urządzenia wszystkie testy powinny być prowadzone pod nadzorem osoby znającej budowę stanowiska.

 

  1. KONSERWACJA

Okresowo należy kontrolować:

  • naciąg pasków,
  • stan kół pasowych,
  • stan łożysk,
  • stan prowadnic,
  • dokręcenie śrub,
  • stan elementów drukowanych 3D,
  • prowadzenie przewodów,
  • temperaturę silników,
  • temperaturę A4988,
  • stabilność połączeń złączowych.

Szczególną uwagę należy zwracać na układ napędowy drugiego członu, ponieważ luz paska bezpośrednio wpływa na dokładność i powtarzalność robota.

24. MOŻLIWOŚCI ROZBUDOWY

Projekt może zostać rozwinięty o:

  • automatyczny homing z wykorzystaniem krańcówek,
  • interpolację liniową LIN w przestrzeni TCP,
  • system wizyjny,
  • kamerę do rozpoznawania obiektów,
  • czujnik odległości,
  • wykrywanie obecności detalu,
  • elektromagnes,
  • przyssawkę podciśnieniową,
  • marker,
  • dozownik,
  • narzędzie pomiarowe,
  • interfejs PC do edycji programów,
  • zapis większej liczby programów,
  • wybór programu z poziomu panelu,
  • raportowanie pozycji i błędów przez Wi-Fi.

25. PRZYKŁADOWA SEKWENCJA PICK AND PLACE

Przykładowa sekwencja może wyglądać następująco:

START → pozycja bazowa → przejazd nad detal → Z w dół → zamknięcie chwytaka → Z w górę → przejazd nad miejsce odkładania → Z w dół → otwarcie chwytaka → Z w górę → powrót → STOP

Sekwencję można zapisać za pomocą funkcji TEACH, a następnie odtwarzać w trybie AUTO.

26. ZALEŻNOŚĆ PARAMETRÓW MECHANICZNYCH I PROGRAMOWYCH

Zmiana konstrukcji mechanicznej może wymagać modyfikacji firmware.

Przykładowo:

zmiana długości ramienia → zmiana parametrów kinematyki → zmiana obliczanych kątów → zmiana położenia TCP

Podobnie:

zmiana przełożenia → zmiana liczby kroków/stopień → błędna pozycja osi przy starych parametrach

Dlatego po każdej modyfikacji:

  • długości ramion,
  • kół pasowych,
  • przełożeń,
  • śruby osi Z,
  • mikrokroku,

należy sprawdzić i w razie potrzeby zaktualizować parametry programu.

27. WERSJONOWANIE DOKUMENTACJI

Dokumentacja techniczna powinna zawsze wskazywać wersję firmware lub commit repozytorium, do którego się odnosi.

Jest to szczególnie ważne, ponieważ w trakcie rozwoju projektu zmieniały się m.in.:

  • prędkości osi,
  • przyspieszenia,
  • zachowanie przycisków MODE i TEACH,
  • obsługa utraty połączenia z padem,
  • parametry AUTO,
  • zabezpieczenia przed niekontrolowanym ruchem.

Przed wydrukowaniem dokumentacji zaleca się wpisanie:

  • numeru rewizji PCB,
  • nazwy gałęzi,
  • hash commita,
  • daty wersji,
  • autora dokumentacji.

28. POCHODZENIE ELEMENTÓW PROJEKTU

Konstrukcja mechaniczna korzysta z rozwiązań i modeli projektu bazowego PyBot, natomiast układ sterowania, płytka PCB, konfiguracja ESP32 i aktualny firmware są rozwijane w ramach niniejszego projektu.

Przed publiczną dystrybucją kompletu materiałów należy zweryfikować warunki licencyjne modeli źródłowych oraz dodać do repozytorium odpowiednie informacje o licencjach i autorach.

29. PODSUMOWANIE

Projekt „Robotyka bez granic” stanowi kompletne edukacyjne stanowisko mechatroniczne łączące mechanikę, druk 3D, elektronikę, napędy, programowanie mikrokontrolerów, kinematykę robotów oraz zagadnienia automatyzacji.

Aktualna wersja robota umożliwia:

  • sterowanie bezprzewodowe,
  • ręczne prowadzenie osi w trybie JOINT,
  • sterowanie TCP w trybie TOOL,
  • zapisywanie punktów TEACH,
  • automatyczne odtwarzanie programu PTP,
  • regulację prędkości ARM1, ARM2 i Z w AUTO,
  • bieżący podgląd stanu na wyświetlaczu OLED,
  • trwałe przechowywanie programu w pamięci ESP32,
  • zatrzymanie awaryjne oraz dodatkowe zabezpieczenia programowe.

Najważniejszymi dalszymi kierunkami rozwoju są automatyczny homing, interpolacja LIN, pomiar rzeczywistej powtarzalności i udźwigu oraz dalsza rozbudowa interfejsu operatora.

 

Тип пристрою: навчальна роботизована рука SCARA 3 DOF + захват 2 DOF

Контролер: ESP32 D1 Mini / WeMos D1 Mini ESP32

Керування: Bluetooth-контролер + кнопки на платі

Програмне забезпечення: C++ / Arduino Framework / PlatformIO

Репозиторій: Attiny2313/SCARA-Robot-Controler-BT

ЗМІСТ

  1. МЕТА ПРОЄКТУ
  2. ХАРАКТЕРИСТИКА РОБОТА
  3. ТЕХНІЧНІ ПАРАМЕТРИ
  4. МЕХАНІЧНА КОНСТРУКЦІЯ
  5. СИСТЕМА ПРИВОДІВ
  6. ЕЛЕКТРИЧНА ТА ЕЛЕКТРОННА СИСТЕМА
  7. АРХІТЕКТУРА КЕРУВАННЯ
  8. ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ
  9. РЕЖИМИ РОБОТИ
  10. РУЧНЕ КЕРУВАННЯ – JOINT
  11. РУЧНЕ КЕРУВАННЯ – TOOL
  12. КІНЕМАТИКА
  13. ПОЛОЖЕННЯ HOME І HOMING
  14. ФУНКЦІЯ TEACH
  15. РЕЖИМ AUTO
  16. ПЕРЕБІГ ЦИКЛУ AUTO
  17. РЕГУЛЮВАННЯ ШВИДКОСТІ В AUTO
  18. ПРОГРАМНІ ЗАСОБИ ЗАХИСТУ
  19. ПРОЦЕДУРА МОНТАЖУ ЕЛЕКТРОНІКИ
  20. ПРОЦЕДУРА ЗАПУСКУ
  21. ПРИЙМАЛЬНІ ВИПРОБУВАННЯ
  22. БЕЗПЕКА
  23. ТЕХНІЧНЕ ОБСЛУГОВУВАННЯ
  24. МОЖЛИВОСТІ РОЗШИРЕННЯ
  25. ПРИКЛАД ПОСЛІДОВНОСТІ PICK AND PLACE
  26. ВЗАЄМОЗВ’ЯЗОК МЕХАНІЧНИХ І ПРОГРАМНИХ ПАРАМЕТРІВ
  27. ВЕРСІОНУВАННЯ ДОКУМЕНТАЦІЇ
  28. ПОХОДЖЕННЯ ЕЛЕМЕНТІВ ПРОЄКТУ
  29. ПІДСУМОК

1. МЕТА ПРОЄКТУ

Метою проєкту є виготовлення, запуск і програмування навчального робота типу SCARA (Selective Compliance Assembly Robot Arm), призначеного для вивчення питань механіки, електроніки, автоматики, робототехніки, програмування та технологій 3D-друку.

Робот дає змогу:

  • вручну керувати окремими осями,
  • керувати положенням робочого органу в декартовій системі координат,
  • керувати захватом,
  • зберігати точки методом TEACH,
  • автоматично відтворювати збережену послідовність рухів,
  • виконувати завдання типу Pick and Place,
  • надалі розширювати систему додатковими датчиками, системою машинного зору та іншими робочими інструментами.

Проєкт має навчальний та експериментальний характер. Він не є промисловим пристроєм або сертифікованим роботом, призначеним для роботи у виробничому середовищі.

2. ХАРАКТЕРИСТИКА РОБОТА

Робот є маніпулятором типу SCARA, основна виконавча частина якого складається з:

  • обертальної осі ARM1,
  • обертальної осі ARM2,
  • лінійної вертикальної осі Z,
  • сервомеханізму обертання захвата,
  • сервомеханізму відкривання та закривання захвата.

За рух трьох основних осей відповідають крокові двигуни NEMA 17. Обертання захвата та його відкривання реалізуються сервомеханізмами.

Механічна конструкція базується на рішеннях проєкту PyBot і використовує елементи, виготовлені методом 3D-друку, а також стандартні механічні компоненти, що застосовуються, зокрема, у 3D-принтерах.

Керування реалізує мікроконтролер ESP32, який працює разом із спеціальною платою PCB. ESP32 зв’язується з бездротовим контролером через Bluetooth і самостійно реалізує логіку керування, кінематику, генерацію траєкторії PTP, обслуговування TEACH/AUTO та програмні засоби захисту.

Комп’ютер не потрібен для нормальної роботи робота. Він використовується для програмування, оновлення firmware та діагностики через послідовний порт.

 

3. ТЕХНІЧНІ ПАРАМЕТРИ

3.1. Параметри конструкції та керування

Параметр

Значення

Тип робота

SCARA

Кількість основних осей

3

Робочі осі

ARM1, ARM2, Z

Додаткові осі захвата

2

Основні двигуни

3 × NEMA 17

Кут повного кроку двигуна

1,8°

Кількість повних кроків на оберт

200

Мікрокрок

1/16

Сервомеханізми

2 × класу SG90/MG90/MG92R

Основний контролер

ESP32 D1 Mini

Драйвери двигунів

A4988

Середовище програмування

PlatformIO / Visual Studio Code

Framework

Arduino

Мова програми

C++

Зв’язок із геймпадом

Bluetooth / Bluepad32

3.2. Параметри, що використовуються поточним firmware

Параметр

Значення

Довжина ланки ARM1

91,61 мм

Довжина ланки ARM2

97,528 мм

Передатне відношення ARM1

4,5

Передатне відношення ARM2

7,280

Крок гвинта осі Z

2,0 мм/об.

Передатне відношення Z

1,0

Програмний діапазон ARM1

−105° … +105°

Програмний діапазон ARM2

−125° … +125°

Програмний діапазон Z

0 … 300 мм

Діапазон обертання захвата

0 … 180°

Діапазон серво захвата

15 … 95°

Ручна швидкість ARM1

25°/с

Ручна швидкість ARM2

25°/с

Ручна швидкість Z

3,0 мм/с

Швидкість TCP у режимі TOOL

20 мм/с

Базова швидкість AUTO ARM1

20°/с

Базова швидкість AUTO ARM2

20°/с

Базова швидкість AUTO Z

3,0 мм/с

Override швидкості AUTO

50…250% для ARM1, ARM2 і Z

Прискорення ARM1

12000 STEP/с²

Прискорення ARM2

5000 STEP/с²

Прискорення Z

6000 STEP/с²

Кількість точок програми TEACH

макс. 20

3.3. Параметри, що потребують вимірювання реального екземпляра

Не слід без додаткових вимірювань приймати значення, заявлені для базового проєкту PyBot, як параметри готового робота.

Зокрема, потребують вимірювання:

  • фактична маса робота,
  • фактичний робочий простір,
  • фактична повторюваність позиціонування,
  • максимальна безпечна вантажопідйомність,
  • максимальні практичні швидкості осей,
  • точність позиціонування TCP.

До моменту проведення приймальних випробувань ці значення слід вважати такими, що підлягають визначенню.

4. МЕХАНІЧНА КОНСТРУКЦІЯ

4.1. Основа

Основа є несучим елементом усієї конструкції. До неї кріпляться, зокрема:

  • напрямні осі Z,
  • приводи,
  • елементи пасових передач,
  • керуюча електроніка,
  • елементи захисту кабелів.

Основа повинна забезпечувати жорсткість конструкції та можливість стабільного встановлення робота на робочому місці.

4.2. Перша ланка руки – ARM1

Перша ланка з’єднує основу з центральним шарніром робота. Її рух змінює напрямок усього маніпулятора в площині XY.

Привід реалізований кроковим двигуном через пасову передачу.

4.3. Друга ланка руки – ARM2

Друга ланка з’єднує першу ланку з робочим органом. Разом з віссю ARM1 вона визначає положення TCP у площині XY.

Рух реалізується незалежним кроковим приводом через систему пасових передач.

4.4. Вертикальна вісь Z

Вісь Z забезпечує вертикальний рух робочого органу. Привід здійснюється за допомогою крокового двигуна та гвинта з кроком 2 мм/оберт.

Через велику кількість кроків на 1 мм руху та ризик пропуску кроків вісь Z працює зі значно нижчою швидкістю, ніж обертальні осі.

4.5. Захват

Захват оснащений двома сервомеханізмами:

  • серво обертання інструмента,
  • серво відкривання та закривання захвата.

Положення сервоприводів можуть зберігатися разом із точками програми TEACH.

5. СИСТЕМА ПРИВОДІВ

5.1. Крокові двигуни

Кожна з трьох основних осей використовує двигун NEMA 17 з кутом повного кроку 1,8°.

Повному оберту відповідає:

360° / 1,8° = 200 кроків

При використанні мікрокроку 1/16:

200 × 16 = 3200 мікрокроків на оберт двигуна

Додатково кількість робочих кроків залежить від передатного відношення конкретної осі.

Для осі Z, за кроку гвинта 2 мм/оберт і мікрокроку 1/16:

3200 / 2 = 1600 кроків/мм

Це значення використовується firmware для перерахунку положення осі Z.

5.2. Драйвери A4988

Драйвери A4988 відповідають за живлення та керування кроковими двигунами. Кожен драйвер отримує від ESP32 сигнали:

  • STEP,
  •  

Необхідно правильно налаштувати струм драйверів відповідно до застосованих двигунів і способу охолодження.

Не можна підключати або відключати кроковий двигун при ввімкненому живленні драйвера.

6. ЕЛЕКТРИЧНА ТА ЕЛЕКТРОННА СИСТЕМА

6.1. Основні елементи

  • ESP32 D1 Mini,
  • 3 драйвери A4988,
  • перетворювач LM2596,
  • роз’єми двигунів,
  • роз’єми сервомеханізмів,
  • кнопки TEACH і MODE,
  • коло E-STOP,
  • сигнальні світлодіоди,
  • OLED-дисплей SSD1306 128×64 I2C,
  • роз’єми кінцевих вимикачів,
  • пасивні та захисні елементи.

Документація плати PCB знаходиться в каталозі PCB репозиторію.

6.2. Призначення входів і виходів ESP32

Функція

GPIO

STEP ARM1

13

DIR ARM1

26

STEP ARM2

23

DIR ARM2

14

STEP Z

18

DIR Z

19

Servo ROTATE

27

Servo GRIP

32

TEACH

25

MODE

33

E-STOP

39

Кінцевий вимикач Z

34

Кінцевий вимикач ARM1

35

Кінцевий вимикач ARM2

36

LED Bluetooth

4

LED ERROR

16

LED STATUS

17

I2C SDA (OLED)

21

I2C SCL (OLED)

22

6.3. Кінцеві вимикачі

Плата має входи для кінцевих вимикачів осей ARM1, ARM2 і Z.

У поточній версії firmware кінцеві вимикачі не реалізують автоматичний homing. Входи збережені апаратно для майбутнього розширення.

6.4. E-STOP

E-STOP є елементом безпеки системи.

Після його активації firmware:

  • негайно зупиняє генерацію кроків,
  • блокує ручне керування,
  • переводить програму AUTO у стан FAULT,
  • сигналізує про помилку,
  • вимагає перезапуску контролера перед повторною роботою.

Система повинна бути виконана так, щоб E-STOP не покладався виключно на програмне забезпечення, а додатково обмежував можливість подальшого живлення або активації приводів відповідно до концепції керуючої плати.

 

6.5. OLED-дисплей

Контролер підтримує OLED-дисплей SSD1306 128×64, підключений через I2C. Шина використовує GPIO21 як SDA і GPIO22 як SCL.

Під час ініціалізації firmware автоматично перевіряє адреси 0x3C і 0x3D. Відсутність дисплея не блокує роботу робота — інформація про проблему передається через Serial.

Під час роботи OLED показує, зокрема:

  • режим MANUAL/AUTO і стан програми,
  • стан Bluetooth-з’єднання,
  • кількість збережених точок TEACH,
  • override швидкості в AUTO,
  • фактичні положення ARM1, ARM2 і Z,
  • положення TCP X/Y або номер поточної точки програми,
  • стани помилок, зокрема E-STOP і NUM ERR.

7. АРХІТЕКТУРА КЕРУВАННЯ

Фактичний потік керування можна подати так:

Bluetooth-геймпад → Bluepad32 → ESP32 → логіка керування → кінематика / AUTO → FastAccelStepper → A4988 → двигуни NEMA17

Паралельно:

ESP32 → ESP32Servo → серво обертання + серво захвата

ESP32 одночасно виконує функції:

  • приймача команд,
  • контролера осей,
  • контролера сервоприводів,
  • модуля кінематики,
  • генератора послідовності AUTO,
  • пам’яті програми TEACH,
  • програмного модуля безпеки,
  • діагностичного модуля.

8. ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ

8.1. Середовище

Керуючу програму підготовлено мовою C++ з використанням:

  • Arduino Framework,
  • PlatformIO,
  • Visual Studio Code.

8.2. Основні бібліотеки

Bluepad32

Бібліотека відповідає за обслуговування Bluetooth-контролерів.

FastAccelStepper

Бібліотека генерує сигнали STEP для трьох осей і дає змогу задавати швидкість, прискорення та положення.

ESP32Servo

Бібліотека керує сервомеханізмами захвата.

Preferences

Бібліотека обслуговує пам’ять NVS ESP32. У пам’яті зберігається програма TEACH, завдяки чому точки залишаються доступними після вимкнення живлення.

Adafruit GFX / Adafruit SSD1306

Бібліотеки відповідають за роботу OLED-дисплея SSD1306 128×64, відображення стану робота та базову діагностику.

9. РЕЖИМИ РОБОТИ

Контролер використовує два незалежні рівні режимів.

9.1. Основний режим роботи

  • MANUAL
  • AUTO

9.2. Режим ручного керування

У режимі MANUAL доступні:

  • JOINT
  • TOOL

Таким чином, вибір JOINT/TOOL не є тим самим, що вибір MANUAL/AUTO.

10. РУЧНЕ КЕРУВАННЯ – JOINT

У режимі JOINT оператор безпосередньо керує окремими осями робота.

Поточне призначення органів геймпада:

Елемент контролера

Функція

Лівий аналог X

ARM1

Лівий аналог Y

ARM2

Правий аналог Y

Z

Правий аналог X

обертання захвата

A / B

відкривання / закривання захвата

START

JOINT / TOOL

Значення з аналогових стиків нормалізуються та мають мертву зону, щоб невеликі відхилення стика не спричиняли рух робота.

Після підключення контролера робот не озброюється одразу. Потрібно приблизно 300 мс нейтрального положення всіх органів керування. Це запобігає неконтрольованому руху відразу після спарювання геймпада.

11. РУЧНЕ КЕРУВАННЯ – TOOL

У режимі TOOL оператор не керує безпосередньо кутами ARM1 і ARM2.

Лівий аналог задає рух робочого органу в площині XY, а програма обчислює необхідні кути плечей за допомогою оберненої кінематики.

Керування віссю Z та захватом залишається аналогічним до режиму JOINT.

Якщо задана точка знаходиться поза досяжною областю або потребує перевищення межі осі, команда не виконується і може бути сигналізована помилка.

12. КІНЕМАТИКА

12.1. Пряма кінематика

Для двох плечей SCARA положення TCP у площині XY визначається залежностями:

X = L1·cos(θ1) + L2·cos(θ1 + θ2)

Y = L1·sin(θ1) + L2·sin(θ1 + θ2)

та:

Z = положення осі Z

де:

  • L1 – довжина першої ланки,
  • L2 – довжина другої ланки,
  • θ1 – кут ARM1,
  • θ2 – кут ARM2.

У поточній конфігурації:

  • L1 = 91,61 мм,
  • L2 = 97,528 мм.

12.2. Обернена кінематика

У режимі TOOL задається положення (X,Y), а програма обчислює кути θ1 і θ2.

Спочатку обчислюється залежність:

cos(θ2) = (X² + Y² − L1² − L2²) / (2·L1·L2)

Якщо результат виходить за межі −1…1, точка знаходиться поза геометричною робочою областю.

Потім визначаються кути шарнірів. Для типового двошарнірного робота існують дві геометричні конфігурації, що відповідають положенню «ліктя» з двох боків.

Поточний firmware використовує одну з цих конфігурацій (ELBOW_UP).

Після обчислення кутів також перевіряються програмні обмеження діапазонів ARM1 і ARM2.

13. ПОЛОЖЕННЯ HOME І HOMING

Поточний робот не виконує автоматичний homing.

Положення HOME необхідно встановити вручну перед увімкненням живлення або скиданням ESP32.

Firmware приймає такі стартові значення:

Вісь

Положення HOME

ARM1

0°

ARM2

0°

Z

0 мм

Обертання захвата

90°

Захват

30°

Після запуску лічильник кроків кожної осі встановлюється в положення, що відповідає HOME.

Якщо механіка фактично не була встановлена в це положення, усі подальші обчислення положення міститимуть помилку.

Автоматичний homing із використанням кінцевих вимикачів передбачений як можливе майбутнє розширення.

14. ФУНКЦІЯ TEACH

Кнопка TEACH на платі дає змогу зберегти поточне положення робота.

TEACH працює лише:

  • у режимі MANUAL,
  • при зупинених осях,
  • коли E-STOP не активний.

14.1. Коротке натискання

Зберігає наступну точку програми.

Кожна точка містить:

  • положення ARM1,
  • положення ARM2,
  • положення Z,
  • положення серво обертання захвата,
  • положення серво захвата,
  • час паузи dwellMs.

Максимальна кількість точок становить 20.

14.2. Довге натискання

Утримання кнопки приблизно 1,8 с видаляє всю збережену програму.

14.3. Пам’ять

Програма зберігається в пам’яті NVS ESP32. Завдяки цьому вона не втрачається після вимкнення живлення.

15. РЕЖИМ AUTO

Кнопка MODE перемикає роботу між MANUAL і AUTO.

Зміна режиму можлива лише при зупинених осях.

У AUTO геймпад не використовується для безпосереднього керування осями.

Кнопка START реалізує функції:

  • IDLE → START,
  • RUN → PAUSE,
  • PAUSED → RESUME.

AUTO відтворює точки, раніше збережені функцією TEACH.

16. ПЕРЕБІГ ЦИКЛУ AUTO

Для кожної точки програми виконуються такі дії:

  1. встановлення цільових положень сервомеханізмів,
  2. визначення відстані, яку мають пройти ARM1, ARM2 і Z,
  3. вибір швидкостей осей,
  4. початок руху PTP,
  5. очікування завершення руху всіх осей,
  6. очікування заданого часу паузи,
  7. перехід до наступної точки.

У поточній конфігурації програма за замовчуванням працює циклічно.

16.1. Тип руху

Поточна реалізація AUTO виконує рух PTP (Point To Point).

Це означає, що синхронізуються часи переміщення осей, але траєкторія TCP між точками не обов’язково є прямою лінією.

Лінійна інтерполяція LIN передбачена як можливе майбутнє розширення.

17. РЕГУЛЮВАННЯ ШВИДКОСТІ В AUTO

У гілці dev доступне регулювання швидкості всього руху в режимі AUTO.

D-pad

Функція

вгору

+10%

вниз

−10%

вліво

повернення до 100%

Діапазон регулювання:

50% … 250%

Override масштабує базові швидкості всіх трьох осей: ARM1, ARM2 і Z. При 100% базові значення становлять відповідно 20°/с, 20°/с і 3,0 мм/с.

Зміна швидкості починає діяти з наступного руху PTP. Поточний рух не перераховується в реальному часі.

18. ПРОГРАМНІ ЗАСОБИ ЗАХИСТУ

Firmware містить кілька рівнів захисту та перевірки коректності даних.

18.1. Межі положення

Команди руху обмежуються діапазонами:

  • ARM1: −105° … +105°,
  • ARM2: −125° … +125°,
  • Z: 0 … 300 мм.

18.2. Частота STEP і швидкість

Поточний firmware не використовує додаткових жорстких верхніх обмежень частоти STEP. Частота STEP визначається заданою швидкістю осі, передатним відношенням, мікрокроком та override AUTO.

У MANUAL швидкість обмежується налаштованими швидкостями JOG, а в AUTO — базовими швидкостями AUTO, помноженими на override 50…250%. Прискорення реалізує FastAccelStepper.

18.3. Перевірка числових значень

Перед обчисленнями та частиною команд руху перевіряються значення типу NaN і Inf. У разі виявлення помилки firmware не передає некоректну позицію приводам, може синхронізувати позицію з лічильниками кроків і повідомляє про помилку через Serial/OLED.

18.4. Перевірка програми TEACH/NVS

Під час читання програми з NVS перевіряються розмір даних і коректність збережених точок. Некоректна програма, наприклад із NaN, Inf або позицією поза діапазоном осі, відхиляється та очищується.

18.5. Timeout геймпада

У MANUAL відсутність актуальних даних від контролера протягом визначеного часу спричиняє зупинку руху та роззброєння керування.

18.6. Нейтральне озброєння геймпада

Після підключення контролера необхідне нейтральне положення органів керування приблизно 300 мс перед активацією руху.

18.7. Втрата контролера в AUTO

Відключення контролера під час активного циклу AUTO переводить програму в PAUSE.

18.8. E-STOP

E-STOP фіксує аварійний стан до моменту перезапуску контролера. Програмно зупиняються генератори кроків, AUTO переходить у FAULT, а ручне керування залишається заблокованим.

19. ПРОЦЕДУРА МОНТАЖУ ЕЛЕКТРОНІКИ

  1. Перевірити PCB на наявність коротких замикань, пошкоджень доріжок і якість пайки.
  2. Перевірити полярність електролітичних конденсаторів і діодів.
  3. Перевірити орієнтацію транзисторів, інтегральних схем і драйверів A4988.
  4. Встановити ESP32 у передбачені роз’єми goldpin.
  5. Перед підключенням ESP32 і сервоприводів встановити напругу LM2596 на 5,0 В.
  6. Підключити проводи двигунів, сервоприводів і елементів панелі відповідно до схеми.
  7. Упорядкувати проводи так, щоб вони не заважали рухомим частинам.
  8. Забезпечити запас довжини проводів у місцях руху.
  9. Забезпечити вентиляцію A4988 та елементів, що виділяють тепло.
  10. Перевірити роботу E-STOP перед випробуваннями руху.

20. ПРОЦЕДУРА ЗАПУСКУ

Перед першим запуском:

  1. перевірити всі механічні з’єднання,
  2. перевірити натяг ременів,
  3. перевірити прокладання проводів,
  4. перевірити правильність живлення,
  5. встановити LM2596 на 5,0 В,
  6. перевірити налаштування струмів A4988,
  7. переконатися, що робоча зона робота вільна,
  8. вручну встановити робота в положення HOME,
  9. увімкнути живлення,
  10. спостерігати за сигнальними світлодіодами та повідомленнями Serial,
  11. підключити Bluetooth-контролер,
  12. залишити аналоги та кнопки в нейтральному положенні до моменту озброєння,
  13. виконати короткі тести окремих осей при малих відхиленнях аналогів,
  14. перевірити напрямки руху,
  15. перевірити роботу E-STOP,
  16. лише після успішного виконання наведених вище тестів перейти до повного діапазону роботи.

 

21. ПРИЙМАЛЬНІ ВИПРОБУВАННЯ

Замість обмеження тестів твердженням «працює правильно» рекомендується записувати результати вимірювань.

21.1. Контроль PCB

Критерій: відсутність коротких замикань, холодних пайок, неправильної орієнтації та пошкоджень.

21.2. Контроль напруги 5 В

Критерій: напруга LM2596 встановлена на 5,0 В перед підключенням споживачів, які потребують цієї напруги.

21.3. Тест ARM1

Задати рух, наприклад, на 30°, 60° і 90° в обох напрямках.

Перевірити:

  • напрямок,
  • плавність,
  • відсутність пропусків кроків,
  • відповідність фактичного кута заданому.

21.4. Тест ARM2

Аналогічно до ARM1.

21.5. Тест осі Z

Виконати контрольні переміщення, наприклад, 5 мм, 10 мм і 20 мм.

Вимірювання виконати штангенциркулем або індикатором годинникового типу.

21.6. Тест захвата

Перевірити:

  • повне відкриття,
  • повне закриття,
  • відсутність механічного заклинювання,
  • відсутність надмірного споживання струму при досягненні обмежень.

21.7. Тест TEACH

Зберегти кілька точок, вимкнути живлення, знову запустити систему та перевірити наявність програми.

21.8. Тест AUTO

Зберегти щонайменше 5 точок і запустити багаторазове відтворення.

Перевірити:

  • досягнення всіх точок,
  • правильну роботу сервоприводів,
  • часи пауз,
  • роботу START/PAUSE/RESUME,
  • правильний перехід до наступного циклу.

 

21.9. Тест втрати контролера

MANUAL

Відключення геймпада має зупинити керування.

AUTO

Втрата контролера під час активного циклу повинна перевести програму в PAUSE.

21.10. Тест E-STOP

Після активації E-STOP:

  • усі осі мають бути зупинені,
  • стан AUTO має перейти в FAULT,
  • подальша робота має бути неможливою до перезапуску.

21.11. Тест повторюваності

Вибрати щонайменше три точки в робочому просторі.

Для кожної виконати щонайменше 20 підходів і виміряти розкид положення TCP.

Лише на основі цих вимірювань можна вказати фактичну повторюваність робота.

21.12. Тривалий тест

Рекомендується провести щонайменше 30-хвилинну циклічну роботу.

Необхідно контролювати:

  • температуру A4988,
  • температуру двигунів,
  • температуру LM2596,
  • стабільність Bluetooth,
  • можливі пропуски кроків,
  • самовільні перезавантаження ESP32.

22. БЕЗПЕКА

Під час роботи заборонено:

  • вводити руки в робочу зону робота,
  • зупиняти плече рукою,
  • торкатися рухомих ременів,
  • працювати з пошкодженими проводами,
  • підключати та відключати крокові двигуни при ввімкненому живленні,
  • залишати робота без нагляду під час тестів,
  • запускати повну швидкість до завершення тестів окремих осей.

Перед сервісними роботами необхідно відключити живлення.

Через навчальний характер пристрою всі тести повинні проводитися під наглядом особи, яка знає конструкцію стенда.

23. ТЕХНІЧНЕ ОБСЛУГОВУВАННЯ

Періодично необхідно контролювати:

  • натяг ременів,
  • стан шківів,
  • стан підшипників,
  • стан напрямних,
  • затягування гвинтів,
  • стан елементів, надрукованих на 3D-принтері,
  • прокладання проводів,
  • температуру двигунів,
  • температуру A4988,
  • стабільність з’єднань роз’ємів.

Особливу увагу слід приділяти приводу другої ланки, оскільки люфт ременя безпосередньо впливає на точність і повторюваність робота.

24. МОЖЛИВОСТІ РОЗШИРЕННЯ

Проєкт може бути розширений такими функціями:

  • автоматичний homing із використанням кінцевих вимикачів,
  • лінійна інтерполяція LIN у просторі TCP,
  • система машинного зору,
  • камера для розпізнавання об’єктів,
  • датчик відстані,
  • виявлення наявності деталі,
  • електромагніт,
  • вакуумна присоска,
  • маркер,
  • дозатор,
  • вимірювальний інструмент,
  • інтерфейс PC для редагування програм,
  • зберігання більшої кількості програм,
  • вибір програми з панелі,
  • передавання положення та помилок через Wi-Fi.

25. ПРИКЛАД ПОСЛІДОВНОСТІ PICK AND PLACE

Приклад послідовності може виглядати так:

START → базове положення → переміщення над деталлю → Z вниз → закриття захвата → Z вгору → переміщення над місцем укладання → Z вниз → відкриття захвата → Z вгору → повернення → STOP

Послідовність можна зберегти за допомогою функції TEACH, а потім відтворювати в режимі AUTO.

26. ВЗАЄМОЗВ’ЯЗОК МЕХАНІЧНИХ І ПРОГРАМНИХ ПАРАМЕТРІВ

Зміна механічної конструкції може потребувати модифікації firmware.

Наприклад:

зміна довжини плеча → зміна параметрів кінематики → зміна обчислюваних кутів → зміна положення TCP

Аналогічно:

зміна передатного відношення → зміна кількості кроків/градус → неправильне положення осі зі старими параметрами

Тому після кожної модифікації:

  • довжини плечей,
  • шківів,
  • передатних відношень,
  • гвинта осі Z,
  • мікрокроку,

необхідно перевірити та, за потреби, оновити параметри програми.

27. ВЕРСІОНУВАННЯ ДОКУМЕНТАЦІЇ

Технічна документація завжди повинна вказувати версію firmware або commit репозиторію, до якого вона належить.

Це особливо важливо, оскільки під час розвитку проєкту змінювалися, зокрема:

  • швидкості осей,
  • прискорення,
  • поведінка кнопок MODE і TEACH,
  • обслуговування втрати зв’язку з геймпадом,
  • параметри AUTO,
  • захист від неконтрольованого руху.

Перед друком документації рекомендується вказати:

  • номер ревізії PCB,
  • назву гілки,
  • hash commit,
  • дату версії,
  • автора документації.

28. ПОХОДЖЕННЯ ЕЛЕМЕНТІВ ПРОЄКТУ

Механічна конструкція використовує рішення та моделі базового проєкту PyBot, тоді як система керування, плата PCB, конфігурація ESP32 і поточний firmware розробляються в межах цього проєкту.

Перед публічним розповсюдженням повного комплекту матеріалів необхідно перевірити ліцензійні умови вихідних моделей і додати до репозиторію відповідну інформацію про ліцензії та авторів.

29. ПІДСУМОК

Проєкт «Робототехніка без кордонів» є комплексним навчальним мехатронним стендом, що поєднує механіку, 3D-друк, електроніку, приводи, програмування мікроконтролерів, кінематику роботів та питання автоматизації.

Поточна версія робота дає змогу:

  • бездротове керування,
  • ручне керування осями в режимі JOINT,
  • керування TCP у режимі TOOL,
  • зберігання точок TEACH,
  • автоматичне відтворення програми PTP,
  • регулювання швидкості ARM1, ARM2 і Z в AUTO,
  • поточне відображення стану на OLED-дисплеї,
  • постійне зберігання програми в пам’яті ESP32,
  • аварійну зупинку та додаткові програмні засоби захисту.

Найважливішими подальшими напрямами розвитку є автоматичний homing, інтерполяція LIN, вимірювання фактичної повторюваності та вантажопідйомності, а також подальший розвиток інтерфейсу оператора.

Next Post

Previous Post

© 2026 Robotyka bez granic – polsko – ukraińska akademia techniki, przedsiębiorczości i ekonomii przyszłości

Theme by Anders Norén