Daftar Isi:

KerbalController: Panel Kontrol Kustom untuk Game Roket Program Kerbal Space: 11 Langkah (dengan Gambar)
KerbalController: Panel Kontrol Kustom untuk Game Roket Program Kerbal Space: 11 Langkah (dengan Gambar)

Video: KerbalController: Panel Kontrol Kustom untuk Game Roket Program Kerbal Space: 11 Langkah (dengan Gambar)

Video: KerbalController: Panel Kontrol Kustom untuk Game Roket Program Kerbal Space: 11 Langkah (dengan Gambar)
Video: Complete Guide to the KAL Controller in Kerbal Space Program! Part 2 - Robotics 2024, Juli
Anonim
KerbalController: Panel Kontrol Kustom untuk Program Luar Angkasa Kerbal Game Roket
KerbalController: Panel Kontrol Kustom untuk Program Luar Angkasa Kerbal Game Roket

Mengapa membangun KerbalController?

Yah, karena menekan tombol dan melempar sakelar fisik terasa jauh lebih penting daripada mengklik mouse Anda. Terutama ketika itu adalah sakelar pengaman merah besar, di mana Anda harus membuka penutupnya terlebih dahulu, jentik sakelar untuk mempersenjatai roket Anda, mulai hitungan mundur dan 3.. 2.. 1.. kami telah lepas landas!

Apa itu KerbalController?

KerbalController, juga disebut sebagai Control Panel, Simpit (simulated cockpit), DSKY (display keyboard) atau custom joystick, adalah perangkat input yang disesuaikan untuk mengontrol pembuatan roket yang populer-dan-terbang-dan-semoga-tidak-meledak game Program Luar Angkasa Kerbal dikombinasikan dengan output opsional dari game, seperti lampu status, tampilan telemetri, dan/atau pengukur bahan bakar.

Build khusus ini mencakup input seperti kontrol rotasi dan translasi melalui joystick, penggeser throttle, banyak tombol dengan lampu status, pengukur bahan bakar LED, dan layar LCD telemetri dengan beberapa mode.

Panduan ini akan mencakup semua yang Anda butuhkan untuk membuat salinan yang identik, atau membuat penyesuaian dan peningkatan di sepanjang jalan, sesuai keinginan Anda. Termasuk adalah:

  • daftar bagian
  • gambar desain digital siap untuk pemotongan laser
  • instruksi pengkabelan
  • kode Arduino
  • Kode untuk plugin KSP yang menyertainya
  • Banyak gambar

Siap untuk lepas landas? Ayo pergi!

Langkah 1: Alat

Alat
Alat

Alat terpenting yang harus Anda miliki untuk bangunan ini adalah besi solder. Itu termasuk beberapa solder, spons pembersih logam untuk membersihkan ujung besi solder dan "tangan ketiga".

Alat lainnya adalah pengupas kawat, pemotong kawat, pinset dan beberapa obeng ukuran kecil.

Langkah 2: Bagian dan Tata Letak Dasar

Bagian dan Tata Letak Dasar
Bagian dan Tata Letak Dasar
Bagian dan Tata Letak Dasar
Bagian dan Tata Letak Dasar

Membuat pengontrol terbaik untuk Anda berarti memilih tombol dan sakelar mana yang ingin Anda terapkan. Karena setiap orang memainkan permainan yang berbeda. Beberapa orang menerbangkan pesawat dan membangun SSTO (satu tahap ke orbit). Yang lain lebih suka penjelajah stasiun ruang angkasa. Dan beberapa hanya ingin hal-hal meledak secara spektakuler!

Ini membantu untuk menggambar semua bagian dalam ukuran perkiraan dan menyeretnya ke dalam program menggambar vektor (seperti Affinity Designer atau Inkscape) atau program menggambar 3D (seperti SketchUp).

Jika Anda menginginkan build yang lebih mudah, Anda cukup menyalin controller saya dan mendapatkan bagian-bagian yang terdaftar pada daftar bagian terlampir.

