Przepis na robota - w pełni programowalny Line Follower
Autor Wiadomość
Nawyk 
AiR PW




Posty: 852
Pomógł: 40 razy
Otrzymał 162 piw(a)
Skąd: Warszawa
Programuję w:
C, BASIC

Wysłany: 13 Wrz 09 06:41   Przepis na robota - w pełni programowalny Line Follower

Zachęcony licznymi mailami, wiadomościami PW i dyskusjami toczonymi na forum, postanowiłem przygotować artykuł opisujący krok po kroku i bardzo łopatologicznie budowę robota klasy Line Follower - w pełni programowalnego. Części, które wykorzystałem są łatwo dostępne i nikt nie powinien mieć problemów z ich zakupem. Dodatkowo wybrałem takie, które można z powodzeniem znaleźć w jednym konkretnym sklepie (szczegóły w punkcie "Lista zakupów"). Jest to potrzebne minimum, choć oczywiście osoby z odrobiną doświadczenia zachęcam do sprawdzania własnych rozwiązań.
Wymagania potrzebne do budowy, to elementarna wiedza z zakresu elektroniki (w tym umiejętność lutowania) i obsługi prostych narzędzi (piła, wiertarka, pistolet do klejenia na gorąco). Prędzej czy później trzeba będzie także nauczyć się programować - o tym napiszę na końcu.

Krótki film przedstawiający gotowego robota zaprogramowanego dołączonym wsadem do procesora (uproszczony kod, bez sterowania PWM) - dodany w załączniku


1. Lista zakupów
:arrow: Pierwszy sklep, który odwiedzimy to AVT. Mieszkańcy Warszawy mogą go odwiedzić osobiście, pozostali muszą zamówić elementy w sklepie online (lub poszukać w innym). Kupujemy:
- płytkę uniwersalną PDU27 - 8zł
- mikroprocesor Atmega8 (7zł) wraz z podstawką (polecam precyzyjną - 1,70zł)
- mostek H L293D lub L293DNE (10zł) również z podstawką (polecam precyzyjną) - 1,40zł
- 3 transoptory odbiciowe CNY70 (czujniki linii) - 3x4,50zł
- 1 rezystor 470 Ohm (później nazywany 470R) - 0,25zł za 10 sztuk; 3 rezystory 240 Ohm (240R) - 0,25zł za 10 sztuk; 3 rezystory 10k Ohm (10K) - 0,60zł za 10 sztuk
- 1 dioda LED np. zielona - 0,20zł
- 1 korpus złącza żeńskiego goldpin 5x1 (1,20zł) wraz z blaszkami (0,60zł za 10 sztuk)
- 1 dwurzędowa listwa goldpinów (0,80zł) oraz 1 jednorzędowa, kątowa listwa goldpin (0,81zł)
- 2 metry 5-żyłowego przewodu wstążkowego, wielokolorowego (2x3,20zł za metr bieżący), można też przejść się do sklepu komputerowego i kupić dwa metry tzw. skrętki
- koszyk na 4 baterie AA z pokrywą i włącznikiem (2,81zł)
Podsumowanie:55,52zł + koszty przesyłki
:arrow: Drugi sklep to market budowlany (np. Leroy Merlin). Kupujemy w nim takie oto koło:

a także po dwie śruby o średnicy 3 i 4mm (im dłuższe tym lepsze, polecam tak min. 3cm dla średnicy 3mm i 5,5cm dla średnicy 4mm) i do każdej po 3 nakrętki (w sumie ok. 2zł)
:arrow: Pora na sprawę najbardziej kłopotliwą - napęd. Do tego projektu wybrałem dwa serwa modelarskie - są chyba najłatwiej dostępne, mają odpowiedni moment obrotowy, w komplecie są orczyki ułatwiające montaż kół i wymagają zasilania 5-6V, czyli akurat tyle, ile dawać będzie nasze źródło zasilania. W moim przypadku serwa to Hitec HS-322HD, ale stanowczo je odradzam ze względu na cenę (planuję je później wykorzystać do czegoś innego). W zupełności wystarczą tanie serwa TowerPro 5010 dostępne na Allegro za ok. 28zł sztuka, polecam jednak "polować" na serwa używane - bardzo często można kupić nawet za mniej niż 10zł sztuka. Mała uwaga - można dostać tzw. mikroserwa za 20zł, ale nie polecam ich początkującym, gdyż często powodują problemy przy koniecznych przeróbkach (będziemy nasze serwa musieli później odpowiednio dostosować do nowej roli - bezpośredniego napędu), dlatego kup je tylko jeśli wiesz co robisz.
:arrow: Ostatni "sklep" to tak naprawdę kuchnia/piwnica. Potrzebujemy dwóch nakrętek od słoików o identycznej średnicy. Np. takich:

Można też pokombinować z czym innym - np. kołami od zabawek. Nakrętki nie są najlepszym rozwiązaniem (słaba przyczepność), ale wybrałem je ze względu na dostępność. Przyczepność można spróbować zwiększyć naklejając na całym obwodzie np. gumową samoprzylepną uszczelkę (nie posiadałem aktualnie takiej na stanie, więc sobie odpuściłem).

