Lego EV3. ruch czarnej linii

Oto jak osoba widzi linię:

Tak widzi to robot:


Wykorzystamy tę funkcję przy projektowaniu i programowaniu robota do kategorii zawodów „Trajektoria”.

Jest wiele sposobów na nauczenie robota widzenia linii i poruszania się po niej. Istnieją programy złożone i bardzo proste.

Chcę opowiedzieć o sposobie programowania, który opanują nawet dzieci w klasach 2-3. W tym wieku dużo łatwiej jest im montować konstrukcje według instrukcji, a programowanie robota jest dla nich trudnym zadaniem. Ale ta metoda pozwoli dziecku zaprogramować robota na dowolnej trasie toru w 15-30 minut (z uwzględnieniem etapowej weryfikacji i korekty niektórych cech trajektorii).

Metoda ta została przetestowana na miejskich i regionalnych zawodach w robotyce w regionie Surgut i Chanty-Mansyjskim Okręgu Autonomicznym-Yugra i przyniosła naszej szkole pierwsze miejsca. Tam byłem przekonany, że ten temat jest bardzo istotny dla wielu zespołów.

Cóż, zacznijmy.

Przygotowując się do tego typu zawodów, programowanie to tylko część rozwiązania problemu. Musisz zacząć od zaprojektowania robota do konkretnego toru. W następnym artykule pokażę, jak to zrobić. Cóż, ponieważ ruch wzdłuż linii jest bardzo powszechny, zacznę od programowania.

Rozważ wersję robota z dwoma czujnikami światła, ponieważ jest bardziej zrozumiała dla uczniów szkół podstawowych.

Czujniki światła są podłączone do portów 2 i 3. Silniki do portów B i C.
Czujniki są umieszczane na krawędziach linii (spróbuj poeksperymentować z umieszczaniem czujników w różnych odległościach od siebie i na różnych wysokościach).
Ważny punkt. Aby zapewnić jak najlepsze działanie takiego obwodu, pożądane jest dobranie pary czujników zgodnie z parametrami. W przeciwnym razie konieczne będzie wprowadzenie bloku do korekty wartości czujników.
Montaż czujników na podwoziu według schematu klasycznego (trójkąt), w przybliżeniu jak na rysunku.

Program będzie się składał z niewielkiej liczby bloków:


1. Dwa bloki czujnika światła;
2. Cztery bloki „Matematyki”;
3. Dwa bloki silników.

Robotem sterują dwa silniki. Moc każdego to 100 jednostek. Dla naszego schematu przyjmiemy średnią wartość mocy silnika równą 50. Oznacza to, że średnia prędkość podczas poruszania się po linii prostej będzie równa 50 jednostek. Przy odchodzeniu od ruchu prostoliniowego moc silników będzie proporcjonalnie zwiększać się lub zmniejszać w zależności od kąta odchylenia.

Teraz zastanówmy się, jak połączyć wszystkie bloki, skonfigurować program i co się w nim stanie.
Odsłońmy dwa czujniki światła i przypiszmy im porty 2 i 3.
Bierzemy blok matematyki i wybieramy „Odejmowanie”.
Podłączmy czujniki światła z wyjść „Intensywność” z oponami do bloku matematycznego do wejść „A” i „B”.
Jeżeli czujniki robota zostaną zamontowane symetrycznie od środka linii toru, to wartości obu czujników będą równe. Po odjęciu otrzymujemy wartość - 0.
Następny blok matematyki zostanie użyty jako współczynnik i musisz ustawić w nim „Pomnóż”.
Aby obliczyć współczynnik, musisz zmierzyć poziom „bieli” i „czarny” za pomocą jednostki NXT.
Załóżmy: biały -70, czarny -50.
Następnie obliczamy: 70-50=20 (różnica między bielą a czernią), 50/20=2,5 (ustawiamy średnią wartość mocy podczas poruszania się po linii prostej w blokach matematyki na 50. Ta wartość plus dodatkowa moc przy regulacji ruchu powinna wynosić sto)
Spróbuj ustawić wartość na 2,5 na wejściu "A", a następnie wybierz ją dokładniej.
Połącz wyjście „Result” poprzedniego bloku matematycznego „Odejmowanie” z wejściem „B” bloku matematycznego „Mnożenie”.
Następnie pojawia się para - blok matematyki (dodawanie) i silnik B.
Konfiguracja bloku matematycznego:
Wejście „A” jest ustawione na 50 (połowa mocy silnika).
Wyjście bloku „Result” jest połączone magistralą z wejściem „Power” silnika B.
Za parą podąża blok matematyczny (odejmowanie) i silnik C.
Konfiguracja bloku matematycznego:
Wejście „A” jest ustawione na 50.
Wejście „B” jest połączone magistralą z wyjściem „Wynik” bloku matematycznego „Mnożenie”.
Wyjście bloku „Result” jest połączone magistralą z wejściem „Power” silnika C.

