Skocz do zawartości

Kurs budowy robotów - #7 - line follower, czyli bolid F1


Pomocna odpowiedź

html_mig_img
Podczas siódmej części kursu budowy robotów zajmiemy się line followerami. Zawody, które są organizowane dla tych konstrukcji można nazwać wyścigami F1 Świata robotów!Tym razem roboty będą mogły jeździć całkowicie autonomicznie po specjalnym torze wyklejonym ze zwykłej, czarnej taśmy izolacyjnej!

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link to post
Share on other sites

Witam mam pytanie odnośnie expandera portów na mostku H ponieważ trochę zmodernizowałem troszkę swojego robocika a nie potrafię się skomunikować z tymi pinami mogę prosić o pomoc wiem ze expander prawdopodobnie znajduje się na adresie 0x20 ale nie wiem jak nim sterować.

Link to post
Share on other sites

Treker mam nadzieję, że choroba odpuściła 😉 jak nie to życzę szybkiego powrotu do zdrowia.

Dałem dziś wycisk robotowi. Trasa z paneli, nierówna. Słabe oświetlenie, ale dał radę. Kod - wariant 3 - jedynie dostosowałem 'GRANICA' do panujących warunków. Przy prędkościach prawy/rewyMotor ponad (50) wyskakuje na takiej powierzchni z trasy. Myślę, że na równym podłożu i lepszym oświetleniu da radę więcej.

Link to post
Share on other sites

Arturek1988, ekspander portów również zostanie omówiony przy okazji kursu (możliwe, że w tym celu ukarze się jeszcze jedna, dodatkowa część). Jeśli dobrze w tej chwili pamiętam, to jest to ekspander MCP23008, który faktycznie odnaleźć można na adresie 0x20. Jego obsługa powinna przebiegać w sposób standardowy, ciężko mi powiedzieć, co może być u Ciebie nie tak - szczególnie, że nie rozumiem tego fragmentu z mostkiem H. Najłatwiej będzie chyba jak poczekasz do publikacji odpowiedniej części kursu budowy robotów i porównasz wtedy programy 😉

Treker mam nadzieję, że choroba odpuściła

Nie tyle odpuściła, co chyba nie dałem się jej złapać do końca 😉

Super filmik, faktycznie robot działa dobrze (jak na takie nierówności) no i super radzi sobie ze skrzyżowaniem!

Link to post
Share on other sites

Zainspirowany Elektroprzewodnikiem (https://www.youtube.com/user/ElektroPrzewodnik) zmodyfikowałem trochę mojego potwora, a mianowicie dodałem możliwość sterowania smartfonem. Choć "dodanie" to może niewłaściwe słowo, gdyż musiałem najpierw odjąć Arduino i Shielda i dodać ESP8266 oraz sterownik silników DRV8835 (nie wiem jeszcze jak do Arduino dodać WiFi a Bluetootha nie mam w swoich zasobach).

Jak widać na filmiku takie połączenie działa, lecz wymaga jeszcze kalibracji bo czasami potwór jest trochę zrywny (muszę wypróbować jeszcze inny smartfon lub tablet gdyż to może być wina akcelerometru).

Może Autor kursu zrobiłby dodatkowy odcinek o tym jak do shielda dołączyć WiFi lub Bluetooth i sterować nim zdalnie (ze smartfona)? To tylko taka mała sugestia, gdyż może to kogoś zainteresować (mnie akurat interesuje).

Link to post
Share on other sites

Raf11, oczywiście, że mam taki plan! Gdy kurs dobiegnie końca zajmiemy się rozbudowywaniem robota o nowe możliwości. Na pewno przyjdzie wtedy moment, w którym zajmiemy się komunikacją bezprzewodową z telefonami 🙂

Link to post
Share on other sites
Raf11, oczywiście, że mam taki plan! Gdy kurs dobiegnie końca zajmiemy się rozbudowywaniem robota o nowe możliwości. Na pewno przyjdzie wtedy moment, w którym zajmiemy się komunikacją bezprzewodową z telefonami 🙂

To się cieszę i czekam z niecierpliwością 🙂

Link to post
Share on other sites

Elektrotechnik, witam na forum 🙂

Aktualnie Botland zmienia siedzibę (zgodnie z informacją na ich stronie), więc jak tylko zakończy się przeprowadzka, to sukcesywnie będą uzupełniane braki w zestawach. Mam nadzieję, że w najbliższym tygodniu będą już dostępne 🙂

Link to post
Share on other sites

Arturek1988, super tor 🙂 Widzę, że dołożyłeś wyświetlacz - również mamy takie plany na przyszłość, więc inni będą mogli pójść w Twoje ślady.

Link to post
Share on other sites

Dla zainteresowanych wrzucam jeszcze kod w tej konfiguracji gdy zakręt jest zbyt ostry i robot zgubi linie skręci ostro w ostatnim znanym kierunku co sprawia że wraca na zagubioną linie nawet przy wiekszej predkosci

akt_R, akt_L są typu int zadeklarowane przed pętlą/globalnie by pamiętać ostatni kierunek

{
   if (leftSensor() == 1 && rightSensor() == 1) 
   { //Jesli oba czujniki widza linie
   akt_R=40;
   akt_L=40;
   } 
   else if ((leftSensor() == 0)  && (rightSensor() == 1))
   { //Jesli lewy czujnik nie widzi linii
     akt_L=50; //Jazda po łuku w prawo
     akt_R=10;    
   } 
   else if ((rightSensor() == 0)  && (leftSensor() == 1))
   { //Jesli prawy czujnik nie widzi linii
   akt_L=10; //Jazda po łuku w lewo
   akt_R=50;
   }
   else// jestem poza trasą
   {
     if (akt_L>akt_R) //jezeli ostatnio w lewo
     {
       akt_L=50; //ostro w lewo
       akt_R=-40; 
     }
     else if (akt_R>akt_L) //jezeli ostatnio w prawo
     {
       akt_L=-40; //ostro w prawo
       akt_R=50;  
     }
     else //start szukam lini  
     {
       akt_L=30; 
       akt_R=30;
     }
   }
   leftMotor(akt_L); 
   rightMotor(akt_R);
} 

__________

Komentarz dodany przez: Treker

Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum.

[ Dodano: 27-02-2017, 23:53 ]

Już poprawione

Link to post
Share on other sites

Kisun, pewnie, że można 🙂 Najlepiej do złącz czujników podłączyć czujniki linii, a krańcówki (do wykrywania przeszkód) można połączyć z innymi wolnymi pinami na płytce. W ostatniej części kursu pokazałem jak podłączyć je do ekspandera 🙂

Link to post
Share on other sites

Jak na razie jestem na etapie line flowera, wszystko przetestowałem zgodnie z kursem i działa jak powinno. Robocik jeździ prawidłowo. Chciałbym dodać omijanie przeszkód z lekcji 9 o serwie, bo to rozwiązanie wydaje się bardziej eleganckie 🙂. Nie wiem jednak w jaki sensowny sposób połączyć oba programy. Bo trzymanie się linii a zjeżdżanie z niej by ominąć przeszkodę wydaje się sprzeczne. Trzeba w jakiś sposób zwiesić wykonywanie jazdy po linii, ominąć przeszkodę i ponownie włączyć poszukiwanie linii. Jakaś podpowiedź?

A tak na marginesie, bardzo przystępnie napisane są te kursy, wszystko ma sens, kawał dobrej roboty. Niestety dla nowicjusza wiele zagadnień, jak na razie, jest czarną magią 🙂

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.