Daftar Isi:

Buat Level Roh Listrik: 15 Langkah
Buat Level Roh Listrik: 15 Langkah

Video: Buat Level Roh Listrik: 15 Langkah

Video: Buat Level Roh Listrik: 15 Langkah
Video: Setan ko bisa shalat. Shalat nya aneh. Wkwkwkwk. 2024, Juli
Anonim
Buat Level Roh Listrik
Buat Level Roh Listrik

Gunakan level semangat ini untuk menampilkan kemiringan objek apa pun yang terpasang dengan cepat dan mudah!

Dibuat oleh Kaitlyn dari Raffles Institution.

Langkah 1: Tujuan

Belajar membaca kemiringan dengan akselerometer bawaan mikro:bit.

Belajar bekerja dengan Tampilan LED 5x5 mikro:bit!

Langkah 2: Bahan

1 x BBC mikro: bit

1 x kabel USB Mikro

2 x Baterai AA

1 x Paket Baterai AA Ganda

Langkah 3: Pra Pengodean: Hubungkan Mikro Anda: Bit

  1. Hubungkan BBC micro:bit ke komputer Anda menggunakan kabel micro USB.
  2. Akses editor javascript untuk mikro:bit di makecode.microbit.org.

Langkah 4: Langkah 0: Alur Kode

Sebelum kita mulai menulis kode, kita perlu memutuskan apa yang ingin kita capai dengan program dan dalam urutan apa setiap komponen harus dijalankan.

Untuk level spirit listrik, langkah-langkah yang akan kita ambil dalam kode untuk setiap loop adalah:

  • Baca pembacaan kemiringan dari akselerometer.
  • Ubah pembacaan kemiringan ke tingkat kemiringan untuk ditampilkan pada matriks LED.
  • Periksa perubahan pembacaan tingkat kemiringan dari loop sebelumnya.
  • Buat susunan koordinat LED untuk berbagai kasus kemiringan dan arah.
  • Plot koordinat LED ke matriks LED mikro:bit.

Beberapa fungsi tambahan yang perlu kita sertakan adalah:

  • Kalibrasi untuk posisi miring awal.
  • Kembali ke kalibrasi kemiringan default.

Langkah 5: Langkah 1: Mendefinisikan Variabel

Kita mulai dengan mendefinisikan variabel yang dibutuhkan seperti yang ditunjukkan. Rincian dari beberapa variabel adalah:

  • tiltList: Array yang menyimpan tingkat kemiringan dari nilai 0-4 dalam urutan [Kiri, Kanan, Maju, Mundur]
  • tiltBoundary: Batas tingkat kemiringan pertama antara 0 (tidak miring) dan 1 (sedikit miring)
  • prevState: Array yang menyimpan nilai kemiringan mikro:bit dari loop sebelumnya dalam format yang sama dengan tiltList, digunakan untuk memeriksa perubahan kemiringan antar iterasi
  • ledPlotList: Plot led koordinat array dalam bentuk (x,y). Untuk mendefinisikan sebuah array, kita menggunakan tipe number untuk menunjukkan array bersarang dari variabel tipe: number.

Langkah 6: Langkah 2: Ubah Nilai Kemiringan ke Level

Karena matriks LED 5x5 hanya dapat menampilkan begitu banyak informasi, nilai kemiringan yang sebenarnya tidak akan berguna untuk tampilan.

Sebagai gantinya, fungsi tiltExtent() mengambil parameter num, yang mengacu pada nilai kemiringan dari akselerometer, dan mengonversi nilai kemiringan ini (num) ke tingkat kemiringan dari 0 hingga 4.

0 menunjukkan tidak ada kemiringan pada arah yang diberikan dan 4 menunjukkan kemiringan yang sangat besar, sedangkan -1 dikembalikan ketika ada kesalahan.

Di sini, tiltBoundary dan tiltSensitivity digunakan sebagai nilai batas antara tingkat kemiringan.

Langkah 7: Langkah 3: Kompilasi Tingkat Kemiringan

Dua fungsi checkRoll() dan checkPitch() menulis tingkat kemiringan yang diperoleh dari tiltExtent() ke dalam tiltList untuk sumbu guling (kiri-kanan) dan pitch (maju-mundur).

Sebelum menggunakan nilai kemiringan, kami mengkalibrasinya menggunakan nilai nol untuk pitch (zeroPitch) dan roll (zeroRoll) yang diperoleh dari fungsi kalibrasi yang ditulis kemudian.

Karena pembacaan akselerometer negatif untuk kemiringan ke kiri dan ke depan, kita perlu menggunakan fungsi Math.abs() untuk mendapatkan modulus nilai negatif yang akan diberikan ke fungsi tiltExtent() sebagai parameter untuk dua arah ini.

Langkah 8: Langkah 4: Tulis Fungsi LEDPlotList

Setelah memperoleh tingkat kemiringan di tiltList, sekarang kita dapat menulis fungsi plot yang dipimpin untuk berbagai kasus yang dapat muncul, yaitu:

  • plotSingle(): Miringkan hanya dalam satu arah, mengambil tingkat kemiringan ke arah tertentu sebagai parameter.
  • plotDiagonal(): Miringkan ke dua arah dengan besaran yang sama, mengambil tingkat kemiringan di kedua arah sebagai parameter.
  • plotUnequal(): Miringkan ke dua arah dengan besaran yang berbeda, mengambil tingkat kemiringan di setiap arah sebagai parameter. Menggunakan plotDiagonal() terlebih dahulu dan menambahkan ke array ledPlotList sesudahnya.

Fungsi plotting ini menulis array koordinat led ke ledPlotList untuk diplot nanti.

Langkah 9: Langkah 5: Plot Matriks LED untuk Setiap Kasus

Dengan menggunakan fungsi plot dari tiga kasus pada langkah 4, sekarang kita dapat memplot matriks LED aktual untuk kemungkinan kombinasi level kemiringan yang berbeda. Karena ketiga fungsi pada langkah 4 tidak membedakan arah, kita perlu menyesuaikan nilai koordinat yang diteruskan ke matriks LED untuk memplot LED ke arah yang benar.

PlotResult() berisi beberapa kondisi if yang memeriksa jenis kemiringan dan memplot matriks LED yang sesuai menggunakan led.plot(x, y). Kemungkinan kombinasi kemiringan adalah:

Arah tunggal: Kiri Saja atau Kanan Saja

Arah tunggal: Hanya Maju atau Mundur Saja

Dua arah: Maju-kiri atau Mundur-kiri

Dua arah: Maju-kanan atau Mundur-kanan

Catatan: Untuk kemiringan dalam dua arah, setiap kombinasi dapat memiliki magnitudo yang sama atau berbeda (diperiksa dengan membandingkan maxX dan maxY), dan karenanya diplot menggunakan plotDiagonal() atau plotUnequal() masing-masing.

Langkah 10: Langkah 6: Tulis Fungsi Kalibrasi

Setelah menyelesaikan sebagian besar kode, sekarang kita menambahkan fungsi calibTilt() dan resetTilt().

calibTilt() memungkinkan pengguna untuk menyesuaikan kemiringan ke nol pada posisi mikro:bit saat ini

resetTilt() mengatur ulang kalibrasi papan ke keadaan semula.

Langkah 11: Langkah 7: Tulis Fungsi Status

Kami menambahkan fungsi sederhana checkState() untuk memeriksa apakah tingkat kemiringan telah berubah dari iterasi sebelumnya.

Jika tidak ada perubahan tingkat kemiringan dari iterasi sebelumnya yaitu stateChange == 0, kita dapat langsung melanjutkan ke iterasi berikutnya dan melewatkan plot dari matriks LED, mengurangi perhitungan yang diperlukan.

Langkah 12: Langkah 8: Menyatukan Semuanya Bagian 1

Sekarang kita akhirnya dapat menempatkan semua fungsi yang diperlukan ke dalam infinite loop mikro:bit untuk menjalankannya berulang kali.

Pertama, kita menetapkan tombol A dan B pada mikro:bit ke fungsi calibTilt() dan resetTilt() masing-masing menggunakan input.onButtonPressed(), dan memplot tanda centang pada matriks LED saat kalibrasi selesai.

Langkah 13: Langkah 9: Menyatukan Semuanya Bagian 2

Selanjutnya jalankan fungsi yang diperlukan sesuai dengan alur kode kita pada Langkah 0 dan periksa perubahan status (artinya ada perubahan kemiringan mikro:bit sejak iterasi terakhir).

Jika ada perubahan tingkat kemiringan yaitu stateChange == 1, kode akan memperbarui prevState ke tingkat kemiringan baru dan mengatur stateChange kembali ke 0 untuk iterasi berikutnya, dan memplot tingkat kemiringan yang diperbarui pada matriks LED menggunakan PlotResult().

Langkah 14: Langkah 10: Perakitan

Flash kode yang sudah selesai ke micro:bit Anda.

Pasang micro:bit dan baterai Anda dengan aman ke objek apa pun dan siap digunakan!

Luar biasa

Bersenang-senang dengan tingkat semangat listrik Anda! Dan selagi Anda melakukannya, mengapa tidak mencoba memperluas kemampuan sensor kemiringan atau bahkan mengubahnya menjadi game?

Artikel ini dari TINKERCADEMY.

Langkah 15: Sumber

Artikel ini dari:

Jika Anda memiliki pertanyaan, Anda dapat menghubungi: [email protected].

Direkomendasikan: