Spisu treści:

Jak zrobić DIY robota unikającego przeszkód Arduino w domu: 4 kroki?
Jak zrobić DIY robota unikającego przeszkód Arduino w domu: 4 kroki?

Wideo: Jak zrobić DIY robota unikającego przeszkód Arduino w domu: 4 kroki?

Wideo: Jak zrobić DIY robota unikającego przeszkód Arduino w domu: 4 kroki?
Wideo: Testy jednostkowe z Platform IO dla projektu z Arduino 2024, Lipiec
Anonim
Image
Image

Cześć chłopaki, w tym Instructable zrobisz przeszkodę unikającą robota. Ta instrukcja obejmuje zbudowanie robota z czujnikiem ultradźwiękowym, który może wykrywać pobliskie obiekty i zmieniać ich kierunek, aby ich unikać. Czujnik ultradźwiękowy zostanie przymocowany do serwomotoru, który stale skanuje w lewo i prawo w poszukiwaniu obiektów na swojej drodze.

Więc bez zbędnych ceregieli, zaczynajmy!

Krok 1: Czego potrzebujesz w tym projekcie:

Czego potrzebujesz w tym projekcie
Czego potrzebujesz w tym projekcie
Czego potrzebujesz w tym projekcie
Czego potrzebujesz w tym projekcie

Oto lista części:

1) Arduino Uno

2) Osłona sterownika silnika

3) Motoreduktor, rama i zestaw kół

4) Serwosilnik

5) Czujnik ultradźwiękowy

6) Akumulator litowo-jonowy (2x)

7) Uchwyt baterii

8) Przewód połączeniowy męski i żeński

9) lutownica

10) Ładowarka

Krok 2: Schemat obwodu

Schemat obwodu
Schemat obwodu

Pracujący:

Przed przystąpieniem do pracy nad projektem ważne jest, aby zrozumieć, jak działa czujnik ultradźwiękowy. Podstawowa zasada działania czujnika ultradźwiękowego jest następująca:

Używając zewnętrznego sygnału wyzwalającego, pin Trig na czujniku ultradźwiękowym jest ustawiany na stan logiczny wysoki przez co najmniej 10 µs. Wysyłany jest sygnał dźwiękowy z modułu nadajnika. Składa się z 8 impulsów 40KHz.

Sygnały powracają po uderzeniu w powierzchnię, a odbiornik wykrywa ten sygnał. Pin Echo jest wysoki od momentu wysłania sygnału i odebrania go. Czas ten można przeliczyć na odległość za pomocą odpowiednich obliczeń.

Celem tego projektu jest zaimplementowanie robota omijającego przeszkodę z wykorzystaniem czujnika ultradźwiękowego i Arduino. Wszystkie połączenia są wykonane zgodnie ze schematem połączeń. Działanie projektu wyjaśniono poniżej.

Gdy robot jest włączony, oba silniki robota będą działać normalnie, a robot porusza się do przodu. W tym czasie czujnik ultradźwiękowy stale oblicza odległość między robotem a powierzchnią odbijającą światło.

Informacje te są przetwarzane przez Arduino. Jeśli odległość między robotem a przeszkodą jest mniejsza niż 15 cm, robot zatrzymuje się i skanuje w lewo i w prawo w poszukiwaniu nowej odległości za pomocą serwomotoru i czujnika ultradźwiękowego. Jeśli odległość do lewej strony jest większa niż do prawej strony, robot przygotuje się do skrętu w lewo. Ale najpierw cofa się trochę, a następnie aktywuje silnik lewego koła w odwrotnym kierunku.

Podobnie, jeśli prawa odległość jest większa niż lewa odległość, Robot przygotowuje prawy obrót. Ten proces trwa w nieskończoność, a robot porusza się, nie uderzając w żadną przeszkodę.

Krok 3: Programowanie Arduino UNO

#włączać

#włączać

#włączać

# zdefiniuj TRIG_PIN A1

