Popularny post Treker (Damian Szymański) Napisano Grudzień 13, 2009 Popularny post Udostępnij Napisano Grudzień 13, 2009 Artykuł umieszczony za zgodą jego autora, użytkownika bogdan_p. Część I - budowa robota W związku z licznie powtarzającymi się pytaniami o budowę własnego robota , postanowiłem stworzyć temat adresowany głównie dla początkujących, zaczynających swoją przygodę z robotyką , cały temat został podzielony na 3 części: • podstawy wiedzy i zaplecze techniczne • budowa i opis część mechanicznej • budowa i opis elektroniki robota Poza opisem są zdjęcia tak aby można było zrozumieć wszystkie szczegóły konstrukcyjne, od razu zaznaczam, że nie należy dokładnie wzorować się na mojej konstrukcji jak również wymiarach ponieważ wiele zależy od posiadanych elementów napędowych, źródła zasilania, wyboru sposobu wykonania danych detali konstrukcyjnych robota Temat ma na celu pokazanie jak można w domowych warunkach zbudować prostego robota, to jakie faktycznie będzie miał wymiary i funkcje jest sprawą indywidualną każdego konstruktora, po prostu robot ma spełniać oczekiwania budującego, stanowiąc satysfakcję z własnej wykonanej pracy. Podstawy wiedzy i zaplecze techniczne: Pierwszą część dedykuję głownie początkującym aby wiedzieli co należy umieć i posiadać aby można samodzielnie zbudować własnego robota. Wiadomo że budowa robota to połączenie konstrukcji mechanicznej odpowiedzialnej za poruszanie się pojazdu tzn. podstawa nośna z elementami napędowymi i skrętnymi z blokiem elektronicznym odpowiedzialnym za prawidłowe wysterowanie układu napędowego, skrętnego oraz realizującego inne funkcje założone przez konstruktora, tak więc wymagana jest wiedza z obu tych dziedzin. Przy budowie prostych konstrukcji nie jest wymagane znanie wszystkich zagadnień z mechaniki, ale warto znać podstawy ważniejsze jest posiadanie odpowiedniego zaplecza technicznego oraz umiejętności obróbki materiałów, lutowania, wiercenia, gwintowania itp., trudno opisywać wszystkie potrzebne umiejętności ale bez tego będzie trudno cokolwiek samodzielnie zbudować, po prostu musimy być projektantem, majsterkowiczem, konstruktorem, wykonawcą. Chcąc rozpocząć budowę musimy posiadać przynajmniej podstawowe narzędzia bez których trudno będzie coś wykonać. Uważam że zupełnym minimum wyposażenia warsztatowego amatora konstruktora to: małe imadło, zestaw pilników do metalu, zestaw iglaków, zestaw wierteł, wiertarka lub wiertarko-wkrętarka ( bardzo pomocny jest statyw do wiertarki), lutownica, piłka do metalu kątownik, linijka, cyrkiel, suwmiarka oraz takie rzeczy jak śruby, podkładki, nakrętki itp. To ogólnie podstawa wyposażenia aby można było samodzielnie myśleć o wykonaniu w własnym zakresie części jezdnej robota. Jeżeli chodzi o część mechaniczną to najważniejsze jest wyposażenie oraz zdolności manualne, natomiast z elektroniką wymagania są znacznie większe. Zasadnicza sprawa to posiadanie i zrozumienie podstaw elektroniki, symboli, pracy danego elementu w układzie idąc dalej budowy, działania oraz podstawowych funkcji mikrokontrolera bez którego będzie trudno zbudować robota. Nikt nie wymaga dogłębnej wiedzy, ale podstawy muszą być znane dlatego warto najpierw posiąść odpowiednią wiedzę aby później uniknąć kłopotów. Należy zrozumieć, że poskładanie gotowego kitu to nie to samo co budowa i uruchamianie własnej konstrukcji, nawet mając schemat, gotowy program trzeba wiedzieć co, gdzie należy szukać w przypadku niewłaściwej pracy danego urządzenia. Praktycznie większość konstrukcji oparta jest na mikrokontrolerach, dlatego przyszły konstruktor musi znać jego budowę, podstawowe funkcje, umieć zaprogramować posiadany mikrokontroler, warto umieć dowolny język programowania aby móc samodzielnie napisać własny program dla swojej konstrukcji. Osobiście na początek polecam Bascoma który pozwoli szybko nauczyć się programowania, posiada polski plik pomocy co również jest na początku bardzo pomocne, nie jest to język idealny jego zasadniczą wadą to generowanie bardzo obszernych kodów wynikowych, ale dla prostych amatorskich programów jest zupełnie wystarczając. Kurs BASCOM'a można znaleźć na diodzie. Dla bardziej wymagających jest C lub Asembler te języki pozwalają dogłębnie wykorzystać wszystkie możliwości mikrokontrolera, tak więc musimy być obeznani przynajmniej na poziomie podstawowym z elektroniką i mikrokontrolerami. Pomocne są różnego rodzaju artykuły i kursy dostępne w sieci, godne polecenia są na stronach: • http://www.edw.com.pl/ • http://www.elb.vectranet.pl/~krzysztofg/projekty/podstawy_rezystory.htm • http://mikrokontrolery.net/ • http://www.edw.com.pl/ea/ znajdziemy na nich podstawy elektroniki, mikrokontrolerów i programowania, to oczywiście dotyczy części typowo intelektualnej, kolejna sprawa to posiadanie odpowiednio wyposażonego warsztatu elektronicznego, w skład którego powinno wchodzić: multimetr, sonda logiczna, lutownica, programator, zasilacz stabilizowany (przynajmniej 5V, 9V, 12V) o wydajności prądowej ok. 500mA idealnie mieć zasilacz regulowany z ograniczeniem prądowym, zestaw śrubokrętów, pinceta, zestaw (kombinerki, kleszcze, szczypce ), cyna, kalafonia, przewody, kable itp., ważne aby posiadać umiejętność posługiwania się miernikiem oraz wiedzieć co gdzie należy mierzyć. Warto również posiadać samodzielnie wykonaną lub gotową płytkę testową do mikrokontrolera które można nabyć np. na http://www.kamami.pl/ Nie sposób wymienić wszystkiego co jest potrzebne do samodzielnej budowy, głównie chodzi o uświadomienie, że nie da się zbudować czegoś samodzielnie "na kolanie" bez posiadania niezbędnej wiedzy, umiejętności i zaplecza warsztatowego. Jak w życiu bywa wszystko opiera się o pieniądze, w tym miejscu należy podkreślić zasadniczą kwestię którą należy sobie uświadomić budowa dowolnego urządzania w warunkach amatorskich jest dość kosztowna i na pewno przewyższa koszty podobnych urządzeń produkowanych seryjnie, tak więc trzeba liczyć się z poniesieniem kosztów na wyposażenie, jak również na budowę. Podsumowując tą część, jeżeli chodzi o część związaną z mechaniką to można oczywiście korzystać z wyposażenia i narzędzi kogoś znajomego, kolegi itp., natomiast nie wyobrażam sobie budowy urządzenia elektroniczne ,a tym bardziej z mikrokontrolerem bez własnego zaplecza technicznego. W tym miejscu wszyscy początkujący powinni odpowiedź sobie czy posiadają odpowiednią wiedzę, wyposażenie i narzędzia jeżeli będzie to w większości odpowiedź negatywna to naprawdę powinny dać sobie na razie spokój z samodzielną budową. Budowa i opis część mechanicznej: Opis budowy będzie dotyczył budowy w warunkach domowych prostego 3 kołowego robota, napęd w postaci przerobionych serw modelarskich, konstrukcja nośna praktycznie w całości wykonana z laminatu epoksydowo – szklanego, zasilanie akumulatorki Ni–MH. Zanim zaczniemy cokolwiek budować musimy posiadać już zakupione 2 serwa modelarskie, właściwie dla tak prostej konstrukcji nie ma większego znaczenia ich typ, mnie udało się kupić dość tanio na Allegro model AS-16, proponuje przeglądnąć aukcje zawsze można coś znaleźć na swoją kieszeń, kolejna sprawa to rozmiar kół oraz pojemnik na baterie te elementy zadecydują o dalszych rozmiarach , na rysunku podaję swoje dane jednak wszystko zależy od tego co faktycznie zastosujemy, opis podzielony jest w kolejności w jakiej proponuje budowę: • przeróbka serwa • koła jezdne • konstrukcja nośna • koło swobodne Proszę przeczytać całość bo wiele elementów jest z sobą powiązanych, aby później uniknąć niespodzianek i niepotrzebnej pracy, w dalszej kolejności skupić się na poszczególnych etapach prac. Przeróbka serwa Na początku rozbieramy delikatnie serwo, w modelu AS-16 są to 4 śruby dwie od czoła, dwie od tyłu serwa, całość to korpus oraz dwie obudowy należy przypatrzeć się i zapamiętać rozmieszczenie kół zębatych mechanizmu, najbardziej interesującym nas elementem jest główne koło przekazujące napęd na zewnątrz to właśnie ono będzie poddane przeróbce, z korpusu demontujemy całą elektronikę oraz potencjometr. W AS-16 płytka z elektroniką jest przylutowana do wyprowadzeń silnika, natomiast potencjometr jest montowany na zatrzaskach w korpusie, w innych modelach może to wyglądać inaczej, ważne jest aby pozbyć się tych elementów z serwa, a do silnika przylutować tylko 2 przewody wyprowadzone na zewnątrz, teraz najważniejsza sprawa to pozbycie się z głównego koła ogranicznika kata obrotu (foto strzałka), przy tej czynności należy zachować ostrożność i delikatność, zniszczenie koła jest równoznaczne z zniszczeniem serwa. Ja do tego celu posłużyłem się żyletką nacinając w obu płaszczyznach element który sam odpad technika jest praktycznie dowolna, na koniec należy sprawdzić czy koło bez żadnych oporów kręci się w korpusie serwa, teraz pozostaje poskładanie serwa w całość i próba z napięciem ok. 5V. Na zdjęciach pokazana poszczególne etapy, strzałką zaznaczono to co najistotniejsze , mając już przerobione oba serwa można przystąpić do budowy kół jezdnych. Koła jezdne Budowa ich nie jest trudna, jednak nie łatwa i prosta koło ma średnice 50mm składa się z 3 elementów dwa zewnętrzne to koła wycięte z laminatu, środek ( wypełnienie ) to pleksi 6,5mm, można oczywiście całość wykonać z kilu krążków laminatu lub jako środek wykorzystać inny dowolny materiał. Koła tak wykonane mają grubość 9mm i jak podkreślałem wcześniej nie należy się tym sugerować, co do średnicy to ważny jest prześwit podwozia wystarczający aby zmieścił się pojemnik na źródło zasilania , grubość jest już praktycznie dowolna – zobacz punkt część nośna! Krążki zostały wycięte przy pomocy typowej otwornicy z wymiennymi brzeszczotami, z pozoru sprawa wydaje się prosta, ale trzeba trochę wprawy zanim osiągniemy pożądany efekt ważne jest aby dobrze zamocować laminat, wskazane jest wstępne nawiercenie otworu prowadzącego o takiej samej średnicy co wiertło prowadzące otwornicy, należy również zwrócić uwagę aby średnica wiertła prowadzącego nie była większa od średnicy osi napędowej serwa . Tak wykonane krążki należy skleić z sobą, warto umieścić je na wiertle lub śrubie i stopniowo doklejać pozostałe pozwoli to zachować centryczność wszystkich klejonych krążków, jako ogumienie wykorzystałem pasek napędowy z starego magnetowidu szerokości 5mm wklejając go w środkową część koła. Na koniec pozostaje wywiercenie otworu odpowiadającego średnicy osi napędowej serwa z tym że nie jest to otwór na wylot tylko wgłębienie o głębokości 3,5mm (długość osi serwa). Ten zabieg wymaga użycia statywu pod wiertarkę oraz precyzji wykonania, koło następnie jest wciśnięte w oś serwa i przykręcone śruba M3, ja posiadałem gołe serwa dlatego taki sposób zamocowania , dla tych który kupią lub posiadają dodatkowy osprzęt sprawa będzie znacznie prostsza, wystarczy wykorzystać gotowe mocowanie a koło przykleić lub przykręcić do tych elementów. Znacznie prościej jest jeżeli skorzystamy z pomocy tokarza, wystarczy wyciąć kwadraty z wywierconym środkiem i narysowanym kołem, pościnać rogi wstępnie można doszlifować obrys koła , skręcić razem posiadane krążki i udać się do znajomego tokarza. Wracając do ogumienia to nie jest ono konieczne to nie zawody sumo gdzie wymagana jest duża przyczepność , poza paskami napędowymi stosowanymi w sprzęcie RTV można wykorzystać paski zębate stosowane w drukarkach, z uwagi na dość prymitywny sposób mocowania nie należy przejmować się brakiem idealnej osiowości kół, z pewnością osoby mocujące oryginalne elementy serwa uzyskają znacznie lepszy efekt niż sposób jaki ja zastosowałem. Mając za sobą ten etap pozostaje rozpocząć budowę części nośnej naszego robota. Konstrukcja nośna Ten etap będzie wymagał posiadanie pojemnika na źródło zasilania, w moim przypadku to pojemnik na 6 ogniw R6 w konfiguracji 3x2 jego wysokość to 30 mm z akumulatorkami z uwagi że całość jest mocowana od spodu tak, aby cała góra pozostała do dyspozycji elektroniki, również serwa są mocowane od spodu optymalną średnicą kół jest 50mm, ale jeżeli zastosujemy inny pojemnik, inne serwa wszystko może ulec zmianie, dlatego proponuje ułożyć na stole pojemnik, oraz serwa i doświadczalnie wyznaczyć optymalną wysokość a co za tym idzie średnicę kół jezdnych, kolejnym etapem jest dokładne rozmieszczenie poszczególnych elementów (foto) na płytce oraz zastanowić się nad sposobem mocowania tych elementów. W moim przypadku serwa są mocowane z wykorzystaniem prostopadle przylutowanych wsporników z nagwintowanymi otworami 3mm odpowiadającymi rozstawowi serwa, mocowanie pojemnika wygląda podobnie dwie płytki prostopadle do podstawy przylutowane na szerokość pojemnika z 2 mm odstępem od obudowy serwa , wcześniej wlutowano paski laminatu pod katem 90 stopni w których nagwintowane są również otwory 3mm całość jest zamykana kolejnym paskiem laminatu, mocowanie płytki z elektroniką czujnika linii to wlutowane zaraz za obudową serwa kątownik z laminatu ten etap można zostawić na później ponieważ długość jest uzależniona od tego jaki wykonamy czujnik linii a w tym przypadku bardzo ważna jest odległość od podłoża Wszystkie szczegóły widoczne na zdjęciach, pomocny przy lutowaniu będzie dowolny kawałek kątownika np. 25x25 pozwoli zachować kąt podczas lutowania, nie ma konieczności gwintowania otworów, bez problemu można wszystkie połączenia skręcać za pomocą nakrętek, pozostaje jeszcze zamocowanie wyłącznika, oraz jak ja robiłem otworu na przewody, nie jest to konieczne jak również wypiłowanie prostokątnego otworu zupełnie wystarczy wywiercić otwór tak aby można było swobodnie przeprowadzić przewody z zasilania, serw i czujnika linii. Mając ten etap za sobą przykręcamy serwa z kołami i możemy przystąpić do ostatniej pracy do wykonania jakim jest koło swobodne. Koło swobodne Budowa jest analogiczna jak w przypadku kół jezdnych, jedynie inna średnica w moim przypadku to średnica 22mm (po prostu tak wyszło) tak więc 2 krążki z laminatu plus krążek z pleksi, grubość identyczna 9mm tu niestety trzeba skorzystać z pomocy tokarza ponieważ nie ma tak małych otwornic (przynajmniej ja takiej nie posiadam) oraz wiertło prowadzące jest zbyt duże, ogumienie jest identyczne czyli wklejony pasek gumowy w środek koła, przy budowie koła swobodnego pomocne mogą być dowolne inne koła z osią np. bardzo dobre są rolki napędowe z magnetofonów kasetowych (foto) lub podobnie w tym przypadku średnica nie ma większego znaczenia, można również nie stosować koła swobodnego o czym na zakończenie. Mając już koło kolejnym etapem będzie wyznaczenie wysokości część mocującej (widełki) koło z podstawą, gotową już część z serwami i kołami ustawiamy na stole i mierzymy dokładnie odległość między podstawą a osią koła, ta odległość jest wyznacznikiem wysokości widełek mocujących koło, następnie na kartce papieru rysujemy dwie równoległe linie o szerokości ok. 15mm pod kątem 45 stopni w dolnej części w odległości 6mm od końca wyznaczamy środek, będący osią koła następnie tak dobieramy przesunięcie aby koniec widełek odpowiadał wcześniej zmierzonej odległości, teraz pozostaje przenieś to wszystko na laminat, jako tuleję prowadzącą wykorzystałem części z typowego wentylatora komputerowego dokładnie z zasilacza, od razu mamy tulejkę z ośką. Ja tulejkę wlutowałem w widełki, ale również można zrobić to odwrotnie tzn. wlutować ją do podstawy, a oś umieścić w widełkach. Sposób wykonania jaki wybrałem wymaga dużo cierpliwości i samozaparcia można powiedzieć zegarmistrzowskiego podejścia do tematu, ale można sobie sprawę znacznie uprościć na zdjęciu pokazany jest inny znacznie prostszy sposób. Tak jak wspomniałem wcześniej zastosowano tu rolkę napędową z magnetofonu, następnie wykonano widełki w postaci litery U tą część z kolei przykręcono do paska laminatu z osią takie mocowanie pozwala na dodatkową korektę wysokości przez ewentualne dodanie podkładek lub dodatkowego paska laminatu ważne aby koło działało prawidłowo musi być zachowany odpowiedni rozstaw pomiędzy osią koła a osią mocowania (obrotu), innymi możliwościami to wykonanie widełek z cienkiej blach, może to być całościowo wyprofilowany kształt lub jego fragmenty, końcowym etapem jest wyznaczenie punktu mocowania osi lub tulejki w podstawie robota, należy tak dobrać punkt aby koło nie zahaczało o żadne już istniejące elementy na płytce nośnej Jak wspomniano wcześniej można nie budować koła swobodnego, zamiast niego zastosować wygięty pręt , drut lub płaskownik z blach, część stykająca się z podłożem powinna być wyprofilowana w kształt wycinka koła, drugi koniec zamocowany do podstawy. Jeżeli wszystko przebiegło pomyślnie powinniśmy mieć zbudowaną część mechaniczna naszego robota , możemy podać napięcie na serwa i zobaczyć jak porusza się nasze dzieło. Na zakończenie tej części muszę przyznać, że już w trakcie budowy narodziły się inne plany, udoskonalenia, przy okazji okazało się że za bardzo chciałem wszystko upakować dlatego pojawił się problem z mocowaniem czujnika linii (dodatkowe wsporniki) a wystarczyło zrobić o 17mm dłuższą płytkę laminatu i mocowanie na tulejkach dystansowych. Jest stare przysłowie ‘ten się nie myli kto nic nie robi ‘ dlatego zawsze znajdziemy coś co można udoskonalić przy kolejnej budowie, jeżeli popełnimy jakieś drobne błędy to zawsze warto skończyć zaczętą pracę niż ją porzucić bo tym sposobem możemy nigdy nic nie osiągnąć. Na pewno ważne są koszty tej część budowy, podaje je orientacyjnie : • serwa 32 zł (2szt Allegro) • laminat ok. 15zł (format A4) • tokarz (na piwo) • wyłącznik 1,5zł • pojemnik na baterie 5,60zł • własna praca ? zł Decydując się na budowę warto pamiętać, że wiele elementów można zastąpić gotowymi podzespołami, dotyczy to kół jak również serw które z powodzeniem mogą zastąpić silniki DC z przekładnia (ostatnio pojawiły się takie na Allegro) odradzam napęd w postaci silników z CD z przekładnią pasowej. Elektronika Elebota Elektronika robota została zrealizowana w postaci modułowej, sercem układu jest płytka główna, na której znalazł się mikrokontroler, mostek H, stabilizator oraz gold piny służące do podłączenia dodatkowych modułów w postaci różnego rodzaju czujników lub innych bloków np. komunikacyjnych, zdalnego sterowania itp. Powstały dwie wersje tej płytki dla mikrokontrolera 89C2051 oraz 90s2313 (ATTiny 2313), jako dołączane moduły są dwa rodzaje czujników linii oraz czujnik odbiciowy. Sposób wykorzystania tak stworzonego bloku elektroniki jest zupełnie dowolny, podobnie jak przy konstrukcji mechanicznej nie ma żądanej konieczności takiej samej budowy, rozmieszczenia elementów, umocowania na płycie nośnej konstrukcji mechanicznej, oczywiście czujniki muszą być umieszczone tak, aby spełniały swoje zadanie. Osobiście szczególnie początkującym polecam wykonanie wersji modułowej, pozwala to na stopniowe uruchamianie poszczególnych bloków i znacznie łatwiej zlokalizować usterkę niż przy budowie układu 1 płytkowego. Wszystkie bloki zostały dokładnie sprawdzone i przetestowane praktycznie, opis podzielę na poszczególne bloki • płyta główna • czujnik linii • czujnik odbiciowy • program W załącznikach schematy, projekty PCB, oraz programy dla obu wersji płyty. Płyta główna Obie wersje są praktycznie identyczne pod względem układowym, oczywiście inaczej jest rozwiązany Reset to logiczne oraz dodatkowo wersja AVR ma standardowe złącze programujące ISP. Źródłem zasilania jest w moim przypadku 6szt akumulatorków Ni-MH 1300mA , co pozwala bez problemów zastosować typowy stabilizator LM7805 , oczywiście można zastosować bardziej ekonomiczny stabilizator serii low drop out, proponuje pozostać przy napięciu dla części cyfrowej o wartości 5 V, chodź współczesne uC pozwalają na pracę przy niższym napięciu, ale z tym bywa różnie szczególnie z dopasowaniem poziomu napięć I/O. Kolejnym elementem to typowa aplikacja scalonego mostka H L293D, do uC podłączone są również wejścia Enable co pozwoli również na sterowanie sygnałem PWM, ostatnim elementem jest mikrokontroler również w typowej aplikacji, z uwagi że początkowo korzystałem z układu 90s2313 konieczne było dla wersji AVR zastosowanie zewnętrznego rezonatora kwarcowego co nie jest konieczne w przypadku zastosowania ATTiny 2313, warto jednak pamiętać że wewnętrzny generator tego układu nie zapewnia idealnych parametrów dlatego tam gdzie wymagana jest duża dokładność przebiegów czasowych warto zastosować zewnętrzny oscylator kwarcowy. Połączenia zostały wykonane w ten sposób, że cały Portb ( P1 ) jest wykorzystany jako wyjście do sterownia L293D oraz czujnika odbiciowego, natomiast Portd (P3) jako wejścia czujników i sterowania, sposób wykorzystania tych wejść jest zupełnie dowolny, ponad to na płytce są wyprowadzone 4 wyjścia zasilania 5V służące do zasilania poszczególnych modułów. W wersji dla 89c2051 zastosowałem drabinkę rezystorów 8x4,7k dla portu P1 , nie jest to konieczne ale chcą wykorzystać piny portu P1.0 i P1.1 wymagane jest zastosowanie rezystorów podciągających o takiej wartości . Na zdjęciach obie wersje płyty głównej: Uwaga ! Błąd na płycie głównej wersja avr . Przy projektowaniu pcb popełniłem błąd, rysując schemat użyłem układu 90s2313 w którym nie ma wyjścia drugiego sygnału PWM, zakładając kolejność bitów aby program był czytelny 4 bity po kolei do sterowania mostka dwa kolejne dla PWM, jednak w ATTiny 2313 bit4 portu B jest sygnałem OC1B dlatego należy zamienić miedzy sobą te połączenia tzn PB4 > 3-4 EN L293D , PB2 > 4A L298D, zmiany można dokonać przez odpowiednie krosy na płytce Zmian wymaga również program sterujący tu sprawa jest prosta można zrobić to ręcznie zastępując PB4 na PB2 lub skorzystać z polecenia Replace text. W załączniku poprawiony schemat i płytka pcb, za kłopoty z tym związane przepraszam. Czujnik linii: Układy są wzorowane na projektach ze stron: http://www.lynxmotion.com/images/data/tra.pdf http://www.kmitl.ac.th/~kswichit%20/LFrobot/LFrobot.htm W obu przypadkach jako fotoelementy wykorzystano czujniki refleksyjne TCRT5000, w jednym jako element przełączający wykorzystano układ 74HC14 zawierający 6 inwertorów Schmitta, w drugim jest to popularny LM324 pracujący w konfiguracji komparatora, z możliwością ustalenia progu przełączania (czułość). Poprawnie zmontowany układ działa bez żadnego problemu, w układzie z LM324 należy ustawić odpowiedni próg przełączania komparatorów aby uzyskać pewne zadziałanie, odległość czujników od podłoża to ok. 5-7mm z LM324 można uzyskać większą. Ważną sprawą jest aby przejścia były pewne, w tym przypadku po zmontowaniu układu, należy nakleić kawałek czarnej taśmy izolacyjnej na stół, ustalić odpowiednią odległość i obserwować reakcję diod LED na zmianę położenia czujników względem czarnej taśmy. Bez względu na wersję musi to być pewne zapalenie danej diody, w zależności od szerokości taśmy może zdarzyć się sytuacja w której będą zapalone 2 diody to prawidłowy objaw, ta sytuacja może być również wykorzystana do sterowania o czym w opisie programu. Płytki mają identyczne wymiary tak więc mogą być wykorzystane zamiennie w tym miejscu mała uwaga fotoelementy są montowane od strony druku, należy zwrócić uwagę na odpowiednie ustawienie tych elementów, pomocne będzie ścięcie od strony fotodiody IR. Do prób wystarczy zasilić układ napięciem 5V, stany pracy są sygnalizowane diodami LED, można ich nie montować nie mają one żadnego wpływu na pracę układu. Czujnik odbiciowy Podobnie jak poprzedni moduł układ jest wzorowany na projekcie z strony http://www.lynxmotion.com/images/data/irpd.pdf Zaraz na początku muszę przyznać, że z tym modułem miałem najwięcej problemów, układ jest w sumie bardzo prosty ale dał mi nieźle popalić, zaznaczam że działa w miarę poprawnie ale nie idealnie, w tym miejscu należy zdać sobie sprawę z faktu że scalony odbiornik TSOP (który zastosowałem) są bardzo dobre do odbioru sygnałów kodowanych w podczerwieni, ale beznadziejne w zastosowaniu jako czujnik odbiciowy. W stosunku do oryginalnej wersji zastosowano jak fotoelement TSOP1738 oraz diody nadawcze IR 5mm LD271 oraz nie stosowałem potencjometru do regulacji prądu diod. Praca układu jest dość prosta 2 bramki tworzą generator fali nośnej 38kHz, na 2 pozostałych zrealizowano bramkowanie zapalania diod IR, tak więc po wysterowaniu odpowiedniej bramki następuje praca danego toru nadawczego w tym momencie następuje odczyt z czujnika czy został odebrany sygnał, jeżeli tak na wyjściu TSOP mamy stan L który w połączeniu z stanem H na wejściu bramki powoduje zapalenie diody LED sygnalizującej odebranie sygnału, analogiczna sytuacja w przypadku wysterowania drugiej bramki. W celu sprawdzenia układu, podobnie jak wcześniej można zasilać układ, wystawiać sygnały bramkujące i obserwować reakcję diod LED, tak naprawdę właściwe sprawdzenie jest możliwe dopiero w układzie z uC, gdzie będzie trzeba dobrać czasy przełączania wejść bramkujących. Jak wspomniałem wcześniej długo nie mogłem poradzić sobie z tym układem dopiero ograniczenie kąta widzenia TSOP oraz oklejenie diod IR spowodowała w miarę przyzwoitą pracę układu, do ograniczenia kąta posłużył kawałek cienkiej blachy, od wewnątrz oklejony czarną taśmą izolacyjną , następnie przyklejony do TSOP, dość zaskakująca jest czułość układu która przy idealnym dostrojeniu generatora fali nośnej wynosi ponad 50cm , ja tak ustawiłem częstotliwość i dobrałem prąd diod że czułość wynosi ok. 25 -30cm, proponuje wykorzystać płytkę główna lub dowolną testową przekopiować fragment obsługi tego czujnika dodając zamiast skoku do podprogramu wystawienie odpowiedniego stanu na wolnych portach i sprawdzić pracę czujnika aby uniknąć przykrych niespodzianek. Podane wartości zostały ustalone dla zbudowanego układu, jednak trzeba pamiętać że mogą one różnić się , ponieważ to wszystko zależy od indywidualnych parametrów zastosowanych elementów, z pewnością zastosowanie tak jak w oryginalnym projekcie czujnika Panasonic PNA4602M było by znacznie lepszym rozwiązaniem niż TSOP jednak nie znalazłem w kraju dystrybutora tego czujnika. Program Obie wersje są napisane w Bascomie, algorytm jest bardzo prosty starałem się napisać wszystko w prosty sposób umożliwiający zrozumienie jego działa przez wszystkich. W programie realizowana jest obsługa obu czujników, przełączenie się pomiędzy funkcjami programu następuje przez ustawienie stanu na Pind.5 (P3.5), dodatkowo w wersji źródłowej jest fragment dotyczący obsługi obu czujników linii, jest to spowodowane innym rozkładem wyprowadzeń na płytkach śmiało można się tego fragmentu pozbyć tylko trzeba pamiętać o odpowiednim podłączeniu. W programie występują opóźnienia czasowe jedno to szybkość bramkowania wejść czujnika odbiciowego, kolejne jest zależne od rodzaju wykonywanego programu dla czujnika linii nie musi być duże, ale dla odbiciowego trzeba będzie dobrać doświadczalnie. Zbyt krótki powoduje że robot zaczyna „tańczyć” jest to spowodowane czasem jaki jest potrzebny aby został wykonany dany ruch: polecenie > wykonanie > fizyczny ruch. Dla bardziej doświadczonych w programowaniu pozostaje pole do popisu, można dodać sterownie sygnałem PWM, w trybie line follower jak wspomniałem wcześniej jest sytuacja w której odchyłka od trasy powoduje zapalenie 2 diod można to wykorzystać do „delikatnej” korekty ruchu przez PWM lub dla takiej odchyłki zastosować prosty skręt, a większa odchyłka przez nawrót, jeżeli ktoś wykonał podobną część mechaniczną do proponowanej to wystarczy wydrukować tarczę z odpowiednią ilością czarnych pól przykleić ją do koła, zastosować czujnik refleksyjny i mamy gotowy enkoder. Pliki do pobrania (lub z załączników): • schematy • płytki • płytka AVR poprawiona • programy • rysunek 1 • rysunek 2 Filmy: Część II - dodatkowe moduły Nowy czujnik odbiciowy Po długich próbach i testach powstał układ czujnika odbiciowego z elementem światłoczułym w postaci diody IR o zbliżonych parametrach do prezentowanego wcześniej rozwiązania na TSOP, przy ostatecznym wyborze układu kierowałem się prostotą wykonania, łatwością ustawienia oraz pewnością działania. Testując wiele różnych rozwiązań układów barier optycznych, zdalnego sterownia itp. wybrałem układ wzmacniacza prądu diody zbudowanego na 3 tranzystorach, generator tonu NE567 jako detektor częstotliwości nośnej, idea układu jest identyczna z opisaną wcześniej dla czujnika z TSOP tzn. jedna dioda odbiorcza oraz dwie diody nadawcze. Układ został tak zaprojektowany, że nie trzeba dokonywać żadnych zmian w programie sterującym, poza doświadczalnym dobraniem wartości opóźnień w przełączaniu torów nadawczych. Opis układu Elementem światłoczułym jest fotodioda BPW41 prąd fotodiody zostaje wzmocniony w trzystopniowym wzmacniaczu tranzystorowym pracującym z dużym sprzężeniem zwrotnym dla prądu stałego, co w dużym stopniu uniezależnia pracę układu od oświetlenia zewnętrznego, sygnał trafia następnie do układu NE567 bez zbędnych szczegółów jeżeli częstotliwość pracy wewnętrznego generatora jest identyczna z odebraną przez fotodiodę na wyjściu pojawia się stan niski (identycznie jak w TSOP), zakres pracy jest dość szeroki tak więc częstotliwość możemy sobie dowolnie wybrać do 500kHz, przez co nie jesteśmy zależni od standardowych częstotliwości. Część nadawcza została zmieniona z powodu niezbyt stabilnej pracy generatora zbudowanego na 2 bramkach, układ został zastąpiony generatorem na NE555, można było wykorzystać układ przełączający na bramkach, jednak zdecydowałem się na inne rozwiązanie polegające na uruchamianiu generatora sygnałem H podawanym na wejście Reset NE555, oczywiście przy takim rozwiązaniu wymagane są dwa osobne generatory. Działanie układu jest identyczne jak rozwiązania na bramkach tzn. poziom H powoduje rozpoczęcie pracy danego generatora a co za tym idzie nadawanie przez jedną z diod IR. Modelowy układ pracuje z częstotliwością 15kHz jednak tak jak wspomniałem wcześniej można ją sobie ustalić dowolnie, wszystko dokładnie jest opisane w dokumentacji układów dla NE 555 jest kilka programów gdzie możemy sobie wyliczyć potrzebne wartości elementów. Uruchomienie Zdecydowałem się właśnie na takie rozwiązanie układowe ponieważ układ zmontowany poprawnie działa od razu wymaga tylko 2 ustawień i jest gotowy do pracy, praca układu jest stabilna i nie ma żadnych dziwnych niespodzianek jak z TSOP. Układ proponuje uruchamiać poza systemem korzystając z źródła napięcia 5V, do wyjścia NE 567 ( końcówka 8 ) podłączyć diodę LED z opornikiem 470 druga końcówka do Uc ( zasilanie +5V), odpowiednio na dane wejście ( końcówka 4 NE555 ) podłączyć do Uc. Uruchamianie należy rozpocząć od generatora z stałymi wartościami rezystorów, podajemy na jego wejście H, przed czujnikiem w odległości ok. 20cm umieszczamy dowolny przedmiot następnie tak ustawiamy potencjometr P1(10k ) aż zapali się diod LED, następnie można oddalać przedmiot o następne kilka centymetrów i dokonywać korekty P1, mnie z diodami IR 3mm dla białego tła udało się uzyskać ok. 30cm a przy diodach 5mm i zmniejszonym R14 do 100 ponad 50cm. Jeżeli wszystko wypadło dobrze, możemy przystąpić do uruchomienia drugiego generatora, oczywiście wyłączmy sterowanie dla pierwszego tak aby pracował tylko jeden generator ustawiamy identycznie przedmiot i potencjometrem P2 doprowadzamy do zapalenia diody LED. Na tym kończy się uruchamianie układu, raz ustawione wartości nie wymagają już zmian układ jest gotowy do pracy. Uwagi Początkowo oba generatory były na elementach o stałej wartości jednak okazało się że tolerancja zastosowanych elementów jest zbyt duża w stosunku do wymagań wartości częstotliwości układu NE567, dlatego drugi generator ma możliwość korekty częstotliwości. Przy próbach okazało się że diody nadawcze IR muszą być w tulejkach oby ograniczyć kąt promieniowania, podobnie należy postąpić z diodą odbiorczą (tył i boki oklejone czarną taśmą) idealnym rozwiązaniem jest wykonanie ekranu z cienkiej blachy podobnie jak w czujniku z TSOP, oczywiście jest to uzależnione od kształtu fotodiody. Poprawnie zmontowany układ po podłączeniu do płytki głównej działa od razu jedynie co należy zrobić to zwiększyć czas pomiędzy przełączaniem torów (ustabilizowanie parametrów generatora NE 555) u mnie wynosi 20 ms. ***** program obslugi czujnika odbiciowego ***** If Pind.5 = 1 Then Czas = 50 Ruchl = 0 Ruchp = 0 Portb.1 = 1 Waitms 20 ' dobrać ! If Pind.6 = 0 Then Ruchl = 1 Portb.1 = 0 Portb.0 = 1 Waitms 20 ' dobrać ! If Pind.6 = 0 Then Ruchp = 1 Portb.0 = 0 If Ruchl = 1 And Ruchp = 0 Then Lewo If Ruchl = 0 And Ruchp = 1 Then Prawo If Ruchl = 0 And Ruchp = 0 Then Naprzod If Ruchl = 1 And Ruchp = 1 Then Wstecz End If Układ można wykonać również korzystając z prezentowanego wcześniej rozwiązania generatora na bramkach jednak wymagany byłby nie układ RC tylko z kwarcem, inna możliwość to generowanie sygnału z uC lub innego generatora a do zmiany torów nadawczych wykorzystać przedstawiony układ na bramkach, można również zbudować dwa niezależne układy (1 tor nadawczy 1 odbiorczy) na lewą i prawą stronę. Po mimo że układ jest bardziej skomplikowany niż zastosowanie samego scalonego czujnika, jednak działa dużo pewniej i bez żadnych niespodzianek. Wszystkie niezbędne informacje można znaleźć na tych stronach: http://pdf.elenota.pl/pdf/STMicroelectronics/2182.pdf http://www.iele.polsl.pl/elenota/Philips/ne_se567.pdf Zdalne sterownie 433MHz Kolejnym z proponowanych układów jest zdalne sterowanie wykorzystujące gotowe moduły radiowe pracujące na częstotliwości 433MHz jako nadajnik wykorzystano moduł RT 6 jako odbiornik RR4 są to stosunkowo tanie moduły i pozwalają zrealizować proste zdalne sterownie, oczywiście jednokierunkowe. Opis W celu maksymalnego uproszczenia układu transmisja została zrealizowana wykorzystując sprzętowe łącze RS232 oraz gotowe Bascoma procedury tak wiec programy są bardzo proste i można przypisać dowolne znaki poszczególnym poleceniom. Nadajnik został zrealizowany jako urządzenie autonomiczne z 8 poleceniami do dowolnego wykorzystania w proponowanym rozwiązaniu wykorzystano tylko 5 (lewo, prawo, naprzód, wstecz, stop) pozostałe 3 można sobie wykorzystać w dowolny sposób, całością steruje mikrokontroler AT89c2051 lub ATTiny 2313, szybkość transmisji nie jest duża 1200 jednak zupełnie wystarczająca do zdalnego sterownia. Odbiornik dzięki swojej konstrukcji podłącza się bezpośrednio do wejścia toru komunikacji RS mikrokontrolera. Poprawnie zmontowane układy nie wymagają żadnego uruchamiania, w razie problemów należy wyjście mikrokontrolera TxD nadajnika podłączyć z wejściem na płycie robota RxD oraz połączyć razem masy układu w ten sposób pomijamy cały tor radiowy i możemy sprawdzić gdzie leży problem. W załączniku programy dla obu wersji mikrokontrolerów , oczywiście nie ma znaczenia jakie układy będą w nadajniku oraz robocie. Uwagi Zaprezentowane rozwiązanie zdalnego sterowania jest dość proste, jednak za ceną modułów idzie jakość szczególnie dotyczy to odbiornika RR4 (super reakcyjny) który odbiera wszystkie śmieci będące w eterze, dlatego układ za bardzo nie nadaje się do typowej transmisji danych z powodu generowania zbyt dużej ilości błędów. Z pewnością lepiej było by zastosować odbiornik serii RRTQ (super heterodyna tylko że jest praktycznie 3krotnie droższy co w połączeniu z nadajnikiem jest ceną porównywalną z gotowym modułem transceivera. Jak wspomniałem wcześniej układ korzysta z prostych Bascomowych poleceń Print i Input wysyłając/odbierając dowolne znaki ASC II, można również stworzyć własny kod wykorzystując instrukcje Printbin, Inputbin jednak nie polecam wysyłania tą drogą wartości sterujących np. czas pracy czy wartość PWM. Dla 89c2051 proponuje zastosować standardowy kwarc 11.052 MHz, natomiast dla ATtiny 2313 kwarc 4 MHz należy pamiętać o zmianie ustawień fusebitów na generator zewnętrzny oraz na wyłączeniu podziału zegara przez 8. Istniej możliwość pracy z wewnętrznym generatorem RC na 4 lub 8 MHz jednak zdarzają przekłamania szczególnie w torze odbiornika, dlatego lepiej zastosować rezonatory kwarcowe. Układ sprawdzałem w domu gdzie max odległość to ok. 20m , działał bez problemów przez 2 ściany, na otwartej przestrzeni powinien według osób korzystających z tych modułów wynieś ok.100m. Można również korzystając z programu zdalnego sterownia dla robota stworzyć przewodowe sterowanie wysyłając komendy z systemowego Terminala , należy tylko zastosować konwerter napięć MAX232 http://www.sensu.pl/download/rr4.pdf?PHPSESSID=649ff9f0bc2eb650e1a5f07c210e4870 http://www.sensu.pl/download/rt6.pdf?PHPSESSID=649ff9f0bc2eb650e1a5f07c210e4870 Do pobrania (lub z załącznika): • schematy czujnika odbiciowego oraz zdalnego sterowania • projekty PCB czujnika odbiciowego oraz zdalnego sterowania • programy dla czujnika odbiciowego oraz zdalnego sterowania Część III - Enkodery Wstęp Każdy enkoder jako podstawowe zadanie ma dostarczyć informacji o swoim aktualnym położeniu jak wiadomo pomiar dokonywany jest na osi silnika lub innego mechanizmu w którym następuje ruch obrotowy, sercem enkodera optycznego jest tarcza oraz układ optyczny którego zadaniem jest zamiana impulsu świetlnego na sygnał elektryczny, tarcza najczęściej wykonana jest z folii gdzie umieszczone są pola (punkty) powodujące przerywanie wiązki światła, kształt jest uzależniony od parametrów i zastosowania danego enkodera. W układzie optycznym stosowne są transoptory szczelinowe, gdzie z jednej strony jest dioda nadawcza z przeciwnej fototranzystor, tarcza wiruje w szczelinie pomiędzy tymi elementami każdy przerwanie wiązki powoduje generację impulsu wykorzystanego w elektronicznym układzie pomiarowym. W analogiczny sposób działa enkoder zbudowany z czujnika refleksyjnego (odbiciowego) z tą różnicą że tarcza musi zawierać elementy w kolorze białym i czarnym emitowana wiązka odbija się od tarczy i w zależności od koloru wysyła impuls. Innym rozwianiem jest zastosowanie hallotronu tu z kolei wykrywane jest pole magnetyczne na tarczy są magnesy, to rozwiązanie jest mało praktyczne dlatego najczęściej wykorzystuje się bezpośredni pomiar położenia wirnika wykonanego z magnesów trwałych przykładem są silniki bldc np. napęd płyty Cd-romu, wentylatory komputerowe. W profesjonalnych rozwiązaniach enkoder dostarcza nie jeden sygnał tylko dwa lub trzy sygnały A i B są sygnałami przesuniętymi o 90 stopni co pozwala na identyfikację kierunku, oraz sygnał C (Z) wykorzystany do pomiaru prędkości, gotowe enkodery posiadają poza układem optycznym układy dopasowujące sygnały wyjście do typowych rozwiązań dla automatyki przemysłowej. Na rysunku są poglądowo pokazane dwa typowe rozwiązania enkoderów i wygląd tarcz enkodera. Enkoder z czujnikiem refleksyjny Z uwagi na prostotę wykonania w warunkach amatorskich, oraz łatwość adaptacji do robota jako przykład wykorzystałem ten typ enkodera od razy zaznaczam, że nie jest to idealne rozwiązanie z powodu wpływu czynników zewnętrznych na jego pracę oraz niedoskonałości układu optycznego, jednak pozwala on na poznanie zasady pracy oraz zagadnień związanych z układami regulacji. Do testów zbudowałem proste stanowisko wykorzystując stary laminat i dwa silniki DC pochodzące z cd-romów, na krążek brystolu zostały naklejone wydrukowana na białym papierze tarcza enkodera sporządzona w bardzo prostym programie "Enkoder Desing 1.2” Program pozwala na dowolne ukształtowanie tarczy, dowolny podział i wykonanie 3 kanałów tak jak w profesjonalnych rozwiązaniach, na początku proponuje przejść do bardziej bliskiej mam jednostki jakimi są mm i odznaczenie kanałów B i C, pozostałe parametry należy wprowadzić według własnych potrzeb. Jako czujnik zastosowałem popularny TCRT5000 sygnał trafia do układu komparatora analogowego zbudowanego na LM358 to rozwiązanie jest identyczne z zastosowanym w układzie czujnika linii z tą różnicą że korzystamy z 2 czujników, potencjometr R2 służy do ustawienia punktu przełączania komparator, można również zastosować układ z przerzutnikami Schmita 7414, na schemacie dodatkowe elementy kształtowania impulsu. Sygnały z tej części trafiają bezpośrednio do mikrokontrolera, gdzie następuje liczenie impulsów i wykonanie odpowiedniego algorytmu regulacji. Dla lepszego poznania pracy enkodera i układu regulacyjnego proponuje wykorzystać dowolną płytkę testową z możliwością podłączenia wyświetlacza LCD, w czasie testów nie jest potrzebny mostek H tak wiec do sterowania silnika wystarczy prosty układ z jednym tranzystorem, również przy uruchamianiu i testach przydatne będą 2 diody LED włączone na wyjściu układu czujnika (zobacz czujnik linii), wszystkie szczegóły są w załączniku z schematami. Program Ogólnie zasada obsługi enkodera polega na ciągłym badaniu stanu wejść na którym dostarczane są impulsy z enkodera oraz przechowywaniu ich wartości, następnie w określonych odcinkach czasu odczytanie, otrzymane wartości wykorzystuje się do pomiaru prędkości, drogi lub dla układu regulacyjnego. Sprawdzanie stanu wejść można zrealizować wykorzystując przerwania lub badając stan logiczny na danym wejściu, dla przerwań proponuje wykorzystać polecenie reakcji na opadające zbocze sygnału. Należy pamiętać że przy sprawdzaniu stanu pinów może zdarzyć się sytuacja że zatrzymany enkoder wystawi poziom L na wyjściu co przez program będzie odczytane jako ciągła generacja impulsów. Na potrzeby testów napisałem dwa proste programy, pierwszy umożliwia zadanie określonej ilości impulsów, które ma wykonać silnik drugi ma zsynchronizować pracę dwóch silników. W jednym przypadku do generacji przedziałów czasowych wykorzystano polecenie Waitms w drugim jest to Timer0, jeżeli nie jest potrzebny pomiar prędkości to jednostki czasowe nie są tak istotne, ważne aby były równe należy pamiętać aby czas był na tyle długi aby nawet przy minimalnej prędkości enkoder był w stanie wysłać impulsy do mikrokontrolera sprawdziłem układ z warunkiem logicznym również takie polecenie nadaje się do wykorzystania. W przypadku kiedy chcemy dokładnego pomiaru prędkości przedziały czasowe muszą być wartością całkowitą w celu dokonania obliczeń i nie musi być to 1 sekunda chodź to upraszcza obliczenia. Po ustalonym czasie następuje skok do procedury gdzie zostaje porównanie wartości zapamiętanych impulsów z enkodera1 i 2 lub enkodera1 i wartości zadanej kolejnym krokiem to zmiana wartości sygnału PWM dla danego silnika lub jeżeli są równe zwiększenie jednocześnie obu wartości. Zastosowany algorytm jest bardzo prosty wręcz prymitywny, główną jego wadą jest czas jaki jest potrzebny do wyregulowania się układu. Algorytm z prawdziwego zdarzenia powinien uwzględnić wielkość różnicy impulsów i na tej podstawie dokonać zmiany wartości PWM o obliczoną wartość. W zaproponowanych przykładach można na LCD wysłać inne parametry, które chcemy sobie zobaczyć, wysyłanie bezpośrednio wartości impulsów nie ma sensu bo zmieniają się zbyt szybko. Proponuje poeksperymentować z różnymi wartościami PWM, pamiętając że mamy do dyspozycji 8, 9, 10 bitowy licznik, zmianie może ulec również stopień podziału prelaksera, również ciekawe są zmiany podziału tarczy enkodera, programy są dość surowe dlatego można dorobić lepszą obsługę przycisków, również ważne są warunki nie przekraczania wartości PWM dla danego zakresu pracy generatora. Możliwe jest wykorzystanie płyty głównej Elebota tu jednak z powodu braku wyjść jedyna wizualizacja to dodatkowo podłączone diody LED. To samo rozwiązanie zostało przeniesione do Elebota na koła zostały naklejone tarcze enkoderów, czujniki i płytka z komparatorem została przyklejona bezpośrednio do serw. W przypadku kiedy istnieje możliwość zastosowania transoptora szczelinowego, układ sterowania można znacznie uprościć wykorzystując bezpośrednio sygnał z fototranzystora przykłady w załączniku ponadto zastosowanie transoptora szczelinowego daje dużo pewniejsze impulsy i jest bardziej odporny na czynniki zewnętrzne. Uwagi końcowe Nie będę opisywał poszczególnych reakcji na zmiany w programie, najlepszym nauczycielem jest praktyka, a zdobyte doświadczenie na pewno przyda się na przyszłość. Jedyne sugestie to należy pamiętać, że silnik DC to nie dioda LED i jest pewna określona wartość minimalna sygnału PWM przy którym silnik zacznie pracować, zupełnie inaczej zachowuje się układ regulacyjny przy „gołych silnikach” a przy silnikach z obciążeniem lub przekładnią, nie można ustalić z góry wartości to po prostu trzeba zrobić doświadczalnie wybierając optymalne wartości dla danego silnika, przy gołych silnikach dochodzi również bezwładność mechaniczna układu o czym można się łatwo przekonać wyświetlając parametry układu na LCD, gdzie można zauważyć że program zaczął regulację a reakcja silników nie jest natychmiastowa, szczególnie przy gwałtownych zmianach parametrów zadanych. Po przeprowadzonych testach z zastosowanie enkodera w Elebocie doszedłem do wniosku, że wykorzystanie enkodera i prostego programu regulacyjnego do prostoliniowego poruszania się robota nie ma zbytnio sensu. Po pierwsze sam program regulacyjny, po drugie dostarczamy do analizy impulsy bezpośrednio z kół jezdnych co za tym idzie pojazd musi przebyć określoną drogę zanim nastąpi reakcja układu regulacyjnego, oczywiście te problemy można rozwiązać stosując bardziej zaawansowany algorytm regulacji ale to już nie w Bascomie tylko w asemblerze, z drugim problemem jest gorzej ponieważ w warunkach amatorskich dość kłopotliwe będzie zamocowanie enkodera wewnątrz serwa, tu jedyna możliwość to zastosowanie takie układu przekładni aby była możliwość pomiaru bezpośrednio na osi silnika lub gotowy silnik z przekładnia i enkoderem. Reasumując zaprezentowane rozwiązanie regulacji działa, ale ze względu na wymienione wcześniej problemy uważam że jeżeli chcemy zachować prostolinijne poruszanie się robota dużo lepszy efekt uzyskamy dobierając indywidualne wartości sygnału PWM dla silników. Natomiast nic nie stoi na przeszkodzie aby enkodery wykorzystać do pomiaru prędkości czy przebytej drogi, myślę że każdy da sobie radę z stworzeniem algorytmu do obliczenia prędkości i drogi na podstawie impulsów z enkodera. W początkowych założeniach projekt miał pokazać jak w prosty sposób w warunkach domowych zbudować robota, dlatego zdecydowałem się na małe Atmele, przy dalszej rozbudowie okazało się , że zaczyna brakować wej/wyj dlatego wskazane było by zastosowanie większego uC np. ATMegi8, co pozwoli na dołączenie wyświetlacza LCD i możliwość wizualizacji pracy układu. Na zakończenie proponuje dokładnie zastanowić się nad sensem stosowania enkodera w prostych konstrukcjach robotów, osobiście uważam, że pakowanie enkodera do line followera, omijającego przeszkody czy zdalnie sterowanego jest tylko „sztuką dla sztuki” w żaden znaczący sposób nie poprawi to pracy, zupełnie czymś innym jest zastosowanie w robotach sumo, inspekcyjnych itp. Pliki do pobrania (lub z załączników): • Enkodery schematy • Enkodery programy • Enkoder Design Część IV - nowa płyta główna na ATmega8 Doświadczony zadawanymi pytaniami zbudowałem płytę główną na której nie ma już jak w poprzednich wersjach nic podłączone na stałe, tzn. można sobie dowolnie podpinać urządzenia. Płyta ma identyczną szerokość jak poprzednie, długość powiększyła się o LCD 2x16 który można wykorzystać do zobrazowania dowolnego parametru lub stworzenia własnego memu, układ połączeń jest standardowy dla ATMegi 8 poza wyprowadzeniem wszystkich portów, ma złącze programujące ISP, złącza napięcia +5V tak więc może również posłużyć jako płyta testowa do nauki programowania. W prezentowanej wersji wykorzystano wewnętrzny generator RC, na płytce znajduje się miejsce aby zastosować rezonator kwarcowy wraz z kondensatorami podłączany do układu za pomocą zworek, dodatkowy mikrowyłącznik można wykorzystać w dowolny sposób. Jak łatwo zauważyć na płycie znajduje się dodatkowe złącze służy ono do podłączenia mostków H, złącze dostarcza napięcia +5V dla logiki mostków, pozostałe wejścia są wyprowadzone na przewodach i można je wpiąć w dowolny port mikrokontrolera. Zasilanie stopnia mocy mostków jest również wyprowadzone na przewodach i może być zasilane przed stabilizatora LM7805 lub z innego źródła zasilania, powstały 3 wersje mostków H z układam L293 D i L298 w obu przypadkach są to typowe aplikacje tych układów, dla wersji L298 są dwa rozwiązania w pierwszym elementy montujemy standardowo, natomiast w drugim od strony druku dzięki temu mamy możliwość zastosowania typowego radiatora dla tych układów, oczywiście pierwsze rozwiązanie również na to pozwala jednak wymaga wykonania go samodzielnie z kawałka blachy AL, odpowiednio wyprofilowanego. W obu rozwiązaniach dla L298 zastosowano rezystory pomiarowe, nie są one konieczne jeżeli nie będziemy korzystać z pomiaru prądu w takim przypadku montujemy zworki w nich miejsce Rezystory są 1 Ω tylko dlatego aby można było łatwo obliczyć sobie spadek napięcia proporcjonalny do przepływającego prądu dla 1 Ω jest to 1V przy prądzie 1 A, dla innych wartości wystarczy obliczyć sobie z prawa Ohma, należy pamiętać że spadek napięcia na rezystorach automatycznie zaniża napięcie zasilania silniki. rys2.doc rys1.doc schematy.rar Program.rar Pcb.rar czujniki_zdalnester_schematy.rar czujniki_zdalnester_programy.rar czujniki_zdalnester_pcb.rar nowe_avr.rar schematy_enkodery.rar Programy_enkodery.rar Encoder_Design12.rar programy_m8.rar schematy_m8.rar pcb_m8.rar 5 Cytuj Link do komentarza Share on other sites More sharing options...
Popularny post Treker (Damian Szymański) Grudzień 13, 2009 Autor tematu Popularny post Udostępnij Grudzień 13, 2009 Normalną sprawą jest że zawsze zaczyna brakować wolnych portów w mikrokontrolerze, standardowe podłączenie LCD to 6 pinów , dlatego powstała wersja z wykorzystaniem magistrali I2C oraz popularnego układu PCF 8574 . Wykorzystując ten układ zrobiłem płytka dla wyświetlacza LCD i klawiatury matrycowej 4x4 nie będę opisywał tego rozwiązania ponieważ wszystko jest na stronie http://www.mcselec.com/ AN#118 z dokładnym opisem i przykładami, w nowej wersji Bascoma są już zainstalowane potrzebne biblioteki dla starszych należy je ściągnąć. Proponowane rozwiązanie z magistralą I2C pozwala obsłużyć wyświetlacz i klawiaturę zajmując tylko dwa piny mikrokontrolera. Oba układy posiadają możliwość pełnego adresowania (zworki) w przypadku kiedy z góry ustalimy sobie adresy nie ma konieczności montowania goldpinów wystarczą odpowiednie mostki. Wszystkie prezentowane układy zostały wykonane, przetestowane i nie ma żadnych problemów z ich uruchomieniem przy prawidłowym montażu, napisano programy testujące i tak należy je traktować są to tylko proste przykłady aby sprawdzić poprawność pracy prezentowanych rozwiązań układów, oczywiście można zawsze dostosować je do własnych potrzeb. W czasie testów wykorzystałem prymitywny układ z silnikiem DC oraz enkoderem jako czujnik wykorzystałem transoptor szczelinowy pochodzący z starej drukarki. W dwóch programach zastosowano typowe połączenie LCD w różnych konfiguracjach podłączenia wyświetlacza i mostka H w trzecim z wykorzystaniem magistrali I2C z obsługą wyświetlacza i klawiatury, w tym miejscu podkreślam jeszcze raz to tylko mój sposób podłączenia. Uwagi Dla jasności i przejrzystości głównie programowej zastosowałem podobne rozwiązania jak poprzednio czyli wejścia sterujące danego układu są po kolei jednak to tylko przykład i można sobie w dowolny sposób dokonać własnego podłączenie. Proponuje jednak tak wszystko sobie rozplanować aby istniała możliwość wykorzystania sprzętowych możliwości mikrokontrolera tzn wejścia komunikacyjne, przerwania, pwm, przetwornik analogowy oczywiście istnieje zawsze możliwość programowego napisania obsługi ale nie wszystkiego a dla początkujących łatwiej będzie wykorzystać to co daje producent. Dla tych którzy wykonują układy z zdjęć (są tacy) a nie z schematu informuję że z płyty głównej usunąłem złącze dla zewnętrznego napięcia odniesienia, na płycie LCD_I2C są dodatkowe rezystory podciągające magistralę I2C, projekty pcb są już z tymi zmianami, płytki z LCD posiadają zworkę do włączania podświetlenia, które nie zawsze jest potrzebne dodatkowo umieszczony jest rezystor ograniczający należy przed uruchomieniem podświetlenia sprawdzić na jakie są napięcia pracy diody ponieważ są różne wersje. Układy filtracyjne składają się z kondensatora EL i stałego (najlepiej ceramiczny) najczęściej są one umieszczone obok siebie i nie ma znaczenia który jest pierwszy, ważne jest aby były zastosowane, najważniejsze przy mikrokontrolerze ( jak najbliżej ) oraz przy stabilizatorze napięcia. Pliki do pobrania (lub z załączników powyżej): • schematy nowej płyty głównej • projekt płytki nowej płyty głównej • programy nowej płyty głównej Możliwości rozbudowy jest wiele, może ktoś na forum przedstawi kolejne etapy rozbudowy, zaproponuje inne moduły w robocie, moim celem było pokazanie w jednym temacie podstawowych zagadnień związanych z budową własnego robota, temat adresowany jest głównie dla początkujących, dlatego nie ma tu jakiś specjalnych bajerów. Zdaję sobie sprawę że nie sposób opisać wszystkiego, myślę że ten temat coś powinien pomóc przy budowie swojego pierwszego robota. Dziękujemy autorowi za zgodę na publikacje artykułu na diodzie. Jeśli po przeczytaniu, nie wiesz jak coś działa lub jak coś wykonać użyj wyszukiwarki!, jeśli zapytasz o coś co było już opisywane na forum - post zostanie usunięty. Inne pomocne tematy: • Najczęstsze problemy początkujących • Przerabianie serwomechanizmów • Kurs BASCOM-AVR • Częste błędy początkujących 11 Cytuj Link do komentarza Share on other sites More sharing options...
nikosss Grudzień 13, 2009 Udostępnij Grudzień 13, 2009 Super artukuł ! 😃 Podobny do tego na elektrodzie, właśnie zbieram części i szukam laserowej drukarki 😋 a po świętach praca pójdzie pełną parą. PS : piwko będzie rzecz jasna 😉 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Grudzień 13, 2009 Autor tematu Udostępnij Grudzień 13, 2009 Podobny do tego na elektrodzie, Nie podobny tylko ten sam. Umieściliśmy go, aby ułatwić życie początkującym, jeśli temat będzie cieszył się powodzeniem to postaramy się przygotować drugi podobny artykuł o innym robocie. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Deimos Grudzień 13, 2009 Udostępnij Grudzień 13, 2009 Hmmm, wg mnie powinniście go dodać do polecanych artykułów co zwiększy zainteresowanie nim. Cytuj Link do komentarza Share on other sites More sharing options...
dziadek46 Grudzień 14, 2009 Udostępnij Grudzień 14, 2009 Bardzo pomocny art.,z mojej strony szacunek, rozszerz ten pożyteczny temat dla początkujących i zaawansowanych........ wiekiem, ot co! Cytuj Link do komentarza Share on other sites More sharing options...
kamilo Grudzień 17, 2009 Udostępnij Grudzień 17, 2009 super artykuł.piwko dla ciebie oczywiście Cytuj Link do komentarza Share on other sites More sharing options...
KD93 Grudzień 17, 2009 Udostępnij Grudzień 17, 2009 Dobrze że ten artykuł się tu znalazł, ale nie rozumiem tej euforii skoro od dwóch lat można go znaleźć na forum elektrody. Jeżeli ktoś się tu nim zachwyca to znaczy że nie potrafi szukać. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Noshi Grudzień 19, 2009 Udostępnij Grudzień 19, 2009 wydaje mi się zbyt skoplikowany jak na początek ja planuję zacząć od chyba najprostszego w budowie jaki tylko może być, ale kwestia gustu. Bardzo możliwe, że jak dam radę temu to drugim robotem, jaki zrobię, będzie właśnie prezentowany w tym temacie 😉 może mój błąd, ale na elektrodę nie wchodzę, tutaj jest wystarczająco dużo ciekawych tematów, i ciesze się, że ktoś tu je przerzuca też stamtąd 😉 Cytuj Link do komentarza Share on other sites More sharing options...
pawlu10 Grudzień 20, 2009 Udostępnij Grudzień 20, 2009 Świetny artykuł!! Czekam na następną część!! Według mnie jest bardzo przydatny do nauki konstruowania robotów, bo najlepsza nauka, to nauka poprzez praktykę. P.S. powinniście go umieścić w ramce "Ważne tematy". Precyzuję post: Czekam na następną część - chodziło mi bardziej o unowocześnienia, dodatki, nowe moduły itp. Cytuj Link do komentarza Share on other sites More sharing options...
madik Grudzień 20, 2009 Udostępnij Grudzień 20, 2009 Czekam na następną część Ale to jednoczęściowy artykuł... P.S. powinniście go umieścić w polecanych. Już na głównej stronie pojawiło się kilka linków do tego artykułu. Cytuj Link do komentarza Share on other sites More sharing options...
karata1996 Luty 27, 2010 Udostępnij Luty 27, 2010 bardzo przydatne polecam Cytuj Link do komentarza Share on other sites More sharing options...
xtimer Marzec 14, 2010 Udostępnij Marzec 14, 2010 Witam. Mógłby mi ktoś podać pełną listę części użytych w pierwszej części artykułu (elektronika), gdyż podane są tylko główne elementy a nie wszystkie... Z góry dziękuję 😃 Cytuj Link do komentarza Share on other sites More sharing options...
Bobby Marzec 14, 2010 Udostępnij Marzec 14, 2010 układy scalone: lm7805 l293D + podstawka attiny2313 + podstawka kondensatory: 2x 22pF 4x 100nF 1x 47uF 1x 100uF 1x 220uF rezystory: 4,7Kohm inne: kwarc 4MHz Listwa goldpin (40-stka chyba wystarczy, musisz sobie dokładnie policzyć) laminat, b327, drukarka laserowa 🙂 lub positiv + laminat/laminat światłoczuły, wywoływacz, folia etc, więcej o wykonywaniu płytek drukowanych w ważnych tematach bodajże. Cytuj Link do komentarza Share on other sites More sharing options...
xtimer Marzec 14, 2010 Udostępnij Marzec 14, 2010 a dalej w czujnikach linii i odbiciowym ? Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!