Isi kandungan:

Proyeksi Azimuthal Peta 3D Dekorasi X Permainan Teka-teki Muzik Rakyat - Arduino: 7 Langkah
Proyeksi Azimuthal Peta 3D Dekorasi X Permainan Teka-teki Muzik Rakyat - Arduino: 7 Langkah

Video: Proyeksi Azimuthal Peta 3D Dekorasi X Permainan Teka-teki Muzik Rakyat - Arduino: 7 Langkah

Video: Proyeksi Azimuthal Peta 3D Dekorasi X Permainan Teka-teki Muzik Rakyat - Arduino: 7 Langkah
Video: deep web video!!!#deepweb #serem #ngeringerisedap #lucu #experiment #aneh #keajaibandunia 2024, Julai
Anonim
Image
Image
Reka Papan
Reka Papan

PENGENALAN

Halaman berikut akan memberi petunjuk kepada anda bagaimana membuat projek Arduino, yang mempunyai dua fungsi utama - hiasan polos dengan pencahayaan dan permainan teka-teki muzik rakyat, yang menggabungkan bidang geografi, geometri, peta, PBB, dan muzik semuanya dalam satu. Dengan membangun struktur segi enam, perangkat ini menggambarkan peta dunia dalam Proyeksi Jauh Bersamaan Azimuthal, yang merupakan bentuk unjuran peta yang digunakan oleh PBB (dan simbolnya).

Semasa mengaktifkan mod hiasan, benua peta akan bersinar dalam warna yang berbeza yang ditentukan oleh kombinasi nilai RGB secara rawak melalui penggunaan LED RGB.

Mod permainan, sebaliknya, memerlukan pengguna mengenali asal-usul lagu-lagu muzik rakyat (dipilih dengan menghasilkan nombor secara rawak dari 1 hingga 20) dan meletakkan papan benua jawapannya ke kedudukan yang sesuai di papan kayu utama dalam satu set masa (pra-tetapkan selama 1 minit).

_

BEKALAN

Bahan Sebenar

  • LED RGB 5mm * 20
  • Wayar
  • Perintang * 9
  • Arduino Board * 1 (jenis apa pun)
  • Papan roti * 3
  • Butang * 7
  • Papan Paparan LCD I2C * 1
  • Kotak kadbod (13 * 9 * 5,7 inci; 33 * 23 * 14,5 cm)
  • Papan Kayu (37.5 * 29 * 0.8 cm)
  • Papan Akrilik (lutsinar * 2, separa telus * 1)
  • Pengecas Mudah Alih * 1

Alat:

  • Bilah * 1
  • Pelekat UV Cure * 1
  • Pita dua sisi * 1 gulung
  • Hot Glue Gun * 1

Mesin:

Mesin Pemotong Laser

Perisian:

  • Adobe Illustrator
  • Adobe Photoshop
  • Badak 3D

Langkah 1: Reka Papan

Anda boleh memuat turun fail yang dilampirkan secara langsung atau mengikuti langkah-langkah di bawah.

Menggariskan Peta

  1. Muat turun garis besar peta dari Google

    1. Google "logo negara bersatu"
    2. Pilih "alat - saiz - besar"
    3. Muat turun gambar yang paling anda gemari (gambar yang digunakan oleh projek ini: pautan) * Cuba jangan memilih gambar dengan garis rumit yang bertindih dengan tanah benua *
  2. Pindahkan peta yang dimuat turun ke versi percetakan

    1. Warnakan kawasan yang tidak diingini menjadi putih dengan menggunakan fungsi kuas cat di Adobe Photoshop
    2. Eksport fail (JPEG)
    3. Import fail ke dalam Adobe Illustrator dan gunakan fungsi "jejak gambar" untuk menelusuri peta
    4. Eksport fail (dxf)

Menambah Latar Belakang Hexagon

  1. Import fail dxf ke Rhino
  2. Pilih fungsi "poligon" dan masukkan "6" untuk pilihan "NumSides"
  3. Masukkan "3.5" untuk nilai jejari
  4. Lukiskan 28 segi enam bersaiz sama
  5. Eksport fail dalam 3dm

Langkah 2: Pemotongan Laser

Image
Image
Keratan Laser
Keratan Laser
Keratan Laser
Keratan Laser
Keratan Laser
Keratan Laser
  1. Import fail yang telah dilengkapkan sebelumnya ke xxx.
  2. Dengan menggunakan mesin pemotong laser, cetak badan utama di papan kayu dan benua di papan akrilik (2 lutsinar & 1 separa telus) (video disediakan di atas)

Langkah 3: Bina Peranti

Bina Peranti
Bina Peranti
Bina Peranti
Bina Peranti
Bina Peranti
Bina Peranti

Papan Selepas Pemotongan Laser

  • Benua Akrilik

    1. Gunakan pelekat UV yang dapat disembuhkan untuk merekatkan tiga papan setiap benua bersama (dengan separa telus sebagai lapisan tengah)
    2. Gunakan sinar UV untuk menyinari kawasan yang dilekatkan untuk membolehkan pelekat menjadi padat
  • Yayasan Papan Kayu

    1. Secara manual keluarkan kawasan tanah kecil yang tersangkut di papan kayu utama
    2. * Sekiranya ada bahagian papan kayu yang pecah, gunakan pelekat UV yang boleh disembuhkan untuk merekatkannya kembali *

Membina Pangkalan (Dasar Bawah Keseluruhan Peranti)

  1. Cari kotak kadbod bersaiz mencukupi, dengan dimensi sedekat 13 * 9 * 5,7 inci (33 * 23 * 14,5 cm)
  2. Dengan menggunakan papan kayu sebagai model rujukan, jejak bahagian benua ke permukaan atas kotak
  3. Jejak bahagian bawah butang ke permukaan atas kotak, dengan setiap butang berpusat di setiap bahagian benua yang dilacak
  4. Gunakan pisau untuk memotong bahagian butang dengan mengikuti jejaknya
  5. Di bahagian benua yang dilacak, gunakan pisau untuk memotong segmen pendek di sekitar butang
  6. Jejak dua bahagian bawah butang ke sebelah kanan kotak (cuba sejajarkan jejak dengan ketinggian yang sama)
  7. Jejak papan paparan LCD ke sebelah kanan kotak (di atas dua butang pada langkah sebelumnya)
  8. Gunakan pisau untuk memotong dua bahagian butang dan bahagian LCD dengan mengikuti jejak pada langkah 6 dan 7

Langkah 4: Bina Litar

Bina Litar
Bina Litar

Merujuk kepada skema di atas, bina litar.

Catatan:

  • Perintang untuk LED RGB dan butang berbeza, LIHAT dengan jelas!
  • Oleh kerana Papan Paparan LCD di atas tidak mempunyai model I2C, ia tidak disambungkan dengan sempurna. (Papan Paparan LCD dengan model I2C hanya perlu memasukkan empat pin)

    • Sambungkan GND pada paparan dan papan Arduino
    • Sambungkan VCC pada paparan dengan pin positif di papan roti
    • Sambungkan SDA pada paparan dan papan Arduino
    • Sambungkan SCL pada paparan dan papan Arduino

Langkah 5: Muat naik Kod

Kod untuk projek ini boleh didapati di sini atau di bawah.

Setiap baris pengekodan mempunyai catatan sampingan yang menjelaskan tujuan dan fungsinya.

Catatan:

  • Semua pin D khusus boleh diubah dan disesuaikan berdasarkan susun atur litar anda
  • Semua detik yang tertunda boleh diubah menjadi nilai yang berbeza, tetapi JANGAN LEPASKAN! (Detik yang tertunda ini membolehkan kod mengalir dengan lebih logik. Tanpa mereka, beberapa bahagian kod mungkin tidak berfungsi!)
  • Pada baris 24 (pengenalan "untuk gelung"), anda boleh menentukan bilangan pengulangan yang anda inginkan untuk dijalankan (nilai asalnya adalah 5)
  • Gabungan warna LED RGB di setiap gelung butang "jika ditekan" dan "jika tidak ditekan" dapat disesuaikan dan disesuaikan. (Pada asalnya, LED RGB akan bersinar hijau jika ditekan sementara mereka akan bersinar merah jika tidak ditekan. Anda boleh mengubah nilai menjadi warna kreatif untuk menjawab KANAN dan SALAH)

#sertakan

#masuk LiquidCrystal_I2C lcd_I2C_27 (0x27, 16, 2); // tetapkan alamat LCD untuk paparan 16 bar dan 2 baris int _R; // memperkenalkan pemboleh ubah R, yang bermaksud Nilai Merah LED RGB int _G; // memperkenalkan pemboleh ubah G, yang bermaksud Nilai Hijau LED RGB int _B; // memperkenalkan pemboleh ubah B, yang bermaksud nilai Biru LED RGB int _SongNumber; // perkenalkan pembolehubah SongNumber void setup () {pinMode (10, INPUT); // menetapkan D10 sebagai input untuk pinMode butang hiasan peta (9, INPUT); // menetapkan D9 sebagai input untuk pinMode butang permainan teka-teki (8, INPUT); // menetapkan D8 sebagai input untuk pinMode butang Eurasia (4, INPUT); // menetapkan D4 sebagai input untuk pinMode butang Amerika Utara (3, INPUT); // menetapkan D3 sebagai input untuk pinMode butang Amerika Selatan (2, INPUT); // menetapkan D2 sebagai input untuk pinMode butang Afrika (1, INPUT); // menetapkan D1 sebagai input untuk butang Oceania lcd_I2C_27.init (); // mulakan papan paparan LCD lcd_I2C_27. lampu latar (); // hidupkan lampu latar papan paparan LCD} gelung kosong () {if (digitalRead (10)) {// jika butang hiasan peta ditekan untuk (int i = 0; i <5; ++ i) {// jalankan gelung berikut selama 5 kali _R = rawak (0, 1023); // berikan pemboleh ubah R nilai rawak dari 0 hingga 1023 _G = rawak (0, 1023); // berikan pemboleh ubah G nilai rawak dari 0 hingga 1023 _B = rawak (0, 1023); // berikan pemboleh ubah B nilai rawak dari 0 hingga 1023 analogWrite (13, (_R / 4)); // nilai R LED RGB untuk pengganti kumpulan pertama dan menulis nilai pemboleh ubah dari 0 hingga 255 analogWrite (12, (_G / 4)); // nilai G LED RGB untuk pengganti kumpulan pertama dan menulis nilai pemboleh ubah dari 0 hingga 255 analogWrite (11, (_B / 4)); // nilai B LED RGB untuk pengganti kumpulan pertama dan menulis nilai pemboleh ubah dari 0 hingga 255 analogWrite (7, (_R / 4)); // nilai R LED RGB untuk pengganti kumpulan kedua dan menulis nilai pemboleh ubah dari 0 hingga 255 analogWrite (6, (_G / 4)); // nilai G LED RGB untuk pengganti kumpulan kedua dan menulis nilai pemboleh ubah dari 0 hingga 255 analogWrite (5, (_B / 4)); // nilai B LED RGB untuk pengganti kumpulan kedua dan menulis nilai pemboleh ubah dari kelewatan 0 hingga 255 (3000); // tunggu 3000 milisaat (3 saat)} // kerana nilai pemboleh ubah R, G, B ditentukan dalam gelung, akan ada lima kombinasi warna yang berbeza per gelung} jika (digitalRead (9)) {// jika butang permainan teka-teki ditekan _SongNumber = rawak (1, 20); // berikan pemboleh ubah SongNumber nilai rawak dari 1 hingga 20 lcd_I2C_27.setCursor (0, 0); // tetapkan kursor, pengiraan bermula dengan 0 lcd_I2C_27.print (_SongNumber); // mencetak nilai SongNumber ke analogWrite papan paparan LCD (13, 0); // tetapkan semula dan tuliskan nilai D13 sebagai 0 analogWrite (12, 0); // tetapkan semula dan tuliskan nilai D12 sebagai 0 analogWrite (11, 0); // tetapkan semula dan tuliskan nilai D11 sebagai 0 analogWrite (7, 0); // tetapkan semula dan tuliskan nilai D7 sebagai 0 analogWrite (6, 0); // tetapkan semula dan tuliskan nilai D6 sebagai 0 analogWrite (5, 0); // tetapkan semula dan tuliskan nilai D5 sebagai 0 jika (_SongNumber> = 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) {// jika nilai SongNumber pemboleh ubah adalah dari 18 hingga 20 kelewatan (60000); // tunggu 60000 milisaat untuk pemain mendengar muzik rakyat (60 saat; 1 minit) jika (digitalRead (1)) {// jika butang Oceania ditekan analogWrite (13, 0); // analogTuliskan nilai D13 sebagai 0 analogWrite (12, 255); // analogWrite nilai D12 sebagai 255 analogWrite (11, 0); // analogWrite nilai D11 sebagai 0 analogWrite (7, 0); // analogTuliskan nilai D7 sebagai 0 analogWrite (6, 255); // analogWrite nilai D6 255 analogWrite (5, 0); // analogWrite nilai D5 sebagai 0} // semua LED RGB akan bersinar dengan warna hijau yang lain {// jika butang Oceania tidak ditekan analogWrite (13, 255); // analogWrite nilai D13 sebagai 255 analogWrite (12, 0); // analogTuliskan nilai D12 sebagai 0 analogWrite (11, 0); // analogWrite nilai D11 sebagai 0 analogWrite (7, 255); // analogTuliskan nilai D7 sebagai 255 analogWrite (6, 0); // analogWrite nilai D6 sebagai 0 analogWrite (5, 0); // analogTuliskan nilai D5 sebagai 0} // semua LED RGB akan bersinar dengan warna merah} // kerana jawapan yang betul untuk SongNumber 18 hingga 20 adalah semua Oceania, "if loop" ini mengakses sama ada jawapan pemain betul atau bukan lcd_I2C_27.clear (); // kosongkan kelewatan papan paparan LCD (1000); // tunggu 1000 milisaat (1 saat)}}

Langkah 6: Menyelesaikan Peranti

  1. Buka kotak kadbod dan masukkan ke dalam litar yang dibina sebelumnya (termasuk semua elemen, mis. Tiga papan roti, papan Arduino, pengecas mudah alih)
  2. Merujuk kepada kod dan bahagian benua yang dilacak di bahagian atas kotak, masukkan butang ke setiap kedudukannya yang sesuai

    * Anda boleh merujuk pada catatan sisi belakang kod untuk memastikan butang pin untuk benua mana *

  3. Masukkan dua "butang fungsi" (peta-deco D10 dan teka-teki D9) ke dalam setiap bahagian potong di sebelah kanan kotak
  4. Pasang papan paparan LCD ke bahagian potongnya di sebelah kanan kotak
  5. Buka kotak dan pastikan semua wayar disambungkan dengan betul ke papan
  6. Pasang alas papan kayu ke bahagian atas kotak dengan menggunakan pita dua sisi (pastikan untuk menyelaraskan dengan betul sehingga butang dapat masuk tepat ke bahagian potongan papan kayu)
  7. Gunakan pistol gam panas untuk mengisi bahagian wilayah kecil (bukan benua utama)

Langkah 7: SELESAI !!!!

Untuk permainan teka-teki, pergi ke pautan untuk senarai main ujian!

Disyorkan: