- Wymagany składnik:
- Montaż robota do czyszczenia podłóg:
- Okablowanie i połączenia:
- Objaśnienie programowania:
Automatyczne środki do czyszczenia podłóg nie są niczym nowym, ale wszystkie mają wspólny problem. Wszystkie są za drogie jak na to, co robią. Dziś stworzymy automatycznego robota do sprzątania domu, który kosztuje tylko niewielki ułamek tych na rynku. Ten robot może wykryć przeszkody i przedmioty przed nim i może kontynuować ruch, omijając przeszkody, aż całe pomieszczenie zostanie oczyszczone. Posiada dołączoną małą szczoteczkę do czyszczenia podłogi.
Sprawdź także nasz inteligentny robot odkurzający z Arduino
Wymagany składnik:
- Arduino UNO R3.
- Czujnik ultradźwiękowy.
- Osłona sterownika silnika Arduino.
- Podwozie robota z napędem na koła.
- Komputer do programowania Arduino.
- Akumulator do silników.
- Bank mocy do zasilania Arduino
- Szczotka do butów.
- Pad do szorowania Scotch Brite.
Uwaga: Zamiast używać baterii, możesz również użyć długiego 4-żyłowego przewodu, tak jak my. Chociaż nie jest to zbyt eleganckie ani praktyczne rozwiązanie, możesz to zrobić, jeśli nie planujesz używać go w prawdziwym świecie każdego dnia. Upewnij się, że długość kabla jest wystarczająca.
Zanim przejdziemy do szczegółów, omówmy najpierw ultradźwięki.
Czujnik ultradźwiękowy HC-SR04:
Czujnik ultradźwiękowy służy do pomiaru odległości z dużą dokładnością i stabilnymi odczytami. Może mierzyć odległość od 2 cm do 400 cm lub od 1 cala do 13 stóp. Emituje w powietrzu falę ultradźwiękową o częstotliwości 40 kHz i jeśli obiekt stanie mu na drodze to odbije się z powrotem do czujnika. Wykorzystując czas potrzebny na uderzenie w obiekt i powrót, możesz obliczyć odległość.
Czujnik ultradźwiękowy wykorzystuje technikę zwaną „ECHO”. „ECHO” to po prostu odbita fala dźwiękowa. Będziesz mieć ECHO, gdy dźwięk odbija się z powrotem po osiągnięciu ślepej uliczki.
Moduł HCSR04 generuje wibracje dźwiękowe w zakresie ultradźwiękowym, gdy ustawimy pin 'Trigger' na wysoki na około 10us, co wyśle 8-cyklową serię dźwiękową z prędkością dźwięku i po uderzeniu w obiekt zostanie odebrany przez pin Echo. W zależności od czasu potrzebnego na powrót wibracji dźwiękowej, zapewnia on odpowiednie wyjście impulsowe. Jeśli obiekt jest daleko, usłyszenie ECHO zajmie więcej czasu, a szerokość impulsu wyjściowego będzie duża. A jeśli przeszkoda jest blisko, wtedy ECHO będzie słyszalne szybciej, a szerokość impulsu wyjściowego będzie mniejsza.
Możemy obliczyć odległość obiektu na podstawie czasu potrzebnego fali ultradźwiękowej na powrót do czujnika. Ponieważ czas i prędkość dźwięku są znane, możemy obliczyć odległość za pomocą następujących wzorów.
Odległość = (czas x prędkość dźwięku w powietrzu (343 m / s)) / 2.
Wartość dzieli się przez dwa, ponieważ fala przemieszcza się do przodu i do tyłu, pokonując tę samą odległość. W ten sposób czas pokonania przeszkody to tylko połowa całkowitego czasu
Więc odległość w centymetrach = 17150 * T.
Wcześniej wykonaliśmy wiele przydatnych projektów wykorzystujących ten czujnik ultradźwiękowy i Arduino, sprawdź je poniżej:
- Pomiar odległości oparty na Arduino przy użyciu czujnika ultradźwiękowego
- Alarm drzwi za pomocą Arduino i czujnika ultradźwiękowego
- Monitorowanie Dumpster na podstawie IOT przy użyciu Arduino
Montaż robota do czyszczenia podłóg:
Zamontuj Arduino na obudowie. Upewnij się, że nie zwierasz niczego, jeśli obudowa jest wykonana z metalu. Warto zaopatrzyć się w pudełko na Arduino i osłonę sterownika silnika. Przymocuj silniki do kół i podwozia za pomocą śrub. Twoje podwozie powinno mieć opcje wykonania tego z fabryki, ale jeśli nie, możesz zaimprowizować inne rozwiązanie. Epoksyd nie jest złym pomysłem. Zamontuj szczotkę do butów z przodu podwozia. W tym celu użyliśmy kombinacji żywicy epoksydowej M-Seal i śrub nawiercanych, ale możesz użyć dowolnego innego rozwiązania, które może być dla Ciebie łatwiejsze. Zamontuj podkładkę szorującą Scotch Brite za szczotką. Użyliśmy wałka przechodzącego przez podwozie, który utrzymuje go w ruchu, chociaż jest to również do improwizacji. Można do niego dołączyć wałek obciążony sprężyną. Zamontuj akumulatory (lub kable z tyłu obudowy).Żywica epoksydowa lub uchwyt baterii to dobre sposoby na zrobienie tego. Gorący klej też nie jest zły.
Okablowanie i połączenia:
Obwód tego automatycznego robota do sprzątania domu jest bardzo prosty. Podłącz czujnik ultradźwiękowy do Arduino, jak wspomniano poniżej, i umieść osłonę sterownika silnika na Arduino, jak każdą inną osłonę.
Pin Trig ultradźwięków jest podłączony do 12 pin w Arduino, pin Echo jest podłączony do 13 pin, pin napięcia do pin 5 V, a pin uziemienia do pin uziemienia. Pin Echo i pin Trig umożliwiają komunikację Arduino z czujnikiem. Zasilanie jest dostarczane do czujnika przez piny napięcia i masy, a piny Trig i Echo umożliwiają wysyłanie i odbieranie danych za pomocą Arduino. Dowiedz się więcej o łączeniu czujnika ultradźwiękowego z Arduino tutaj.
Osłona silnika powinna mieć co najmniej 2 wyjścia i powinny być podłączone do 2 silników. Zwykle wyjścia te są oznaczone „M1” i „M2” lub „Silnik 1” i „Silnik 2”. Podłącz baterie i power bank odpowiednio do osłony silnika i Arduino. Nie łącz ich krzyżowo. Twoja osłona silnika powinna mieć kanał wejściowy. Jeśli używasz przewodów, podłącz je do zasilaczy AC.
Objaśnienie programowania:
Otwórz Arduino IDE. Wklej cały kod Arduino podany na końcu tego samouczka do IDE. Podłącz Arduino do komputera. Wybierz port w Narzędzia / Port. Kliknij przycisk przesyłania.
Przetestuj robota. Jeśli obraca się za mało lub za dużo, eksperymentuj z opóźnieniami, aż będą idealne.
Zanim przejdziemy do kodu, musimy zainstalować bibliotekę Adafruit Motor Shield, aby napędzać silniki prądu stałego. Ponieważ używamy osłony sterownika silnika L293D, musimy pobrać stąd bibliotekę AFmotor. Następnie dodaj go do folderu biblioteki Arduino IDE. Upewnij się, że zmieniasz jego nazwę na AFMotor . Dowiedz się więcej o instalowaniu tej biblioteki.
Kod jest łatwy i można go łatwo zrozumieć, ale tutaj wyjaśniliśmy kilka jego części:
Poniższy kod konfiguruje robota. Najpierw włączyliśmy bibliotekę Adafruit do sterowania silnikami z tarczą sterownika silnika. Następnie zdefiniowaliśmy pin Trig i pin Echo. Ustawia również silniki. Ustawia pin Trig na wyjście, a pin Echo na wejście.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor motor2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Poniższy kod nakazuje Arduino zapętlić następujące polecenia. Następnie wykorzystuje czujnik do przesyłania i odbierania dźwięków ultradźwiękowych. Oblicza odległość, jaką znajduje się od obiektu, gdy fale ultradźwiękowe odbijają się z powrotem, po zauważeniu, że obiekt znajduje się w ustawionej odległości, nakazuje Arduino odpowiednio obrócić silniki.
void loop () {długi czas trwania, odległość; digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); odległość = (czas trwania / 2) / 29,1; if (odległość <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (DO TYŁU); motor2.run (DO TYŁU); opóźnienie (2000); // ZMIEŃ TO W ZALEŻNOŚCI OD OBRACANIA ROBOTA.
To sprawia, że robot obraca się, obracając jeden silnik i utrzymując drugi w bezruchu.
Poniższy kod powoduje, że robot obraca oba silniki w tym samym kierunku, aby poruszał się do przodu, aż wykryje obiekt w powyższej granicy.
else {motor1.setSpeed (160); // ZMIEŃ TO W ZALEŻNOŚCI OD JAK SZYBKO POWINIEN ROBOT JECHAĆ. motor2.setSpeed (160); // ZMIEŃ TO NA TĄ SAMĄ WARTOŚĆ, KTÓREJ PODAWASZ. motor1.run (DALEJ); motor2.run (DALEJ); }