2. Lista narzędzi
Do wykonania robota będziemy potrzebować:
- piłki do metalu
- wiertarki i wiertła o średnicy 3 i 4 mm
- pistoletu do klejenia na gorąco wraz z wkładami uniwersalnymi
- zamiast piłki do metalu i wiertarki polecam zestaw miniwiertarki wraz z akcesoriami do wiercenia, cięcia i szlifowania (dostępny np. w Leroy Merlin i AVT, koszt: ok. 80zł; jeśli macie kasę, kupcie droższy zestaw firmy Dremell - ok 400zł, ponoć warto. Ja używam pierwszej opcji i nie narzekam)
- lutownicy / stacji lutowniczej (polecam stację Xytronic 369 - koszt ok. 100 zł, naprawdę warto) i spoiwo lutownicze z topnikiem (polecam cienkie, średnica w okolicach 0,38mm - dostępne w ofercie AVT)
- "ściągaczkę" do izolacji (dostępna np. w Leroy Merlin i AVT, koszt ok. 15zł)
- cążków bocznych (można dostać w AVT, koszt ok. 9 zł), ostatecznie mogą być mocne nożyczki
- kombinerek i śrubokręta
- programatora AVR ISP - po szczegóły odsyłam do tego tematu.

3. Zaczynamy
Uff, długość powyższych dwóch list wynika z tego, że wymieniłem wszystkie możliwe, potrzebne elementy. Prawda jest taka, że elektronicy i Ci, którzy mają za sobą konstrukcje typu Waldek Światłolub, mają już część tego wszystkiego na stanie (m.in. dlatego warto jest zaopatrywać się na zapas, zwłaszcza gdy nie mamy łatwego dostępu do potrzebnych rzeczy).
Mamy wszystko przygotowane, więc pora zabrać się do roboty.
Pierwszym krokiem jest przerabianie naszych serw modelarskich. Serwa są przystosowane do sterowania przy pomocy określonych impulsów, ich zakres obrotów ograniczony jest zwykle do 120 stopni - celem przerabiania jest pominięcie elektroniki sterującej, usunięcie potencjometru i mechanicznej blokady tak, by mogło pracować jak zwykły silnik z przekładnią. Poniżej zamieszczam krótki tutorial jak to zrobić, po szczegóły odsyłam do podlinkowanego parę linijek wyżej tematu.

Przecinamy płytkę wzdłuż linii - tak jak pokazałem na rysunku, a następnie na większej części "wtykamy" i lutujemy zaznaczone elementy (pod nazwami "L293D" i "Atmega8" na rysunku należy rozumieć same podstawki! Dodatkowo, lutowanie diody zostawimy na koniec - chcemy przecież, żeby wystawała ponad plątaniną kabli ;) )

Czerwone, "wypukłe" kropki na rysunkach, będą oznaczały miejsca połączenia elementów z płytką (czyli po prostu luty). Zwróćcie uwagę na to, żeby luty były błyszczące i miały odpowiednią ilość spoiwa. Na początku tematu podawałem linka do poradnika dla tych, którzy nie potrafią lutować. Tzw. zimne luty są częstym powodem niedziałania układu - stąd moja uwaga.
Teraz zaczniemy łączyć elementy przy pomocy zworek. Tam, gdzie pola lutownicze przeznaczone do połączenia są w bezpośrednim sąsiedztwie, warto użyć kawałków drutu, np. z uciętych nóżek rezystorów.
Dla przejrzystości podzieliłem ten etap na części, dodatkowo każdemu z nich przydzieliłem inny kolor przewodów.
:arrow: zasilanie


:arrow: złącze programatora (typu KANDA)


:arrow: połączenie atmegi i mostka


:arrow: połączenie mostka i silników


:arrow: połączenie czujników


Odcięty, mniejszy kawałek płytki wykorzystamy do budowy modułu z czujnikami.


Na końcu taśmy 5-żyłowej zakładamy złącze żeńskie goldpin. Wiercimy w płytce dwa otwory o średnicy 4mm, wkładamy w nie dwie śruby i dokręcamy z drugiej strony nakrętką. Moduł czujników gotowy.


Następnym krokiem jest wywiercenie otworów o tej samej średnicy i na tej samej szerokości w module z mikroprocesorem. Przykładamy również koło podporowe, oznaczamy położenie otworów i wiercimy - tym razem wiertłem o średnicy 3mm. Efekt końcowy powinien wyglądać mniej więcej tak:

Przyznam, że popełniłem w tym momencie błąd - źle wymierzyłem położenie otworów pod moduł czujników(nie uwzględniłem większej średnicy nakrętki, która zahaczała przez to o mostek H) i musiałem później dwa otwory na środku rozwiercać tak, by przesunąć moduł trochę do tyłu. Będzie to widać na późniejszych zdjęciach.

Teraz przystępujemy do połączenia naszych przerobionych serw z "kołami". Rozgrzewamy pistolet klejowy, kapiemy odrobinę kleju na środek nakrętek, przykładamy serwo orczykiem, pozycjonujemy (centrujemy) bardzo dokładnie i mocno dociskamy czekając aż klej zacznie stygnąć i wiązać.

Następnie kapiemy trochę kleju z tyłu, na spodzie naszego modułu z mikroprocesorem i dociskamy serwa - dbając, by były równo rozmieszczone.

Gdy klej stygnie, wkładamy dwie śruby (średnica 3mm) w koło podporowe, dokręcamy mocno, nakładamy na to jeszcze luźno po jednej nakrętce, wtykamy w wywiercone wcześniej otwory w module głównym i dokręcamy z góry, żeby koło nie wypadło. Gdy klej zastygnie, kapiemy nową porcję na górę płytki, kładziemy koszyk na baterie (tak, żeby klapka wysuwała się do tyłu, a włącznik był na spodniej jego części) i dociskamy mocno.

W podobny sposób jak przednie koło, zakładamy moduł z czujnikami pod modułem z mikroprocesorem, a następnie podłączamy czujniki do wyprowadzonego na płycie głównej złącza. Zastosowanie śrub pozwala na bardzo dokładną regulację położenia poszczególnych części względem siebie. Kładziemy robota na płaskiej powierzchni i odkręcając oraz dokręcając odpowiednio nakrętki dążymy do tego, żeby płyta z mikroprocesorem była idealnie do niej równoległa; czujniki natomiast powinny znajdować się około 3 mm nad podłożem. Wymaga to trochę cierpliwości i dokładności, ale na pewno się opłaci. Gdy uda nam się ta sztuka, pozostaje dokręcić wszystko do oporu i cieszyć skończonym "ciałem" robota :-D

Zdjęcia są słabej jakości, robot traci na nich sporo swojego "uroku", dlatego jak tylko uzbroję się w lepszy aparat (w przyszłym tygodniu), wymienię je na coś lepszego.

4. Oprogramowanie
To jeszcze nie koniec naszej zabawy. Niektórzy powiedzieli by nawet, że dopiero początek :P Nie po to się przecież tyle męczyliśmy, żeby mieć nowy, ekstrawagancki mebel w naszym pokoju. W takiej postaci robot jest głuchy, niemy i sparaliżowany - mimo podłączonych czujników i silników. Należy teraz napisać do niego program, w którym za rączkę przeprowadzimy go przez wszystkie możliwe zadania i problemy, jakie w przyszłości napotka.
Nauka programowania jest tematem na oddzielny wątek i nie będę tu się na ten temat rozwodził. Jest świetny tutorial na tym forum - Kurs BASCOM - i warto z nim się zapoznać. Gwarantuję, że nie jest to nic trudnego i że można się z tym uporać w dwa dni, a jeśli ktoś programował wcześniej i szło mu przyzwoicie - wystarczy parę godzin. Dodałem przykładowy program w postaci pliku źródłowego (język BASCOM) oraz dwa skompilowane pliki (BIN oraz HEX - do wyboru) - wystarczy więc wgrać to do robota (patrz - lista narzędzi -> link programator AVR ISP oraz instrukcje, które dostaniecie po zakupie własnego programatora) i cieszyć sztuczną "inteligencją" w naszym własnym domu. Polecam rozłożyć na stole/podłodze duże, białe arkusze papieru i czarną taśmą izolacyjną wyznaczyć robotowi trasę do pokonania. Im lepszy program, tym trudniejszą i bardziej skomplikowaną trasę będzie w stanie pokonać. Po dopracowaniu robota (napisanie zaawansowanego programu, być może wymiana serw na szybsze silniki z przekładniami, stabilizowane napięcie, dławik między AREF/AVCC a VCC, kondensatory filtrujące) nic nie stoi na przeszkodzie, by wyruszyć z nim na zawody - szczegóły na pewno pojawią się na dioda.com.pl, gdy tylko taki będzie organizowany.
Życzę wszystkim powodzenia i wciągnięcia się w tematykę robotyki. No a przede wszystkim - dobrej zabawy ;)


PS Wszelkie pytania proszę zadawać w tym temacie, nie na PW czy mail.

//edit
Zapomniał bym ;)

//edit2
Dodałem tutorial o przerabianiu serw modelarskich.
//edit3
Przepraszam za gapiostwo, program w załączniku.
Uprzedzając komentarze - wartości PWM są takie a nie inne (255 lub 0), zostawiłem dobranie regulacji prędkości wg własnego uznania, dzięki temu każdy może w parę chwil zmienić osiągane prędkości obrotowe poszczególnych kół.


przepis.rar
Plik schematu w Eagle
Pobierz Plik ściągnięto 59 raz(y) 20,69 KB

program_testowy.rar
Program przeznaczony do "rozbudowy" - plik źródłowy oraz efekt kompilacji (BIN i HEX do wyboru, gotowe do bezpośredniego zgrania do robota)
Pobierz Plik ściągnięto 475 raz(y) 2,28 KB


Bocznica
Ostatnio zmieniony przez Nawyk 22 Lip 10 02:34, w całości zmieniany 12 razy  
Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 13 piw(a):
shoter09, nikosss, razors, MaRo88PL, jacus077344, maciej2609, MacBi, oktan, jozio, MalaSZ95, grip_rz, lukix, przemub
Kaytec 




Posty: 196
Pomógł: 9 razy
Otrzymał 49 piw(a)
Skąd: Olsztyn
Wysłany: 17 Wrz 09 08:05   

Już miałem zagłosować, ale brakuje niestety programu.


Come with me if you want to live.
Postaw piwo autorowi tego posta
 
 
 
Zuk 



Posty: 180
Pomógł: 16 razy
Otrzymał 37 piw(a)
Skąd: Pyskowice
Programuję w:
C

Wysłany: 18 Wrz 09 09:31   

Witam.

Artykuł ogólnie fajny.
Mam jednak kilka uwag:
Zamiast ATmega8 proponowałbym się przesiąść na ATmega88
jest to nowszy zamiennik, ma więcej funkcji, ale wyprowadzenia ma identyczne.
Co do rejestrów to w sieci jest do ściągnięcia PDF mega8 mega88 różnice
i tam w sposób tabelaryczny są przedstawione różnice w rejestrach.
Ale to jest uwaga dyskusyjna.

Teraz bardziej konkretna dotycząca przerabiania serwo:
narobiłeś się niepotrzebnie - skoro chcesz mieć dostęp bezpośrednio
do silnika to mogłeś wywalić całą elektronikę a te dwa kabelki przylutować
bezpośrednio do silnika lub przedłużyć łączące silnik z elektroniką
w ten sposób pozbywasz się niepotrzebnej już elektroniki (w Twoim przypadku pozostaje pierwsza opcja, bo w Twoim serwie silnik jest bezpośrednio przylutowany do płytki).

Ewentualnie można wykorzystać elektronikę w taki sposób:
zastąpić potencjometr dzielnikiem napięcia
i sterować silnik tak jak serwo sygnałem o zmiennym wypełnieniu
takie rozwiązanie wymaga tylko 1 pinu procesora a nie dwóch jak w przypadku L293
regulacja prędkości polega na podaniu sygnału różnego od 1500us (im różnica większa tym prędkość większa), to rozwiązanie eliminuje układ L293 z pytki.

Ostatnia uwaga:
Jakoś bardzo niewiele napisałeś nt. "złożenia zębatek z powrotem w całość".
To wymaga wykorzystania bolca zastępującego pokrętło potencjometru, mało tego bolec potencjometru mimo, iż jest okrągły na końcu jest frezowany co pozwala mu się kręcić razem z zębatką, która jest na niego nałożona, i z tym też sobie trzeba poradzić np. rozwiercić koniec otworu lub dać krótszy bolec, (ewentualnie łożyskować - POWODZENIA)
Jak już robisz "How To dla opornych" to nie możesz korzystać z takich skrótów myślowych.


Pozdrawiam
Zuk

"Nigdy nie mów ludziom, JAK coś zrobić. Powiedz im, CO zrobić, a oni zaskoczą cię pomysłowością."(G.Patton)
Ostatnio zmieniony przez Zuk 18 Wrz 09 09:46, w całości zmieniany 2 razy  
Postaw piwo autorowi tego posta
 
 
Nawyk 
AiR PW




Posty: 852
Pomógł: 40 razy
Otrzymał 162 piw(a)
Skąd: Warszawa
Programuję w:
C, BASIC

Wysłany: 18 Wrz 09 02:20   

Zuk napisał/a:
Zamiast ATmega8 proponowałbym się przesiąść na ATmega88
jest to nowszy zamiennik, ma więcej funkcji, ale wyprowadzenia ma identyczne.

Jest nowszy i ma więcej funkcji, ale atmege8 dostaniesz w każdym sklepie elektronicznym - a to był priorytet - jak napisałem we wstępie;)

Zuk napisał/a:
Teraz bardziej konkretna dotycząca przerabiania serwo:
narobiłeś się niepotrzebnie - skoro chcesz mieć dostęp bezpośrednio
do silnika to mogłeś wywalić całą elektronikę a te dwa kabelki przylutować
bezpośrednio do silnika lub przedłużyć łączące silnik z elektroniką
w ten sposób pozbywasz się niepotrzebnej już elektroniki (w Twoim przypadku pozostaje pierwsza opcja, bo w Twoim serwie silnik jest bezpośrednio przylutowany do płytki).

Mój sposób pozwala na łatwe przywrócenie serwu dawnej funkcjonalności. Dodatkowo "ucięcie" płytki z elektroniką (a tak zrozumiałem "wywalenie" jej) może narobić problemów - PCB jest elementem, który dodatkowo uniemożliwia obrót silnika względem obudowy (co mogło by się zdarzyć przy np. dużym obciążeniu na wyjściu przekładni).

Zuk napisał/a:
Ewentualnie można wykorzystać elektronikę w taki sposób:
zastąpić potencjometr dzielnikiem napięcia
i sterować silnik tak jak serwo sygnałem o zmiennym wypełnieniu
takie rozwiązanie wymaga tylko 1 pinu procesora a nie dwóch jak w przypadku L293
regulacja prędkości polega na podaniu sygnału różnego od 1500us (im różnica większa tym prędkość większa), to rozwiązanie eliminuje układ L293 z pytki.

Takie były pierwotne założenia, zdaje się nawet, że jako pierwszy zaprezentowałem na forum ten sposób sterowania w gotowym robocie (temat: http://www.dioda.com.pl/forum/topics7/prototyp-robota-edukacyjnego-na-wakacyjne-zajecia-w-gimnazju-vt2157.htm), ale sterowanie wydało mi się zbyt problematyczne (programowo) w porównaniu do sterowania mostkiem - pamiętaj, że artykuł jest dla początkujących.

Zuk napisał/a:
Ostatnia uwaga:
Jakoś bardzo niewiele napisałeś nt. "złożenia zębatek z powrotem w całość".
To wymaga wykorzystania bolca zastępującego pokrętło potencjometru, mało tego bolec potencjometru mimo, iż jest okrągły na końcu jest frezowany co pozwala mu się kręcić razem z zębatką, która jest na niego nałożona, i z tym też sobie trzeba poradzić np. rozwiercić koniec otworu lub dać krótszy bolec, (ewentualnie łożyskować - POWODZENIA)
Jak już robisz "How To dla opornych" to nie możesz korzystać z takich skrótów myślowych.

Dlatego napisałem, żeby nie wykorzystywać do tego celu mikroserw - w ich przypadku było by świętą prawdą to co napisałeś, przy standardowym serwie typu TowerPro5010 czy chociażby moje HS-322HD potencjometr nie jest elementem "nośnym" konstrukcji - zębatka korzysta z wypustki z plastiku; nawet przy dużym obciążeniu wszystko działa stabilnie i nie słychać "zgrzytu" przeskakujących trybów.


Kaytec, dzięki za zwrócenie uwagi - byłem święcie przekonany, że program załączyłem. Zaraz przeszukam bezkresne wszechzasoby mojego zaśmieconego dysku ;) [/b]


Bocznica
Postaw piwo autorowi tego posta
 
 
shoter09 




Posty: 29
Skąd: -_-
Ostrzeżeń:
 2/3/4
Wysłany: 25 Wrz 09 11:34   

pójdzie to na zwykłych silniczkach ? czy muszą być serwa


Robię Waldka Światłoluba
Postaw piwo autorowi tego posta
 
 
Nawyk 
AiR PW




Posty: 852
Pomógł: 40 razy
Otrzymał 162 piw(a)
Skąd: Warszawa
Programuję w:
C, BASIC

Wysłany: 26 Wrz 09 12:30   

Pójdzie, tylko musisz pamiętać o przekładni.


Bocznica
Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
shoter09
shoter09 




Posty: 29
Skąd: -_-
Ostrzeżeń:
 2/3/4
Wysłany: 26 Wrz 09 07:27   

a znasz jakiś dobry sposób na znalezienie środka zakrętki od słoika ?


Robię Waldka Światłoluba
Postaw piwo autorowi tego posta
 
 
lukpep 




Posty: 110
Pomógł: 2 razy
Otrzymał 16 piw(a)
Skąd: Rypin / Toruń
Programuję w:
BASCOM, C

Wysłany: 26 Wrz 09 07:32   

przy predkosciach i silach jakie to bedzie rozwijalo to mysle, ze zwykla linijka dostarczy Ci wystarczajacej precyzji ;-)


http://blog.air.fc.pl - moj worklog
Bylem pomocny? - kliknij Pomógl lub postaw piwo
Postaw piwo autorowi tego posta
 
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
shoter09
madik 




Posty: 412
Pomógł: 12 razy
Otrzymał 57 piw(a)
Skąd: Częstochowa
Programuję w:
BASCOM

Wysłany: 26 Wrz 09 07:32   

Wystarczy dokładna linijka, cyrkiel czy co kolwiek i ołówek. Mierzysz zaznaczasz i sprawdzasz na logikę czy jest dokładnie na środku.
//lukpep mnie wyprzedził :-D


Robocar
Ostatnio zmieniony przez madik 26 Wrz 09 07:33, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
bartmix10
shoter09 




Posty: 29
Skąd: -_-
Ostrzeżeń:
 2/3/4
Wysłany: 26 Wrz 09 09:47   

lukpep napisał/a:
przy predkosciach i silach jakie to bedzie rozwijalo to mysle, ze zwykla linijka dostarczy Ci wystarczajacej precyzji ;-)


to jak to zmierzyć ?

Postaw piwo autorowi tego posta
 
 
madik 




Posty: 412
Pomógł: 12 razy
Otrzymał 57 piw(a)
Skąd: Częstochowa
Programuję w:
BASCOM

Wysłany: 26 Wrz 09 09:57   

Kod:
to jak to zmierzyć ?

Jak zmierzyć środek?\
Nic prostszego. Mierzysz średnice zakrętki. Następnie dzielisz na pół i masz. Dla przykładu.
Jeśli masz średnice 6 cm to jak podzielisz na połowę to będzie 3cm. Na trzecim centymetrze od brzegu będzie środek.


Robocar
Postaw piwo autorowi tego posta
 
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
shoter09
Treker 




Posty: 1361
Pomógł: 30 razy
Otrzymał 94 piw(a)
Skąd: Gdynia
Programuję w:
Bascom

Wysłany: 26 Wrz 09 10:00   

Co z tego, że Ci napiszemy jeszcze dokładniej jak i tak tego nie użyjesz bez kolejnego pytania?
Ale proszę:
1) odrysuj sobie koło na kartce papieru
2) narysuj sobie cięciwę odrysowanego koła
3) narysuj symetralną tej cięciwy
4) zrób punkt 2 i 3 jeszcze raz tylko w innym miejscu koła
5) w miejscu gdzie symetralne się przetną masz środek koła
6) wycinasz koło z papieru przykładasz do prawdziwego koła i zaznaczasz środek.

Jak zapytasz co to cięciwa i symetralna to ban ;-)


