Jak zrobić robota do czyszczenia podłóg za pomocą czujnika ultradźwiękowego?

Automatyczny robot do czyszczenia podłóg nie jest nową koncepcją. Ale te roboty mają poważny problem. Są bardzo drogie. A co by było, gdybyśmy mogli stworzyć niedrogiego robota do czyszczenia podłóg, który jest tak samo wydajny jak robot dostępny na rynku. Ten robot będzie korzystał z czujnika ultradźwiękowego i będzie unikał przeszkód na swojej drodze. W ten sposób oczyści cały pokój.



(To zdjęcie pochodzi z Circuit Digest)

Jak wykorzystać czujnik ultradźwiękowy do wykonania automatycznego robota do czyszczenia podłóg?

Jak już znamy streszczenie naszego projektu. Zbierzmy więcej informacji, aby rozpocząć pracę.



Krok 1: Zbieranie komponentów

Najlepszym podejściem do rozpoczęcia każdego projektu jest sporządzenie listy kompletnych komponentów na początku i przeprowadzenie krótkiej analizy każdego z nich. Pomaga nam to uniknąć niedogodności w trakcie realizacji projektu. Pełna lista wszystkich komponentów użytych w tym projekcie znajduje się poniżej.



  • Podwozie koła samochodu
  • Bateria
  • Pokaż pędzel

Krok 2: Badanie komponentów

Teraz, gdy mamy już pełną listę wszystkich komponentów, przejdźmy o krok do przodu i krótko przestudiujmy działanie każdego komponentu.



Arduino nano to płytka mikrokontrolera służąca do sterowania lub wykonywania różnych zadań w obwodzie. Spalamy Kod C. na Arduino Nano, aby poinformować płytkę mikrokontrolera, jak i jakie operacje wykonać. Arduino Nano ma dokładnie taką samą funkcjonalność jak Arduino Uno, ale w dość niewielkich rozmiarach. Mikrokontroler na płycie Arduino Nano to ATmega328p.

Arduino Nano

L298N to wysokoprądowy i wysokonapięciowy układ scalony. Jest to podwójny pełny mostek zaprojektowany do akceptowania standardowej logiki TTL. Posiada dwa wejścia umożliwiające niezależne działanie urządzenia. Jednocześnie można podłączyć i obsługiwać dwa silniki. Prędkość silników jest zmieniana za pomocą pinów PWM.



Sterownik silnika L298N

Płytka HC-SR04 to czujnik ultradźwiękowy służący do określania odległości między dwoma obiektami. Składa się z nadajnika i odbiornika. Nadajnik przekształca sygnał elektryczny w sygnał ultradźwiękowy, a odbiornik przetwarza sygnał ultradźwiękowy z powrotem na sygnał elektryczny. Kiedy nadajnik wysyła falę ultradźwiękową, odbija się ona po zderzeniu z określonym obiektem. Odległość jest obliczana na podstawie czasu potrzebnego na przejście sygnału ultradźwiękowego z nadajnika i powrotu do odbiornika.

Czujnik ultradźwiękowy

Krok 3: Montaż komponentów

Skoro już wiemy, jak działają wszystkie komponenty, zmontujmy wszystkie komponenty i zacznijmy tworzyć robota.

Weź podwozie samochodu i zamontuj szczotkę pokazową przed podwoziami. Zamontuj Scotch Brite pod robotem. Upewnij się, że znajduje się tuż za szczotką do butów. Teraz przymocuj małą płytkę stykową na górze podwozi, a za nią przymocuj sterownik silnika. Wykonaj prawidłowe połączenia silników ze sterownikiem silnika i ostrożnie podłącz piny sterownika silnika do Arduino. Zamontuj akumulator za podwoziem. Akumulator zasila sterownik silnika, który zasila silniki. Arduino przejmie również zasilanie ze sterownika silnika. Pin Vcc i masa czujnika ultradźwiękowego zostaną podłączone do 5V i masy Arduino.

Schemat obwodu

Krok 4: Pierwsze kroki z Arduino

Jeśli nie jesteś zaznajomiony z Arduino IDE, nie martw się, ponieważ poniżej wyjaśniono procedurę krok po kroku konfiguracji i używania Arduino IDE z płytą mikrokontrolera.

  1. Pobierz najnowszą wersję Arduino IDE ze strony Arduino.
  2. Podłącz płytkę Arduino Nano do laptopa i otwórz panel sterowania. w panelu sterowania kliknij Sprzęt i dźwięk . Teraz kliknij Urządzenia i drukarki. Tutaj znajdź port, do którego jest podłączona płyta mikrokontrolera. W moim przypadku tak COM14 ale jest inaczej na różnych komputerach.

    Znajdowanie portu

  3. Kliknij menu Narzędzia i ustaw tablicę na Arduino Nano.

    Tablica nastawcza

  4. W tym samym menu narzędzi ustaw port na numer portu, który zaobserwowałeś wcześniej w Urządzenia i drukarki .

    Ustawianie portu

  5. W tym samym menu Narzędzia ustaw procesor na ATmega328P (stary program ładujący).

    Edytor

  6. Pobierz załączony poniżej kod i wklej go do swojego Arduino IDE. Kliknij na Przekazać plik przycisk, aby wypalić kod na płycie mikrokontrolera.

    Przekazać plik

Kliknij tutaj aby pobrać kod.

Krok 5: Zrozumienie Kodeksu

Kod jest dość dobrze skomentowany i nie wymaga objaśnień. Ale nadal jest to krótko wyjaśnione poniżej.

1. Na początku inicjalizowane są wszystkie piny Arduino, których będziemy używać.

int enable1pin = 8; // Piny dla pierwszego silnika int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Kołki dla drugiego silnika int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Kołki do czujnika ultradźwiękowego const int echoPin = 10; const int buzzPin = 6; długi czas trwania; // Zmienne dla odległości pływającej czujnika ultradźwiękowego;

2. void setup () to funkcja, w której ustawiamy wszystkie piny, które mają być używane jako INPUT lub OUTPUT. W tej funkcji ustawia się również szybkość transmisji. Szybkość transmisji to szybkość, z jaką płytka mikrokontrolera komunikuje się z podłączonymi czujnikami.

void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (buzzPin, OUTPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, WYJŚCIE); pinMode (motor1pin2, WYJŚCIE); pinMode (motor2pin1, WYJŚCIE); pinMode (motor2pin2, WYJŚCIE); }

3. void loop () to funkcja działająca w sposób ciągły w pętli. W tej pętli poinformowaliśmy mikrokontroler, kiedy ma ruszyć do przodu, jeśli w odległości 50 cm nie zostanie znaleziona żadna przeszkoda. Po napotkaniu przeszkody robot skręci ostro w prawo.

void loop () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); dystans = 0,034 * (czas trwania / 2); if (odległość> 50) // Przesuń do przodu, jeśli nie znaleziono przeszkody {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } else if (odległość<50) // Sharp Right Turn if an obstacle found { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); // delay }

Teraz, gdy omówiliśmy wszystko, czego potrzebujesz, aby stworzyć automatyczny robot do czyszczenia podłóg, ciesz się tworzeniem własnego taniego i wydajnego robota do czyszczenia podłóg.