W wyniku tych wszystkich działań otrzymasz następujący program:

Ponieważ wszystko to będzie działać w cyklu, dodajemy „Cykl”, wybieramy i przenosimy to wszystko do „Cykl”.

Spróbujmy teraz dowiedzieć się, jak program będzie działał i jak go skonfigurować.


Podczas gdy robot porusza się po linii prostej wartości czujników są takie same, co oznacza, że ​​wyjście bloku „Odejmowanie” będzie miało wartość 0. Wyjście bloku „Mnożenie” również podaje wartość 0. Ta wartość jest podawana równolegle do pary sterowania silnikiem. Ponieważ wartość 50 jest ustawiona w tych blokach, dodawanie lub odejmowanie 0 nie wpływa na moc silników. Oba silniki pracują z tą samą mocą 50, a robot toczy się po linii prostej.

Załóżmy, że tor skręca lub robot zbacza z linii prostej. Co się stanie?

Rysunek pokazuje, że oświetlenie czujnika podłączonego do portu 2 (zwanych dalej czujnikami 2 i 3) wzrasta, ponieważ przesuwa się do białego pola, a oświetlenie czujnika 3 maleje. Załóżmy, że wartości tych czujników wynoszą: czujnik 2 - 55 jednostek, a czujnik 3 - 45 jednostek.
Blok „Odejmowanie” określi różnicę między wartościami dwóch czujników (10) i wprowadzi ją do bloku korekcyjnego (mnożenie przez współczynnik (10 * 2,5 = 25)) a następnie do bloków kontrolnych
Motoryzacja.
W bloku matematycznym (Dodawanie) sterowania silnikiem B do średniej wartości prędkości 50
25 zostanie dodanych, a do silnika B zostanie przyłożona wartość mocy 75.
W bloku matematycznym (Odejmowanie) sterującego silnikiem C, 25 zostanie odjętych od średniej wartości prędkości 50, a wartość mocy 25 zostanie przyłożona do silnika C.
W ten sposób odchylenie od linii prostej zostanie skorygowane.

Jeśli tor skręca ostro w bok i czujnik 2 świeci na biało, a czujnik 3 na czarno. Wartości oświetlenia tych czujników wynoszą: czujnik 2 - 70 jednostek, a czujnik 3 - 50 jednostek.
Blok „Odejmowanie” określi różnicę między wartościami dwóch czujników (20) i przekaże ją do bloku korekcji (20*2,5=50), a następnie do bloków sterowania silnikiem.
Teraz w bloku matematyki (dodawanie) sterującym silnikiem B, wartość mocy 50 +50 =100 zostanie przyłożona do silnika B.
W bloku matematycznym (Odejmowanie) sterowania silnikiem C, do silnika C zostanie zastosowana wartość mocy 50–50 = 0.
A robot wykona ostry zakręt.

Na białych i czarnych polach robot musi poruszać się w linii prostej. Jeśli tak się nie stanie, spróbuj dopasować czujniki o tych samych wartościach.

Teraz stwórzmy nowy blok i użyjmy go do przesuwania robota po dowolnej trasie.
Wybierz cykl, a następnie w menu „Edycja” wybierz polecenie „Utwórz mój blok”.

