Spisu treści:

Tanie sterowanie robotem bojowym Arduino: 10 kroków (ze zdjęciami)
Tanie sterowanie robotem bojowym Arduino: 10 kroków (ze zdjęciami)

Wideo: Tanie sterowanie robotem bojowym Arduino: 10 kroków (ze zdjęciami)

Wideo: Tanie sterowanie robotem bojowym Arduino: 10 kroków (ze zdjęciami)
Wideo: Jak zacząć budować roboty w 2023? 2024, Listopad
Anonim
Tanie sterowanie robotem bojowym Arduino
Tanie sterowanie robotem bojowym Arduino
Tanie sterowanie robotem bojowym Arduino
Tanie sterowanie robotem bojowym Arduino
Tanie sterowanie robotem bojowym Arduino
Tanie sterowanie robotem bojowym Arduino

Odrodzenie Battlebotów w Stanach i Robot Wars w Wielkiej Brytanii ponownie rozpaliło moją miłość do robotyki bojowej. Więc znalazłem lokalną grupę konstruktorów botów i od razu się do niej zanurkowałem.

Walczymy na brytyjskiej skali wagi mrówek (limit wagi 150 gramów) i szybko zdałem sobie sprawę, że tradycyjny sposób budowania bota wymagał sprzętu RC: drogi nadajnik RC, nieporęczny lub drogi odbiornik i ESC (elektroniczne regulatory prędkości), które są magicznymi pudełkami który może obsłużyć znacznie więcej prądu niż jest to konieczne dla bota tej wielkości.

Używając Arduino w przeszłości, chciałem spróbować zrobić wszystko inaczej i postawić sobie za cel system Arduino, który może odbierać legalny sygnał bojowy i kontrolować dwa silniki napędowe za około 5 USD (połowa kosztu taniego ESC)

Aby pomóc osiągnąć ten cel, zremiksowałem ten samochód RC, zmniejszając wagę/koszt odbiornika i generując 4 sygnały PWM, aby uruchomić tani układ H-bridge

Ta instrukcja skupi się na systemie sterowania Arduino, ale dodam dodatkowe informacje, aby pomóc nowym ludziom zbudować ich pierwszego bota

Zastrzeżenie:

Nawet na małą skalę budowanie/walki robotów bojowych mogą być niebezpieczne, podejmuj je na własne ryzyko

Krok 1: Czego potrzebujesz

Materiały:

Dla systemu sterowania:

  • 1x Arduino pro mini 5v (1,70 USD)
  • 1x moduł nRF24L01 (1,14 USD)
  • Moduł regulatora 1x3.3 v (0,32 USD)
  • 1x podwójny moduł H-bridge* (0,90 USD)

Dla reszty podstawowego bota klina:

  • 2x mikromotoreduktory** (wersja tania, wersja niezawodna)
  • 1x2 s bateria litowo-polimerowa;
  • 1x ładowarka do balansu
  • 1x worek do ładowania lipo
  • 1x przełącznik
  • 1x złącze baterii
  • przewód misc (użyłem kilku zworek Arduino, które leżały wokół)
  • małe śruby
  • (opcjonalnie) epoksyd
  • (opcjonalnie) Aluminium (z puszki po napojach)
  • (opcjonalnie) dodatkowe diody LED

Dla podstawowego kontrolera:

  • 1x Arduino pro mini 5v
  • 1x moduł nRF24L01
  • Moduł regulatora 1x3.3 v
  • 1x Joystick Arduino

Narzędzia:

  • Śrubokręt
  • Lutownica
  • Szczypce
  • drukarka 3d (opcjonalna, ale ułatwia życie)

*patrząc na moduły h-bridge, szukaj modułu ze wszystkimi 4 wejściami sygnałowymi obok siebie, ułatwi to późniejsze podłączenie do Arduino

**sprawdź ostatni krok, aby uzyskać wskazówki dotyczące wyboru prędkości silnika

Krok 2: Wydrukuj obudowę

Wydrukuj podwozie
Wydrukuj podwozie

Zanim zaczniesz pracę nad systemem sterowania, spójrz na projekt bota, który ma zostać zbudowany. Zawsze najlepiej jest zaprojektować bota z broni. Początkującym sugeruję zacząć od podstawowego klina, są one zaprojektowane tak, aby były solidne i odpychały przeciwników z drogi, co oznacza, że jest mniej prawdopodobne, że zostaniesz zniszczony w pierwszej walce, a ponadto łatwiej jest wyczuć jazdę, gdy nie nie musisz się martwić o aktywną broń.

Zaprojektowałem bota klina: „Slightly Crude”, który został przetestowany w boju zarówno w zbroi, jak i bez zbroi. To dobry pierwszy bot, łatwy do wydrukowania i można go połączyć za pomocą 8 śrub. Sprawdź to na Thingiverse, aby uzyskać inny topowy projekt

Jeśli nie masz drukarki 3D, wypróbuj lokalną bibliotekę, przestrzeń hakerską lub miejsce do tworzenia

Dodanie dodatkowego pancerza jest łatwe do zrobienia prosto z drukarki, przeszlifuj zarówno klin, jak i aluminium puszki po napojach grubym papierem ściernym, usuń pył szlifierski, nałóż żywicę epoksydową zarówno na plastik, jak i aluminium, trzymaj razem za pomocą zacisków lub gumek przez 12-24 godziny

Obecnie nie mam projektu koła publicznego, ponieważ używam gumowych opon z zestawu edukacyjnego do robotyki nad piastami wydrukowanymi w 3D. W nadchodzących tygodniach będę zaprojektować piastę, która będzie wykorzystywać o-ringi do przyczepności. Gdy koła będą gotowe, zaktualizuję tę stronę i stronę Thingiverse

Krok 3: Przygotuj mostek H

Przygotuj mostek H
Przygotuj mostek H

Różne sterowniki silników z mostkiem h występują w różnych konfiguracjach, ale moduł połączony na początkowej liście jest wyposażony w 2 bloki zacisków jako wyjście. Te listwy zaciskowe są ciężkie i nieporęczne, dlatego najlepiej je usunąć.

Najprostszym sposobem na to jest podgrzanie obu padów jednocześnie lutownicą i ostrożne wygięcie bloków szczypcami

Zanim przejdziesz dalej, zdecyduj, czy chcesz mieć możliwość wymiany silników w swojej konfiguracji. Jeśli tak, to kable połączeniowe Arduino można wlutować do wyjścia modułu, a następnie przeciwny kabel można przylutować do silnika, dzięki czemu można je wyjąć w razie potrzeby.

Krok 4: Okablowanie modułów

Okablowanie modułów
Okablowanie modułów
Okablowanie modułów
Okablowanie modułów
Okablowanie modułów
Okablowanie modułów

Okablowanie modułów można wykonać na 3 różne sposoby, dlatego etap projektowania ma kluczowe znaczenie. Wybór broni wpłynie na kształt bota i dobór okablowania.

3 opcje to:

  1. Luźne przewody (lekkie, ale bardziej kruche) (zdjęcie 1)
  2. Płyta perforowana (cięższa niż 1, ale bardziej wytrzymała i zajmuje większą powierzchnię) (zdjęcie 2)
  3. Niestandardowa płytka drukowana (cięższa niż 1, ale wytrzymała i zajmująca niewiele miejsca) dołączona konstrukcja płytki (zdjęcie 3)

niezależnie od dokonanego wyboru rzeczywiste połączenia są takie same.

Wykonaj następujące połączenia dwa razy (raz dla kontrolera i raz dla odbiornika)

nRF24L01 (numeracja pinów obraz 4**):

  • Pin 1 -> GND
  • Pin 2 -> wyjście pin modułu 3.3 v
  • Pin 3 -> pin Arduino 9
  • Pin 4 -> pin Arduino 10
  • Pin 5 -> pin 13 Arduino
  • Pin 6 -> pin Arduino 11
  • Pin 7 -> pin 12 Arduino

Moduł 3.3v:

  • Pin Vin -> Vcc*
  • Out pin -> pin 2 nRF (jak wyżej)
  • GND pin -> GND

Arduino:

  • Piny 9-13 -> podłącz do nRF jak wyżej
  • Surowe -> Vcc*
  • GND -> GND

Wykonaj następujące połączenia raz, aby odróżnić kontroler od odbiornika

Dla kontrolera:

Drążek sterowy:

  • +5V -> Arduino 5V
  • vrx -> Arduino pin A2
  • vry -> Arduino pin A3
  • GND -> GND

Dla odbiorcy:

moduł mostka h:

  • Vcc -> Vcc*
  • B-IB -> pin Arduino 2
  • B-IA -> Arduino pin 3
  • A-IB -> Arduino pin 4
  • A-IA -> pin Arduino 5
  • GND -> GND

Najłatwiej to zrobić, zastępując piny Vcc i GND przewodem, a następnie odwracając płytkę do góry nogami i lutując piny bezpośrednio do Arduino, co upraszcza lutowanie i tworzy pewne mocowanie dla sterownika silnika

*aby robot bojowy był legalny, należy dodać punkt izolacji (przełącznik lub wymienne łącze) między akumulatorem a obwodem. Oznacza to, że dodatni akumulator musi być podłączony do przełącznika, a następnie przełącznik podłączony do Vcc

** obraz z https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo, który jest świetnym źródłem informacji dla modułu nRF24L01

Krok 5: Konfiguracja kontrolera

Konfiguracja kontrolera
Konfiguracja kontrolera

Gdy wszystko jest już połączone, czas na jakiś kod.

Począwszy od kontrolera, potrzebne są pewne wartości potencjometru, aby zapewnić, że dokładnie podłączony joystick będzie działał z kodem nadawczym.

Załaduj kod „joystickTestVals2”. Ten kod służy do odczytywania wartości potencjometru i wyświetlania ich przez serial

Przy uruchomionym kodzie i otwartym oknie szeregowym zacznij od spojrzenia na wartość „UP”, przesuń joystick do pozycji maksymalnie do przodu, wartość „UP” prawdopodobnie przeskoczy między kilkoma dużymi liczbami, wybierz najmniejszą z widocznych wartości, odejmij od tego 10 (zapewni to, że wciśnięcie drążka do końca da pełną moc) i zapisz to jako „Up Max”, co pozwoli joystickowi wrócić do środka. Teraz wybierz największą wartość, którą widzisz, dodaj do niej 20 i zapisz ją jako „UpRestMax”. Powtórz proces, naciskając drążek w dół i odwracając dodawanie/odejmowanie wartości rejestrowanych jako „UpMin” i „UpRestMin”

Powtórz cały proces ponownie dla lewej i prawej strony, zaczynając od przesunięcia drążka w prawo, rejestrując „SideMax”, a następnie „SideRestMax”, gdy odskakuje, i pchając w lewo, aby nagrać „SideMin” i „SideRestMin”

Te wartości są bardzo ważne, szczególnie wszystkie wartości zawierające słowo „Odpoczynek”. te wartości tworzą "martwą strefę" na środku drążka tak, że bot nie będzie się poruszał, gdy drążek spoczywa na środku, upewnij się, że gdy drążek jest wyśrodkowany, wartości mieszczą się między "restMin" i "restMax" dla obu osi

Krok 6: Kod

Kod
Kod
Kod
Kod

Podany kod robi wszystko dla prostego bota-klina ze strukturą umożliwiającą wysłanie również wartości pwm broni.

Potrzebne Biblioteki:

  • Biblioteka nRF24L01 stąd: GitHub
  • Oprogramowanie PWM stąd: Kod Google

Skonfiguruj kontroler:

otwórz kod txMix i zmień wartości limitów drążka na wartości, które zapisałeś w ostatnim kroku. Zapewni to, że kod będzie poprawnie reagował na joystick (zdjęcie 1)

Dostosuj rurę:

Aby upewnić się, że nie przeszkadzasz nikomu podczas imprezy, musisz zmienić piszczałkę radiową. Jest to w rzeczywistości identyfikator, a odbiornik będzie działał tylko na sygnałach z właściwego potoku, więc pamiętaj, aby zmienić potok w obu kodach na to samo.

Na rysunku 2 cyfry szesnastkowe rury zostały podświetlone. Są to dwie cyfry, które należy zmienić, aby dostosować rurę. Zmień „E1” na dowolną inną dwucyfrową wartość szesnastkową i zapisz ją, aby móc łatwo sprawdzić ją z fajkami przeciwnika podczas wydarzenia

Wgrywać:

  • txMix do kontrolera
  • odbierz do modułu odbiornika

Uruchom kod:

txMix:

Kod odczytuje się w pozycji joysticka jako wartość „UP” i wartość „side”. wartości te są ograniczone w oparciu o podaną maksymalną wartość, aby zapewnić pełną moc w maksymalnej pozycji drążka.

Wartości te są następnie sprawdzane, aby upewnić się, że drążek wysunął się z pozycji neutralnej, jeśli nie ma zer, są wysyłane.

Wartości są następnie indywidualnie mieszane w dwie zmienne, jedną dla prędkości lewego silnika i jedną dla prędkości prawego silnika. W tych zmiennych wartość ujemna jest używana do wskazania, że silnik jedzie do tyłu, co upraszcza mieszanie.

Wartości prędkości lewego i prawego są następnie dzielone na cztery wartości pwm, po jednej dla każdej: silnik prawy do przodu, silnik lewy do przodu, silnik prawy do tyłu, silnik lewy do tyłu.

Cztery wartości pwm są następnie wysyłane do odbiornika.

odbierać:

Po prostu odbiera sygnały ze sterownika, sprawdza, czy sygnał nie zawiera wartości pwm dla ruchu do przodu i do tyłu na pojedynczym silniku, a następnie stosuje pwm.

Odbiornik również wyłącza sejfy do silników, gdy sygnał nie jest odbierany z kontrolera

Krok 7: Połącz to wszystko razem

Łącząc to wszystko razem
Łącząc to wszystko razem
Łącząc to wszystko razem
Łącząc to wszystko razem
Łącząc to wszystko razem
Łącząc to wszystko razem

Przylutuj złącza do silników lub przylutuj silniki bezpośrednio do mostka h. (preferuję złącza, żebym mógł po prostu zmienić wtyczki, jeśli źle podłączyłem silniki)

Przylutuj przewód dodatni ze złącza akumulatora do środkowego styku przełącznika i jeden z zewnętrznych styków przełącznika do Vcc podłączonych modułów.

Przylutuj ujemny przewód ze złącza akumulatora do GND podłączonych modułów.

(Opcjonalnie) dodaj dodatkowe diody LED między Vcc a GND. Wszystkie roboty bojowe wymagają światła, które jest włączone, gdy system jest zasilany, w zależności od komponentów ten system ma diody LED na Arduino, module 3.3v i mostku h, o ile przynajmniej jeden z nich jest widoczny z zewnątrz bot ta zasada jest spełniona. Można użyć dodatkowych diod LED, aby upewnić się, że ta zasada jest spełniona i aby dostosować wygląd

Lekko surowy jest łatwy do przykręcenia, najpierw przykręć mocowania silnika na miejscu, dodaj elektronikę, a następnie przykręć pokrywę na miejscu, niewielka ilość rzepu pomoże utrzymać przełącznik na pokrywie

Kontroler możesz zaprojektować i wydrukować. Do testów używałem dołączonego kontrolera, który został zmodyfikowany z kontrolera BB8 V3 Jamesa Brutona

Krok 8: Słowo o zasadach walki robotów

Słowo o zasadach walki robotów
Słowo o zasadach walki robotów

Różne kraje, stany i grupy organizują walki robotów na różnych zasadach.

Stworzyłem ten system i napisałem, że „może być tak ogólny, jak to możliwe, jednocześnie uderzając w główne zasady dotyczące systemów RC (przede wszystkim system powinien być cyfrowy 2,4 GHz i mieć punkt izolacji baterii). Aby uruchomić ten system i/lub zaprojektować własnego pierwszego bota, najlepiej skontaktować się z lokalną grupą i uzyskać kopię ich zasad.

Zasady obowiązujące w twojej lokalnej grupie są bezwzględne, nie wierz mi na słowo w tej instrukcji dotyczącej zasad twojej grupy.

Ponieważ ten system Arduino jest nowy dla społeczności, najprawdopodobniej zostaniesz poproszony o przetestowanie go przed użyciem go na imprezie. Wielokrotnie testowałem ten system przeciwko standardowemu sprzętowi RC i przeciwko sobie bez żadnych problemów z zakłóceniami, więc powinien przejść każdy test, jednak organizatorzy na twojej lokalnej imprezie mają ostatnie słowo, szanuj ich decyzję. Jeśli odrzucą jego użycie, zapytaj, czy istnieje bot pożyczkowy, z którym możesz walczyć, lub poproś o wyjaśnienie, dlaczego został odrzucony i spróbuj naprawić problem na następne wydarzenie

Krok 9: Dodatkowe informacje o silnikach

Dodatkowe informacje o silnikach
Dodatkowe informacje o silnikach

Mikrosilniki z przekładnią używane w klasie mrówek są dostępne w szerokim zakresie prędkości i są oznaczone za pomocą prędkości obrotowej lub przełożenia przekładni. Poniżej znajduje się przybliżona konwersja.

Większość botów używa silników od 75:1 do 30:1 (z pewnymi wyjątkami używającymi 10:1). Boty z dużą wirującą bronią mogą korzystać z wolniejszych silników 75:1, ponieważ mniejsza prędkość pozwala na większą kontrolę. Zwinne kliny, podnośniki i płetwy są najlepsze w 30:1 w rękach doświadczonego kierowcy. Na kilka pierwszych walk polecam silniki 50:1 w klinie, żeby przyzwyczaić się do systemu i jazdy

  • 12 V 2000 obr./min (lub 6 V 1000 obr./min) -> 30:1
  • 6V 300RPM -> 50:1

Krok 10: Aktualizacje i ulepszenia

Minęło kilka lat, odkąd opublikowałem ten 'ible' i wiele się nauczyłem o tym systemie, więc nadszedł czas, aby je tutaj zaktualizować. Najważniejszy jest wybór komponentów, oryginalne komponenty działały stosunkowo dobrze, ale czasami zawodziły podczas walki. Dwóch największych sprawców to mostek H i moduł nrf24l01, ponieważ wybrałem absolutnie najtańsze części, jakie udało mi się znaleźć. Można to naprawić poprzez:

  • Uaktualnienie mostka H 0,5 A do mostka H 1,5 A, takiego jak ten: mostek H 1,5 A
  • Aktualizacja modułu nrf24l01 do projektu w pełni SMD: Open smart NRF24l01

Wraz z nowymi ulepszeniami komponentów zaprojektowałem kilka nowych płytek drukowanych, które pomagają skompaktować RX i dodać więcej funkcji do TX

Nadchodzą też pewne zmiany w kodzie, więc bądź na bieżąco z nimi

Zalecana: