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

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...