Witam,
chciałbym tutaj zaprezentować początek projektu (choć i tak już nieco zaawansowany) budowy własnego ramienia robotycznego. Projekt składa się z kilku faz. Często równoległe wykonuję różne zadania związane z tym projektem. Ale od początku.
Faza 1.
Polegała ona na określeniu jaki typ ramienia robotycznego chcę zbudować, jak rozwiążę zabudowę napędów, jaki typ napędów, czym sterowane i wiele innych pytań na które musiałem sobie odpowiedzieć po drodze.
Po namyśle i zgrubnych analizach obciążeń wybrałem typ budowy ramienia robotycznego pokazany na zdjęciach poniżej:
oraz
Elementy wykonałem rysując na własnym oprogramowaniu CNCPaint na własnej frezarce (art "Frezarka numeryczna z własnym sterowaniem"). Elementy ramion są wycięte ze sklejki, elementy napędowe to standardowe koła zębate aluminiowe i paski do nich ze specjalnego tworzywa.
Ten typ budowy nie obciąża tak ramion mojego robota, ponieważ wszystkie serwa są skupione w zasadzie w jednym miejscu. Test obrotu takiego ramienia wyszedł pozytywnie, choć muszę przyznać, że nie były zamontowane wszystkie serwa, a ma ich być ogółem pięć. Rysunek drugi przedstawia właśnie obrotnicę.
Faza 2
To jak dotychczas najbardziej skomplikowana część projektu. Polega ona na zbudowaniu układu sterowania ramieniem. Rozważałem zastosowanie standardowego PC-ta wraz z jakąś kartą IO, ale ostatecznie zdecydowałem się na nietypową architekturę. Główną jednostką jest Raspberry Pi ver.3, na którym działa mój program napisany w Lazarusie (Object Pascal). Jego zadaniem jest nadzór nad wszystkimi elementami sterowania powstającego robota, interakcja z operatorem, możliwość budowania skryptów przemieszczenia ramienia, wykonywania pojedynczego ruchu jedną osią, nadzór nad prawidłową pracą, rejestracja ewentualnych błędów, takich jak przekroczenie zadanego zakresu dla danego silnika, błąd przemieszczenia. Elementami nadzorującymi przemieszczenie, czyli zmianę kąta nachylenia danej osi są mikrokontrolery ATMega8. Każdy enkoder danego silnika jest podłączony do odpowiedniej atmegi8. Po stronie mikrokontrolerów rezyduje program (napisany w Bascomie), którego zadaniem jest zliczanie impulsów enkodera, generowanie sygnałów krok/kierunek odczyt danych z i wysyłanie do RPi. Raspberry Pi jest spięte z atmegami interfejsem I2C. Generalnie na każdej z atmeg jest ten sam program, różnią się tylko adresami (protokół I2C). Nastawy jakie otrzymują te atmegi z RPi są już jednak różne ze względu na to, że obsługują różne silniki, czyli zakresy obrotu danego silnika-ile pulsów w lewo, a ile w prawo, prędkość przemieszczenia, kąt przemieszczenia (na razie w pulsach enkodera).
Poniżej prezentuję krótki filmik, jak działa samo sterowanie:
Link
Jeśli będziecie zainteresowani, to rozwinę ten temat dalej. Na razie to tyle.
chciałbym tutaj zaprezentować początek projektu (choć i tak już nieco zaawansowany) budowy własnego ramienia robotycznego. Projekt składa się z kilku faz. Często równoległe wykonuję różne zadania związane z tym projektem. Ale od początku.
Faza 1.
Polegała ona na określeniu jaki typ ramienia robotycznego chcę zbudować, jak rozwiążę zabudowę napędów, jaki typ napędów, czym sterowane i wiele innych pytań na które musiałem sobie odpowiedzieć po drodze.
Po namyśle i zgrubnych analizach obciążeń wybrałem typ budowy ramienia robotycznego pokazany na zdjęciach poniżej:

oraz

Elementy wykonałem rysując na własnym oprogramowaniu CNCPaint na własnej frezarce (art "Frezarka numeryczna z własnym sterowaniem"). Elementy ramion są wycięte ze sklejki, elementy napędowe to standardowe koła zębate aluminiowe i paski do nich ze specjalnego tworzywa.
Ten typ budowy nie obciąża tak ramion mojego robota, ponieważ wszystkie serwa są skupione w zasadzie w jednym miejscu. Test obrotu takiego ramienia wyszedł pozytywnie, choć muszę przyznać, że nie były zamontowane wszystkie serwa, a ma ich być ogółem pięć. Rysunek drugi przedstawia właśnie obrotnicę.
Faza 2
To jak dotychczas najbardziej skomplikowana część projektu. Polega ona na zbudowaniu układu sterowania ramieniem. Rozważałem zastosowanie standardowego PC-ta wraz z jakąś kartą IO, ale ostatecznie zdecydowałem się na nietypową architekturę. Główną jednostką jest Raspberry Pi ver.3, na którym działa mój program napisany w Lazarusie (Object Pascal). Jego zadaniem jest nadzór nad wszystkimi elementami sterowania powstającego robota, interakcja z operatorem, możliwość budowania skryptów przemieszczenia ramienia, wykonywania pojedynczego ruchu jedną osią, nadzór nad prawidłową pracą, rejestracja ewentualnych błędów, takich jak przekroczenie zadanego zakresu dla danego silnika, błąd przemieszczenia. Elementami nadzorującymi przemieszczenie, czyli zmianę kąta nachylenia danej osi są mikrokontrolery ATMega8. Każdy enkoder danego silnika jest podłączony do odpowiedniej atmegi8. Po stronie mikrokontrolerów rezyduje program (napisany w Bascomie), którego zadaniem jest zliczanie impulsów enkodera, generowanie sygnałów krok/kierunek odczyt danych z i wysyłanie do RPi. Raspberry Pi jest spięte z atmegami interfejsem I2C. Generalnie na każdej z atmeg jest ten sam program, różnią się tylko adresami (protokół I2C). Nastawy jakie otrzymują te atmegi z RPi są już jednak różne ze względu na to, że obsługują różne silniki, czyli zakresy obrotu danego silnika-ile pulsów w lewo, a ile w prawo, prędkość przemieszczenia, kąt przemieszczenia (na razie w pulsach enkodera).
Poniżej prezentuję krótki filmik, jak działa samo sterowanie:
Link
Jeśli będziecie zainteresowani, to rozwinę ten temat dalej. Na razie to tyle.
Cool? Ranking DIY