W oknie dialogowym "Block Builder" nadaj nazwę naszemu blokowi, na przykład "Idź", wybierz ikonę dla bloku i kliknij "GOTOWE".

Teraz mamy klocek, który można wykorzystać w przypadkach, gdy musimy poruszać się po linii.

Aby robot poruszał się płynnie wzdłuż czarnej linii, musisz zmusić go do samodzielnego obliczania prędkości ruchu.

Człowiek widzi czarną linię i jej wyraźną granicę. Trochę inaczej działa czujnik światła.

To właśnie tę właściwość czujnika światła – niemożność wyraźnego rozróżnienia granicy bieli i czerni – wykorzystamy do obliczenia prędkości ruchu.

Najpierw wprowadźmy pojęcie „Idealny punkt trajektorii”.

Odczyty czujnika światła wahają się od 20 do 80, najczęściej na białym, odczyty to około 65, na czarnym około 40.

Idealny punkt to punkt warunkowy w przybliżeniu pośrodku białych i czarnych kolorów, po którym robot będzie poruszał się wzdłuż czarnej linii.

Tutaj położenie kropki jest fundamentalne - między bielą a czernią. Nie będzie można go ustawić dokładnie na białym lub czarnym z powodów matematycznych, dlaczego - później się wyjaśni.

Empirycznie obliczyliśmy, że idealny punkt można obliczyć za pomocą następującego wzoru:

Robot musi poruszać się ściśle wzdłuż idealnego punktu. Jeśli wystąpi odchylenie w dowolnym kierunku, robot musi wrócić do tego punktu.

skomponujmy matematyczny opis problemu.

Wstępne dane.

Idealny punkt.

Aktualne odczyty czujnika światła.

Wynik.

Moc silnika B.

Moc obrotowa silnika C.

Rozwiązanie.

Rozważmy dwie sytuacje. Po pierwsze: robot zboczył z czarnej linii w kierunku białej.

W takim przypadku robot musi zwiększyć moc obrotową silnika B i zmniejszyć moc silnika C.

W sytuacji, gdy robot wjeżdża na czarną linię, jest odwrotnie.

Im bardziej robot odbiega od idealnego punktu, tym szybciej musi do niego wrócić.

Ale stworzenie takiego regulatora jest dość trudnym zadaniem i nie zawsze jest wymagane w całości.

Dlatego postanowiliśmy ograniczyć się do regulatora P, który odpowiednio reaguje na odchylenia od czarnej linii.

W języku matematyki byłoby to zapisane jako:

gdzie Hb i Hc to odpowiednio sumaryczne moce silników B i C,

Hbase - pewna podstawowa moc silników, która określa prędkość robota. Dobierany jest eksperymentalnie, w zależności od konstrukcji robota i ostrości zwojów.

Itech - aktualne odczyty czujnika światła.

Id - obliczony punkt idealny.

k jest współczynnikiem proporcjonalności, wybranym eksperymentalnie.

W trzeciej części przyjrzymy się, jak zaprogramować to w środowisku NXT-G.

Algorytmy sterowania dla mobilnego robota LEGO. Śledzenie linii za pomocą dwóch czujników światła

Nauczyciel edukacji dodatkowej

Kazakova Lubow Aleksandrowna


Ruch linii

  • Dwa czujniki światła
  • Sterownik proporcjonalny (sterownik P)

Algorytm poruszania się po czarnej linii bez sterownika proporcjonalnego

  • Oba silniki obracają się z tą samą mocą
  • Jeśli prawy czujnik światła trafi na czarną linię, moc lewego silnika (np. B) spada lub zatrzymuje się
  • Jeśli lewy czujnik światła trafi w czarną linię, to moc drugiego z silników (np. C) spada (powraca do linii), spada lub zatrzymuje się
  • Jeśli oba czujniki są na białym lub czarnym, oznacza to ruch prostoliniowy

Ruch jest zorganizowany poprzez zmianę mocy jednego z silników


Przykład programu do poruszania się po czarnej linii bez kontrolera P

Ruch jest zorganizowany poprzez zmianę kąta obrotu


  • Sterownik proporcjonalny (sterownik P) pozwala dostosować zachowanie robota, w zależności od tego, jak bardzo jego zachowanie różni się od pożądanego.
  • Im bardziej robot odbiega od celu, tym więcej siły potrzeba, aby do niego powrócić.

  • Kontroler P służy do utrzymywania robota w określonym stanie:
  • Utrzymaj pozycję manipulatora Przesuń się wzdłuż linii (czujnik światła) Przesuń się wzdłuż ściany (czujnik odległości)
  • Utrzymywanie pozycji manipulatora
  • Ruch liniowy (czujnik światła)
  • Poruszanie się po ścianie (czujnik odległości)

Śledzenie linii za pomocą jednego czujnika

  • Celem jest poruszanie się wzdłuż granicy „biało-czarnej”
  • Osoba potrafi odróżnić granicę bieli i czerni. Robot nie może.
  • Cel robota jest w kolorze szarym

Przejścia

Przy zastosowaniu dwóch czujników światła możliwe jest zorganizowanie ruchu na trudniejszych trasach



Algorytm jazdy po autostradzie ze skrzyżowaniami

  • Oba czujniki na białym - robot jedzie w linii prostej (oba silniki obracają się z tą samą mocą)
  • Jeśli prawy czujnik światła trafi w czarną linię, a lewy w białą, to skręci w prawo
  • Jeśli lewy czujnik światła trafi w czarną linię, a prawy w białą, to skręci w lewo
  • Jeśli oba czujniki są czarne, następuje ruch prostoliniowy. Możesz policzyć skrzyżowania lub wykonać jakąś akcję


Zasada działania regulatora P

Pozycja czujników

O=O1-O2


Algorytm poruszania się po czarnej linii z regulatorem proporcjonalnym

SW \u003d K * (C-T)

  • C - wartości docelowe (pobierz odczyty z czujnika światła na białym i czarnym, oblicz średnią)
  • T - aktualna wartość - otrzymana z czujnika
  • K to współczynnik wrażliwości. Im więcej, tym wyższa czułość.



