Spisu treści:

Przewodnik, który chciałem mieć na temat budowy drona Arduino: 9 kroków
Przewodnik, który chciałem mieć na temat budowy drona Arduino: 9 kroków

Wideo: Przewodnik, który chciałem mieć na temat budowy drona Arduino: 9 kroków

Wideo: Przewodnik, który chciałem mieć na temat budowy drona Arduino: 9 kroków
Wideo: Najtańszy dron fpv - DIY - budowa 2024, Lipiec
Anonim
Przewodnik, który chciałem mieć na temat budowy drona Arduino
Przewodnik, który chciałem mieć na temat budowy drona Arduino

Ten dokument jest rodzajem dokumentacji „Jak prowadzić”, która przechodzi przez proces, który zajęło mi zrozumienie koncepcji, aby osiągnąć mój cel, jakim jest zbudowanie prostego quadkoptera, którym mógłbym sterować z telefonu komórkowego.

Aby zrobić ten projekt, chciałem dowiedzieć się, czym właściwie jest dron, w moim przypadku quadkopterem, więc zacząłem robić badania. Obejrzałem wiele filmów na YouTube, przeczytałem kilka artykułów i stron Insructible i to właśnie otrzymałem.

Zasadniczo drona można podzielić na dwie części. Nazwałem go „Fizycznym” i „Kontrolerem”. Fizyka to w zasadzie wszystko, co ma związek z mechaniką, która sprawia, że dron lata. Są to takie rzeczy jak silnik, rama, akumulator, śmigła i każda inna rzecz, która fizycznie daje dronowi zdolność do latania.

Kontroler jest zasadniczo kontrolerem lotu. Co kontroluje fizyczne, aby dron mógł latać jako cała jednostka bez upadku. Zasadniczo mikrokontroler, oprogramowanie na nim i czujniki, które pomagają w triangulacji łożysk. Aby więc mieć drona, potrzebowałem kontrolera i kilku fizycznych części, które kontroler mógłby „kontrolować”.

Kieszonkowe dzieci

Budżet projektu: 250

Ramy czasowe: 2 tygodnie

Rzeczy do kupienia:

  • Rama fizyczna $20
  • Ostrza 0 USD (w zestawie z ramą)
  • Pakiet baterii 25 USD
  • ESC (elektroniczne regulatory prędkości) 0 USD (w zestawie z silnikami)
  • Silniki 70

Kontroler lotu

  • Arduino nano $20
  • Kabel USB Arduino $2
  • Moduł Bluetooth (HC-05) 8 USD
  • Rezystory i przewody 3mm LED i 330 Ohm $13
  • GY-87 (akcelerometr, żyroskop) 5 USD
  • Płytka prototypowa $10
  • Nagłówki męskie i żeńskie $5

Inne

  • Zestaw lutowniczy $10
  • Multimetr $20

Chciałem cieszyć się budowaniem tego projektu jako inżynier, więc kupiłem kilka innych rzeczy, których nie musiałem.

Razem: 208 USD

Krok 1: Moje początkowe doświadczenie

Po zakupie wszystkich komponentów poskładałem wszystko w całość, a następnie spróbowałem uruchomić drona, używając Multiwii (przejście do oprogramowania, z którego korzysta większość społeczności dronów DIY), jednak szybko zdałem sobie sprawę, że nie do końca rozumiem, co robię. robiłem, ponieważ było dużo błędów i nie miałem pojęcia, jak je naprawić.

Potem postanowiłem rozebrać drona i zrozumieć każdy element kawałek po kawałku i przebudować go w taki sposób, aby całkowicie zrozumieć wszystko, co się dzieje.

W kolejnych sekcjach przejdę przez proces układania puzzli. Zanim to nastąpi, zróbmy szybki przegląd.

Fizyczny

Z fizycznego punktu widzenia powinniśmy mieć: ramę, śmigła, akumulator i esc. Byłoby to dość łatwe do złożenia. Aby zrozumieć te części i które powinieneś uzyskać, możesz odwiedzić ten link. Wyjaśnia, co musisz wiedzieć o zakupie każdej z wymienionych przeze mnie części. Obejrzyj także ten film na Youtube. Pomoże ci, jeśli utkniesz w składaniu części.

Krok 2: Wskazówki dotyczące składania i debugowania części fizycznych

Wskazówki dotyczące składania i debugowania części fizycznych
Wskazówki dotyczące składania i debugowania części fizycznych

Śmigła i silniki

  • Aby sprawdzić, czy śmigła są w prawidłowej orientacji (obrócone czy nie), kiedy obracasz je w kierunku wskazywanym przez silniki (większość silników ma strzałki pokazujące, jak powinny się obracać), powinieneś poczuć powiew wiatru pod śmigłami, a nie nad.
  • Śruby na przeciwległych śmigłach powinny być tego samego koloru.
  • Kolor sąsiednich śmigieł powinien być taki sam.
  • Upewnij się również, że ułożyłeś silniki w taki sposób, aby obracały się, tak jak na powyższym obrazku.
  • Jeśli próbujesz zmienić kierunek silnika, po prostu zamień przewody na przeciwległych końcach. To odwróci kierunek silnika.

Bateria i moc

  • Jeśli z jakiegoś powodu coś się iskrzy i nie możesz zrozumieć, dlaczego, najprawdopodobniej zamieniłeś się pozytywami i negatywami.
  • Jeśli nie masz pewności, kiedy ładować akumulatory, możesz użyć woltomierza, aby sprawdzić napięcie. Jeśli jest niższy niż mówią specyfikacje na akumulatorze, należy go naładować. Sprawdź ten link na temat ładowania baterii.
  • Większość akumulatorów LIPO nie jest dostarczana z ładowarkami. Kupujesz je osobno.

Krok 3: Kontroler Arduino

Kontroler Arduino
Kontroler Arduino

To bez wątpienia najtrudniejsza część całego projektu. Bardzo łatwo jest wysadzić komponenty, a debugowanie może być bardzo frustrujące, jeśli nie wiesz, co robisz. Również w tym projekcie sterowałem moim dronem za pomocą bluetooth i aplikacji, którą pokażę jak zbudować. To sprawiło, że projekt był szczególnie trudny, ponieważ 99% tutoriali używa kontrolerów radiowych (to nie jest fakt lol), ale nie martw się, przeszedłem przez frustrację dla ciebie.

Wskazówki przed wyruszeniem w tę podróż

  • Użyj płytki stykowej przed sfinalizowaniem urządzenia na płytce drukowanej. Pozwala to na łatwe wprowadzanie zmian.
  • Jeśli przetestowałeś komponent i nie działa, prawdopodobnie nie działa!
  • Spójrz na napięcia, jakie może wytrzymać urządzenie, zanim je podłączysz!

    • Arduino może obsłużyć 6 do 20 V, ale spróbuj ograniczyć napięcie do 12 V, aby go nie wysadzić. Możesz przeczytać więcej o jego specyfikacji tutaj.
    • HC-05 może obsługiwać napięcie do 5 V, ale niektóre piny działają przy napięciu 3,3 V, więc uważaj na to. Porozmawiamy o tym później.
    • IMU(GY-521, MPU-6050) działa również przy 5V.
  • Będziemy używać RemoteXY do budowy naszej aplikacji. Jeśli chcesz zbudować go na urządzeniu z systemem iOS, musisz użyć innego modułu bluetooth (HM-10). Możesz dowiedzieć się więcej na ten temat na stronie RemoteXY.

Mam nadzieję, że przeczytałeś wskazówki. Teraz przetestujmy osobno każdy komponent, który będzie częścią kontrolera.

Krok 4: MPU-6050

MPU-6050
MPU-6050

To urządzenie ma żyroskop i akcelerometr, więc zasadniczo informuje o przyspieszeniu w danym kierunku (X, Y, Z) i przyspieszeniu kątowym w tych kierunkach.

Aby to przetestować, możemy skorzystać z samouczka na ten temat, możemy skorzystać z tego samouczka na stronie Arduino. Jeśli to zadziała, powinieneś otrzymać strumień wartości akcelerometru i żyroskopu, które zmieniają się podczas przechylania, obracania i przyspieszania konfiguracji. Spróbuj też dostroić i manipulować kodem, aby wiedzieć, co się dzieje.

Krok 5: Moduł Bluetooth HC-05

Moduł Bluetooth HC-05
Moduł Bluetooth HC-05
Moduł Bluetooth HC-05
Moduł Bluetooth HC-05
Moduł Bluetooth HC-05
Moduł Bluetooth HC-05

Nie musisz wykonywać tej części, ale ważne jest, aby móc przejść do trybu AT (tryb ustawień), ponieważ najprawdopodobniej będziesz musiał zmienić jedno z ustawień modułu. To była jedna z najbardziej frustrujących części tego projektu. Zrobiłem tak wiele badań, aby dowiedzieć się, jak wprowadzić mój moduł w tryb AT, ponieważ moje urządzenie nie reagowało na moje polecenia. Zajęło mi 2 dni, aby stwierdzić, że mój moduł jest zepsuty. Zamówiłem inny i zadziałał. Zapoznaj się z tym samouczkiem na temat przejścia do trybu AT.

HC-05 jest dostępny w różnych rodzajach, niektóre są z przyciskami, a niektóre bez i wszelkiego rodzaju zmiennych projektowych. Jedno, co jest stałe, to to, że wszystkie mają „Pin 34”. Sprawdź ten samouczek.

Rzeczy, które powinieneś wiedzieć

  • Aby przejść do trybu AT, wystarczy przytrzymać 5 V na styku 34 modułu bluetooth przed podłączeniem do niego zasilania.
  • Podłącz potencjalny dzielnik do pinu RX modułu, ponieważ działa on na 3,3V. Nadal możesz go używać przy 5 V, ale może usmażyć ten pin, jeśli coś pójdzie nie tak.
  • Jeśli użyjesz Pin 34 (zamiast przycisku lub innego sposobu, który znalazłeś w Internecie), moduł ustawi prędkość transmisji bluetooth na 38400. Dlatego w linku do powyższego samouczka znajduje się wiersz w kodzie, który mówi:

BTSerial.początek(38400); // HC-05 domyślna prędkość w komendzie AT więcej

Jeśli moduł nadal nie odpowiada "OK", spróbuj zamienić piny tx i rx. Powinno być:

Bluetooth =>Arduino

RXD =>TX1

TDX => RX0

Jeśli to nadal nie działa, wybierz zmień piny w kodzie na inne piny Arduino. Przetestuj, jeśli to nie działa, zamień piny tx i rx, a następnie przetestuj ponownie

OprogramowanieSerial BTSerial(10, 11); // RX | TX

Zmień powyższą linię. Możesz spróbować RX = 2, TX = 3 lub dowolną inną prawidłową kombinację. Możesz spojrzeć na numery pinów Arduino na powyższym obrazku.

Krok 6: Łączenie części

Podłączanie części
Podłączanie części

Teraz, gdy mamy pewność, że wszystko działa, czas zacząć je składać. Możesz połączyć części tak, jak pokazano na schemacie. Dostałem to od Electronoobs. Naprawdę pomógł mi w tym projekcie. Sprawdź jego wersję projektu tutaj. Jeśli śledzisz ten samouczek, nie musisz się martwić o połączenia odbiornika: input_Yaw, input_Pitch itp. Wszystko to będzie obsługiwane przez bluetooth. Podłącz również bluetooth tak, jak zrobiliśmy to w poprzedniej sekcji. Moje piny tx i rx sprawiały mi trochę kłopotów, więc użyłem Arduino:

RX jako 2, a TX jako 3, zamiast normalnych pinów. Następnie napiszemy prostą aplikację, którą będziemy ulepszać aż do uzyskania produktu końcowego.

Krok 7: Piękno RemoteXY

Piękno RemoteXY
Piękno RemoteXY

Przez długi czas zastanawiałem się nad prostym sposobem na zbudowanie użytecznej aplikacji Remote, która pozwoliłaby mi sterować dronem. Większość ludzi korzysta z MIT App Inventor, ale interfejs użytkownika nie jest tak ładny, jak bym chciał, a ja też nie jestem fanem programowania obrazkowego. Mógłbym to zaprojektować przy użyciu Android Studio, ale byłoby to po prostu zbyt dużo pracy. Byłem bardzo zachwycony, gdy znalazłem samouczek używający RemoteXY. Oto link do strony. Jest niezwykle łatwy w użyciu, a dokumentacja jest bardzo dobra. Stworzymy prosty interfejs użytkownika dla naszego drona. Możesz dostosować je tak, jak lubisz. Tylko upewnij się, że wiesz, co robisz. Postępuj zgodnie z instrukcjami tutaj.

Gdy to zrobisz, zmodyfikujemy kod, abyśmy mogli zmienić przepustnicę naszego helikoptera. Dodaj wiersze, które mają /**** Rzeczy, które powinieneś zrobić i dlaczego ***/ do swojego kodu.

Jeśli nie kompiluje się, upewnij się, że masz pobraną bibliotekę. Otwórz też przykładowy szkic i porównaj to, co ma, a czego nie ma twój.

///////////////////////////////////////////////RemoteXY to Biblioteka // /////////////////////////////////////////////

// RemoteXY wybierz tryb połączenia i dołącz bibliotekę

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Ustawienia połączenia RemoteXY

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Śmigła

Serwo L_F_prop; Serwo L_B_prop; Serwo R_F_prop; Serwo R_B_prop;

// Konfiguracja RemoteXY

#pragma pack(push, 1) uint8_t RemoteXY_CONF = { 255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0 }; // ta struktura definiuje wszystkie zmienne struktury interfejsu sterującego {

// zmienna wejściowa

int8_t Joystick_x; // -100..100 współrzędna x pozycja joysticka int8_t Joystick_y; // -100..100 pozycja joysticka we współrzędnej y int8_t ThrottleSlider; // pozycja suwaka 0..100

// inna zmienna

uint8_t flaga_połączenia; // =1 jeśli przewód jest podłączony, w przeciwnym razie =0

} Zdalny XY;

#pakiet pragma(pop)

/////////////////////////////////////////////

// KONIEC RemoteXY to // ////////////////////////////////////////// /

/**********Dodaj ten wiersz, aby utrzymać wartość przepustnicy**************/

int input_THROTTLE;

pusta konfiguracja () {

RemoteXY_Init ();

/**********Podłącz silniki do pinów Zmień wartości, aby dopasować je do swoich ***************/

L_F_prop.attach(4); //silnik lewy przód

L_B_prop.attach(5); //silnik lewy tył R_F_prop.attach(7); //prawy przedni silnik R_B_prop.attach(6); //silnik prawy tył

/*************Nie pozwól esc wejść w tryb programowania********************/

L_F_prop.writeMicroseconds(1000); L_B_prop.writeMicroseconds(1000); R_F_prop.writeMikrosekundy(1000); R_B_prop.writeMicroseconds(1000); opóźnienie (1000);

}

pusta pętla () {

RemoteXY_Handler ();

/****** Odwzoruj wartość przepustnicy uzyskaną z aplikacji na 1000 i 2000, czyli wartości, na których działa większość ESC *********/

input_THROTTLE = map(RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds(input_THROTTLE);

L_B_prop.writeMicroseconds(input_THROTTLE); R_F_prop.writeMicroseconds(input_THROTTLE); R_B_prop.writeMicroseconds(input_THROTTLE); }

Krok 8: Testowanie

Jeśli zrobiłeś wszystko dobrze, powinieneś być w stanie przetestować swój helikopter, przesuwając przepustnicę w górę i w dół. Upewnij się, że robisz to na zewnątrz. Nie trzymaj też śmigieł, ponieważ spowoduje to podskok helikoptera. Nie napisaliśmy jeszcze kodu, aby to zrównoważyć, więc ZŁYM POMYSŁEM będzie TESTOWANIE TEGO Z WŁĄCZONYMI ŚMIGŁAMI! Zrobiłem to tylko dlatego, że lmao.

Demonstracja ma tylko pokazać, że powinniśmy być w stanie sterować przepustnicą z aplikacji. Zauważysz, że silniki się zacinają. Dzieje się tak, ponieważ ESC nie zostały skalibrowane. Aby to zrobić, spójrz na instrukcje na tej stronie Github. Przeczytaj instrukcje, otwórz plik ESC-Calibration.ino i postępuj zgodnie z tymi instrukcjami. Jeśli chcesz zrozumieć, co się dzieje, zapoznaj się z tym samouczkiem Electronoobs.

Podczas uruchamiania programu upewnij się, że przywiązujesz drona sznurkami, ponieważ będzie szedł na pełnym gazie. Upewnij się również, że śmigła nie są włączone. Zostawiłem mój włączony tylko dlatego, że jestem na wpół szalony. NIE ZOSTAW WŁĄCZONE ŚMIGŁO!!! Ta demonstracja jest pokazana w drugim filmie.

Krok 9: Pracuję nad kodem. Zakończę instruktaż w ciągu kilku dni

Chciałem tylko dodać, że jeśli korzystasz z tego samouczka i czekasz na mnie, nadal nad nim pracuję. W moim życiu pojawiły się tylko inne rzeczy, nad którymi też pracuję, ale nie martw się, wkrótce to opublikuję. Powiedzmy najpóźniej do 10 sierpnia 2019 r.

Aktualizacja z 10 sierpnia: Nie chciałem zostawiać cię w zawieszeniu. Niestety w zeszłym tygodniu nie miałem czasu na pracę nad projektem. Byłem bardzo zajęty innymi sprawami. Nie chcę cię wodzić. Mam nadzieję, że w najbliższej przyszłości ukończę instrukcję. Jeśli masz jakieś pytania lub potrzebujesz pomocy, możesz dodać komentarz poniżej, a ja się odezwę.

Zalecana: