Skocz do zawartości

Natanoj

Użytkownicy
  • Zawartość

    107
  • Rejestracja

  • Ostatnio

Wszystko napisane przez Natanoj

  1. Pozwolicie, że odkopię . Ostatnio miałem znów chwilkę czasu (albo i konieczność), żeby pogrzebać w programie mojego lF'a. Moje pytania dotyczą tego fragmentu: Mam pewne trudność z ustaleniem współczynników, wydaje mi się że robot czasem po prostu nie widzi zakrętu. Pierwsza myśl to zbyt wolne realizowanie pętli głównej. Faktycznie, przyjmijmy prędkość dla ułatwienia 120cm/s. (teoretycznie około połowa maksymalnych możliwości). Wywoływanie pętli głównej z częstotliwością 100Hz to odczytywanie czujników co 1,2cm, niby nie tak dużo ale jednak, zwłaszcza jeśli jedzie nieco szybciej. Ale ja popędzam uc z 20Mhz, więc w teorii mogę 2,5 raza więcej wycisnąć. Wziąłem się więc za pomiary czasu wykonywani pętli, metoda dość prymitywna, w pętli głównej zmieniałem stan jednego z wyjść i częstotliwość mierzyłem dobrej klasy multimetrem. Właściwa częstotliwość wykonywania pętli bez żadnych timerów odmierzających czas i przy 8 czujnikach to jakieś 260Hz, jednak po wyjechaniu za linię spada do ok 100Hz (w sumie poza kilkoma ifami nie wiem co może mu zajmować tyle czasu). Co gorsza po podniesieniu czasu wywoływania przez timer do 1/200s taką częstotliwość otrzymuję też tylko przy jeździe po linii. Przy ustawieniu flagi przestrzelony częstotliwość spada do owych 100Hz. Co w tym programie może powodować, że pętla po ustawieniu przestrzelania nie zdąży się wykonać przed upływem zamierzonego przeze mnie czasu? Podniesienie szybkości wykonywania pętli przyniosło u mnie pewne poprawienie, jednak raz na parę okrążeń nadal zdarza mu się wylecieć na zakręcie. Jak sobie radzą z tym inne, znacznie szybsze roboty? W ich przypadku tylko cyfrowe odczytywanie czujników wchodzi w grę?
  2. Sorka że się wtrącę nie czytając całego tematu, ale moim zdaniem trzeba było brać stk 500 . Poszukaj na forum informacji o tym avrisp mkII. Po pierwsze można go samemu złożyć za kilkanaście złotych (no tak, ale jakiś programator już trzeba posiadać...). Po drugie jak będziesz działał na różnych środowiskach będziesz musiał zmieniać soft w programatorze, co prawda nie jest to skomplikowane ani długie ale zawsze dodatkowe utrudnienie. I tak do atmel studio będziesz musiał mieć w programatorze inny kod, a np. do Bascoma czy innych wykorzystujących avrdude inny - więcej poszukaj na forum.
  3. Dzięki wszystkim za odpowiedzi, każda wnosi do tematu coś dobrego. Rozpoczynam testy wysokościowe by ustalić najlepszą wysokość krzesła i stolika. Może jeszcze trochę pociągnę temat instalacji elektrycznej. Na pewno będę prowadził osobny obwód z własną różnicówką. Zastanawiam się tylko co do ilości gniazd sieciowych. Myślałem nad zamontowaniem 2 ramek po 4 gniazda (łącznie 7 pojedynczych gniazd sieciowych i 1 do skrętki sieciowej), do tego ewentualnie jakaś mniejsza listwa zasilająca z zabezpieczeniami. Jednak można też kupić całkiem fajne listwy 10-cio gniazdowe. Wygodniej będzie podpinać sprzęt do ściany czy do listwy?
  4. Trochę odświeżę temat, myślę że dyskusja nie tylko mi się przyda. Przyszedł czas by zamienić standardowe biurko na coś bardziej specjalistycznego. Mam do dyspozycji ponad 2 metry w linii prostej (w pokoju, bokiem do okna). Od ściany bocznej do okna jest nieco ponad 90cm i będzie to maksymalna szerokość powierzchni roboczej. Przy samej ścianie będzie dość spory regał szufladek (~120x80cm), musi się znaleźć miejsce na laptopa i standardowe narzędzia elektronika i robotyka. Sam sprzęt pomiarowy na pewno zajmie sporą powierzchnię, do tego z rozłożonym laptopem musi zostać dość na lutowanie i pracę elektronarzędziami. Miejsce już typowo do prac warsztatowych, czyli trzeba wliczyć w miarę bezpieczne miejsce na kawę/coś do zjedzenia. Imadło i statywy na elektronarzędzia mogą być "ruchome". Prośba o porady dotyczy wyboru powierzchni roboczej, od materiału począwszy na wymiarach skończywszy. Co do materiału myślałem o blacie kuchennym jakieś 80cm (oscyloskop analogowy ma długość 60cm). Zastanawiam się ewentualnie nad sklejką, ale myślę że laminowany blat lepiej zniesie ewentualne przypalenie i przybrudzenia. Problem w tym że mam małe doświadczenie w pracach na blacie kuchennym i jego ewentualną odporność na przypalenia, zarysowania, dziurawienia i uderzenia... . Na razie myślę o samym blacie do ewentualnej późniejszej zabudowy szufladami i szafkami pod spodem. Jeśli chodzi o wymiary, to jedynego problemu nie mam z długością, która jest narzucona. Szerokość blatu czym większa tym lepiej, ale musi zapewniać swobodny dostęp do szufladek pod ścianą (głębokość regału szufladek 15cm), dlatego myślę, że 80cm to rozsądne optimum. Wysokość musi być odpowiednia do siedzenia, ale wiadomo że czasem trzeba coś zrobić na stojąco i też powinno być wygodnie. Do tej pory pracowałem na standardowych 75cm, jednak z laptopa wygodnie mi się korzysta przy 65cm (można ewentualnie podregulować wysokością krzesła). Podczas stania nadgarstek mam na wysokości 80cm. Wiadomo, że dużo zależy od wzrostu, ale jakie macie doświadczenia w pracy na własnych stanowiskach? Po wierceniu ściany i przygotowaniu nowej instalacji nie będzie miejsca by coś ewentualnie zmienić, a chciałbym by pracowało mi się wygodnie przez najbliższe kilka lat.
  5. Dzięki za ciekawy temat, spróbuję też pokombinować z liniowym wzrostem wag, choć podobne próby ostatnio nie przyniosły pozytywnych rezultatów. Co do pilota, postanowiłem zbudować własny na nietypową częstotliwość, wysyłać po kilka ramek odczytywanych w głównym procu w przerwaniu. Jednak użycie zwykłego pilota i dekodowanie Rc5 w dodatkowym uc wydaje mi się bardziej odpornym na zakłócenia rozwiązaniem.
  6. Tak świetnie jeździ po 20 min strojenia . Ja utknąłem na strojeniu samego P i musiałem wrócić do bascomowych caseów. W wolnej chwili podaj jak możesz wagi czujników, bo u mnie z tym chyba największy problem jest. Albo nie mieści się w zakrętach, albo mocno myszkuje na prostej linii. Czujniki i ich rozstaw bardzo podobna więc może będzie to dla mnie dobry punkt wyjścia do rozpoczęcia strojenia. Jak możesz opisz też projekt połączenia attiny i tsopa. Ja właśnie złożyłem swój własny pilot na tym uc. Zdaje mi się jednak że Twój pomysł z dekodowaniem Rc5 jest znacznie lepszy i lepiej przenieść attiny13 z płytki pilota na płytkę robota. Na pewno dużo trudniej będzie go zmylić innymi sygnałami. Samej konstrukcji nie potrzeba komentować, małe jest piękne .
  7. Nie tylko Ty tak miałeś. Też cały czas myślałem że są w środę, bo chyba tak w zeszłym roku były. Choć zorientowałem się trochę wcześniej i tak nie dałem rady, a szkoda bo z tego co widzę miałbym szansę na 6 miejsce w LF .
  8. Wielkie dzięki za artykuł! Dzięki niemu pierwszy raz zaprogramowałem swojego lf'a w c i do tego dostał jeszcze algorytm zamiast męczących case'ów. EDIT: Co do mojego problemu z odczytywaniem tablic to jak to zazwyczaj bywa sprawa była banalna, ale jej znalezienie zajęło mi jakieś 2 dni. Po pierwsze był błąd w obsłudze LCD, po drugie zapomniałem w jednej funkcji o nawiasach klamrowych. Teraz moim największym zmartwieniem jest odpowiednie dobranie wag i współczynników.
  9. Kwadracik zachowaj proporcje zaznaczony?
  10. To może zwykła czujka podczerwieni? Dodatkowo nastawić tak by wyłączała nóż już przy podejściu na np. 0,5m. Mniej kombinacji i bezpieczeństwo większe.
  11. Skoro już wywiązała się dyskusja, to jakie są rzeczywiste różnice szybkości odczytu analogowego i cyfrowego przez uC? O jakich rzędach wielkości tu mówimy?
  12. Do takich zastosowań przydałby się silnik w piaście mocowany jednostronnie. Zobacz ofertę sklepu ekonapędy. Sprzedają tam właśnie takie jednostronnie mocowane od razu z oponą, ale ceny mają jakie mają. Co do mniejszych obrotów trzeba się zainteresować czymś takim jak sterownik.
  13. Może masz silniki z ośką z tyłu i ośka o coś zawadza? Wtedy na wyjściu przekładni jest duży opór. Jeszcze jedno co przychodzi mi do głowy to zwarcie biegunów silnika, choć wtedy opór nie powinien być aż tak duży. Może po prostu coś wleciało do przekładni?
  14. Pewnie używasz multimetru. Spróbuj odsunąć maksymalnie miernik od silnika np. wydłużając przewody. Ewentualnie pokombinuj z zaekranowaniem go np. owiń folią aluminiową. Większe silniki potrafią mocno siać zakłóceniami i niestety tańsze mierniki sobie z tym nie radzą dając bardzo dziwne wartości prądu.
  15. Wystawcy Hexora napisali do niego jakiś ulepszony soft, czy był on tylko w celach pokazowych?
  16. Spokojnie, na własnej, dodatkowo podtrawionej płytce 2 takie przylutowałem, a później jeden musiałem zmieniać. Lutowane zwykłą kolbówką z dość dużym grotem, bez żadnej regulacji temperatury. Mój sposób: nakładasz jakiś topnik i cynujesz pady (uwaga by nie przesadzić z ilością cyny), przykładasz układ i już bez użycia cyny rozgrzewasz i jednocześnie dociskasz do polutowanego pada każde wyprowadzenie osobno (z dużym grotem można nawet 2 wyprowadzenia na raz, z topnikiem nic nie powinno się zlutować razem, zawsze można użyć plecionki). Na koniec sprawdzić miernikiem czy wszystko styka i ewentualnie poprawić. Najgorzej jest jak masz własnoręczne przelotki (z kawałka drucika) przy samych padach mostka - ja popełniłem taki błąd i przy wymianie spalonego mostka długo żałowałem że tak zrobiłem.
  17. A ja swego czasu dałem za niego coś koło 90 zł . W każdym razie polecam, jako zupełnie początkujący nie miałem większych problemów, wybaczał sporo błędów. Jedynie lekko denerwująca jest zmiana firmware przy korzystaniu z Bascoma (avrdude, czuli Burn o mat też niestety) / avrstudio. Dzięki za informację, pewnie złożę sobie drugiego, jeden będzie dla avrdude a drugi dla avrstudio .
  18. To są jakieś osobne tarcze w Netto? Osobiście chyba tam kupiłem zestaw końcówek za jakieś 20 zł i o ile tarcze owszem fajne były i było ich dość sporo to z końcówkami słabo. Końcówek do mocowania tych tarcz używam z zestawu który dostałem z multiszlifierką. Te z zestawu z netto miałem tak krzywe, że pewnie zaraz po przyłożeniu do materiału tarcza by poszła. Z okularami jest problem, jak ma się już jedne na nosie. Dobre gogle sobie trzeba kupić, moje niestety parują, zwłaszcza jeśli ma się dodatkowo na twarzy maskę przeciwpyłową. Przy precyzyjnej robocie czasem po prostu ściągam korekcyjne i mocno nachylam się nad materiałem w samych okularach ochronnych, jednak zbyt bezpieczne to też nie jest. Może forumowi okularnicy mają jakieś swoje sposoby?
  19. Zastanawia mnie porównanie recenzowanej książki z "Mikrokontrolery AVR Język C Podstawy programowania" wydawnictwa Atnel. Czytałeś obie książki więc może będziesz mógł coś napisać? Która nadaje się do zupełnie początkujących, a która lepsza dla tych bardziej zaawansowanych? Ta z Helionu jest trochę grubsza, za to druga ma dodatkową płytę. Cena bardzo nieznacznie się różni. Zależy mi na dobrze opisanym języku, do samych mikrokontrolerów mam inną książkę.
  20. Piszesz 2 takie miejsca, a ja się zaczynam cieszyć, że tylko 2 . To spory postęp, do tej pory w ogóle nie wiedział gdzie jest. Potrzebny mu zatem wyróżnik umożliwiający eliminację wyboru niewłaściwego. ( edit) Tak sie zastanawiwm nad tym co napisałeś i nie do końca rozumiem ( u mnie juz późno). Jeżeli wiemy który czujnik zmierzył jaki wynik w czasie tego cyklu pomiarów i wiemy też na jakiej ścianie robota jest umieszczony, to też będą dwa punkty na dnie, o identycznych współrzędnych ? Będą 2 punkty o identycznych pomiarach, ale co to nam szkodzi? W obu punktach robot będzie wykonywał to samo, więc nie obchodzi nas czy znajduje się akurat bardziej z prawej czy lewej strony basenu. Przykładowy rysunek, robot kręci kwadratową spiralę i musi skręcić. W obu przypadkach skręca w tę samą stronę. Jedynym problemem może być ustalenie w którym miejscu ma zacząć robić mniejsze "koło", ale równie dobrze może zaczynać jak trzeci raz dojedzie do takich samych współrzędnych, na czasie nam nie zależy a chyba nie szkodzi jak pół basenu wyczyści 2 razy.
  21. Popieram łączność z internetem. W wolnej chwili chyba się skuszę, ale przydałaby się możliwość synchronizacji listy z laptopa z tą w komputerze stacjonarnym.
  22. To może na jedno koło 10:1, a na drugie te 5:1 o których pisałeś wcześniej i maksymalna redukcja wagi? Tylko wtedy już enkodery musowo do porównania prędkości obu silników.
  23. To może po prostu kupić/zrobić odpowiedni sterownik do napędu pojazdów elektrycznych? Wtedy wystarczy sprząc serwo z manetką hallotronową/potencjometrem i mamy płynne sterownie prędkością. Z tego co wiem są też w sprzedaży sterowniki umożliwiające zmianę kierunku obrotów, a na pewno widziałem schematy takich sterowników, więc można pokusić się o wykonanie ich samemu. Dodatkowo jeśli zmiana kierunku ruchu przód-tył nie musi się odbywać "w biegu" (bez zatrzymania pojazdu) można to zrobić na dodatkowym przełączniku lub przekaźniku i zastosować sterowniki od hulajnogi do zmiany prędkości. Z budżetem na pewno będzie bardzo ciężko, tym bardziej że nie znamy obciążenia tego "robota". Te silniczki potrafią pod brać na prawdę duże prądy i według mnie nie powinno się oszczędzać na sterownikach.
  24. Dzięki za odpowiedzi. Postaram się dokładniej opisać o co mi chodzi. Mam 8 czujników i maksymalnie 4 widzą linię, minimalnie 2. Po dołożeniu LCD okazało się jednak że w środkowym położeniu różnica w odczycie pomiędzy 2 środkowymi czujnikami które widzą linię, a tymi na granicy czarny/biały jest dość spora. Oczywiście możnaby zmienić w programie (nie mam autokalibracji) od jakich odczytów zaczyna się linia. Jednak chciałbym to dodatkowo wykorzystać, takie 2 w 1, śledzenie zarówno linii jak i jej granicy. Oprócz dokładniejszych odczytów, będę mógł też w przybliżeniu ustalić pod jakim kątem znajduje się robot w stosunku do linii. Mój kod ma teraz taką postać: Case &B01100000 'linia pod czujnikami 2 i 3 Pwm1a = 20 'to znaczy że zjeżdżam z trasy w lewo, Pwm1b = 120 'trzeba mocno skontrować by nie wypaść Skoro miałbym dodatkowo wykrywać granicę linii, musiałbym mieć możliwość wpisania do zmiennej/tablicy 3 różnych znaków (linia/brak/granica). 3 bitowej zmiennej jednak nie ma, a 8 bitowa pewnie mocno spowolni mi wykonywanie programu. W moim rozumowaniu znacznie lepszym pomysłem jest dołożenie 2 tablicy 8 bitowej, z których np. jedna odpowiadałaby za linię/brak a druga za granicę/jej brak. Wyszło by coś takiego: Case &B01100000 'linia pod czujnikami 2 i 3 &B10010000 'granica linii pod czujnikami 1 i 2, czyli jestem równolegle do linii Pwm1a = 120 'środkowym czujnikiem robi się teraz 2 i 3 Pwm1b = 120 'jestem na środku linii więc cała naprzód 'na następnym zakręcie będę dążył by środkowymi były czujniki 4 i 5 Jeżeli chodzi o składnie bascomową kod powyżej nie przejdzie, ale myślę że dobrze wyjaśnia o co mi chodzi. Teraz pytanie gdzie zapisywać które czujniki widzą granicę. Czy zrobić dodatkową zmienną która będzie przechowywać numery czujników widzących granicę, dołożyć drugą tablicę 8 bitową jak w przykładzie powyżej, czy może rozszerzyć już posiadaną do 16bit i wtedy 2 bity będą odpowiedzialne za 1 czujnik. Pierwszy bit będzie mówił o linii, a drugi o granicy. Chcę po prostu wiedzieć, który z tych sposobów najmniej spowolni wykonywanie pętli w programie. Oczywiście biorę pod uwagę możliwość, że może po prostu za bardzo wybrzydzam i choćbym dodał mnóstwo dodatkowych zmiennych i tablic wykonywanie pętli głównej spowolni się w niezauważalnym stopniu. Proszę w takim razie o informację o takim stanie rzeczy.
×
×
  • Utwórz nowe...