# zdefiniuj ECHO_PIN A0

# zdefiniuj MAX_DISTANCE 200

# define MAX_SPEED 255 // ustawia prędkość silników prądu stałego

# zdefiniuj MAX_SPEED_OFFSET 20

sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3(3, MOTOR34_1KHZ);

AF_DCMotor motor4(4, MOTOR34_1KHZ); Serwo myservo;

boolean idzieForward = false;

odległość wewnętrzna = 100; int speedSet = 0;

pusta konfiguracja () {

myservo.attach(10);

myservo.write(115); opóźnienie (2000); odległość = readPing(); opóźnienie (100); odległość = readPing(); opóźnienie (100); odległość = readPing(); opóźnienie (100); odległość = readPing(); opóźnienie (100); }

pusta pętla () {

int odległośćR = 0; int odległośćL = 0; opóźnienie(40);

if (odległość <= 15) { moveStop(); opóźnienie (100); przesuńWstecz(); opóźnienie(300); przesuńStop(); opóźnienie(200); odległośćR = patrzPrawo(); opóźnienie(200); odległośćL = patrz w lewo(); opóźnienie(200);

if (odległośćR >= odległośćL) {

Skręć w prawo(); przesuńStop(); } else { skręć w lewo(); przesuńStop(); } } else { moveForward(); } odległość = readPing(); }

int patrz w prawo() {

myservo.write(50); opóźnienie (500); int dystans = readPing(); opóźnienie (100); myservo.write(115); odległość powrotu; }

int spójrz w lewo() {

myservo.write(170); opóźnienie (500); int dystans = readPing(); opóźnienie (100); myservo.write(115); odległość powrotu; opóźnienie (100); }

int readPing() {

opóźnienie(70); int cm = sonar.ping_cm(); jeśli (cm == 0) { cm = 250; } powrót cm; }

void przesuńStop() {

motor3.run(RELEASE);

motor4.run(RELEASE); }

void przesuńdo przodu() {

jeśli (!przechodzi do przodu) {

idzieForward = prawda;

motor3.run(DO PRZODU);

motor4.run(DO PRZODU); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // powoli zwiększaj prędkość, aby uniknąć zbyt szybkiego ładowania baterii {

motor3.setSpeed (speedSet);

motor4.setSpeed(speedSet); opóźnienie(5); } } }

void przesuńWstecz() {

idzieForward = fałsz;

silnik3.uruchom(WSTECZ);

motor4.run(WSTECZ); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // powoli zwiększaj prędkość, aby uniknąć zbyt szybkiego ładowania baterii {

motor3.setSpeed (speedSet);

motor4.setSpeed(speedSet); opóźnienie(5); } }

nieważne skręt w prawo() {

motor3.run(DO PRZODU);

motor4.run(WSTECZ); opóźnienie (500);

motor3.run(DO PRZODU);

motor4.run(DO PRZODU); }

nieważne skręć w lewo () {

silnik3.uruchom(WSTECZ);

motor4.run(DO PRZODU); opóźnienie (500);

motor3.run (DO PRZODU);

motor4.run(DO PRZODU); }

1) Pobierz i zainstaluj Arduino Desktop IDE

  • Windows -
  • Mac OS X -
  • Linux -

2) Pobierz i wklej plik biblioteki NewPing (biblioteka funkcji czujnika ultradźwiękowego) do folderu bibliotek Arduino.

  1. Pobierz plik NewPing.rar poniżej
  2. Wypakuj go do ścieżki - C:\Arduino\libraries

3) Prześlij kod do płytki Arduino za pomocą kabla USB

Pobierz kod:

Krok 4: Świetnie

Teraz twój robot jest gotowy, aby ominąć każdą przeszkodę…

Chętnie odpowiem na wszelkie pytania

Emailme: [email protected]

Strona internetowa:

Subskrybuj mój kanał YouTube:

Instagram:

Facebook:

Dziękuję:)

Zalecana: