Artykuł pokazuje stworzenie robota, który porusza się wzdłuż linii i może przechodzić przez labirynt, po przestudiowaniu labiryntu może przejść przez niego w najkrótszy sposób. Autor przez długi czas tworzył ten projekt, szczęście wyprzedziło go po raz trzeci.
Demonstracja maszyny:
Materiały i narzędzia:
- Arduino RBBB
- Mikrosilniki 2 szt
- Wsporniki do silników 2 szt
- Koła 2 szt
- koło kulowe
- Analogowy czujnik odbicia
- Nakrętki ze śrubami 2 szt.
- kierowca silnika
- Uchwyt baterii 4 szt. AAA
- Baterie (akumulatory) AAA 4 szt
- Case
- Nakrętki, śruby, podkładki
- przewody łączące
- lutowane
- szczypce
- lutownica
- śrubokręt
Pierwszy krok Teoria
Autor potrzebował robot, który sam znajdzie wyjście z labiryntu, po czym będzie mógł zoptymalizować podróż powrotną. Podczas tworzenia maszyny do labiryntów kierowali się metodą lewej ręki. Aby było to jaśniejsze, powinieneś sobie wyobrazić, że byłeś w labiryncie i zawsze trzymaj lewą rękę na ścianie. Po przejściu określonej ścieżki pomoże ci to wyjść z labiryntu, jeśli nie jest zamknięty. Robot może pracować tylko z otwartymi labiryntami.
Zasady metody lewej ręki są dość proste:
- Jeśli możesz skręcić w lewo, skręć w lewo.
- Jeśli można poruszać się prosto, poruszaj się prosto.
- Jeśli możesz skręcić w prawo, skręć w prawo.
- Jeśli jesteś w ślepym zaułku, obróć o 180 stopni.
Ponadto robot musi podejmować decyzje na skrzyżowaniu, ale jeśli nie wyłączy się na zakręcie, pójdzie prosto. Aby zbudować lepszą trasę powrotu, każda decyzja jest zapisywana w pamięci.
L = skręt w lewo
R = skręt w prawo
S = pominąć zakręt
B = obrót o 180 stopni
Ta metoda jest pokazana poniżej w działaniu na przykładzie prostego labiryntu. Robot pokonał odległość poleceniami LBLLBSR.
Ścieżka wyszła dość daleko; należy ją przekształcić w optymalny SRR. Aby to zrobić, określa się, gdzie robot skręcił w niewłaściwy sposób. Wszędzie tam, gdzie używane jest polecenie „B”, ścieżka będzie niepoprawna, ponieważ robot znajdował się w impasie, więc „B” należy zastąpić czymś innym. Pierwszym niewłaściwym ruchem był LBL, robot odwrócił się i odwrócił, podczas gdy wystarczyło bezpośrednio podążać LBL = S. W ten sposób zbudowano idealną ścieżkę LBL = S, LBS = R. Na podstawie takich zamian robot tworzy idealną krótką ścieżkę dla siebie.
Krok drugi Podwozie robota.
Podstawą podwozia robota stał się akryl o grubości 0,8 mm; cięcie zostało przeprowadzone laserem zgodnie z rysunkiem. W archiwum pod tym artykułem będzie plik rysunku z programu AutoCAD. Nie było konieczne użycie takiego materiału, ale autor wziął to, co było dostępne.
W dolnej części znajdują się otwory do montażu silników, płyt, kół i czujników. W górnej części znajduje się duży otwór na przewody.
Krok trzeci Montaż kół.
Autor przymocował oba silniki śrubami. Ponadto po prostu zakładają koła na oś, wyrównując wałek z otworem w kole.
Czwarty krok. Arduino
W tym momencie autor najpierw zastosował się do instrukcji montażu Arduino RBBB. Ponadto odciął część planszy, aby zmniejszyć jej rozmiar. Złącze zasilania i stabilizator zostały odcięte nożyczkami do metalu. Następnie 9-pinowe złącze zostało przylutowane do lewej strony płytki dla styków od 5 V do A0 w celu podłączenia do niej czujnika. 4-stykowe złącze zostało przylutowane do prawej strony płytki dla styków od D5 do D8, a sterownik silnika zostanie do niej podłączony. Aby zapewnić zasilanie, 2-pinowe złącze zostało przylutowane do 5 V i GND.
Krok piąty Sterownik silnika.
Sam autor opracował na tym etapie płytkę drukowaną, obwód w formacie Eagle znajduje się w archiwum pod artykułem. Pierwszy silnik został podłączony do pinów M1-A i M1-B, drugi do M2 i M2-B. Pierwsze wejście pierwszego silnika In 1A zostało podłączone do 7-go styku Arduino. W 1B został podłączony do pinu 6 Arduino. Do pierwszego wejścia drugiego silnika, In 2A jest podłączony do 5. styku Arduino. Pin In 2B łączy się ze stykiem 8 Arduino. Zasilanie i uziemienie są podłączone do zasilania i uziemienia Arduino.
Krok szósty Czujniki
Ten element jest sprzedawany w postaci płytki czujników, początkowo jest ich osiem, a dwa skrajne zostały usunięte przez autora. Do płytki wlutowano 9-pinowe złącze, do którego zostanie podłączony przewód prowadzący do Arduino. Czujnik wykrywa białą i czarną część labiryntu na podstawie odbicia od powierzchni.
Siódmy krok. Część górna
Podwozie z górną częścią robota połączone śrubami i zębatkami. Akumulator zapinano u góry na rzep. Druty od niego ułożono przez przygotowaną dziurę. Podczas dołączania autor postanowił nie używać śrub, ale zostawić akumulator na rzep, aby łatwiej było wymienić baterie. Za pomocą przełącznika na obudowie akumulatora przeprowadzono kontrolę wydajności.
Krok ósmy. Instalacja czujników.
Czujniki przykręcono do dolnej części maszyny. Pin GND jest podłączony do GND Arduino. Następnie pin Vcc jest podłączony do Arduino 5 V. Przetworniki ADC Arduino 5-0 połączyły piny czujników analogowych 6-1.
Krok dziewiąty. Jedzenie.
Arduino właśnie przylutował przewody z akumulatora. Włączanie i wyłączanie robota będzie przełącznikiem na akumulatorze, dlatego postanowiono użyć lutowania. To kończy montaż robota.
Krok dziesiąty Część oprogramowania.
Program ma kilka funkcji odpowiedzialnych za algorytm działania. Funkcja „lewej ręki” odbiera odczyty z czujników i steruje robotem zgodnie z tymi zasadami. Funkcja obrotu jest włączona, zanim robot zauważy czarną linię, ponieważ zauważy, że leci prosto. Zintegrowana jest również funkcja optymalizacji ścieżki. Program można pobrać pod artykułem w archiwum.
Wideo robota: