Spisu treści:

OmniBoard: Hybrydowa deskorolka i hoverboard ze sterowaniem Bluetooth: 19 kroków (ze zdjęciami)
OmniBoard: Hybrydowa deskorolka i hoverboard ze sterowaniem Bluetooth: 19 kroków (ze zdjęciami)

Wideo: OmniBoard: Hybrydowa deskorolka i hoverboard ze sterowaniem Bluetooth: 19 kroków (ze zdjęciami)

Wideo: OmniBoard: Hybrydowa deskorolka i hoverboard ze sterowaniem Bluetooth: 19 kroków (ze zdjęciami)
Wideo: Audi Q3 Łapie Gwoździa w Deszczu.,Deskorolka Elektryczna? A Spróbuje Nabyć Drogą Kupna 2024, Lipiec
Anonim
OmniBoard: hybryda deskorolki i hoverboardu ze sterowaniem Bluetooth
OmniBoard: hybryda deskorolki i hoverboardu ze sterowaniem Bluetooth

OmniBoard to nowatorska elektryczna deskorolka-hoverboard, sterowana za pomocą aplikacji na smartfona Bluetooth. Jest w stanie poruszać się we wszystkich trzech stopniach swobody osiągalnych przez obie deski połączone, iść do przodu, obracać się wokół własnej osi i omijać boki.

Dzięki temu możesz poruszać się w dowolnym kierunku, a także wykonywać sprytne sztuczki, których w innym przypadku nie byłbyś w stanie wykonać za pomocą typowego środka transportu, takiego jak (elektryczne) deskorolki, hoverboardy, samochody, rowery itp.

Mój przyjaciel i ja postanowiliśmy zbudować OmniBoard jako zabawne ćwiczenie i wyzwanie, a także wziąć udział w niektórych konkursach Instructables, a mianowicie w wyzwaniu z kołami. Chcieliśmy stworzyć coś, co nigdy wcześniej nie było robione, jest fajne i byłoby przydatne. Ponieważ system transportu publicznego jest często zawodny, a ruch miejski jest okropny podczas porannej i popołudniowej jazdy do i z pracy, przydatny jest alternatywny środek transportu, taki jak jazda na rowerze lub deskorolce. Deskorolki elektryczne i rowery są przydatne podczas dojazdów na duże odległości, ale istnieje już wiele rozwiązań konsumenckich i dla majsterkowiczów na ten temat. Postanowiliśmy więc wymyślić koło na nowo, całkiem dosłownie, i stworzyć nowy, zabawny OmniBoard.

Krok 1: Narzędzia i materiały

Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały

Układ napędowy

  • (4) koła Omni
  • (4) Koło pasowe z 60 zębami
  • (4) Koło pasowe 20 zębów
  • (4) Pasek rozrządu GT2 (użyliśmy 140 zębów)
  • (8) 7mm ID, 19mm OD łożyska*
  • (20) Śruby maszynowe M5 (lub podobnej wielkości) o długości około 25 mm*
  • (28) Nakrętki tego samego rozmiaru co wkręty maszynowe*
  • (32) Nr 2 wkręty do drewna, długość 3/8"*
  • (16) Wsporniki kątowe, najlepiej cztery otwory, muszą znajdować się co najmniej 1/2 cala od narożnika do otworu na śrubę*
  • Arkusz sklejki 1'x2'*
  • Powierzchnia deskorolki

Elektronika:

Układ napędowy

  • (4) Silniki prądu stałego
  • (4) Elektroniczne regulatory prędkości (ESC)
  • Płytka rozdzielcza zasilania (PDB)
  • Przewód silikonowy 16AWG - czerwony i czarny
  • Rozdzielacz równoległy złącza XT90
  • Złącze męskie XT90 z ogonem
  • (8 par) Złącze kulowe 4mm
  • (4 pary) Złącza XT60
  • (2) Baterie LiPo

Zdalne sterowanie

  • Dwustronna płyta perforowana*
  • LM7805 Regulator napięcia*
  • Druty z rdzeniem stałym 24AWG - różne kolory*
  • Moduł Bluetooth HC-05*
  • Arduino Uno v3*
  • (32-stykowe) Dwustronne męskie listwy stykowe*
  • (12 pinów) Jednostronne główki pinów typu ale*