Aby wyświetlić prezentację ze zdjęciami, projektem i slajdami, pobierz jego plik i otwórz go w programie PowerPoint w Twoim komputerze.
Treść tekstowa slajdów prezentacji:
„Algorytm poruszania się po czarnej linii z jednym czujnikiem koloru” Koło na temat „Robotyki” Nauczyciel przed Yezidov Ahmed Elievich W MBU DO „Shelkovskaya CTT” Aby zbadać algorytm poruszania się po czarnej linii, robot Lego Mindstorms EV3 z jednym czujnikiem koloru zostanie użyty Czujnik koloru Czujnik koloru rozróżnia 7 kolorów i może wykryć brak koloru. Podobnie jak w NXT może pracować jako czujnik światła Pole zawodów robotów Line S Proponowany tor w kształcie litery „S” pozwoli przeprowadzić kolejny ciekawy test stworzonych robotów pod kątem szybkości i reakcji. Rozważ najprostszy algorytm poruszania się po czarnej linii na pojedynczym czujniku koloru na EV3. Algorytm ten jest najwolniejszy, ale najbardziej stabilny. Robot nie będzie poruszał się ściśle wzdłuż czarnej linii, ale wzdłuż jej granicy, skręcając w lewo i w prawo oraz stopniowo posuwając się do przodu Algorytm jest bardzo prosty: jeśli czujnik widzi czerń, to robot skręca w jedną stronę, jeśli widzi biel – w drugą. Śledzenie linii w trybie światła odbitego za pomocą dwóch czujników Czasami czujnik koloru może nie być w stanie dobrze rozróżnić czerni od bieli. Rozwiązaniem tego problemu jest używanie czujnika nie w trybie wykrywania koloru, ale w trybie wykrywania jasności światła odbitego. W tym trybie, znając wartości czujnika na ciemnej i jasnej powierzchni, możemy samodzielnie powiedzieć, co będzie uważane za białe, a co za czarne. Teraz określmy wartości jasności na białej i czarnej powierzchni. W tym celu w menu klocka EV3 Brick znajdujemy zakładkę „Brick Applications” Teraz znajdujesz się w oknie widoku portu i możesz w danym momencie zobaczyć odczyty wszystkich czujników. nasze czujniki powinny świecić na czerwono, co oznacza, że ​​są w trybie wykrywania światła odbitego. Jeśli świecą na niebiesko, w oknie widoku portu na żądanym porcie naciśnij środkowy przycisk i wybierz tryb COL-REFLECT.Teraz ustawimy robota tak, aby oba czujniki znajdowały się nad białą powierzchnią. Patrzymy na liczby w portach 1 i 4. W naszym przypadku wartości wynoszą odpowiednio 66 i 71. Będą to białe wartości czujników. Teraz ustawmy robota tak, aby czujniki znajdowały się nad czarną powierzchnią. Ponownie spójrzmy na wartości portów 1 i 4. Mamy odpowiednio 5 i 6. Takie są znaczenia czerni. Następnie zmodyfikujemy poprzedni program. Mianowicie zmieniamy ustawienia przełączników. O ile mają zainstalowany czujnik koloru -> pomiar -> kolor. Musimy ustawić Color Sensor -> Compare -> Reflected Light Intensity Teraz musimy ustawić "typ porównania" i "wartość progową". Wartość progowa to wartość jakiegoś "szarego", wartości poniżej których uznamy za czerń, a więcej - biel. Do pierwszego przybliżenia wygodnie jest użyć średniej wartości między bielą a czernią każdego czujnika. Zatem wartość progowa pierwszego czujnika (port #1) wyniesie (66+5)/2=35,5. Zaokrąglij do 35. Wartość progowa drugiego czujnika (port #4): (71+6)/2 = 38,5. Zaokrąglijmy do 38. Teraz ustawiamy te wartości odpowiednio w każdym przełączniku. To wszystko, klocki z ruchami pozostają na swoich miejscach bez zmian, bo jeśli wstawimy znak " w "typ porównania"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Tekst pracy jest umieszczony bez obrazów i wzorów.
Pełna wersja pracy dostępna jest w zakładce „Pliki pracy” w formacie PDF

Lego Mindstorms EV3

Etap przygotowawczy

Tworzenie i kalibracja programu

Wniosek

Literatura

1. Wstęp.

Robotyka to jeden z najważniejszych obszarów postępu naukowo-technicznego, w którym problemy mechaniki i nowych technologii stykają się z problematyką sztucznej inteligencji.

W ostatnich latach postęp w robotyce i zautomatyzowanych systemach zmienił osobiste i biznesowe obszary naszego życia. Roboty są szeroko stosowane w transporcie, eksploracji ziemi i kosmosu, chirurgii, przemyśle wojskowym, badaniach laboratoryjnych, bezpieczeństwie, masowej produkcji towarów przemysłowych i konsumpcyjnych. Wiele urządzeń podejmujących decyzje na podstawie danych otrzymywanych z czujników można również uznać za roboty – jak np. windy, bez których nasze życie jest już nie do pomyślenia.

Konstruktor Mindstorms EV3 zaprasza nas do wejścia w fascynujący świat robotów, zanurzenia się w złożonym środowisku technologii informatycznych.

Cel: Nauczenie się programowania robota do poruszania się w linii prostej.

    Zapoznaj się z konstruktorem Mindstorms EV3 i jego środowiskiem programistycznym.

    Napisz programy na ruch robota w linii prostej na 30 cm, 1 m 30 cm i 2 m 17 cm.

    Konstruktor Mindstorms EV3.

Designerskie części - 601 sztuk, serwomotor - 3 sztuki, czujnik koloru, czujnik ruchu, czujnik podczerwieni i czujnik dotyku. Blok mikroprocesora EV3 jest mózgiem LEGO Mindstorms.

Za ruch robota odpowiada duży serwomotor, który łączy się z klockiem EV3 i sprawia, że ​​robot porusza się: jedzie do przodu i do tyłu, zawraca i jeździ po danej trajektorii. Ten serwomotor posiada wbudowany czujnik obrotu, który pozwala bardzo dokładnie kontrolować ruch robota i jego prędkość.

Możesz sprawić, by robot wykonał akcję za pomocą oprogramowania EV3. Program składa się z różnych bloków sterujących. Będziemy pracować z blokiem ruchu.

Blok ruchu steruje silnikami robota, włącza go, wyłącza, sprawia, że ​​pracuje zgodnie z zadaniami. Możesz zaprogramować ruch na określoną liczbę obrotów lub stopni.

    Etap przygotowawczy.

    Stworzenie dziedziny technicznej.

Zaznaczymy pole pracy robota, taśmą elektryczną i linijką utworzymy trzy linie o długości 30 cm - linia zielona, ​​1 m 15 cm - czerwona i 2 m 17 cm - czarna.

    Niezbędne obliczenia:

Średnica koła robota - 5 cm 7 mm = 5,7 cm.

Jeden obrót koła robota jest równy obwodowi koła o średnicy 5,7 cm Obwód ten określa wzór

Gdzie r jest promieniem koła, d jest średnicą, π = 3,14

l = 5,7 * 3,14 = 17,898 = 17,9.

Tych. Na jeden obrót koła robot przemieszcza się o 17,9 cm.

Oblicz liczbę obrotów wymaganych do przejścia:

N=30: 17,9=1,68.

    1m 30cm = 130cm

N=130: 17,9=7,26.

    2 m 17 cm = 217 cm.

N = 217: 17,9 = 12,12.

    Tworzenie i kalibracja programu.

Stworzymy program według następującego algorytmu:

Algorytm:

    Wybierz blok ruchu w oprogramowaniu Mindstorms EV3.

    Włączyć oba silniki w zadanym kierunku.

    Poczekaj, aż odczyt czujnika obrotów jednego z silników zmieni się na określoną wartość.

    Wyłącz silniki.

Gotowy program jest ładowany do jednostki sterującej robota. Kładziemy robota na polu i wciskamy przycisk start. EV3 przejeżdża przez pole i zatrzymuje się na końcu danej linii. Ale aby osiągnąć dokładne wykończenie, musisz skalibrować, ponieważ czynniki zewnętrzne wpływają na ruch.

    Pole jest montowane na ławkach studenckich, dzięki czemu możliwe jest lekkie ugięcie powierzchni.

    Powierzchnia pola jest gładka, więc nie wyklucza się słabej przyczepności kół robota do pola.

    W obliczeniach liczby obrotów musieliśmy zaokrąglać liczby, a zatem zmieniając setne części obrotów, osiągnęliśmy wymagany wynik.

5. Wniosek.

Możliwość zaprogramowania robota do poruszania się w linii prostej przyda się przy tworzeniu bardziej złożonych programów. Z reguły wszystkie wymiary ruchu są wskazane w zakresie zadań dla zawodów robotycznych. Są one niezbędne, aby program nie był przeładowany warunkami logicznymi, pętlami i innymi złożonymi blokami sterującymi.

Na kolejnym etapie zaznajomienia się z robotem Lego Mindstorms EV3 dowiesz się, jak programować skręty pod określonym kątem, ruch po okręgu, spirale.

Współpraca z projektantem jest bardzo interesująca. Dowiadując się więcej o jego możliwościach, możesz rozwiązać wszelkie problemy techniczne. A w przyszłości być może stwórz własne ciekawe modele robota Lego Mindstorms EV3.

Literatura.

    Koposov DG „Pierwszy krok w kierunku robotyki dla klas 5-6”. - M.: Binom. Laboratorium Wiedzy, 2012 - 286 s.

    Filippov S.A. „Robotyka dla dzieci i rodziców” – „Nauka” 2010

    Zasoby internetowe

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. klocki Lego. pl/edukacja/

Ładowanie...Ładowanie...