Skocz do zawartości

Delta Astra*


wn2001

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

@deshipu  Dziękuję! 🙂 Jeśli chodzi o programy, to mamy w sumie trzy, dla Nucleo (najważniejszy), RPi 3B+ (system wizyjny) i NodeMCU/ESP8266 (obsługa wyświetlacza):

1. Nucleo było programowane w online'owym środowisku mBED, coś podobnego jak C dla Arduino. Funkcje kinematyki odwrotnej "pożyczyłem" z forum Trossen, gdzie znajduje się genialny artykuł tłumaczący to zagadnienie w ujęciu robotów delta. Następnie jest też funkcja wywołująca ruch silników (biblioteka AccelStepper, niestety ruch odbywa się "na sztywno" - nie potrafię zrobić tego tak, aby np. końcówka płynnie przejechała z punktu A do B w linii prostej 😞), załączanie/odłączanie elektrozaworów, brzęczyka czy lampy przy kamerce to wiadomo, sterowanie pojedynczymi pinami. Czwarty silnik (ten od stołu), jest sterowany bez akceleracji, cyklicznie zmieniam stan pinu w pętli for, ale to wystarczy. I wspomniane dwa porty szeregowe, jeden łączący Nucleo z RPi (Nucleo wysyła 'q', a RPi w odpowiedzi zwraca ciąg np. 'czb' - czerwony, żółty, biały). Natomiast drugi port, ten od panelu, "nasłuchuje", czy nacisnąłem jakiś przycisk, a podczas ruchów/detekcji kolorów wysyła na NodeMCU (a ten na wyświetlacz) kolory krążków lub koordynaty typu "X100 Y100 Z200\n"

2. RPi ma bibliotekę OpenCV, napisałem prosty programik (Python), który muszę uruchomić ręcznie przez np. VNC - ten z kolei czeka, aż otrzyma literkę 'q' od Nucleo, jeśli tak, robi zdjęcie, wycina ustawione na sztywno fragmenty, liczy średnie R,G i B; a następnie odsyła wspomniany już wyżej ciąg literek symbolizujących kolory

3. NodeMCU, program pisany w Arduino IDE, ma podpięte 4 przyciski (połączone z rezystorami, dzięki czemu do odczytu, który z nich wcisnąłem, wystarczy tylko jeden pin analogowy) oraz wspomniany już wyświetlacz ILI9341, na start wyświetla się ekran powitalny, jeśli wykryje, że coś przychodzi od Nucleo, przełącza się w tryb coś a'la terminal i wypisuje to, co od niego otrzymał (no chyba, że np. jest to literka c, to wtedy zamiast nie wyświetlam czerwone O). Ponadto cyklicznie sprawdzam, czy nie naciśnięto przycisku bezpieczeństwa (ma dwa niezależne styki, jeden NO służący do twardego resetu Nucleo, drugi NC podłączony jest właśnie pod NodeMCU jako przycisk) i ewentualnie wówczas wyświetlam migający czerwony napis "STOP AWARIA"

  • Lubię! 2
Link do komentarza
Share on other sites

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

@deshipu, ta baza to już chyba wysypała się na zawsze, więc dobrze, że znalazłeś archiwum. Doszedłem do wniosku, że bez przykładów z forum Trossen, strony PyImageSearch, kursów Forbota itd... niewiele samodzielnie bym zdziałał, dlatego ja też podzielę się swoim kodem do tego projektu - wprawdzie nie ma nic tam odkrywczego, ale może ktoś kiedyś skorzysta, chociażby aby wiedzieć jak użyć tych funkcji IK:

https://github.com/wnowacki/deltaAstra_public/tree/master

Z góry zaznaczam, że jakość kodu jest taka, że zawodowi programiści mogą się złapać za głowę 🙂

Pozdrawiam

Edit: Zapomniałem dodać, że jutro wrzucę film z poprawionym algorytmem sortowania, który dość mocno przyspieszył cykl

Edytowano przez wn2001
Link do komentarza
Share on other sites

Zgodnie z obietnicą, wstawiam film z finalną, ukończoną już w 100% wersją delty, projekt można uznać za całkowicie zamknięty i zakończony sukcesem 🙂

Spiąłem ładnie kable, poprawiłem trochę kod (link powyżej) i maksymalnie zwiększyłem prędkość - na pojedynczą operację przeniesienia krążka robot potrzebuje około 5 sekund 😉

To, co robię na początku to to, o czym wspomniałem w opisie - prosty panel HMI pozwala na luzowanie silników, ręczne wyzerowanie, sterowanie siłownikiem i przede wszystkim - start cyklu

 

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.