Langkah 3: Buat Prototipe (opsional)

Buat Prototipe (opsional)
Buat Prototipe (opsional)
Buat Prototipe (opsional)
Buat Prototipe (opsional)

Jika Anda menyalin pengontrol saya, Anda dapat melewati langkah ini.

Jika Anda menggunakan tata letak khusus, saya sarankan menggunakan kotak sepatu terlebih dahulu untuk membuat prototipe yang berfungsi dengan kontrol utama. Ini sangat membantu untuk menyempurnakan posisi kontrol utama. Ini juga bagus untuk mendapatkan kepercayaan bahwa Anda bisa membuatnya bekerja sebelum Anda terus menginvestasikan waktu dan uang dalam pembangunan akhir. Saya sebenarnya memainkan game ini cukup lama dengan pengontrol kotak sepatu saya. Bukankah cara Kerbal menggunakan bagian yang diselamatkan untuk meretas sesuatu bersama-sama?

Langkah 4: Tips Pengkabelan

Tip tentang Pengkabelan
Tip tentang Pengkabelan
Tip tentang Pengkabelan
Tip tentang Pengkabelan
Tip tentang Pengkabelan
Tip tentang Pengkabelan

Saat membuat prototipe, jangan solder semua tombol Anda kecuali Anda ingin melepas soldernya saat Anda mencapai penutup akhir. Saya menyolder beberapa kabel ke tombol dan menggunakan papan tempat memotong roti tanpa solder untuk membuat koneksi sementara ke Arduino.

Saat menghubungkan semua elektronik ke pelat muka akhir, Anda dapat mengurangi kekacauan dengan membuat loop untuk 5V dan ground. Anda tidak menghubungkan semua pin ground langsung ke Arduino, melainkan menghubungkan ground pada satu tombol ke ground pada tombol berikutnya dan loop di sekelilingnya. Akhirnya, Anda terhubung ke Arduino.

Setelah membuat loop untuk daya dan ground, semua koneksi ke pin Arduino tetap ada. Saya sarankan mendapatkan beberapa strip pin header dan menyolder kabel ke sana. Anda dapat menggunakan ini sebagai konektor besar, sehingga Anda masih dapat mencabut Arduino Anda untuk pengujian.

Panjang kabel adalah tindakan penyeimbangan antara cukup pendek untuk menjaga selungkup bebas dari kusut kawat berlebih (yang mungkin mencegah Anda menutup kotak) dan cukup panjang untuk dapat memindahkan bagian dari jalan untuk menyolder bagian lain, kencangkan sekrup dan aduk dengan multimeter Anda saat debugging.

Langkah 5: Mendapatkan Lasercut Faceplate

Mendapatkan Lasercut Faceplate
Mendapatkan Lasercut Faceplate
Mendapatkan Lasercut Faceplate
Mendapatkan Lasercut Faceplate
Mendapatkan Lasercut Faceplate
Mendapatkan Lasercut Faceplate

Mencapai tampilan yang bersih dan profesional sangat sulit saat menggergaji dan melukis dengan tangan. Untungnya, pemotongan laser tidak terlalu mahal lagi. Ini memungkinkan presisi ekstrem, selama desain Anda akurat.

Terlampir adalah desain pelat muka saya, dalam format yang sesuai untuk Affinity Designer dan program menggambar vektor lainnya seperti InkScape gratis.

Saya memiliki lasercut faceplate di Belanda di Lichtzwaard. Mereka telah ditutup dan kegiatan telah diambil alih oleh Laserbeest, di mana saya memiliki kotak laser cut. Setiap toko mungkin memiliki persyaratan desain yang berbeda, jadi tanyakan kepada toko Anda sebelum mengirimkannya. Mereka juga hampir selalu menawarkan bantuan desain dengan tarif per jam.

Hal-hal penting yang perlu diingat:

  • Semuanya harus berbasis vektor. Itu sebabnya logo di desain faceplate saya tidak tergores. Perhatikan ini tidak diperbaiki dalam desain yang dilampirkan.
  • Bahkan teks memiliki basis vektor. Jadi ubah huruf-huruf itu menjadi kurva!
  • Ukuran. Ukuran. Ukuran. Saya gagal memperhitungkan ukuran yang diperlukan untuk memasang joystick dan harus meretasnya. Ternyata baik-baik saja, untungnya. Perhatikan ini diperbaiki dalam desain terlampir.

Setelah memeriksa semuanya dengan seksama, kirimkan ke toko lasercutting. Harapkan untuk membayar 40-50 euro di Belanda dan dapatkan hasil yang indah ini melalui pos pada hari berikutnya!

Langkah 6: Menghubungkan Tombol dan Sakelar

Menghubungkan Tombol dan Sakelar
Menghubungkan Tombol dan Sakelar
Menghubungkan Tombol dan Sakelar
Menghubungkan Tombol dan Sakelar
Menghubungkan Tombol dan Sakelar
Menghubungkan Tombol dan Sakelar

Sebagian besar sakelar dan tombol memiliki konektor berlabel C, NO, NC, +, -. Berikut cara menghubungkannya ke Arduino.

Saklar atau tombol tekan sederhana:

  • Tanah C (umum)
  • Pin digital Arduino NO (biasanya terbuka)

Kami akan mengkonfigurasi pin digital sebagai INPUT_PULLUP, yang berarti Arduino akan menjaga pin pada 5V dan mendeteksi ketika pin di-ground dan memperlakukannya sebagai input. Konektor NO pada sakelar atau tombol adalah Biasanya Terbuka, sehingga rangkaian tidak terhubung. Saat Anda menekan tombol atau mengaktifkan sakelar, sirkuit akan tertutup dan pin diarde.

Tombol tekan dengan LED:

Bagian tombolnya sama seperti di atas. Untuk LED, Anda memasang kabel tambahan:

  • Tanah - (negatif)
  • Pin digital Arduino + (positif)

Bagian ini cukup sederhana. Kami akan menggunakan pin Arduino dalam mode OUTPUT normal.

Sakelar pengaman dengan LED:

Ini sedikit berbeda dan tidak memungkinkan kontrol atas LED terlepas dari posisi sakelar. LED akan selalu hanya menyala ketika sakelar dihidupkan. Mereka memiliki konektor +, - dan sinyal.

  • Tanah - (negatif)
  • 5V + (positif)
  • Pin digital Arduino S (sinyal)

Kami akan menggunakan pin Arduino dalam mode INPUT. Saat sakelar dihidupkan, LED menyala dan pin sinyal menjadi tinggi.

Langkah 7: Menghubungkan Joystick dan LCD

Menghubungkan Joystick dan LCD
Menghubungkan Joystick dan LCD
Menghubungkan Joystick dan LCD
Menghubungkan Joystick dan LCD
Menghubungkan Joystick dan LCD
Menghubungkan Joystick dan LCD

LCD

LCDnya sangat sederhana. Itu hanya membutuhkan daya, ground dan serial.

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

Anda dapat menggunakan konektor JST atau menyolder kabel ke papan secara langsung.

Joystick

Joystick mungkin terlihat menakutkan pada awalnya, tetapi mereka cukup mudah untuk dihubungkan. Ada tiga sumbu yang terhubung dengan cara yang sama. Dua di antaranya menggunakan konektor di bagian bawah joystick. Yang ketiga menggunakan beberapa kabel.

  • Tanah
  • Pin input analog Arduino wiper
  • 5V

Konektor dapat dipasang dalam urutan ini. Jangan khawatir tentang mundur, wiper selalu yang tengah. Jika daya dan ground ditukar, kita bisa membalik sumbu di kode Arduino nanti.

Kabel mungkin memiliki skema pewarnaan yang berbeda pada joystick Anda, tetapi secara umum: dua kabel dengan warna yang sama adalah untuk tombol di atas. Merah atau oranye adalah 5V, Hitam atau coklat adalah Ground. Kabel yang tersisa adalah wiper.

Langkah 8: Pengukur Bahan Bakar Bar LED

Pengukur Bahan Bakar Batang LED
Pengukur Bahan Bakar Batang LED
Pengukur Bahan Bakar Batang LED
Pengukur Bahan Bakar Batang LED
Pengukur Bahan Bakar Batang LED
Pengukur Bahan Bakar Batang LED

Oke. Ini adalah bagian tersulit dari keseluruhan bangunan. Jangan ragu untuk melewati ini pada build pertama Anda, atau tingkatkan dan beri tahu saya!

Saya mendapatkan bilah LED hebat yang ingin saya gunakan sebagai pengukur bahan bakar. LED atas berwarna biru, lalu hijau, lalu oranye, dan akhirnya merah. Jika kita dapat menyalakan satu LED pada satu waktu, kita dapat membiarkannya mewakili tingkat bahan bakar di pesawat ruang angkasa kita.

Saya awalnya memesan IC driver dengan mereka. Mereka bekerja dengan baik! Anda dapat memilih mode titik atau mode batang dan itu akan menampilkan tegangan input analog sebagai satu LED (titik) atau rentang LED (bar). Tetapi Arduino tidak mengeluarkan tegangan analog! Dan fitur PWM yang memungkinkan Anda meredupkan LED dengan meniru tegangan analog, tidak bekerja dengan IC driver ini.

Pada rencana 2: register geser. Anda bisa bekerja dengan ini di setiap starter kit Arduino. Dan Anda dapat mempelajari lebih lanjut tentang mereka di sini:

Rencananya adalah entah bagaimana mengubah level bahan bakar menjadi rangkaian bit yang tepat yang akan mewakili level bahan bakar pada bilah LED. Dengan 5 pengukur bahan bakar, semua level bahan bakar yang terisi harus 100000000010000000001000000000010000000001000000000. Dengan monopropelan kosong, itu akan menjadi: 1000000000100000000001000000000000000000000000000001.

Kedengarannya cukup sederhana. Ada beberapa komplikasi. Register geser memiliki 8 pin, sedangkan bilah LED memiliki 10 LED. Saya menggunakan 7 register geser untuk mendapatkan 56 output. Saat memasangnya, saya melewatkan pin IC di suatu tempat (kami akan memasukkannya ke dalam kode). Dan saya memasang satu batang LED untuk memulai dari ujung yang lain (kami akan memperbaikinya dalam kode). Oh dan matematika Arduino yang kami butuhkan terkadang menggunakan aritmatika floating point yang menyebabkan kesalahan pembulatan (kami akan memperbaikinya dalam kode). Perhatikan bahwa saya membagikan kode di langkah selanjutnya.

Build terakhir saya tidak cocok dengan diagram pengkabelan terlampir, jadi jika Anda membangun kembali pengontrol ini, beberapa pembaruan diperlukan untuk kode. Komentar di bawah jika Anda membutuhkan bantuan.

Setiap LED membutuhkan resistor itu sendiri. Coba beberapa nilai berbeda untuk mencocokkan kecerahan. Hijau tampak jauh lebih terang daripada merah dengan resistor yang sama, jadi ini membantu untuk menyeimbangkannya.

Hasil akhir: alih-alih 50 pin digital yang diperlukan untuk memberi daya pada 5 batang LED, yang dikurangi menjadi 3: sinyal jam, sinyal kait, dan sinyal data.

Langkah 9: Membangun Kandang

Membangun Kandang
Membangun Kandang
Membangun Kandang
Membangun Kandang
Membangun Kandang
Membangun Kandang
Membangun Kandang
Membangun Kandang

Saatnya membalas dendam dengan logo itu!

