Spisu treści:

KerbalController: niestandardowy panel sterowania dla gry rakietowej Kerbal Space Program: 11 kroków (ze zdjęciami)
KerbalController: niestandardowy panel sterowania dla gry rakietowej Kerbal Space Program: 11 kroków (ze zdjęciami)

Wideo: KerbalController: niestandardowy panel sterowania dla gry rakietowej Kerbal Space Program: 11 kroków (ze zdjęciami)

Wideo: KerbalController: niestandardowy panel sterowania dla gry rakietowej Kerbal Space Program: 11 kroków (ze zdjęciami)
Wideo: Kerbal Space Program - Custom Control Panel 2024, Lipiec
Anonim
KerbalController: niestandardowy panel sterowania dla programu rakietowego Kerbal Space Program
KerbalController: niestandardowy panel sterowania dla programu rakietowego Kerbal Space Program

Po co budować KerbalController?

Cóż, ponieważ naciskanie przycisków i rzucanie fizycznych przełączników jest o wiele bardziej istotne niż klikanie myszą. Zwłaszcza, gdy jest to duży czerwony wyłącznik bezpieczeństwa, gdzie najpierw trzeba otworzyć pokrywę, pstryknąć przełącznik, aby uzbroić rakietę, rozpocząć odliczanie i 3.. 2.. 1.. mamy start!

Co to jest kontroler Kerbal?

KerbalController, zwany także panelem sterowania, Simpit (symulowany kokpit), DSKY (klawiatura wyświetlacza) lub niestandardowym joystickiem, to niestandardowe urządzenie wejściowe do sterowania popularnymi rakietami, które budują i latają, i miejmy nadzieję, że nie wybuchną. gra Kerbal Space Program w połączeniu z opcjonalnymi danymi wyjściowymi z gry, takimi jak wskaźniki stanu, wyświetlacze telemetryczne i/lub wskaźniki paliwa.

Ta konkretna wersja zawiera dane wejściowe, takie jak sterowanie obrotem i translacją za pomocą joysticków, suwak przepustnicy, mnóstwo przycisków ze kontrolkami stanu, wskaźniki paliwa LED i telemetryczny wyświetlacz LCD z wieloma trybami.

Ten przewodnik zawiera wszystko, czego potrzebujesz, aby zbudować identyczną kopię lub wprowadzić poprawki i ulepszenia, według własnego uznania. Zawarte są:

  • lista części
  • cyfrowe rysunki projektowe gotowe do cięcia laserowego
  • instrukcje okablowania
  • Kod Arduino
  • Kod dołączonej wtyczki KSP
  • Wiele zdjęć

Gotowy do startu? Chodźmy!

Krok 1: Narzędzia

Narzędzia
Narzędzia

Najważniejszym narzędziem potrzebnym do tej konfiguracji jest lutownica. Obejmuje to trochę lutu, metalową gąbkę czyszczącą do czyszczenia końcówki lutownicy i „trzecią rękę”.

Inne narzędzia to ściągacz izolacji, przecinak do drutu, pinceta i kilka małych śrubokrętów.

Krok 2: Części i podstawowy układ

Części i układ podstawowy
Części i układ podstawowy
Części i układ podstawowy
Części i układ podstawowy

Stworzenie najlepszego możliwego dla Ciebie kontrolera oznacza dokładne wybranie przycisków i przełączników, które chcesz zaimplementować. Ponieważ każdy gra inaczej. Niektórzy latają samolotami i budują SSTO (jednostopniowe na orbitę). Inni wolą łaziki stacji kosmicznych. A niektórzy po prostu chcą, aby rzeczy spektakularnie eksplodowały!

Pomaga narysować wszystkie części w ich przybliżonym rozmiarze i przeciągnąć je w programie do rysowania wektorowego (np. Affinity Designer lub Inkscape) lub programie do rysowania 3D (np. SketchUp).

Jeśli chcesz mieć łatwiejszą kompilację, możesz po prostu skopiować mój kontroler i uzyskać części wymienione na załączonej liście części.

Krok 3: Utwórz prototyp (opcjonalnie)

Utwórz prototyp (opcjonalnie)
Utwórz prototyp (opcjonalnie)
Utwórz prototyp (opcjonalnie)
Utwórz prototyp (opcjonalnie)

Jeśli kopiujesz mój kontroler, możesz pominąć ten krok.

Jeśli wybierasz niestandardowy układ, polecam najpierw użyć pudełka po butach, aby stworzyć działający prototyp z głównymi kontrolkami. Naprawdę pomaga dostroić położenie głównych elementów sterujących. Miło jest również mieć pewność, że możesz go uruchomić, zanim będziesz nadal inwestować czas i pieniądze w ostateczną wersję. Właściwie przez jakiś czas grałem w tę grę za pomocą kontrolera pudełka po butach. Czy nie jest to Kerbalski sposób na wykorzystanie odzyskanych części do zhakowania czegoś razem?

Krok 4: Wskazówki dotyczące okablowania

Wskazówki dotyczące okablowania
Wskazówki dotyczące okablowania
Wskazówki dotyczące okablowania
Wskazówki dotyczące okablowania
Wskazówki dotyczące okablowania
Wskazówki dotyczące okablowania

Tworząc prototyp, nie lutuj wszystkich przycisków, chyba że chcesz je odlutować, gdy dojdziesz do ostatecznej obudowy. Przylutowałem kilka przewodów do przycisków i użyłem płytki stykowej bez lutowania, aby wykonać tymczasowe połączenia z Arduino.

Podłączając całą elektronikę do końcowej płyty czołowej, możesz zmniejszyć bałagan, tworząc pętle dla 5 V i uziemienia. Nie podłączasz wszystkich pinów uziemiających bezpośrednio do Arduino, ale raczej podłączasz uziemienie na jednym przycisku do uziemienia na następnym przycisku i pętlę dookoła. Na koniec łączysz się z Arduino.

Po utworzeniu pętli zasilania i masy, wszystkie połączenia z pinami Arduino pozostają. Polecam zaopatrzyć się w paski pinów i przylutować do nich przewody. Możesz ich użyć jako dużego złącza, dzięki czemu nadal możesz odłączyć Arduino do testów.

Długość przewodów jest równoważeniem między wystarczająco krótkimi, aby obudowa była wolna od plątaniny przewodów (co może uniemożliwić zamknięcie pudełka) a wystarczająco długimi, aby móc przesunąć części z drogi do lutowania inne części, dokręć śruby i grzebaj za pomocą multimetru podczas debugowania.

Krok 5: Uzyskanie płyty czołowej Lasercut

Uzyskanie płyty czołowej Lasercut
Uzyskanie płyty czołowej Lasercut
Uzyskanie płyty czołowej Lasercut
Uzyskanie płyty czołowej Lasercut
Uzyskanie płyty czołowej Lasercut
Uzyskanie płyty czołowej Lasercut

Osiągnięcie czystego, profesjonalnego wyglądu jest bardzo trudne podczas ręcznego cięcia i malowania. Na szczęście cięcie laserowe nie jest już bardzo drogie. Pozwala na ekstremalną precyzję, o ile Twój projekt jest dokładny.

Załączam projekt mojej płyty czołowej, w formatach odpowiednich dla Affinity Designer i innych programów do rysowania wektorów, takich jak darmowy InkScape.

Miałem cięcie laserowe płyty czołowej w Holandii w Lichtzwaard. Od tego czasu zostały zamknięte, a działalność przejęła firma Laserbeest, gdzie wycinałem laserem pudełko. Każdy sklep może mieć inne wymagania dotyczące projektu, więc przed przesłaniem skontaktuj się ze swoim sklepem. Prawie zawsze oferują również pomoc projektową według stawki godzinowej.

Ważne rzeczy, o których należy pamiętać:

  • Wszystko musi być oparte na wektorach. Dlatego logo w moim projekcie płyty czołowej nie zostało wytrawione. Zauważ, że nie jest to ustalone w załączonych projektach.
  • Nawet tekst ma być oparty na wektorach. Więc zamień te litery na krzywe!
  • Mierzyć. Mierzyć. Mierzyć. Nie wziąłem pod uwagę rozmiaru wymaganego do montażu joysticków i musiałem to zhakować. Na szczęście wyszło dobrze. Zauważ, że jest to ustalone w załączonych projektach.

Po dokładnym sprawdzeniu wszystkiego wyślij go do wycinarki laserowej. Spodziewaj się zapłacić 40-50 euro w Holandii i otrzymaj ten piękny wynik pocztą następnego dnia!

Krok 6: Podłączanie przycisków i przełączników

Podłączanie przycisków i przełączników
Podłączanie przycisków i przełączników
Podłączanie przycisków i przełączników
Podłączanie przycisków i przełączników
Podłączanie przycisków i przełączników
Podłączanie przycisków i przełączników

Większość przełączników i przycisków ma złącza oznaczone C, NO, NC, +, -. Oto jak podłączyć je do Arduino.

Prosty przełącznik lub przycisk:

  • Uziemienie C (wspólne)
  • Pin cyfrowy Arduino NO (normalnie otwarty)

Skonfigurujemy pin cyfrowy jako INPUT_PULLUP, co oznacza, że Arduino utrzyma pin na 5V i wykryje, kiedy pin zostanie uziemiony i potraktuje to jako wejście. Złącze NO na przełączniku lub przycisku jest normalnie otwarte, więc obwód nie jest podłączony. Po naciśnięciu przycisku lub przełączeniu przełącznika obwód zostaje zamknięty, a pin zostaje uziemiony.

Przycisk z diodą LED:

Część przycisku jest taka sama jak powyżej. Do diody LED dołączasz dodatkowe przewody:

  • Ziemia - (ujemna)
  • Pin cyfrowy Arduino + (dodatni)

Ta część jest dość prosta. Pin Arduino użyjemy w normalnym trybie OUTPUT.

Wyłączniki bezpieczeństwa z diodą LED:

Są one nieco inne i nie pozwalają na sterowanie diodą LED niezależnie od położenia przełącznika. Dioda LED będzie się świecić zawsze tylko wtedy, gdy przełącznik jest włączony. Posiadają złącze +, - i sygnałowe.

  • Ziemia - (ujemna)
  • 5V+ (dodatni)
  • Pin cyfrowy Arduino S (sygnał)

Pin Arduino użyjemy w trybie INPUT. Gdy przełącznik jest włączony, dioda LED zapala się, a pin sygnałowy przechodzi w stan wysoki.

Krok 7: Podłączanie joysticków i wyświetlacza LCD

Podłączanie joysticków i LCD
Podłączanie joysticków i LCD
Podłączanie joysticków i LCD
Podłączanie joysticków i LCD
Podłączanie joysticków i LCD
Podłączanie joysticków i LCD

LCD

Wyświetlacz LCD jest bardzo prosty. Potrzebuje tylko zasilania, masy i szeregowego.

  • 5V VDD
  • Uziemienie GND
  • Arduino Tx PIN RX

Możesz użyć złącza JST lub przylutować przewody bezpośrednio do płytki.

Joysticki

Joysticki mogą początkowo wyglądać zniechęcająco, ale są dość łatwe do podłączenia. Istnieją trzy osie połączone w ten sam sposób. Dwóch z nich korzysta ze złączy na spodzie joysticka. Trzeci używa trochę przewodów.

  • Grunt
  • Pin wejścia analogowego Wiper Arduino
  • 5V

Złącza można dołączać w tej kolejności. Nie martw się, że cofasz, wycieraczka jest zawsze środkowa. Jeśli zasilanie i masa zostaną zamienione, możemy później odwrócić oś w kodzie Arduino.

Przewody mogą mieć inny schemat kolorów na joysticku, ale ogólnie: dwa przewody o identycznych kolorach są dla przycisku na górze. Czerwony lub pomarańczowy to 5 V, czarny lub brązowy to uziemienie. Pozostały przewód to wycieraczka.

Krok 8: Wskaźniki paliwa na pasku LED

Wskaźniki paliwa z paskiem LED
Wskaźniki paliwa z paskiem LED
Wskaźniki paliwa z paskiem LED
Wskaźniki paliwa z paskiem LED
Wskaźniki paliwa z paskiem LED
Wskaźniki paliwa z paskiem LED

W porządku. To najtrudniejsza część całej budowy. Możesz pominąć to przy swojej pierwszej kompilacji lub ulepszyć ją i daj mi znać!

Mam te świetne paski LED, których chcę użyć jako wskaźników paliwa. Górna dioda LED jest niebieska, potem trochę zielona, potem pomarańczowa i wreszcie czerwona. Jeśli możemy zaświecić jedną diodę LED na raz, możemy pozwolić jej reprezentować poziom paliwa w naszym statku kosmicznym.

Początkowo zamówiłem z nimi układy scalone sterowników. Działają świetnie! Możesz wybrać tryb kropki lub pasek, który wyświetli analogowe napięcie wejściowe jako pojedynczą diodę LED (kropka) lub szereg diod LED (pasek). Ale Arduino nie generuje napięcia analogowego! A funkcja PWM, która pozwala ściemniać diodę LED poprzez emulację napięcia analogowego, nie działa z tymi układami scalonymi sterownika.

Do planu 2: rejestry przesuwne. Możesz z nimi pracować w każdym zestawie startowym Arduino. Więcej o nich możesz dowiedzieć się tutaj:

Plan polega na tym, aby w jakiś sposób przekonwertować poziomy paliwa na odpowiedni ciąg bitów, które będą reprezentować poziom paliwa na paskach LED. Z 5 wskaźnikami paliwa, wszystkie napełnione poziomy paliwa musiałyby wynosić 10000000001000000000100000000010000000001000000000. Przy pustym paliwie jednopaliwowym byłoby to: 10000000001000000000100000000010000000000000000001.

Brzmi dość prosto. Są pewne komplikacje. Rejestry przesuwne mają 8 pinów, a paski LED mają 10 diod LED. Używam 7 rejestrów przesuwnych, aby uzyskać 56 wyjść. Kiedy je podłączałem, pominąłem gdzieś pin IC (dopasujemy to w kodzie). I podłączam jeden pasek LED, zaczynając od drugiego końca (poprawimy to w kodzie). Aha, a matematyka Arduino, której potrzebujemy, czasami używa arytmetyki zmiennoprzecinkowej, która powoduje błędy zaokrąglania (naprawimy to w kodzie). Zwróć uwagę, że udostępniam kod w późniejszym kroku.

Moja ostateczna wersja nie pasowała do załączonego schematu połączeń, więc jeśli przebudujesz ten kontroler, wymagane są pewne aktualizacje kodu. Skomentuj poniżej, jeśli potrzebujesz pomocy.

Każda dioda LED wymaga własnego rezystora. Wypróbuj różne wartości, aby dopasować jasność. Zielony wydaje się znacznie jaśniejszy niż czerwony przy tych samych opornikach, więc pomaga to zrównoważyć.

Wynik końcowy: zamiast 50 cyfrowych pinów wymaganych do zasilania 5 listew LED, jest to zredukowane do 3: sygnał zegara, sygnał zatrzasku i sygnał danych.

Krok 9: Budowanie obudowy

Budowanie obudowy
Budowanie obudowy
Budowanie obudowy
Budowanie obudowy
Budowanie obudowy
Budowanie obudowy
Budowanie obudowy
Budowanie obudowy

Czas zemścić się na tych logo!

Przekonwertowałem logo na odpowiednie rysunki wektorowe, aby były dobrze wytrawione. Tym razem mam inny problem. Otwory na śruby nie znajdują się we właściwych miejscach do prawidłowego montażu pudełka. Do pudełka użyłem 6mm MDF. Niestety wkręcanie gwoździ w krawędzie powoduje ich pękanie. Posiekałem go razem z dodatkowymi skrawkami drewna i klejem. Dużo kleju.

Dla tych z Was, którzy lepiej radzą sobie z drewnem, klejem i/lub gwoździami, załączyłem wersję projektu bez otworów na śruby.

Pomimo trudności efekt końcowy jest dość zgrabny.

Krok 10: Oprogramowanie i testowanie

Image
Image
Oprogramowanie i testowanie
Oprogramowanie i testowanie

Pobierz następujące oprogramowanie, aby kontroler działał z programem Kerbal Space:

Wtyczka KSP:

Plik ZIP to skompilowana wtyczka. Reszta to kod źródłowy, którego możesz użyć do modyfikacji wtyczki i skompilowania własnej wersji. Rozpakuj wtyczkę do katalogu GamaData.

Kod Arduino:

Użyj Arduino IDE, aby przesłać kod do Arduino Mega w kontrolerze.

Spójrz na prawy dolny róg Arduino IDE, aby dowiedzieć się, na którym porcie szeregowym znajduje się kontroler (np. /dev/cu.usbmodem1421). Otwórz plik config.xml z katalogu wtyczek i upewnij się, że twój port jest wypełniony. Teraz możesz iść!

Możesz użyć trybu debugowania, umieszczając mały włącznik/wyłącznik w lewym górnym rogu w pozycji ON. Wyświetlacz LCD powinien wyświetlić ciąg liter. Każda litera reprezentuje przycisk lub przełącznik i przełącza między małymi i dużymi literami po naciśnięciu przycisku lub przełączeniu przełącznika. Ustawienie przełączników xyz na Xyz (wł./wył./wył.) spowoduje również wyświetlenie wartości suwaka przepustnicy. xYz wyświetla wartości joysticka dla joysticka Translacji (lewy). xyZ dla joysticka obrotu (w prawo).

Tryby LCD

Następujące tryby wyświetlania można wybrać do wyświetlania na ekranie LCD za pomocą przełączników x, y i z

Tryb startu: Suface Velocity / Acceleration (G)

Tryb orbity: apocentrum + czas do apocentrum / perycentrum + czas do perycentrum

Tryb manewru: Czas do następnego węzła manewru / Pozostała delta V dla następnego węzła

Tryb spotkania: odległość do celu/prędkość względem celu

Tryb ponownego wejścia: Procentowe przegrzanie (maks.) / Zwolnienie (G)

Tryb latania: wysokość/liczba Macha

Tryb lądowania: wysokość radaru / prędkość pionowa

Tryb dodatkowy: nie zaimplementowany (jeszcze)

Aby zobaczyć różne tryby w akcji, spójrz na wideo na końcu instrukcji.

Krok 11: Na Księżyc

Image
Image
Na Księżyc!
Na Księżyc!

Odpal KSP, załaduj swój ulubiony statek lub zbuduj nowy i gotowe!

Porady:

  • Użyj niestandardowej grupy działania 5 dla swoich drabin
  • Użyj niestandardowej grupy akcji 6 dla swoich paneli słonecznych
  • Użyj niestandardowej grupy akcji 7 dla spadochronów lub spadochronów hamujących
  • Przypisz system ucieczki startu i odpowiednie rozprzęgacze do grupy działania Przerwij
  • Nie zapomnij, że musisz uzbroić przycisk Staging
Konkurs Arduino 2017
Konkurs Arduino 2017
Konkurs Arduino 2017
Konkurs Arduino 2017

Drugie miejsce w konkursie Arduino 2017

Pierwszy Konkurs Autorski 2018
Pierwszy Konkurs Autorski 2018
Pierwszy Konkurs Autorski 2018
Pierwszy Konkurs Autorski 2018

Drugie miejsce w konkursie autorskim po raz pierwszy 2018

Zalecana: