Skocz do zawartości

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.

Bardzo ładny projekt demonstracyjno—edukacyjny. Napiszesz może coś o programach? Robiłeś kinematykę sam, czy używasz gotowców?

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@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

Udostępnij ten post


Link to post
Share on other sites
(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

Udostępnij ten post


Link to post
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

 

 

Udostępnij ten post


Link to post
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!

Gość
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...