Saya mengonversi logo menjadi gambar vektor yang tepat sehingga mereka tergores dengan baik. Kali ini, saya memiliki masalah yang berbeda. Lubang sekrup tidak berada di tempat yang tepat untuk pemasangan kotak yang benar. Saya menggunakan MDF 6mm untuk kotaknya. Sayangnya, memasang paku pada bagian tepinya menyebabkan mereka terbelah. Saya meretasnya bersama dengan potongan kayu dan lem tambahan. Banyak lem.

Bagi Anda yang lebih baik dengan kayu, lem dan / atau paku, saya telah melampirkan versi desain tanpa lubang sekrup sama sekali.

Meski kesulitan, hasil akhirnya cukup apik.

Langkah 10: Perangkat Lunak dan Pengujian

Image
Image
Perangkat Lunak dan Pengujian
Perangkat Lunak dan Pengujian

Unduh perangkat lunak berikut untuk membuat pengontrol berfungsi dengan Program Luar Angkasa Kerbal:

Plugin KSP:

File ZIP adalah plugin yang dikompilasi. Sisanya adalah kode sumber yang dapat Anda gunakan untuk memodifikasi plugin dan mengkompilasi versi Anda sendiri. Buka paket plugin ke direktori GamaData.

Kode Arduino:

Gunakan Arduino IDE untuk mengunggah kode ke Arduino Mega di pengontrol Anda.

Lihat di kanan bawah Arduino IDE untuk mengetahui port serial mana yang digunakan pengontrol (mis. /dev/cu.usbmodem1421). Buka file config.xml dari direktori plugin dan pastikan port Anda terisi. Sekarang Anda siap melakukannya!

Anda dapat menggunakan mode debug dengan meletakkan sakelar on/off kecil di kiri atas ke posisi ON. LCD harus menampilkan serangkaian huruf. Setiap huruf mewakili tombol atau sakelar dan beralih antara huruf kecil dan besar saat Anda menekan tombol atau mengaktifkan sakelar. Mengatur sakelar xyz ke Xyz (on/off/off) juga akan menampilkan nilai slider throttle. xYz menampilkan nilai joystick untuk joystick Terjemahan (kiri). xyZ untuk joystick Rotasi (kanan).

Mode LCD

Mode tampilan berikut dapat dipilih untuk tampilan pada LCD dengan menggunakan sakelar x, y dan z

Mode Lepas landas: Kecepatan / Percepatan Suface (G)

Mode Orbit: Apoapsis + Waktu untuk Apoapsis / Periapsis + Waktu untuk Periapsis

Mode Manuver: Waktu ke simpul manuver berikutnya / Sisa Delta-V untuk simpul berikutnya

Mode Pertemuan: Jarak ke target / Kecepatan relatif terhadap target

Mode Masuk Ulang: Persentase panas berlebih (maks) / Perlambatan (G)

Mode Terbang: Ketinggian / nomor Mach

Mode Pendaratan: Ketinggian Radar / Kecepatan Vertikal

Mode Ekstra: belum diterapkan (belum)

Untuk melihat berbagai mode beraksi, lihat video di akhir instruksi.

Langkah 11: Ke Bulan

Image
Image
Ke Bulan!
Ke Bulan!

Jalankan KSP, muat kapal favorit Anda, atau buat yang baru dan pergilah!

Kiat:

  • Gunakan grup tindakan kustom 5 untuk tangga Anda
  • Gunakan grup tindakan kustom 6 untuk panel surya Anda
  • Gunakan grup aksi khusus 7 untuk parasut atau peluncuran drogue
  • Tetapkan sistem pelepasan peluncuran dan decoupler yang sesuai ke grup tindakan Abort
  • Jangan lupa Anda perlu mempersenjatai tombol Staging
Kontes Arduino 2017
Kontes Arduino 2017
Kontes Arduino 2017
Kontes Arduino 2017

Runner Up dalam Kontes Arduino 2017

Kontes Penulis Pertama Kali 2018
Kontes Penulis Pertama Kali 2018
Kontes Penulis Pertama Kali 2018
Kontes Penulis Pertama Kali 2018

Runner Up Pertama Kalinya Author Contest 2018

Direkomendasikan: