Mundarija:

Azimutal proektsiyasi 3D xaritasini bezatish X xalq musiqasi jumboq o'yini - Arduino: 7 qadam
Azimutal proektsiyasi 3D xaritasini bezatish X xalq musiqasi jumboq o'yini - Arduino: 7 qadam

Video: Azimutal proektsiyasi 3D xaritasini bezatish X xalq musiqasi jumboq o'yini - Arduino: 7 qadam

Video: Azimutal proektsiyasi 3D xaritasini bezatish X xalq musiqasi jumboq o'yini - Arduino: 7 qadam
Video: Лазерный уровень AMO LN 3D-360 - 12 линий, 3D, самовыравнивающийся 2024, Dekabr
Anonim
Image
Image
Kengashni loyihalash
Kengashni loyihalash

KIRISH

Keyingi sahifada sizga geografiya, geometriya, xaritalar, Birlashgan Millatlar va musiqa sohalarini birlashtirgan ikkita asosiy funktsiyali yorug'lik va xalq musiqasi jumboqli o'yini bo'lgan Arduino loyihasini qanday yaratishni o'rgatadi. Olti burchakli tuzilishga asoslanib, qurilma dunyo xaritasini Birlashgan Millatlar Tashkiloti (va uning ramzi) tomonidan qo'llaniladigan xarita proektsiyasi shaklidagi Azimutal teng masofali proektsiyada tasvirlaydi.

Bezatish rejimini faollashtirganda, xaritaning qit'alari RGB LEDlarining tasodifiy kombinatsiyasi bilan aniqlanadigan turli xil ranglarda porlab turardi.

Boshqa tomondan, o'yin rejimi foydalanuvchilardan xalq qo'shiqlarining kelib chiqishini tan olishni talab qiladi (tasodifiy sonlar 1 dan 20 gacha tanlanadi) va o'z javobining kontinental taxtasini to'plamdagi asosiy yog'och taxtaning tegishli joyiga qo'yadi. vaqt (oldindan 1 daqiqa o'rnatilgan).

_

TAMOMATLAR

Haqiqiy materiallar

  • 5 mm RGB LED *20
  • Simlar
  • Rezistorlar *9
  • Arduino taxtasi *1 (har qanday turdagi)
  • Non paneli *3
  • Tugmalar *7
  • LCD displey paneli I2C *1
  • Karton quti (13*9*5,7 dyuym; 33*23*14,5 sm)
  • Yog'och taxta (37,5*29*0,8 sm)
  • Akril plitalar (shaffof * 2, yarim shaffof * 1)
  • Portativ zaryadlovchi *1

Asboblar:

  • Pichoq *1
  • UVni davolash uchun yopishtiruvchi moddalar *1
  • Ikki tomonlama lenta *1 rulon
  • Issiq yopishtiruvchi qurol *1

Mashinalar:

Lazerni kesish mashinasi

Dasturiy ta'minot:

  • Adobe Illustrator dasturi
  • Adobe fotoshop
  • Rino 3D

1 -qadam: taxtani loyihalash

Siz to'g'ridan -to'g'ri biriktirilgan faylni yuklab olishingiz yoki quyidagi amallarni bajarishingiz mumkin.

Xaritaning tavsifi

  1. Google -dan xaritaning konturini yuklab oling

    1. Google "Birlashgan Millatlar Tashkilotining logotipi"
    2. "Asboblar - o'lcham - katta" ni tanlang.
    3. O'zingiz yoqtirgan rasmni yuklab oling (ushbu loyihada ishlatilgan rasm: havola) *Qit'a erlari bilan o'ralgan murakkab chiziqli rasmlarni tanlamaslikka harakat qiling *
  2. Yuklab olingan xaritani bosib chiqarish versiyasiga o'tkazing

    1. Adobe Photoshop -da bo'yash cho'tkasi yordamida kiruvchi joylarni oq rangga bo'yang
    2. Faylni eksport qilish (JPEG)
    3. Faylni Adobe Illustrator -ga import qiling va xaritani kuzatish uchun "rasm izi" funktsiyasidan foydalaning
    4. Faylni eksport qilish (dxf)

Olti burchakli fonni qo'shish

  1. Dxf faylini Rinoga import qiling
  2. "Ko'pburchak" funktsiyasini tanlang va "NumSides" opsiyasi uchun "6" ni kiriting
  3. Radius qiymati uchun "3.5" ni kiriting
  4. 28 ta teng o'lchamli olti burchakni chizish
  5. Faylni 3dm formatida eksport qiling

2 -qadam: lazerni kesish

Image
Image
Lazerli kesish
Lazerli kesish
Lazerli kesish
Lazerli kesish
Lazerli kesish
Lazerli kesish
  1. Oldindan to'ldirilgan faylni xxx -ga import qiling.
  2. Lazerni kesish mashinasi yordamida asosiy tanani yog'och taxtaga va qit'alarni akril taxtalarga (2 shaffof va 1 yarim shaffof) chop eting (video yuqorida keltirilgan)

3 -qadam: Qurilmani yarating

Qurilmani yarating
Qurilmani yarating
Qurilmani yarating
Qurilmani yarating
Qurilmani yarating
Qurilmani yarating

Lazerni kesishdan keyingi taxtalar

  • Akril qit'alar

    1. Har bir qit'aning uchta taxtasini bir-biriga yopishtirish uchun ultrabinafsha nurlanish bilan ishlov beradigan yopishtiruvchi vositalardan foydalaning (o'rta qatlam sifatida yarim shaffof).
    2. Yelimlarning qattiqlashishiga imkon berish uchun yopishtirilgan joylarga porlash uchun UV nuridan foydalaning
  • Yog'och taxta fondi

    1. Asosiy yog'och taxtaga yopishtirilgan kichik er maydonlarini qo'lda olib tashlang
    2. *Agar yog'och taxtaning biron bir qismi sindirilgan bo'lsa, ularni qayta yopishtirish uchun ultrabinafsha nurlar bilan ishlov beradigan yopishtiruvchi vositalardan foydalaning*

Baza yaratish (butun qurilmaning pastki poydevori)

  1. O'lchamlari 13*9*5,7 dyuym (33*23*14,5 sm) bo'lgan mos keladigan o'lchamdagi karton qutini toping.
  2. Yog'och taxtani mos yozuvlar modeli sifatida ishlatib, kontinental qismlarni qutining yuqori yuzasida kuzatib boring
  3. Tugmalarning pastki qismini qutining yuqori yuzasida, har bir tugma markazlashtirilgan har bir kontinental qismda joylashgan.
  4. Izlarga rioya qilib, tugma qismlarini kesish uchun pichoqdan foydalaning
  5. Kuzatilgan qit'a qismlarida tugma atrofidagi qisqa segmentlarni kesish uchun pichoqdan foydalaning
  6. Tugmaning yana ikkita pastki qismini qutining o'ng tomoniga o'tkazing (izlarni bir xil balandlikda tekislashga harakat qiling)
  7. LCD displey taxtasini qutining o'ng tomoniga o'tkazing (oldingi qadamdagi ikkita tugma ustida)
  8. 6 va 7 -qadamdagi izlarga rioya qilib, ikkita tugmachani va LCD qismini kesish uchun pichoqdan foydalaning

4 -qadam: davralarni yarating

Zanjirlarni yarating
Zanjirlarni yarating

Yuqoridagi sxemalarga murojaat qilib, sxemani tuzing.

Eslatma:

  • RGB LEDlari va tugmachalarining rezistorlari boshqacha, aniq ko'ring!
  • Yuqoridagi LCD displey taxtasida I2C modeli yo'qligi sababli u mukammal ulanmagan. (I2C modelli LCD displeylar faqat to'rtta pinli ulanishi kerak)

    • GND -larni displey va Arduino kartasiga ulang
    • Displeydagi VCC -ni non panelidagi musbat pinlar bilan ulang
    • SDA -larni displey va Arduino kartasiga ulang
    • SCL -larni displey va Arduino kartasiga ulang

5 -qadam: Kodni yuklang

Loyihaning kodini bu erda yoki pastda topish mumkin.

Har bir kodlash chizig'ida uning maqsadi va funktsiyasini tushuntiruvchi qo'shimcha yozuv mavjud.

Eslatma:

  • Barcha aniq D pinlari sizning sxemangizga qarab o'zgartirilishi va sozlanishi mumkin
  • Barcha kechiktirilgan soniyalarni turli qiymatlarga o'zgartirish mumkin, lekin ularni o'chirmang! (Bu kechiktirilgan soniyalar kodni mantiqiy oqishiga imkon beradi. Ularsiz kodning ba'zi qismlari ishlamasligi mumkin!)
  • 24 -qatorda ("ko'chadan" so'zining kiritilishi), siz takrorlashni xohlagan takrorlanish sonini belgilashingiz mumkin (asl qiymati 5)
  • Har bir tugmachadagi "bosilsa" va "bosilmasa" halqalarida RGB LED -larining rang kombinatsiyasi sozlanishi va sozlanishi mumkin. (Dastlab, RGB LED -lari bosilsa yashil rangda, bosilmasa qizil rangda yonadi. O'ng va noto'g'ri deb javob berish uchun qiymatlarni ijodiy ranglarga o'zgartirish mumkin)

#qo'shing

#LiquidCrystal_I2C lcd_I2C_27 (0x27, 16, 2) qo'shing; // LCD manzilini 16 ta belgi va 2 qatorli displey uchun belgilang int _R; // int _G RGB LEDlarining qizil qiymatini bildiruvchi R o'zgaruvchisini kiriting; // int _B RGB LEDlarining yashil qiymatini bildiruvchi G o'zgaruvchisini kiriting; // int _SongNumber RGB LEDlarining ko'k qiymatini anglatuvchi B o'zgaruvchisini kiriting; // o'zgarmaydigan SongNumber void setup () {pinMode (10, INPUT) ni kiritish; // pinMode (9, INPUT) xaritasini bezatish tugmasi uchun D10-ni kirish sifatida belgilaydi; // pinMode (8, INPUT) jumboq-o'yin tugmasi uchun D9 ni kirish sifatida belgilaydi; // D8 ni Evrosiyo tugmachasi pinMode (4, INPUT) uchun kirish sifatida belgilaydi; // D4 ni Shimoliy Amerika tugmachasi pinMode (3, INPUT) uchun kirish sifatida belgilaydi; // D3 ni Janubiy Amerika tugmachasi pinMode (2, INPUT) uchun kirish sifatida belgilaydi; // D2 ni Afrika tugmachasi pinMode (1, INPUT) uchun kirish sifatida belgilaydi; // D1 ni Okeaniya tugmasi lcd_I2C_27.init () uchun kirish sifatida belgilaydi; // lcd_I2C_27 LCD displeyini ishga tushirish. backlight (); // LCD displey taxtasining orqa nuri yoqiladi} void loop () {if (digitalRead (10)) {// agar xaritani bezatish tugmasi bosilsa (int i = 0; i <5; ++ i) {// quyidagi tsiklni 5 marta ishlating _R = random (0, 1023); // R o'zgaruvchiga 0 dan 1023 gacha tasodifiy qiymat bering _G = tasodifiy (0, 1023); // G o'zgaruvchiga 0 dan 1023 gacha tasodifiy qiymat bering _B = tasodifiy (0, 1023); // B o'zgaruvchiga 0 dan 1023 gacha analogWrite tasodifiy qiymatini bering (13, (_R /4)); // birinchi guruh o'rnini bosadigan RGB LEDlarining R qiymati va 0 dan 255 gacha analogWrite (12, (_G /4)) o'zgaruvchan qiymatini yozadi; // birinchi guruh o'rnini bosuvchi RGB LEDlarining G qiymati va 0 dan 255 gacha analogWrite (11, (_B /4)) o'zgaruvchan qiymatini yozadi; // birinchi guruh o'rnini bosadigan RGB LEDlarining B qiymati va 0 dan 255 gacha analogWrite (7, (_R /4)) o'zgaruvchan qiymatini yozadi; // ikkinchi guruh uchun RGB LEDlarining R qiymati o'rnini bosadi va 0 dan 255 gacha analogWrite o'zgaruvchan qiymatini yozadi (6, (_G /4)); // ikkinchi guruh uchun RGB LEDlarining G qiymati o'rnini bosadi va 0 dan 255 gacha analogWrite o'zgaruvchan qiymatini yozadi (5, (_B /4)); // ikkinchi guruhni almashtiradigan RGB LEDlarining B qiymati va o'zgarmaydigan qiymatini 0 dan 255 kechiktirishgacha yozadi (3000); // 3000 millisekund kutib turing (3 soniya)} // R, G, B o'zgarmaydigan qiymatlari pastadirda aniqlanganligi sababli, har bir tsiklda besh xil rang kombinatsiyasi bo'ladi} if (digitalRead (9)) {// if jumboq-o'yin tugmasi bosiladi _SongNumber = tasodifiy (1, 20); // SongNumber o'zgaruvchiga tasodifiy qiymatni 1 dan 20 gacha bering lcd_I2C_27.setCursor (0, 0); // kursorni o'rnating, sanash 0 lcd_I2C_27.print (_SongNumber) bilan boshlanadi; // analogWrite LCD displey taxtasida SongNumber qiymatini chop etish (13, 0); // reset va D13 qiymatini 0 analogWrite (12, 0) sifatida yozish; // tiklash va D12 qiymatini 0 analogWrite (11, 0) sifatida yozish; // tiklash va D11 qiymatini 0 analogWrite (7, 0) sifatida yozish; // tiklash va D7 qiymatini 0 analogWrite (6, 0) sifatida yozish; // tiklash va D6 qiymatini 0 analogWrite (5, 0) sifatida yozish; // reset va D5 qiymatini 0 deb yozing, agar (_SongNumber> = 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) {// SongNumber o'zgaruvchan 18 dan 20 gacha kechikish (60000); // o'yinchilar xalq musiqasini tinglashlari uchun 60000 millisekund kuting (60 soniya; 1 min) if (digitalRead (1)) {// agar Okeaniya tugmasi analogWrite (13, 0) bosilsa; // analogD13 qiymatini 0 analogWrite sifatida yozing (12, 255); // analogD12 qiymatini 255 analogWrite (11, 0) deb yozing; // analogD11 qiymatini 0 analogWrite (7, 0) deb yozing; // analogD7 qiymatini 0 analogWrite sifatida yozing (6, 255); // analogW665 analogWrite qiymatini yozing (5, 0); // analogD5 qiymatini 0} deb yozing // barcha RGB LEDlari boshqa yashil rangda yonadi {// agar Oceania tugmasi bosilmasa analogWrite (13, 255); // analogD13 qiymatini 255 analogWrite (12, 0) deb yozing; // analogD12 qiymatini 0 analogWrite (11, 0) deb yozing; // analogD11 qiymatini 0 analogWrite sifatida yozing (7, 255); // analogD7 qiymatini 255 analogWrite (6, 0) deb yozing; // analogD6 qiymatini 0 analogWrite (5, 0) deb yozing; // analogD5 qiymatini 0} deb yozing // barcha RGB LEDlari qizil rangda porlaydi} // SongNumber 18 dan 20 gacha bo'lgan to'g'ri javoblar hammasi Okeaniya bo'lgani uchun, agar "loop" o'yinchining javobining to'g'riligiga kirsa. lcd_I2C_27.clear () emas; // LCD displey kartasining kechikishini tozalash (1000); // 1000 millisekund kuting (1 soniya)}}

6 -qadam: Qurilmani tugatish

  1. Karton qutini oching va ilgari qurilgan sxemalarni joylashtiring (barcha elementlarni o'z ichiga oladi, masalan: uchta taxta, Arduino taxtasi, portativ zaryadlovchi)
  2. Kod va qutining yuqori qismidagi kontinental qismlarga murojaat qilib, tugmachalarni har biriga mos keladigan joyga joylashtiring.

    *Qaysi qit'aning qaysi tugmachasi ekanligini aniqlash uchun siz kodlar yonidagi yozuvlarga murojaat qilishingiz mumkin*

  3. Ikkita "funktsional tugmachani" (D10 xaritasi va D9 jumboq o'yini) qutining o'ng tomonidagi har bir qismga joylashtiring.
  4. LCD displey panelini qutining o'ng tomonidagi kesilgan qismiga o'rnating
  5. Qutini oching va barcha simlar taxtalarga to'g'ri ulanganligiga ishonch hosil qiling
  6. Yog'och taxta poydevorini ikki tomonlama lenta yordamida qutining yuqori qismiga mahkamlang (tugmachalar yog'och taxtalarning kesilgan qismiga to'g'ri kelishi uchun to'g'ri tekislang).
  7. Kichik qismlarni (asosiy qit'alarni emas) to'ldirish uchun issiq yopishtiruvchi tabancadan foydalaning.

7 -qadam: BILDI !!!!!

Jumboq o'yini uchun test pleylistining havolasiga o'ting!

Tavsiya: