Zrób samochód RC, którym możesz sterować za pomocą dowolnego pilota: 6 kroków

Zrób samochód RC, którym możesz sterować za pomocą dowolnego pilota: 6 kroków

Spisu treści:

Anonim

W tym podręczniku pokażę ci, jak możesz stworzyć łatwy samochód, który możesz zrobić sam.

Najlepszą rzeczą w tym samochodzie jest to, że dzięki niewielkim modyfikacjom można nim sterować za pomocą niemal każdego pilota, jaki można sobie wyobrazić

Na przykład możesz nim sterować za pomocą:

  • Aplikacja (którą wkrótce pokażę;))
  • Pilot zdalnego sterowania RC (którego tutaj używam)
  • Pilot na podczerwień

Zacznijmy!

Kieszonkowe dzieci:

Krok 1: Części

Do wykonania samochodu będziesz potrzebować kilku części.

  • Zestaw samochodowy z silnikami i ramą
  • Mostek H do sterowania silnikiem. (prędkość i kierunek)
  • Aarduino, używam mega tutaj, ale możesz użyć dowolnego typu arduino
  • Jakiś rodzaj pilota (używam Spektrum DX6i, ale możesz użyć prawie każdego pilota)

Opcjonalny:

  • Konwerter 12V na 6V (tylko jeśli używasz baterii 12V zamiast komórek 4AA)
  • Moduł Bluetooth HC-05 (do sterowania samochodem na telefon lub komputer)
  • Inne akcesoria

Krok 2: Co zawiera zestaw samochodowy

Z zestawem samochodowym otrzymasz wiele części. Oni są:

  • 4 koła z gumowymi oponami
  • Akrylowa płyta górna i dolna
  • 4 Silniki ze skrzyniami biegów, dzięki czemu wał wyjściowy obraca się wolniej niż wał silnika, ale z większym momentem obrotowym.
  • Pojemnik na baterie 4AA, nie używam go, ponieważ korzystam raczej z baterii lipo
  • 2 przewody dla każdego silnika (czerwony i czarny)
  • Wystarczające śruby i nakrętki do połączenia i dodatkowe do montażu sterownika
  • 6 Przekładki między górną i dolną płytą
  • 8 Uchwyty silnika, 2 dla każdego silnika
  • 4 Dyski enkodera, jeśli chcesz zmierzyć prędkość silnika
  • Śrubokręt
  • Instrukcje budowania

Krok 3: Montaż samochodu

Pierwszym krokiem jest zerwanie papieru ochronnego ze wszystkich elementów akrylowych. (Górna i dolna płyta, mocowania silnika, dyski enkodera)

Następnie możesz rozpocząć montaż podwozia za pomocą zdjęć z instrukcji. Zostaw górną płytę.

Następnie możesz skrócić przewody i przylutować je poprzecznie do czterech silników. (Jak widać na ostatnim zdjęciu)

Krok 4: Instalacja elektroniki

Najpierw umieść mostek H między 4 silnikami i podłącz go do silników.

Następnie można podłączyć regulator napięcia, jeśli jest używany, w przeciwnym razie podłączyć akumulator do mostka H, ​​do VCC i GND.

Dodaj również 2 przewody (czerwony i niebieski) do zasilania arduino. Możesz użyć regulatora 5V na mostku H.

Dodaj również przewody połączeniowe żeńskie do męskie lub żeńskie do żeńskie do kołków sterujących mostka H.

jeśli używasz baterii lipo, podłącz złącze baterii do wejścia regulatora napięcia.

Teraz przykręć górną płytkę. I zamontuj arduino na górze.

Podłącz czerwony i niebieski przewód do 5V i GND arduino.

Podłącz również 4 piny sterujące z mostka H do styku 10 - 13.

To jest część samochodu. Następna część dotyczy pilota. Jeśli używasz innego rodzaju (bluetooth, …), musisz zmienić tutaj.

W przypadku sterownika RC po prostu podłącz 5V i GND do połączenia 5V i GND arduino. Podłącz również kanał 2 i 3 (do jazdy) do styków 3 i 4.

To jest po stronie sprzętu. Teraz idziemy po stronie oprogramowania.

Krok 5: Oprogramowanie Arduino

Oprogramowanie arduino nie jest takie trudne. Dodałem komentarze, ale jeśli coś nie jest jasne, daj mi znać.