Narzędzia:

  • Stacja lutownicza i lutownica
  • Nożyce do drutu
  • Narzędzia do ściągania izolacji
  • Szczypce
  • Nożyce
  • Wiertła:1-3/8", 3/4", 1/4"

Ekwipunek

  • drukarka 3d
  • Wycinarka laserowa
  • Piła taśmowa
  • Wiertarka pionowa

*Otrzymane w lokalnym sklepie elektronicznym lub sklepie ze sprzętem.

Krok 2: Jak to działa

Jak to działa
Jak to działa

Omniboard to elektryczna deskorolka i hoverboard w jednym! Jest w stanie poruszać się do przodu i do tyłu, z boku na bok i obracać, a wszystko to sterowane za pomocą joysticka w telefonie.

Omniboard jest napędzany czterema silnikami, z których każdy jest przymocowany do wielokierunkowego koła. Ponieważ koła omni mogą ślizgać się na boki, zmiana prędkości i kierunku każdego silnika umożliwia ruch deski w dowolnym kierunku wybranym przez użytkownika, jak pokazano na powyższym obrazku.

Krok 3: Montaż osi kół Omni

Montaż osi kół Omni
Montaż osi kół Omni
Montaż osi kół Omni
Montaż osi kół Omni
Montaż osi kół Omni
Montaż osi kół Omni
Montaż osi kół Omni
Montaż osi kół Omni

Części potrzebne do montażu osi to:

  • (8) Przekładka łożyska drukowana w 3D
  • (4) drukowany w 3D duży element dystansowy koła pasowego
  • (8) Łożysko
  • (4) Koło Omni
  • (4) Duże koło pasowe
  • (4) klucz 3x3x80mm

Najpierw chcesz umieścić podkładkę łożyska na końcu wału, jak pokazano. Przekładka jest bardzo ciasno dopasowana, więc zalecam użycie imadła lub młotka, aby ją założyć. Jeśli jest zbyt luźny, przesuń go nieco dalej w górę i załóż kołnierz. Nie musisz martwić się o kołnierz na drugim końcu.

Następnie wsuwasz koło omni, a następnie podkładkę łożyska skierowaną w przeciwną stronę. Możesz teraz wsunąć łożyska (nie ma to znaczenia, że nie są dobrze dopasowane) i powinno wyglądać jak na zdjęciu. Na koniec możesz wsunąć długie, wąskie podkładki dystansowe do kół pasowych. W tym momencie nie dokręcaj śrub dociskowych kół pasowych ani nie kładź ich na kluczu. Te przychodzą później.

Krok 4: Cięcie i wiercenie wózków Omni Wheel

Image
Image
Cięcie i wiercenie ciężarówek Omni Wheel
Cięcie i wiercenie ciężarówek Omni Wheel
Cięcie i wiercenie ciężarówek Omni Wheel
Cięcie i wiercenie ciężarówek Omni Wheel
Cięcie i wiercenie ciężarówek Omni Wheel
Cięcie i wiercenie ciężarówek Omni Wheel

Tutaj przydaje się Twoja wycinarka laserowa i sklejka o grubości 3/8 cala! CAD do laserowego wycinania ramy jest dołączony w formacie.dxf.

Następnie wywiercisz dwa otwory nad małymi krzyżykami, które wycinarka laserowa zostawi na sklejce. Nieco mniejszy krzyż będzie wiercony wiertłem 3/4" tylko 1/4" długości, podczas gdy większy krzyż będzie wiercony wiertłem 1-3/8". Jest to bardzo ważne że pamiętasz o połowie kawałków wyciąć otwory 3/4" z jednej strony, a drugą połowę z drugiej strony. Następnie wywierć mniejszy otwór 3/8" przez środek otworów 3/4", przez całą warstwę, której wcześniej nie przecinałeś.

Na koniec przykręć wsporniki kątowe do krótszych boków prostokątnych elementów. Masz teraz prawie wszystko, czego potrzebujesz, aby zmontować wózki omni wheel.

Krok 5: Montaż wózków Omni Wheel

Montaż ciężarówek Omni Wheel
Montaż ciężarówek Omni Wheel
Montaż ciężarówek Omni Wheel
Montaż ciężarówek Omni Wheel
Montaż ciężarówek Omni Wheel
Montaż ciężarówek Omni Wheel

Teraz możemy dokończyć montaż ciężarówki! Będziesz potrzebować części z ostatnich dwóch kroków plus:

  • (4) pasek rozrządu
  • (4) drukowana w 3D mała przekładka koła pasowego
  • (4) Małe koło pasowe
  • (4) Silnik

Wsuń każdą stronę sklejki na łożyska. Jeśli otwory 3/4 nie pasują łatwo do łożysk, użyj narzędzia Dremel, aby je szlifować nieco szerzej. Po dopasowaniu załóż koło pasowe na wystający klucz i dokręć śruby ustalające. Wkręć prostokątny element w wycięcie nad kołem omni.

W tym momencie sprawdź, czy koło omni obraca się swobodnie. Jeśli tak się nie stanie, twoje koło pasowe może zaciskać się na sklejce. Podnieś go nieco dalej w górę klucza.

Następnie zamontujemy silniki. Otwory 1-3/8 są nieco za małe, więc powoli szlifuj wewnętrzny okrąg za pomocą narzędzia Dremel, aż silnik będzie dobrze pasował do środka. Uważaj, aby nie wcisnąć silnika na siłę i nie zdeformować obudowy. Gdy silnik znajdzie się na swoim miejscu, nasuń pasek na małe koła pasowe, a następnie małe koła pasowe na ich przekładki i na wał silnika 3,175 mm. Dokręć śruby ustalające.

Ze względu na kompaktowość i symetrię, będziesz chciał umieścić koła pasowe i paski po jednej stronie ciężarówki dla dwóch z nich, a po drugiej stronie dla pozostałych dwóch.

Krok 6: Montaż do platformy deskorolki

Montaż do platformy deskorolki
Montaż do platformy deskorolki
Montaż do platformy deskorolki
Montaż do platformy deskorolki
Montaż do platformy deskorolki
Montaż do platformy deskorolki

Teraz przymocujemy trucki do platformy deskorolki. Możesz zrobić swoje ze sklejki i griptape; nasz został zabrany ze starej deskorolki.

Najpierw będziesz chciał wywiercić otwory 1/4 po obu stronach sklejki, jak pokazano na rysunku. W każdym otworze przymocuj wspornik kątowy za pomocą śruby M5 i podwój nakrętkę po wewnętrznej stronie, aby zapobiec jej wypadaniu luźne z powodu wibracji. Zmierz i wywierć otwory, które umożliwiają zamontowanie wózków jak najbliżej końców i pod jak najbardziej stromym kątem stożka, pozostając w obrębie podstawy platformy. Teraz odwróć ją i przeprowadź test obciążenia !

Krok 7: Lutowanie silników

Image
Image
Lutowanie silników
Lutowanie silników

Przylutuj męskie złącza pociskowe 4 mm do przewodu, który połączy się z silnikami, a następnie przylutuj ten przewód do zacisków silnika. W celu uporządkowania kabli każdy przewód jest przycinany do 6 cm i usuwany z obu końców

Wskazówka: Łatwiej jest najpierw przylutować przewody do złączy pociskowych, a następnie przylutować je do silnika niż na odwrót.

Aby przylutować złącze kulowe do drutu, umieść je na izolowanym zacisku krokodylkowym pomocnej dłoni (ponieważ ciepło szybko rozprasza się z korpusu złącza kulowego do metalowego, przewodzącego ciepło korpusu pomocnej dłoni). Następnie nałóż trochę lutu na złącze pocisku, mniej więcej w połowie i trzymając żelazko w złączu, zanurz drut w puli lutowia, jak pokazano na filmie. Następnie obkurcz przewód i złącze kulowe.

Następnie umieść przewód obok zacisku silnika i trzymaj go pionowo za pomocą pomocnej dłoni. Użyłem rolki lutowniczej do przytrzymania silnika do góry nogami. Następnie przylutuj przewód do zacisku silnika. Kolejność i kolor przewodów są niejednoznaczne i nie mają znaczenia, ponieważ kolejność można zmienić na odwrotną rotację, co w razie potrzeby zostanie wykonane w kolejnych krokach.

Krok 8: Lutowanie złączy baterii ESC

Lutowanie złączy baterii ESC
Lutowanie złączy baterii ESC
Lutowanie złączy baterii ESC
Lutowanie złączy baterii ESC

Przed lutowaniem odetnij trochę koszulki termokurczliwej dla każdego z przewodów, która będzie używana do izolacji odsłoniętych lutowanych końcówek.

Odetnij jeden z przewodów do złącza akumulatora, zdejmij go, wsuń koszulkę termokurczliwą i przylutuj do złącza XT60 z czerwonym połączeniem z dodatnim zaciskiem XT60 i czarnym z ujemnym zaciskiem XT60.

Ostrzeżenie: Przecinaj przewody ESC tylko pojedynczo, ponieważ pomiędzy dodatnim i ujemnym zaciskiem znajduje się kondensator, który zwiera się, jeśli nożyczki lub przecinaki do drutu przecinają oba naraz.

Aby przylutować przewód do złącza XT60, użyj pomocnych dłoni, aby przytrzymać korpus złącza XT60. Następnie połącz trochę lutu do terminala XT60 mniej więcej w połowie i trzymając lutownicę na złączu XT60, zanurz przewód w puli płynnego lutowia, jak pokazano na filmie z poprzedniego kroku. Po ostygnięciu przesuń termokurczliwe w dół, aby zaizolować odsłonięty koniec i podgrzej go bokami lutownicy.

Powtórz to dla pozostałych przewodów złączy akumulatora ESC.

Krok 9: Lutowanie tablicy rozdzielczej zasilania (PDB)

Lutowanie rozdzielnicy zasilania (PDB)
Lutowanie rozdzielnicy zasilania (PDB)
Lutowanie rozdzielnicy zasilania (PDB)
Lutowanie rozdzielnicy zasilania (PDB)
Lutowanie rozdzielnicy zasilania (PDB)
Lutowanie rozdzielnicy zasilania (PDB)
Lutowanie rozdzielnicy zasilania (PDB)
Lutowanie rozdzielnicy zasilania (PDB)

PDB pobierze dane wejściowe z dwóch akumulatorów litowo-polimerowych (LiPo) o połączonym napięciu i prądzie odpowiednio 11,1 V i 250 A i rozprowadzi je do czterech ESC.

Wskazówka: Łatwiej przylutować najpierw męskie przewody złącza XT90 do padów PDB, a następnie przewody 16 AWG do ESC, a następnie złącza XT60 do tych przewodów.

Przed lutowaniem przewodów przytnij koszulkę termokurczliwą, aby pasowała do każdego z przewodów, aby można ją było później nasunąć na odsłonięty lutowany koniec, aby zapobiec zwarciu.

Aby przylutować przewody do podkładek PDB, stwierdziłem, że najłatwiej jest użyć pomocnych dłoni do trzymania przewodów pionowo (zwłaszcza dużego kabla XT90) i umieszczenia go na PDB spoczywającym na stole. Następnie przylutuj drut wokół podkładki PDB. Następnie przesuń koszulkę termokurczliwą w dół i podgrzej ją, aby zaizolować obwody.

Powtórz to dla pozostałych przewodów ESC.

Aby przylutować XT60, wykonaj poprzedni krok dotyczący wymiany zacisku akumulatora ESC na XT60.

Krok 10: Podłączanie przewodów

Podłączanie przewodów
Podłączanie przewodów

Podłącz przewody silnika do zacisków złącza kulowego ESC. Następnie podłącz biały styk sygnałowy z ESC do styku 9, a czarny styk uziemienia do styku GND w Arduino. Do zabezpieczenia wszystkich esc i przewodów do płyty użyto podwójnych pasków blokujących.

Aby sprawdzić, czy obroty silników są prawidłowe (kręcą się do przodu), uruchom przykładowy kod na Arduino poniżej.

#włączać

Siłownik;

bajt zgodnie z ruchem wskazówek zegara Prędkość = 110; długi interwał bez znaku = 1500; int motorPin = 9;

pusta konfiguracja()

{ Szeregowy.początek(9600); motor.attach(motorPin); Serial.println("Rozpoczęcie testu"); }

pusta pętla()

{ motor.write (zgodnie z ruchem wskazówek zegara); Serial.println("Zatrzymaj silnik przed wirowaniem"); opóźnienie(przedział); }

Kolejność przewodów podłączonych od ESC do silnika określa obroty silnika. Jeśli silnik obraca się w kierunku przeciwnym do ruchu wskazówek zegara, zanotuj silnik i zmień wartość logiczną w kodzie kontrolera w kroku „Programowanie kontrolera Omniboard”. Jeśli obraca się zgodnie z ruchem wskazówek zegara do przodu, obrót jest prawidłowy. Zrób to dla każdego z czterech silników. Jeśli silnik się nie obraca, dokładnie sprawdź wszystkie złącza, czy są jakieś zimne luty, które powodują luźne połączenie.

Krok 11: Zmiana trybu ESC

Zmiana trybu ESC
Zmiana trybu ESC

Domyślnie szczotkowane ESC są w trybie ćwiczeń. Jest to sygnalizowane miganiem diody LED. Aby programowo sterować silnikiem w kierunku przeciwnym, potrzebny jest tryb wspinania.

Aby uzyskać dostęp do tego trybu, podłącz ESC do Arduino, podłączając biały pin sygnałowy z ESC do pinu 9 i czarny pin uziemiający do pinu GND na Arduino. Następnie wgraj i uruchom następujący program na płytkę Arduino:

#włączać

Siłownik;

bajt stopPrędkość = 90; długi interwał bez znaku = 1500; int motorPin = 9;

pusta konfiguracja()

{ Szeregowy.początek(9600); motor.attach(motorPin); Serial.println("Rozpoczęcie testu"); }

pusta pętla()

{ motor.write(stopSpeed); Serial.println("Zatrzymaj silnik przed wirowaniem"); opóźnienie(przedział); }

Włącz ESC, a następnie naciśnij i przytrzymaj przycisk programowania przez dwie sekundy. Wskaźnik LED będzie teraz świecił stałym światłem, a nie migał, co oznacza, że tryb został pomyślnie zmieniony na tryb wspinania.

Krok 12: Połączenie z modułem Bluetooth i telefonem

Interfejs z modułem Bluetooth i telefonem
Interfejs z modułem Bluetooth i telefonem
Interfejs z modułem Bluetooth i telefonem
Interfejs z modułem Bluetooth i telefonem
Interfejs z modułem Bluetooth i telefonem
Interfejs z modułem Bluetooth i telefonem

Moduł Bluetooth HC-05 pozwala Arduino połączyć się z telefonem, aby umożliwić bezprzewodowe sterowanie deskorolką za pośrednictwem aplikacji. Ponieważ znalazłem problemy z pewnymi wadami interfejsów modułu Bluetooth, lepiej byłoby najpierw przetestować go przed lutowaniem końcowych obwodów, Będziemy używać 4 z 6 styków modułu Bluetooth. Są to: Tx (nadawanie), Rx (odbiór), 5 V i GND (uziemienie). Podłącz piny Tx i Rx z modułu Bluetooth HC-05 odpowiednio do pinów 10 i 11 w Arduino. Następnie podłącz pin 5V i piny GND do pinów z taką samą etykietą na Arduino.

W aplikacji Blynk dodaj widżety bluetooth i przycisków, jak pokazano na powyższych obrazkach. Następnie przypisz do przycisku cyfrowy pin D13, który jest podłączony do wbudowanej diody LED w Arduino Uno.

Prześlij i uruchom następujący kod do Arduino z podłączonym modułem bluetooth i otwórz monitor szeregowy, aby sprawdzić, czy moduł bluetooth został podłączony. Następnie przełącz przycisk On/Off i obserwuj wbudowaną diodę LED na zmianie Arduino.

#define BLYNK_PRINT Serial

#włączać

#włączać

// Powinieneś uzyskać Auth Token w aplikacji Blynk.

// Przejdź do ustawień projektu (ikona nakrętki). char auth = "Twój token uwierzytelniający";

OprogramowanieSerial Serial BLE(10, 11); // RX, TX

BLYNK_WRITE(V1)

{ int pinValue = param.asInt(); // przypisanie wartości przychodzącej z pinu V1 do zmiennej }

pusta konfiguracja()

{ Szeregowy.początek(9600); // konsola debugowania SerialBLE.begin(9600); Blynk.begin(SerialBLE, auth); Serial.println("Oczekiwanie na połączenia…"); }

pusta pętla()

{ Blynk.run(); }

Krok 13: Lutowanie Arduino Shield

Lutowanie Arduino Shield
Lutowanie Arduino Shield
Lutowanie Arduino Shield
Lutowanie Arduino Shield
Lutowanie Arduino Shield
Lutowanie Arduino Shield
Lutowanie Arduino Shield
Lutowanie Arduino Shield

Aby wyczyścić obwody i luźne zworki z prototypu, przylutujemy nakładkę Arduino, która łączy się z każdym z modułów ESC i Bluetooth, a także zasilanie Arduino.

Przylutuj poniższy schemat powyżej do dwustronnej płyty perforowanej.

Najpierw zwymiarowałem i podłączyłem dwustronne męskie nagłówki pinów do żeńskich nagłówków Arduino, a następnie przylutowałem je do górnej strony płytki perf po obu stronach. Po przylutowaniu wyjąłem go z płytki Arduino, aby przylutować dolną część płytki. Następnie przylutowałem jednostronne męskie nagłówki pinów ESC w 4 zestawach po 3 na spodniej stronie płytki perf. Następnie umieściłem moduł Bluetooth HC-05 w pozycji pionowej i przylutowałem złącza również do dolnej strony płytki perf.

Ponieważ moduł Bluetooth wymaga wejścia napięciowego 5 V, a PDB jest regulowany tylko do 12 V, użyłem LM7805, aby obniżyć prąd, aby ograniczyć pobór prądu z Arduino. To samo zasilanie 5 V jest również podłączone do pinu 5 V Arduino, dzięki czemu Arduino może być zasilane przez osłonę, w przeciwieństwie do dodatkowego adaptera gniazda baryłkowego.

Piny LM7805 zostały przylutowane do dolnej strony płytki perforacyjnej, a element regulatora napięcia znajdował się na górze płytki perforacyjnej, jak pokazano na powyższym obrazku. Przylutowałem wszystkie połączenia zasilania do każdego z komponentów i wyprowadzeń pinów ESC oraz modułu Bluetooth HC-05 zgodnie z opisem na schemacie. Wyjście 12 V z PDB zostało następnie przylutowane do wejścia VCC (najbardziej po lewej) i pinu uziemienia (środek) regulatora napięcia LM7805. Na koniec, każdy z pinów sygnałowych ESC i pinów Tx i Rx modułu Bluetooth HC-05 do pinów cyfrowych Arduino przez dwustronne męskie nagłówki pinów, jak pokazano na schemacie.

Krok 14: Tworzenie aplikacji przez Blynk

Tworzenie aplikacji przez Blynk
Tworzenie aplikacji przez Blynk

Omniboard będzie kontrolowany przez Bluetooth za pomocą dowolnego smartfona za pośrednictwem aplikacji Blynk. Blynk to aplikacja na Androida i iOS, która umożliwia korzystanie z modułów i widżetów, które mogą łączyć się z kilkoma mikrokontrolerami z funkcjami Bluetooth lub bezprzewodowymi lub modułami Bluetooth / bezprzewodowymi, takimi jak HC-05.

1. Zainstaluj Blynk na swoim telefonie.

2. Załóż konto i zaloguj się

3. Utwórz nowy projekt i nazwij go. Nazwałem swój "Kontroler Omniboard", jako mikrokontroler wybrałem Arduino Uno, a jako typ interfejsu wybrałem Bluetooth.

4. Przeciągnij i upuść następujące widżety na ekranie: Bluetooth, Mapa, 2 przyciski i Joystick

Krok 15: Łączenie widżetów z Arduino

Łączenie widżetów z Arduino
Łączenie widżetów z Arduino
Łączenie widżetów z Arduino
Łączenie widżetów z Arduino
Łączenie widżetów z Arduino
Łączenie widżetów z Arduino

Przycisk będzie używany do przełączania trybu deskorolki i trybu deskorolki. Tryb Hoverboard pozwala na precyzyjną kontrolę rotacji i strafe przy zachowaniu prędkości przelotowej. Natomiast tryb deskorolki zapewnia precyzyjną kontrolę nad prędkością i rotacją do przodu. Joystick będzie sterował deskorolką z dwoma stopniami swobody, które są zamieniane przyciskiem przełączania. Na mapie zostanie wyświetlona Twoja aktualna lokalizacja, a także punkty orientacyjne do innych miejsc, do których możesz się udać. Bluetooth umożliwia połączenie interfejsu z modułem Bluetooth.

Ustawienia joysticka:

Wybierz „Scal” jako typ wyjścia i przypisz go do wirtualnego pinu V1

Ustawienie przycisków:

  • Nazwij pierwszy przycisk „Tryb najechania”, a drugi „Cruise Control”.
  • Przypisz wyjście pierwszego przycisku do wirtualnego pinu V2 i zmień tryb na „Przełącznik”.
  • Przypisz wyjście drugiego przycisku do wirtualnego pinu V3 i zmień tryb na „Przełącznik”.
  • Zmień nazwy przełączników pierwszych przycisków na „Najedź” i „Skate” i zachowaj „WŁ” i „WYŁ”.

Ustawienia mapy:

Przypisz wejście do V4

Ustawienia Bluetooth:

Wybierz widżet Bluetooth w aplikacji Blynk i połącz się z modułem. Domyślne hasło modułu Bluetooth to „1234”

Krok 16: Programowanie kontrolera Omniboard

Programowanie kontrolera Omniboard
Programowanie kontrolera Omniboard
Programowanie kontrolera Omniboard
Programowanie kontrolera Omniboard
Programowanie kontrolera Omniboard
Programowanie kontrolera Omniboard

Dynamika Omniboarda została zaprogramowana w oparciu o algorytm dynamiki zaczerpnięty z sekcji „Jak to działa”. Każdy z 3 stopni swobody, do przodu, strafe i rotacja są obliczane niezależnie i nakładają się na siebie, aby uzyskać pełny zakres kontroli ruchu Omniboard. Sterowanie każdym silnikiem jest liniowo proporcjonalne do ruchu joysticka. Prześlij i uruchom następujący kod do Arduino.

#define BLYNK_PRINT Serial

#włączać

#włączać

#włączać

Silnik serwoFR; Silnik serwoFL; Silnik serwoBR; Silnik serwoBL;

bool FRrev silnika = prawda;

bool motorFLrev = prawda; bool motorBRrev = prawda; bool motorBLrev = prawda;

pływak FRang silnika = 330,0*PI/180,0;

pływak silnikaFang = 30,0*PI/180,0; silnik pływakowyBRang = 210,0*PI/180,0; silnik pływakowyBang = 150,0*PI/180,0;

silnik pływakowy FRspeedT;

silnik pływakowyFLspeedT; silnik pływakowyBRprędkośćT; silnik pływakowyBLspeedT;

silnik pływakowyFRspeedR;

silnik pływakowyFLspeedR; silnik pływakowyBRspeedR; silnik pływakowyBLspeedR;

float maxAccel = 10;

bajt do przoduPrędkość = 110;

bajt wsteczPrędkość = 70; bajt stopPrędkość = 90; // zmiana na liczbę wyznaczoną eksperymentalnie

int cruiseControl;

int yawMode;

// Powinieneś uzyskać Auth Token w aplikacji Blynk.

// Przejdź do ustawień projektu (ikona nakrętki). char auth = "8523d5e902804a8690e61caba69446a2";

OprogramowanieSerial Serial BLE(10, 11); // RX, TX

BLYNK_WRITE(V2) {cruiseControl = param.asInt();}

BLYNK_WRITE(V3) {yawMode = param.asInt();} WidgetMap mojaMapa(V4);

BLYNK_WRITE(V1)

{ int x = param[0].asInt(); int y = param[1].asInt();

if (!cruiseControl) calcTranslation(x, y);

if (yawMode) calcRotation(x, y); w przeciwnym razie { motorFRspeedR = 0; silnikFLspeedR = 0; silnikBRprędkośćR = 0; silnikBLspeedR = 0; } writeDoSilników(); }

pusta konfiguracja()

{ motorFR.attach(9); motorFL.attach(6); motorBR.attach(5); motorBL.attach(3); opóźnienie (1500); // czekaj, aż silniki się zainicjują // konsola debugowania Serial.begin(9600);

SerialBLE.początek(9600);

Blynk.begin(SerialBLE, auth);

Serial.println("Oczekiwanie na połączenia…");

// Jeśli chcesz usunąć wszystkie punkty:

//mojaMapa.clear();

int indeks = 1;

pływak lat = 43,653172; pływak lon = -79.384042; mojaMapa.location(indeks, lat, lon, "wartość"); }

pusta pętla()

{ Blynk.run(); }

void calcTranslation(int joyX, int joyY)

{ float normX = (radośćX - 127,0)/128.0; pływak normalny = (radość - 127.0)/128.0; motorFRspeedT = (normY*cos(silFRang) + normX*sin(silFRang)*(1 - 2*silFRrev); motorFLspeedT = (normY*cos(motorFLang) + normX*sin(motorFLang))*(1 - 2*motorFLrev); motorBRspeedT = (normY*cos(silBRang) + normX*sin(silBRang)*(1 - 2*silBRrev); motorBLspeedT = (normY*cos(motorBLang) + normX*sin(motorBLang)*(1 - 2*motorBLrev); }

void calcRotation(int joyX, int joyY)

{ float normX = (radośćX - 127,0)/128.0; pływak normalny = (radość - 127.0)/128.0; motorFRspeedR = joyX*(1 - 2*motorFRrev); silnikFLspeedR = -radośćX*(1 - 2*silnikFLrev); silnikBRprędkośćR = -radośćX*(1 - 2*silnikBRobrot); motorBLspeedR = radośćX*(1 - 2*silbrBrev); }

void writeToMotors()

{ pływak FRspeed = motorFRspeedT + motorFRspeedR; pływak FLspeed = motorFLspeedT + motorFLspeedR; pływak motorBRspeed = motorBRspeedT + motorBRspeedR; pływak motorBLspeed = motorBLspeedT + motorBLspeedR;

long motorFRmapped = map((long) (100*motorFRspeed), -100, 100, backSpeed, forwardSpeed);

long motorFLmapped = map((long) (100*motorFLspeed), -100, 100, backSpeed, forwardSpeed); long motorBRmapped = map((long) (100*motorBRspeed), -100, 100, backSpeed, forwardSpeed); long motorBLmapped = map((long) (100*motorBLspeed), -100, 100, backSpeed, forwardSpeed); motorFR.write(motorFRmapped); motorFL.write(silnik FLmapowany); motorBR.write(silnikBRmapowany); motorBL.write(silnikBLmapowany); }

Krok 17: Instalowanie obudowy elektroniki

Instalowanie obudowy elektroniki
Instalowanie obudowy elektroniki
Instalowanie obudowy elektroniki
Instalowanie obudowy elektroniki
Instalowanie obudowy elektroniki
Instalowanie obudowy elektroniki
Instalowanie obudowy elektroniki
Instalowanie obudowy elektroniki

Aby wszystkie przewody i części nie zwisały z dna, wydrukuj 3D dołączoną obudowę, a następnie przykręć ją do deskorolki za pomocą śrub M5.

Krok 18: Malowanie

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Inspiracją dla projektu górnego pokładu są obwody i wzory PCB. Aby to zrobić, najpierw spód deskorolki oklejam taśmą malarską. Następnie cały górny pokład pokryty jest białą farbą. Po wyschnięciu maskuje się negatywem wzoru obwodu, a następnie maluje czarną powłoką. Następnie ostrożnie zdejmij maskowanie z górnej warstwy i voila, fajnie wyglądająca deskorolka.

Zachęcam do personalizacji projektu własnego Omniboardu i skorzystania ze swobody twórczej.

Krok 19: Test i demo

Image
Image

II nagroda w Konkursie Koła 2017

Konkurs na zdalne sterowanie 2017
Konkurs na zdalne sterowanie 2017

I nagroda w Konkursie Pilotów 2017

Zalecana: