mactro Napisano Kwiecień 11, 2011 Udostępnij Napisano Kwiecień 11, 2011 Część 1 Budowa robota W poprzednim artykule o modułowej budowie robotów przedstawiłem zalety tego typu podejścia w robotyce. Czas przyjrzeć się praktycznej realizacji przedstawionych wcześniej założeń na przykładzie robota RP5. Robot został zbudowany na podwoziu gąsienicowym. Sterownikiem jest DFRduino328 (w pełni kompatybilne z Arduino Duemillanove), oraz MotorShield oparty na układzie L293. Później wykorzystamy jeszcze I/O Shield pozwalający na wygodniejsze podłączanie czujników do Arduino. Montaż zestawu jest bardzo prosty i nie zajmuje dużo czasu. Nie wymaga również lutowania. Gotowy robot wygląda tak: W tej chwili nie ma jeszcze czujników, ale tym zajmiemy się później. Teraz trzeba przetestować jak jeździ. W tym celu napiszemy prosty program dla sterownika Arduino: //określamy, które piny sterują silnikami //piny sterujące prędkością silników int EN1 = 6; int EN2 = 5; //piny sterujące kierunkiem jazdy int IN1 = 7; int IN2 = 4; int R = 0; //jazda do przodu int F = 1; //jazda do tyłu Linijki poprzedzone przez „//” są komentarzami, czyli nie są wykonywane przez program. Powyższy fragment stanowi deklarację zmiennych, których będziemy używać w dalszej części programu. Oznacza on, że np. kiedy napiszemy gdziekolwiek EN1, program podstawi w to miejsce liczbę 6. //funkcje sterujące silnikami – pwm określa prędkość, reverse kierunek void Motor1(int pwm, boolean reverse) { analogWrite(EN1,pwm); //ustawia wypełnienie PWM: 0 - silnik zatrzymany, 255 - pełna prędkość if(reverse) { digitalWrite(IN1,HIGH); } else { digitalWrite(IN1,LOW); } } //dla drugiego silnika identycznie, tylko IN1 i EN1 zamienione są na IN2 i EN2 void setup() { int i; for(i=4;i<=7;i++) { //Dla Arduino Motor Shield pinMode(i, OUTPUT); //ustaw piny 4,5,6,7 jako wyjścia } } void loop() { //jedź do przodu przez sekundę Motor1(255,F); Motor2(255,F); delay(1000); //skręcaj przez sekundę Motor1(255,R); Motor2(255,F); delay(1000); } Robot ożył! 🙂 Na razie nie robi nic imponującego, jeździ tylko po pokoju i to tylko do momentu, kiedy natrafi na ścianę. Nie ma jeszcze możliwości wykrywania przeszkód, ale zmiana tego stanu rzeczy będzie naszym następnym celem. Zamocujemy do robota czujnik zbliżeniowy. Dzięki niemu, kiedy robot zbliży się na określoną odległość do przeszkody, będzie mógł odpowiednio zareagować, np. zatrzymać się, czy skręcić i pojechać w inną stronę. Zasięg czujnika reguluje się wbudowanym w niego potencjometrem: Aby skorzystać z możliwości jakie daje nam ten czujnik musimy nieco zmodyfikować nasz program. W funkcji setup() należy dodać linijkę, która określi do którego pinu sterownika jest podłączony czujnik: pinMode(SEN1,INPUT); //pin pod który podłączono czujnik jako wejście Większe zmiany pojawią się w funkcji loop(): void loop() { boolean in_range; in_range = !digitalRead(SEN1); //aktywnym stanem czujnika IR jest 0 //(znak „!” oznacza negację) if(in_range) {//jeśli wykryto przeszkodę Motor1(255,R);//jedź do tyłu Motor2(255,R); delay(1000); //przez sekundę Motor1(255,R); //skręcaj Motor2(255,F); delay(1000);//przez sekundę } else {//jeśli nie widać przeszkody Motor1(255,F); //jedź prosto Motor2(255,F); } } Teraz, na wejściu Arduino podłączonym do czujnika pojawi się stan niski, oznaczający wykrycie przeszkody, robot cofnie się i skręci. Jeśli droga będzie wolna, robot będzie jechał na wprost. W ten sposób w około 2 godziny, bez używania lutownicy stworzyliśmy w pełni działającego robota. Co więcej jego możliwości nie kończą się wcale na unikaniu zderzenia ze ścianą! Wręcz, przeciwnie, do tej pory wykorzystaliśmy zaledwie ułamek możliwości sterownika, który jest w zestawie. Teraz można dodać kolejne czujniki, serwa, czy cokolwiek zapragniesz wykorzystać. Wszystkie części wykorzystane do budowy robota można kupić w sklepie internetowym Trobot W kolejnej części artykułu skupię się bardziej na samym programie pisanym pod Arduino. Część 1 Cytuj Link do komentarza Share on other sites More sharing options...
marciu11 Lipiec 29, 2011 Udostępnij Lipiec 29, 2011 Czy są jakieś szanse na dalsze części kursu? Jak na razie "polizałeś" jedynie temat i zareklamowałeś fajny produkt. Przydało by się dalej pójść tą drogą i rozwinąć kurs. Pozwolił by to przedstawić możliwości projektu, a co za tym idzie rozreklamować konstrukcję i pokazać jej plusy. Nie ukrywam iż sama pogłębił bym wiedzę na temat programowania arduino i być może zaczął wykorzystywać w praktyce. Cytuj Link do komentarza Share on other sites More sharing options...
mactro Sierpień 2, 2011 Autor tematu Udostępnij Sierpień 2, 2011 Nie mogę obiecać jakiejś konkretnej daty, ale na pewno jeszcze wyprodukuję jakieś materiały dot. Arduino. Być może nie będzie to kurs, a opis wykorzystania konkretnych czujników / modułów... Cytuj Link do komentarza Share on other sites More sharing options...
marciu11 Sierpień 2, 2011 Udostępnij Sierpień 2, 2011 No i to jest bardzo dobra wiadomość 🙂 Od zawsze wiadomo że najlepiej uczy się czegoś na konkretnych przykładach 🙂 Czekam z niecierpliwością i coraz bardziej się uśmiecham na na słowo Arduino 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
mat1321 Sierpień 2, 2011 Udostępnij Sierpień 2, 2011 Niedawno skończyłem małego robota właśnie na arduino i mogę powiedzieć że ten kurs jest w ogóle nie zrozumiały dla kogoś kto zaczyna zabawę z programowaniem i nie każdego stać aby wszystko budować z gotowych modułów. Kupiłem arduino a resztę wykonałem sam. W www.trobot.pl shield do sterowania silników kosztuje 55zł a ja to samo robię w 10 min za 10 zł i gdzie tu ekonomia? I jeszcze jedno ten kurs jest dla osób które nie mają pojęcia o niczym i mają góre kasy ale przy budowie robota według tego kursu niczego sięnie nauczą. Cytuj Link do komentarza Share on other sites More sharing options...
mactro Sierpień 2, 2011 Autor tematu Udostępnij Sierpień 2, 2011 mat1321, jeśli jesteś w stanie wykonać sterownik silników w 10 minut, to gratuluję 🙂 Chodzi o to, że gotowe moduły są przeznaczone przede wszystkim dla osób, które takiej sztuki nie potrafią, a mimo to chciałyby zrobić swojego robota. Dla nich samodzielne stworzenie płytki może być problemem. Co do zarzutu, że osoby zaczynające z Arduino niczego nie nauczą się z tego kursu - cóż, nie jest to materiał, który jest już zamkniętą całością. Właściwie dwie części, które dotąd powstały miały jedynie zaprezentować temat i przedstawić główne zalety wykorzystania Arduino w robotyce, a nie dogłębnie wyjaśniać poszczególne zagadnienia (to miało pojawić się później). Cytuj Link do komentarza Share on other sites More sharing options...
marciu11 Sierpień 3, 2011 Udostępnij Sierpień 3, 2011 mat1321 No wiesz... Jeden umie rzeźbić, dla drugiego napisanie systemu operacyjnego na kompa nie jest trudne. A jeszcze ktoś inny tylko korzysta z systemu i podziwie sztukę - choć sam nie umie stworzyć ani jednego ani drugiego. Jeden lubi babkę, drugi wnuczkę. Każdemu wedle potrzeb i gustu. Ja osobiście nie miałem problemu z ogarnięciem podanego kodu, ba wręcz wydaje mi się on banalnie prosty. Dlatego zainteresowałem się całością. A odnośnie sprzętu, cen, zakupu i tworzenia samemu dodatków, no cóż to też kwestia indywidualna... Jeden zrobi sam, drugi kupi w sklepie to co potrzebuje, a trzeci jeszcze połączy 2-3 moduły i stworzy swój na własne potrzeby lub wymyśli coś innego. Po raz enty - rzecz indywidualna... Cytuj Link do komentarza Share on other sites More sharing options...
szalek Październik 30, 2011 Udostępnij Październik 30, 2011 Witam. Czy właśnie tego użyłeś do montażu tego robota? 1)http://trobot.pl/index.php/sklep-roboty-zestawy?page=shop.product_details&flypage=flypage_new.tpl&product_id=54&category_id=13 2 http://trobot.pl/index.php?page=shop.product_details&flypage=flypage_new.tpl&product_id=42&category_id=19&vmcchk=1&option=com_virtuemart&Itemid=136 3 http://www.trobot.pl/index.php/sklep-roboty-czujniki?page=shop.product_details&flypage=flypage_new.tpl&product_id=21&category_id=16 Cytuj Link do komentarza Share on other sites More sharing options...
BlackJack Październik 30, 2011 Udostępnij Październik 30, 2011 W woli ścisłości jest jeszcze: PICDUINO czyli to samo ale na procesorach PIC, AVT1625; Cortexino na procesorze ARM LPC1114, AVT1620. Tylko że zestawy te nie są programowane w tym środowisku. Co do ARDUINO to w EP jest kompletny kurs programowania tego. Cytuj Link do komentarza Share on other sites More sharing options...
szalek Październik 30, 2011 Udostępnij Październik 30, 2011 Dziękuje za wskazanie alternatywy. Ale czy ktoś by mógł potwierdzić czy ta lista jest kompletna i prawidłowa. Nie chciał bym kupić złych elementów. A nie jestem pewny czy dobrze wskazałem to http://trobot.pl/index.php?page=shop.product_details&flypage=flypage_new.tpl&product_id=42&category_id=19&vmcchk=1&option=com_virtuemart&Itemid=136. Dodatkowo mam pytanie o możliwości rozbudowy tego robota. Co można było by mu jeszcze podłączyć i oprogramować jeśli podstawą są te 3 elementy opisane w tym kursie. 1) Sterownikiem jest DFRduino328 (w pełni kompatybilne z Arduino Duemillanove),2) MotorShield oparty na układzie L293. 3) I/O Shield --> ??? ->> http://trobot.pl/index.php?page=shop.product_details&flypage=flypage_new.tpl&product_id=42&category_id=19&vmcchk=1&option=com_virtuemart&Itemid=136. I ostatnie może najgłupsze pytanie 🙂 Czy DFRduino328 (w pełni kompatybilne z Arduino Duemillanove) jest programowany w środowisku Arduino. I dla czego nie sprzedawany jest Arduino Duemillanove w tym zestawie? Cytuj Link do komentarza Share on other sites More sharing options...
Bobby Październik 30, 2011 Udostępnij Październik 30, 2011 DFRduino można programować w Arduino IDE, co do tego, dlaczego nie oryginalne Arduino - DFRduino jest tańsze 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
szalek Październik 30, 2011 Udostępnij Październik 30, 2011 Dziękuje. A co z listą elementów jest kompletna ? Cytuj Link do komentarza Share on other sites More sharing options...
mactro Październik 31, 2011 Autor tematu Udostępnij Październik 31, 2011 Do listy elementów, którą podałeś można dodać jeszcze odbiornik podczerwieni, który pozwoli Ci sterować robotem z pilota od tv. Nie jest oczywiście niezbędny, bo do działającego robota potrzebujesz jedynie zestawu RP5+Arduino+motor shield. I/O shield pozwala na wygodne łączenie czujników. BlackJack gwoli ścisłości, to produktów z -duino w nazwie jest ogrom - przynajmniej część jest opisana na stronie arduino.cc Cytuj Link do komentarza Share on other sites More sharing options...
szalek Październik 31, 2011 Udostępnij Październik 31, 2011 Dziękuje za odpowiedz. Nie byłem pewny czy I/O Shield to Moduł I/O. Co do "odbiornik podczerwieni" , masz racje warto go kupić 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
szalek Listopad 6, 2011 Udostępnij Listopad 6, 2011 Witam. Czy macie jakieś pomysły na rozbudowę tego robota ? Ja myślałem o dodaniu do niego czujnika ruchu zamontowanego na serwie by robot mógł podążać za ruchomym celem. 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!