#define Motor1_Dir 13 // Pin kontrolny kierunku silnika 1 #define Motor2_Dir 11 // Pin kontrolny kierunku silnika 2 #define Motor1_PWM 12 // Pin kontrolny prędkości silnika 1 #define Motor2_PWM 10 // Pin kontrolny prędkości silnika 2 int kanał 4 = {0, 0, 0, 0}; // Zmienna do zapisywania wartości zdalnego sterowania int pwm 4 = {0, 0, 0, 0}; // Zmienna zapisująca wartości zdalne od -255 do 255 int prev_pwm 4 = {0, 0, 0, 0}; // Zmienna do sprawdzenia, czy stan zmienił int pwm_m1 = 0; // Zmienna zapisująca prędkość pierwszego silnika int pwm_m2 = 0; // Zmienna, aby zapisać prędkość drugiego silnika int reverse = 0; // Zmienna do sprawdzenia, czy samochód musi jechać wstecz int prev_reverse = 0; // Zmienna do sprawdzenia, czy stan odwrotności zmienił const int pin 4 = {2, 3, 4, 5}; // Zmienna stała dla pinów zdalnego ustawienia void () {pinMode (2, INPUT); // Ch1 pinMode (3, INPUT); // Ch2 pinMode (4, INPUT); // Ch3 pinMode (5, INPUT); // Ch4 pinMode (6, INPUT); // Ch5 pinMode (7, INPUT); // Ch6 pinMode (Motor1_Dir, OUTPUT); pinMode (Motor2_Dir, OUTPUT); pinMode (Motor1_PWM, OUTPUT); pinMode (Motor2_PWM, OUTPUT); digitalWrite (Motor1_Dir, LOW); // Motor 1 forward digitalWrite (Motor2_Dir, LOW); // Motor 2 forward} void loop () {for (int i = 1; i <3; i ++) // sprawdź kanał 2 i 3 (od 0 do 3) {kanał i = pulseIn (piny i, HIGH, 25000); // Odczyt kanału impulsu kanału i = (kanał i == 0)? 990: kanał i; // Jeśli wystąpił błąd, wartość wynosi 0 / ************************************** *** * Tak samo jak to, ale krótsze: * if (kanał i == 0) * {* kanał i = 990; *} * else * {* kanał i = kanał i; *} ***************************************** / pwm i = mapa (kanał i, 990, 2000, -255, 255); // Konwertuj z (990 - 2000) na (-255 - 255), jeśli (i == 2) // Jeśli kanał 3 jest zaznaczony (ruch pionowy) {odwrotność = (pwm i <2)? 1: 0; // Pwm do przodu lub do tyłu i = (pwm i <0)? (255 + pwm i): pwm i; // jeśli wstecz, zamiast (-255 do 0) => (0 do 255)} if ((prev_pwm i + 4 <pwm i) || (prev_pwm i - 4> pwm i)) // Jeśli występuje minimalny ruch 4 w jednym kierunku {/ ** Zdefiniuj prędkość 1 silnika ** / pwm_m1 = pwm 2 - pwm 1; pwm_m1 = (pwm_m1 <0)? 0: pwm_m1; // Minimum 0, nie ujemne pwm_m1 = (pwm_m1> 255)? 255: pwm_m1; // Maksymalnie 255, nie więcej / ** Definiowanie prędkości silnika 2 ** / pwm_m2 = pwm 2 + pwm 1; pwm_m2 = (pwm_m2 <0)? 0: pwm_m2; // Minimum 0, nie ujemne pwm_m2 = (pwm_m2> 255)? 255: pwm_m2; // Maksymalnie 255, nie więcej analogWrite (Motor1_PWM, pwm_m1); // Prędkość zapisu do silników analogWrite (Motor2_PWM, pwm_m2); prev_pwm i = pwm i; // Umieść tutaj, aby sprawdzić minimalny ruch 4 (zobacz w górę)} if (reverse! = Prev_reverse) // Jeśli kierunek zostanie zmieniony {digitalWrite (Motor1_Dir, reverse); // Napisz do mostka H digitalWrite (Motor2_Dir, reverse); // Napisz do mostka H prev_reverse = reverse; // Zdefiniuj do późniejszego sprawdzenia}} delay (100); // śpij trochę czasu}

Więc to cały kod.

Krok 6: Wznów

To wszystko, zrobiłeś samochód, który możesz kontrolować za pomocą niemal każdego pilota.

Ciesz się tworzeniem i prowadzeniem!

Jeśli Ci się podobało, zagłosuj na to i udostępnij je.

Jeśli masz dla mnie jakieś pomysły, co dalej, podziel się nimi!

Jeśli masz pytania, daj im znać w komentarzach.

I szczęśliwego Nowego Roku!

Laurens