Skocz do zawartości

Tablica liderów


Popularna zawartość

Pokazuje zawartość z najwyższą reputacją 21.02.2016 we wszystkich miejscach

  1. 1 punkt
    Cześć, chciałbym przedstawić Wam mojego robota Celem pracy było wykonanie zdalnie sterowanego robota dobrze radzącego sobie w terenie, który wysyła obraz i dane z czujników do operatora. Budowa: Pierwszy etap budowy to projekt CAD w programie Autodesk Inventor 2015. Zawieszenie to uproszczona wersja systemu jezdnego rocker - bogie. (Link do wiki z zasadą działania wikipedia ) Zawieszenie: Praca zawieszenia: Silniki to Pololu 37Dx57L mm z przełożeniem 100:1, do tego adaptery na hex 12mm, i koła z Wild thumpera. Na maszcie znajduje się dedykowany moduł kamery do Raspberry Pi, wraz z reflektorami + dwa serwa Tower Pro do sterowania ruchem masztu. Oprócz tego z boku jest mała skrzyneczka w której znajduje się buzzer oraz czujnik wilgotności i temperatury DHT22: Całość projektu wygląda następująco, z tyłu widać zamontowaną antenę: Konstrukcja została wykonana tak jak przewidywał projekt, oprócz tego robot został oklejony folią moro, co dodało mu powagi ;D Praca zawieszenia: Elektronika: - Raspberry Pi - główny komputer sterujący, - Moduł rozszerzeń podłączany do portów GPIO (zawiera przetwornik ADC MCP3008, zegar RTC, cyfrowy kompas HMC588L i układ Darlingtona ULN2803A) - Silnikami sterują elektroniczne regulatory prędkości używane w samochodach RC, - Generator PWM Adafruit - generuje sygnał do serwomechanizmów i ESC, - Nano router TP-Link TL-WR703N do zapewnienia łączności WiFi, został lekko zmodyfikowany - przylutowałem złącze RPSMA do podłączenia zewnętrznej anteny. - Akumulatory to pakiety ogniw 18650, zostały stworzone dwa - jeden 2S do zasilana elektroniki, drugi 3S do zasilania serwomechanizmów i silników. Półka elektroniki: Pozostałe elementy: Oprogramowanie: Aplikacja sterująca na PC wykorzystuje bibliotekę QT, i SFML (obsługa pada Xbox), na robocie całość została napisana w Pythonie Okno wygląda następująco, jak widać znajdują się tam wszystkie odczyty z czujników, sterowanie światłami, buzzerem, oraz przycisk uruchamiający kamerę: Strumieniowanie video: Aby zapewnić jak najmniejsze opóźnienie i obraz HD został użyty Gstreammer. Starałem się wszystko opisać w dużym skrócie, jak macie jakieś pytania to piszcie
  2. 1 punkt
    Nie jęcz. To, że czegoś nie umiesz zrobić nie oznacza, że jest to niemożliwe. Arduino jest prostą platformą i zwykle korzystają z niej początkujący. To oznacza, że większość projektów prezentowanych w sieci to trywialne: Zrób A, Zrób B, Zrób C, Wróć do początku. Ty chcesz robić (choć może jeszcze o tym nie wiesz) dwie rzeczy na raz. Podczytywanie stanu klawiszka i zmiana zmiennej sterującej - to jedno. Mruganie lub świecenie czymśtam - to drugie. A może i trzecie, czyli wyśwtelacz LCD lub port szeregowy. Powiem Ci tak: to jest trywialne jeśli ma się pojęcie o programowaniu i wyszło się poza piaskownicę Arduino (lub nigdy do niej nie weszło). Może się zdarzyć, że na Forum nikt nie ma czasu by pisać podręcznik o tym jak rozwiązać Twój problem a z poziomu Twojego wiedzy widać, że jedno zdanie nie wystarczy. Skoro nie znalazłeś w sieci odpowiedzi to nawet nie umiesz zadać odpowiedniego pytania bo nie znasz terminów, którymi te rzeczy się nazywa. Jeśli zdobędziesz się na cierpliwość, spróbuję Ci pomóc a samodzielnie, w tzw. międzyczasie spojrzyj na to: https://learn.adafruit.com/multi-tasking-the-arduino-part-1/overview Jeżeli coś z tego wyniesiesz, to tylko lepiej. To proste podejście, ale jest łatwe do zrozumienia i działa. Procesor w Arduino nie jest demonem mocy, ale umiejętnie wykorzystany obsłuży równocześnie i 1000 takich rzeczy jakie bezskutecznie chcesz zrobić. Trzeba tylko wiedzieć jak to zrobić. BTW: Chyba jesteśmy rówieśnikami i trochę wstyd mi, że taki stary chłop wychodzi na przedszkolaka wyśmiewając rzeczy, których po prostu nie pojmuje. [ Dodano: 22-02-2016, 09:52 ] A więc wyciąłeś połowę swojego posta żeby nie brzmiał tak płaczliwie. I dobrze, bo poważnym ludziom nie przystoi taka postawa. Ale wracając do meritum: czytałeś co Ci wskazałem? Zrozumiałeś artykuł (do końca) i swój problem? Czaisz już dlaczego nie możesz używać delay()? Dlaczego funkcje, które mają się wykonywać współbieżnie z innymi nie mogą zawłaszczać procesora głupim opóźnianiem tylko jak najszybciej robić co trzeba i kończyć się? Czy potrzebujesz jeszcze jakichś wyjaśnień? Przedstawiony na wskazanej stronie sposób śledzenia czasu poprzez odczyt miliseknd z zegara systemowego jest jedną z wielu metod równoległego wykonywania zadań. Duże komputery radzą sobie inaczej, bo ich procesory mają sprzętowe wsparcie dla takich rzeczy, potężne systemy operacyjne i mnóstwo pamięci RAM. Typowy PC - gdy siedzisz i piszesz maila - wykonuje jednocześnie pewnie z kilkaset rzeczy i tylko dyscyplina programistów sprawia, że żadna z nich nie zajmuje procesora tak, żebyś to zauważał. W Arduino nie masz aż takich możliwości, ale spokojnie wyobrażam sobie kilka metod współbieżnego wykonywania nawet skomplikowanych - z punktu widzenia użytkownika czynności. Najważniejszą koncepcją, właśnie gdy nie dysponujesz wygodnym wywłaszczaniem zadań - jak w większych procesorach, jest tzw. maszyna stanów (Finite State Machine, FSM) czyli funkcja napisana tak, by sama pamiętała co już zrobiła, co ma zrobić i kiedy oraz co nie mniej ważne: która swoje operacje wykonuje szybko, bez żadnych opóźnień. Taką funkcję wywołujesz często a ona i tak zrobi co trzeba w momencie gdy będzie to potrzebne. Trochę trzeba się do tej koncepcji przyzwyczaić, ale potem jest już z górki. Nagle okazuje się, że na śmiesznym procesorku AVR możesz robić bardzo fajne, interaktywne i responsywne urządzenia bo jak się tak bliżej przyjrzeć, to po wyrzuceniu delay'ów rzeczywiste obciążenie CPU zadaniami o jakich piszesz jest na poziomie ułamków procentów. Kolej na Twoje pytania
  3. 1 punkt
  4. 1 punkt
    Fajnie z tym, że w nocy może to być uciążliwe:) Chodzi o sygnalizacje dźwiękową.
Tablica liderów jest ustawiona na Warszawa/GMT+02:00
×
×
  • Utwórz nowe...