Nie pomagam na PW.
W budowie: FTL Feniks2 - worklog
Moje nowe konstrukcje: FTL Feniks
Dawno, dawno temu: Minisumo II, Minisumo I
Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
shoter09
Luko 




Posty: 256
Pomógł: 16 razy
Otrzymał 12 piw(a)
Skąd: Sosnowiec
Programuję w:
Bascom

Wysłany: 27 Wrz 09 12:54   

Hmm ta ostatnia teoria to już dość zaawansowana, poznawana w liceum przy okazji geometrii i użytkowania cyrkla, ewentualnie na uczelniach wyższych takich jak politechnika :) , na przedmiotach geometria wykreślna :) , ale racja najprostsze znane światu rozwiązanie tego problemu, choć przychodzi mi na myśl trochę prostsze. Wycinasz wzdłuż krawędzi elementu kartkę, wychodzi koło, im dokładniej tym lepiej, składasz na pół i później znów na pól i masz środek w środku :D

Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
shoter09
Nawyk 
AiR PW




Posty: 852
Pomógł: 40 razy
Otrzymał 162 piw(a)
Skąd: Warszawa
Programuję w:
C, BASIC

Wysłany: 27 Wrz 09 09:40   

Łopatologiczny filmik:

Nic prostszego a i na matmę Wam się przyda;-)


Bocznica
Postaw piwo autorowi tego posta
 
 
Więcej szczegółów
Wystawiono 1 piw(a):
shoter09
Sabre 
Elektronika i mechanika




Posty: 1031
Pomógł: 59 razy
Otrzymał 234 piw(a)
Skąd: Warszawa
Programuję w:
Bascom AVR


Wysłany: 27 Wrz 09 10:09   

Luko napisał/a:
Hmm ta ostatnia teoria to już dość zaawansowana, poznawana w liceum przy okazji geometrii i użytkowania cyrkla, ewentualnie na uczelniach wyższych takich jak politechnika :) , na przedmiotach geometria wykreślna :)


Dziwne, ja się tego nauczyłem w podstawówce na matematyce, czyżby teraz już tego nie uczyli?


Moje roboty: Psotek, Psotek2, Psotek3, Strider2
Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 1361
Pomógł: 30 razy
Otrzymał 94 piw(a)
Skąd: Gdynia
Programuję w:
Bascom

Wysłany: 27 Wrz 09 11:13   

Dokładnie, ja to miałem chyba w gimnazjum.


Nie pomagam na PW.
W budowie: FTL Feniks2 - worklog
Moje nowe konstrukcje: FTL Feniks
Dawno, dawno temu: Minisumo II, Minisumo I
Postaw piwo autorowi tego posta
 
 
Le_Cheque 



Posty: 250
Pomógł: 1 raz
Otrzymał 13 piw(a)
Skąd: Poznań
Wysłany: 27 Wrz 09 12:13   

Widzę, że shoter09 rozdaje piwa na lewo i prawo. Jeśli jesteś taki chętny to mi też daj, ale najpierw to powinieneś dać swojemu podręcznikowi od matematyki z podstawówki. Załóż sobie zeszycik pt: "Złote myśli" i zapisuj te wszystkie porady, żebyś nie musiał się później pytać nas, cioci Wiki lub wujka Google.


Amerykanie wydali miliony dolarów na długopis, który będzie działał w kosmosie, ...
...a Rosjanie zabrali ze sobą ołówek ;)

Why do people kill people who kill people to show that killing people is wrong?
Postaw piwo autorowi tego posta
 
 
malum 



Posty: 63
Skąd: Bydgoszcz
Wysłany: 10 Lis 09 11:54   

Witam!
Zainteresował mnie ten projekt, ale mam kilka pytań, jak na laika przystało :-)
1. Nie widzę w tym układzie kwarcu, a w innych na tym samym procesorze jest, co daje ten kwarc i dlaczego tu nie jest potrzebny?
2. Chciałbym dołożyć do tego układu jeszcze dwa czujniki CNY70 - czy mogę je przypiąć do pinów 25 i 24 procesora?
3. Chciałbym dołożyć do układu diody pokazujące stan czujników CNY70 (to dość przydatne elementy) - w jaki sposób mogę je dołączyć?
4. Pin 16 układu L293 to zasilenie silników - mylę się? Jeśli się nie mylę, to jak rozumiem mogę dołożyć tu większe napięcie, np. 12V sprzed stabilizatora?

Postaw piwo autorowi tego posta
 
 
Nawyk 
AiR PW




Posty: 852
Pomógł: 40 razy
Otrzymał 162 piw(a)
Skąd: Warszawa
Programuję w:
C, BASIC

Wysłany: 11 Lis 09 01:53   

malum napisał/a:
1. Nie widzę w tym układzie kwarcu, a w innych na tym samym procesorze jest, co daje ten kwarc i dlaczego tu nie jest potrzebny?

W skrócie - częstotliwość sygnału zegarowego odpowiada za ilość operacji wykonanych przez procesor w konkretnej jednostce czasu - im wyższa częstotliwość, tym większa moc obliczeniowa. Przykładowo - Atmega8 taktowana sygnałem o częstotliwości 8Mhz ma w przybliżeniu 8MIPS, czyli na "chłopski" język - jest w stanie wykonać ok. 8 milionów operacji na sekundę.
W AVR'ach można wybrać jedną z kilku metod generowania sygnału zegarowego - można np. skorzystać z układu RC wbudowanego w mikrokontroler (dla Atmegi8 jest to 1, 2, 4 lub 8MHz - po szczegóły odsyłam do dokumentacji technicznej), można zastosować zewnętrzny układ RC lub wspomniany przez Ciebie rezonator kwarcowy (dla Atmegi8 nawet do 16Mhz).
Kwarc pominąłem, ze względu na uproszczenie schematu i odpuszczenie "zabawy" z fusebitami, które mogły by sprawić kłopot początkującym (niewłaściwa, omyłkowa konfiguracja może nawet zablokować uC).
malum napisał/a:
2. Chciałbym dołożyć do tego układu jeszcze dwa czujniki CNY70 - czy mogę je przypiąć do pinów 25 i 24 procesora?

Tak! Możesz podpiąć do 6 czujników (przy zastosowaniu zewnętrznego multipleksera nawet więcej) do przetworników A/C (wszystkie porty oznaczone jako ADC), bo tyle Atmega8 ma takowych kanałów. Podpinasz je w analogiczny sposób jak te CNY70 na moim schemacie.
malum napisał/a:
3. Chciałbym dołożyć do układu diody pokazujące stan czujników CNY70 (to dość przydatne elementy) - w jaki sposób mogę je dołączyć?

Możesz je podpiąć praktycznie do dowolnego, wolnego portu - analogicznie jak diodę sygnalizującą zasilanie na schemacie (przez opornik) - ale nie radzę przesadzać z ilością. Dla większej liczby należało by odwrócić polaryzację diod, podpiąć anody do VCC i zmienić programowo sposób "zapalania" (poprzez zwieranie pinu do masy). Wynika to z ograniczonej "wydajności" prądowej uC - po szczegóły zapraszam do dokumentacji, nie pamiętam już niestety wartości maksymalnego dopuszczalnego prądu pobieranego przez układ. Ogółem 6 diod powinno dać radę pierwszym sposobem;)
malum napisał/a:
4. Pin 16 układu L293 to zasilenie silników - mylę się? Jeśli się nie mylę, to jak rozumiem mogę dołożyć tu większe napięcie, np. 12V sprzed stabilizatora?

Pin 16 odpowiada za zasilanie "logiki" - jeśli chcesz zasilać silniki wyższym napięciem, należy je podłączyć pod pin 8 (ale tak żeby masa - czyt. "-" - była połączona z GND całej elektroniki). Czyli możesz dać zasilanie 12V, przy czym na "+" rozgałęzienie do mostka i do stabilizatora.


Bocznica
Ostatnio zmieniony przez Nawyk 11 Lis 09 01:56, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
malum 



Posty: 63
Skąd: Bydgoszcz
Wysłany: 11 Lis 09 10:52   

nawyk napisał/a:
malum napisał/a:
1. Nie widzę w tym układzie kwarcu, a w innych na tym samym procesorze jest, co daje ten kwarc i dlaczego tu nie jest potrzebny?

W skrócie - częstotliwość sygnału zegarowego odpowiada za ilość operacji wykonanych przez procesor w konkretnej jednostce czasu - im wyższa częstotliwość, tym większa moc obliczeniowa. Przykładowo - Atmega8 taktowana sygnałem o częstotliwości 8Mhz ma w przybliżeniu 8MIPS, czyli na "chłopski" język - jest w stanie wykonać ok. 8 milionów operacji na sekundę.
W AVR'ach można wybrać jedną z kilku metod generowania sygnału zegarowego - można np. skorzystać z układu RC wbudowanego w mikrokontroler (dla Atmegi8 jest to 1, 2, 4 lub 8MHz - po szczegóły odsyłam do dokumentacji technicznej), można zastosować zewnętrzny układ RC lub wspomniany przez Ciebie rezonator kwarcowy (dla Atmegi8 nawet do 16Mhz).
Kwarc pominąłem, ze względu na uproszczenie schematu i odpuszczenie "zabawy" z fusebitami, które mogły by sprawić kłopot początkującym (niewłaściwa, omyłkowa konfiguracja może nawet zablokować uC).


W takim wypadku jeszcze czegoś nie rozumiem, skoro można wykorzystać wewnętrzny zegar 8MHz to teoretycznie nic nie daje dodatkowy kwarc 8MHz - mylę się. Czyli teoretycznie dodatkowy kwarc do 8MHz to niepotrzebna zabawa?

[ Dodano: 11 Lis 09 10:57 ]
nawyk napisał/a:
malum napisał/a:
3. Chciałbym dołożyć do układu diody pokazujące stan czujników CNY70 (to dość przydatne elementy) - w jaki sposób mogę je dołączyć?

Możesz je podpiąć praktycznie do dowolnego, wolnego portu - analogicznie jak diodę sygnalizującą zasilanie na schemacie (przez opornik) - ale nie radzę przesadzać z ilością. Dla większej liczby należało by odwrócić polaryzację diod, podpiąć anody do VCC i zmienić programowo sposób "zapalania" (poprzez zwieranie pinu do masy). Wynika to z ograniczonej "wydajności" prądowej uC - po szczegóły zapraszam do dokumentacji, nie pamiętam już niestety wartości maksymalnego dopuszczalnego prądu pobieranego przez układ. Ogółem 6 diod powinno dać radę pierwszym sposobem;)


Z tego co widzę w przypadku zastosowania 6 czujników, nie będzie tylu wolnych pinów dla diód. Nawet gdybym wyrzucił diodę sygnalizującą zasilanie zaraz za stabilizator, to i tak będę miał jedynie 5 wolnych pinów. Druga sprawa to obciążenie uC ... czy nie da się podłączyć tych diód w inne miejsce, np. pod połączenie uC z CNY70, albo w inne miejsce? Dałoby to chyba lepszy efekt i nie utrudniało ewentualnej rozbudowy robota (pozostaną wolne porty).

Ostatnio zmieniony przez malum 11 Lis 09 10:59, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Nawyk 
AiR PW




Posty: 852
Pomógł: 40 razy
Otrzymał 162 piw(a)
Skąd: Warszawa
Programuję w:
C, BASIC

Wysłany: 11 Lis 09 12:46   

Może zamiast pisać, dam Ci linka:
http://www.easy-soft.net.pl/zasoby/avr-clock.pdf
Powinien trochę rozjaśnić sprawę.

Co do diod - dało by się. Mógł byś je połączyć np. przez komparator i potencjometrem ustawić "granicę" wykrywania stanu logicznego, ale nie ma to trochę sensu, bo po to wykorzystujesz ADC, żeby taką granicę ustawiać programowo w uC. Jeśli już, to można zbudować całego linefollowera na wzmacniaczach operacyjnych (są takie projekty na diodzie) i wtedy nie trzeba atmegi, tylko praktycznie dowolny mikrokontroler z odpowiednią liczbą wyprowadzeń (nie potrzeba ADC), najpopularniejszy jest chyba Attiny2313.
Można by podłączyć diody do pinów MOSI/MISO/SCK, ale ja dał bym przed nimi zworki (dwa goldpiny + zworka albo DIP switche) i zdejmował/przełączał na czas programowania.


Bocznica
Ostatnio zmieniony przez Nawyk 11 Lis 09 12:48, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
malum 



Posty: 63
Skąd: Bydgoszcz
Wysłany: 11 Lis 09 01:18   

nawyk napisał/a:
Może zamiast pisać, dam Ci linka:
http://www.easy-soft.net.pl/zasoby/avr-clock.pdf
Powinien trochę rozjaśnić sprawę.

Co do diod - dało by się. Mógł byś je połączyć np. przez komparator i potencjometrem ustawić "granicę" wykrywania stanu logicznego, ale nie ma to trochę sensu, bo po to wykorzystujesz ADC, żeby taką granicę ustawiać programowo w uC. Jeśli już, to można zbudować całego linefollowera na wzmacniaczach operacyjnych (są takie projekty na diodzie) i wtedy nie trzeba atmegi, tylko praktycznie dowolny mikrokontroler z odpowiednią liczbą wyprowadzeń (nie potrzeba ADC), najpopularniejszy jest chyba Attiny2313.
Można by podłączyć diody do pinów MOSI/MISO/SCK, ale ja dał bym przed nimi zworki (dwa goldpiny + zworka albo DIP switche) i zdejmował/przełączał na czas programowania.


Ale do Attiny2313 nie da się podłączyć 5 CNY70, a używając lm324 nie da się sterować szybkością silników. W przyszłości chciałem rozbudować robota o LCD, stąd właśnie pomysł na niewykorzystywanie pinów procesora, a diody miałyby pracować niezależnie od LCD.
Mógłbyś jakoś rozrysować rozwiązanie z komparatorem? No a ja zabieram się za podesłaną lekturę.

Postaw piwo autorowi tego posta
 
 
Elvis 



Posty: 343
Pomógł: 21 razy
Otrzymał 76 piw(a)
Skąd: wawa/łódź
Programuję w:
C, asm

Wysłany: 11 Lis 09 01:26   

Jeśli chcesz rozbudowywać robota, a nie wiesz jeszcze o co, to użyj większego procesora. Przykładowo Atmega16 w obudowie DIP40. Koszt niewiele wyższy, a będziesz miał zapas pinów.

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 1361
Pomógł: 30 razy
Otrzymał 94 piw(a)
Skąd: Gdynia
Programuję w:
Bascom

Wysłany: 11 Lis 09 01:41   

Diodami możesz też sterować przez ekspander portów np PCF8574, ale na początek może to być dla Ciebie za trudne, tu masz opis jak używać taki układ:
http://hackaday.com/2008/12/27/parts-8bit-io-expander-pcf8574/


Nie pomagam na PW.
W budowie: FTL Feniks2 - worklog
Moje nowe konstrukcje: FTL Feniks
Dawno, dawno temu: Minisumo II, Minisumo I
Postaw piwo autorowi tego posta
 
 
Elvis 



Posty: 343
Pomógł: 21 razy
Otrzymał 76 piw(a)
Skąd: wawa/łódź
Programuję w:
C, asm

Wysłany: 11 Lis 09 01:48   

To już łatwiej i taniej dać zewnętrznego latch-a. Np. 74hc373

Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Tagi tematu: follower, line, pelni, programowalny, przepis, robota


Powered by phpBB modified by Przemo © 2003 phpBB Group
Linki: instalki nero