Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2663
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    198

Wszystko napisane przez Elvis

  1. Miejsce 1: Nawyk Miejsce 2: Zuk Miejsce 3: Lassar Uzasadnienie: Pierwsze miejsce dla Nawyk-a, głównie za artykuł o serw-ach. Ładnie zebrane informacje, porządny artykuł. Na pewno plus za opis modułu MEMS. Chociaż jak chodzi o MEMS, to trochę za mało jak na mój gust... Drugie miejsce dla Zuk-a za artykuł o pomiarze stanu akumulatorów. Temat dla mnie interesujący w dziedzinie niekoniecznie związanej z robotyką. Ale na pewno ładnie i profesjonalnie opisany. Z trzecim miejscem miałem problem. Głosuję na Lassar-a za opis zawieszeń.
  2. Poprzednia lekcja Lekcja 9 - RS-232 Nastepna lekcja Na początek krótki wstęp Wszyscy pewnie znają interfejs RS-232. Charakterystyczne gniazdo DB-9 dawniej montowane było w każdym komputerze PC. Obecnie coraz częściej gniazdo zastępowane jest przez USB, na szczęście dostępne są przejściówki USB<->RS232. Wtyczka wyposażona jest w 9 linii, opis możemy znaleźć na wikipedii, poniżej dla przypomnienia najważniejsze linie: Numer pinu Oznaczenie Funkcja 2 - RxD - Odbiór danych 3 - TxD - Transmisja danych 5 - GND - Masa Te trzy linie wystarczą do naszych celów - wymia
  3. Dla częstotliwości 868MHz antena, tzw. ćwierćfalówka powinna mieć długość ok. 8,5cm. Czyli trzeba przylutować przewód o właśnie takiej długości. Ciężko mi jest powiedzieć o jakim konkretnie przewodzie mówisz, ale postaraj się użyć w miarę solidny.
  4. Szkoda, że pisząc o liczbach losowych autor nic nie wspomniał o matematyce - rachunku prawdopodobieństwa i statystyce. Warto wspomnieć jakie cechy powinien mieć dobry generator liczb. Nie każde źródło liczb pozornie losowych spełnia wymogi generatora. Np. wciskanie jednego przycisku wcale nie jest tak bardzo losowe - ludzie mają dość przewidywalny refleks i rozkład prawdopodobieństwa wcale nie jest jednostajny. Nawet dodawanie liczb "modulo" należałoby podeprzeć pewną dawką matematyki. Wybór podstawy dla działań modulo ma znaczenie. Przykładowo wybranie naturalnej dla timera i informatyki l
  5. Płytka była projektowana pod CC1000, ale później znalazłem inne moduły. Stąd pozostałe były podpinane "na pająka". Dokładniej na kynar-ek. Podłączenia są zdefiniowane w kodzie źródłowym: #define PORT_SEL PORTB #define PORT_SDI PORTD #define PORT_SCK PORTD #define PORT_SDO PORTB #define RFXX_SCK 6 #define RFXX_SDO 0 #define RFXX_SDI 7 #define RFXX_SEL 1 Nie wykorzystywałem sprzętowego SPI, więc nie było większej różnicy pod które piny I/O podłączyć. Wszystko i tak jest robione programowo.
  6. Gdy hamujesz silniki wzrasta płynący przez nie prąd. Często powoduje to obniżenie napięcia na procesorze i w efekcie jego reset albo zawieszenie. Musiałbyś wysłać schemat robota, ciężko coś doradzać bez tego.
  7. Prawdopodobnie problemem jest zasilanie. Dodaj kondensatory, powinno pomóc.
  8. Polecenia do BTM muszą się kończyć znakiem końca linii (CR), w C wystarczy wysłać \r. Bascoma nie znam, ale może jest coś jak Println, czy printline? [ Dodano: 27 Sie 10 01:57 ] może zadziała: Print "ATN?" ; Chr(13) ;
  9. Wniosek taki, że masz źle ustawioną częstotliwość pracy procesora. Działa 8x wolniej niż zakładasz. Czyli nie jak masz w kodzie 8Mhz, ale 1Mhz $crystal = 8000000 Spróbuj na początek zmienić kod na: $crystal = 1000000 A najlepiej ustaw odpowiednio fuse-bity.
  10. Moim zdaniem FT232 nie trzeba przeprogramowywać - najczęściej domyślne ustawienia pracują w pełni poprawnie. Spróbuj użyć innego programu do obsługi COM-a. U mnie pod Termit-em też nic nie działa, a putty chodzi bez problemu. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  11. Przejściówka powinna działać. Nie używałem tego konkretnie modelu, ale mam ten sam chip, więc na 99% wszystko będzie ok.
  12. Szczerze mówiąc to sam nie wiem co się stało. Robot stał spokojnie w pokoju, włączniki od płyty AVR oraz ARM9 były wyłączone. Nagle pojawił się dym. Możliwe że było spięcie przed włącznikami płytek. Ja bardziej podejrzewam, że luty płytki AVR przebiły obudowę akumulatora. W sumie nic się nie stało, ale przestrzegam przed używaniem li-pol - trzeba być baaaardzo ostrożnym.
  13. Jak chodzi o składową Y w modelu YUV to zdjęcia czarno-białe na dole artykułu powstały przez przypisanie do wszystkich składowych RGB wartości Y. Dla linefollowera myślę że wystarczyłoby to w zupełności. Jak chodzi o światłoluba to pewnie też, chociaż można byłoby dodać filtr na U-V, żeby wyodrębnić tylko interesujący nas kolor. Przedstawiłem algorytm przeliczania z YUV do RGB z kilku powodów. Po pierwsze chciałem sprawdzić, czy dobrze odczytuję dane z kamerki. Po drugie poprzednia wersja miała algorytm JPEG->RGB->analiza, chciałem porównać prędkość działania z przetwarzaniem YUV-&g
  14. Logitech-a nie polecam. Mam chyba właśnie C200 - na obudowie nie ma symbolu, ale kupowałem najtańszą. Główna wada to przesyłanie tylko i wyłącznie w formacie JPEG. Dekodowanie tego zajmuje wieki. Zaraz dopiszę do artykułu rezultat testu innej kamerki - jest dużo lepiej.
  15. Na razie największym problemem jest dekodowanie jpeg-ów. Powoduje bardzo duże opóźnienia. Dzisiaj kupiłem inną kamerkę. Na pudełku ma napisane, że obsługuje RGB24. Co ciekawe wcale nie obsługuje... Zamiast tego przesyła YUYV. Rozpoznawanie jasności powinno być więc łatwiejsze niż w RGB. A co najważniejsze obraz nie jest skompresowany. Tylko te ilości danych do przetworzenia... Bufor obrazu dla 640x480 to 600kB. Obraz pobieram w 320x240, ale to nadal 150kB na ramkę.
  16. Próbowałem zmusić kamerkę do generowania strumienia we wszystkich możliwych formatach - RGB, YUV, GRAY itd. Niestety zawsze wysyłany jest JPEG. Wydaje mi się, że to efekt wykorzystania pierwszej lepszej (najtańszej) kamerki jaką mieli w sklepie. Na przyszłość trzeba wybrać kamerkę, która: 1) obsługuje nieskompresowane dane 2) są do niej moduły v4l Co do wykrywania to liczę jasność 3 obszarów - po lewej, środek i po prawej. Następnie robot stara się skierować w tę stronę, gdzie jest najjaśniej. W teorii i na testowych obrazach wszystko działało pięknie, natomiast sam robot zachowywał się b
  17. Elvis

    odpowiednik

    Może po prostu użyj 74ac240 zamiast szukać odpowiednika? Układ można kupić za 61gr tutaj: http://sklep.slawmir.com.pl/product_info.php?products_id=17078
  18. Zapraszam do lektury artykułu: https://www.forbot.pl/forum/topics20/linux-kamerka-robot-z-ukladem-wizyjnym-vt3984.htm#31622 Jest to niejako ciąg dalszy testu. Tym razem opis podłączenia kamerki.
  19. Wszyscy przyzwyczaili się do światłolubów, ale jak zrobić robota który rozróżnia kolory, a może nawet kształty. Ostatnio na forum pojawił się bardzo aktywny wątek o bibliotece OpenCV. Pozwala ona na przetwarzanie obrazów, pozostaje jednak pytanie, jak zbudować robota sterowanego obrazem. Pierwsza myśl to kamerka WiFi. Jest to rozwiązanie proste, ale nie autonomiczne. Obraz przesyłany jest do komputera PC, sam robot nie jest w stanie odczytać obrazu. Można oczywiście wmontować PC do robota. Istnieje też nieco inna możliwość - wykorzystanie modułu z linux-em na pokładzie. MMnet1001 wydaje s
  20. Wszystko jest opisane w artykule. W załącznikach jest przykładowy program, a w linkach odnośnik do stron z tutorialami.
  21. A stałą F_CPU ustawiłeś poprawnie?
  22. Moim zdaniem wychodzi 70us, ale to chyba nie robi różnicy. Ogólnie powinno działać. Natomiast aktualizacja zmiennych C0 itd. będzie powodować błędy. Czasem pojawią się impulsy o długości ponad 20ms. Zmiana zmiennych C0 itd. jest "bezpieczna" tylko podczas zerowania licznika głównego. Dlatego stosuje się dodatkowe zmienne, tzw. cienie, które są kopiowane podczas zerowania.
  23. Chyba będzie miał 70us, ale nie jestem pewien. Najlepiej oscyloskop podłączyć i sprawdzić.
  24. To chyba łatwiej napisać funkcję, która przeliczy kąt na wartość PWM niż modyfikować działanie PWM. Możesz nawet dodać takie przeliczanie przy resetowaniu licznika, będziesz miał od razu z głowy rejestry cienie (shadow registers). Bo bez tego serwa mogą szarpać.
  25. Coś przekombinowujesz. Mój program na Cn x 10µs wystawia logiczne 1 na wyjściu. Czyli jak chcesz obrócić w jedną stronę wykonujesz kod: C0 = 6; I dostajesz impuls 60us. Jak potrzebujesz w przeciwną stronę, to piszesz: C0 = 240; I impuls wynosi 2.4ms. [ Dodano: 10 Sie 10 02:56 ] a co do zerowania, to: static int counter=0; Będzie działać poprawnie. Zmienna jest zadeklarowana jako statyczna, więc przypisanie zera zostanie wykonane tylko raz, przy pierwszym wejściu w zasięg zmiennej.
×
×
  • 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.