Mundarija:

Arduino MEGA bilan Mastermind Star Wars: 5 qadam (rasmlar bilan)
Arduino MEGA bilan Mastermind Star Wars: 5 qadam (rasmlar bilan)

Video: Arduino MEGA bilan Mastermind Star Wars: 5 qadam (rasmlar bilan)

Video: Arduino MEGA bilan Mastermind Star Wars: 5 qadam (rasmlar bilan)
Video: SHE DIDN'T KNOW THERE WERE CAMERAS... LOOK WHAT SHE DID! 2024, Noyabr
Anonim
Arduino MEGA bilan Mastermind Star Wars
Arduino MEGA bilan Mastermind Star Wars
Arduino MEGA bilan Mastermind Star Wars
Arduino MEGA bilan Mastermind Star Wars
Arduino MEGA bilan Mastermind Star Wars
Arduino MEGA bilan Mastermind Star Wars

Bu isyon uchun noqulay vaqtlar. O'lim yulduzi vayron qilingan bo'lsa -da, Imperator qo'shinlari maxfiy qurol sifatida bepul uskunalar va Arduino -dan foydalanmoqdalar.

Bu bepul texnologiyalarning afzalligi, har qanday odam (yaxshi yoki yomon) ulardan foydalanishi mumkin.

Anoat sayyorasida joylashgan yashirin bazada ular Imperial Destroyer -ni takrorlashga qodir 3D -printerni qurmoqdalar.

Imperiyani mag'lub etishning yagona yechimi shundaki, Luqo Skyuartielles va Obi-Van Banzi qo'mondonlik qilgan bir guruh isyonchilar imperiya qo'shinlarini mag'lub etishadi va maxfiy qurolni yo'q qilish rejalariga kirish imkonini beradigan kalitni olishadi.

Bu kalit 4 ta rangdan iborat bo'lib, uni hal qilish uchun 10 ta urinish mavjud. Faqat to'rtta qoidalar mavjud:

  1. Ranglarni takrorlash mumkin
  2. Oq chiroq sizning to'g'ri rang va pozitsiyaga kirganligingizni ko'rsatadi
  3. Binafsha rang sizning rangingizni urganingizni ko'rsatadi, lekin pozitsiyani emas
  4. Agar yorug'lik bo'lmasa, siz uning rangini ham, o'rnini ham taxmin qilmagansiz.

Siz shoshilishingiz kerak, chunki boshqa tomondan, yovuz Darth Ballmer sizning oldingizda kalitni olishga harakat qiladi. Bunday holda, siz uning nima ekanligini aniqlay olmaysiz va maxfiy qurol rejalariga kira olmaysiz. Sizning vazifangiz muvaffaqiyatsiz bo'ladi.

Kichik Padavan, kuch sizga kalitni ochib berishga hamroh bo'lsin va shu tariqa Galaktikani qutqarib qolsin.

1 -qadam: material

Material
Material

Arduino bilan "Mastermind Star Wars" ni yaratish uchun zarur bo'lgan materiallar uch qismga bo'lingan.

  • Uy -joy qurish uchun duradgorlik va ish yuritish
  • Barcha elektronika uchun komponentlar, kabellar va Arduino
  • Asboblar

Keling, duradgorlikdan boshlaylik. Quyidagi material kerak:

  • 90x60 dan 2 ta MDF plitalari
  • 1 x sabzavotli qog'oz varag'i

Elektron qismda quyidagi materiallar talab qilinadi:

  • 1 x NeoPixel tasmasi 5 metr
  • 1 x Arduino MEGA
  • 1 x 100 mkF kondansatör
  • 4 x qarshilik 470 Ω
  • 5 x qora tugma
  • 5 x oq tugma
  • 1 x quvvat 5V-5A
  • 1 x quvvat 5V-2A

Nihoyat, asboblar qismida biz quyidagilarni qo'lladik:

  • Issiq silikon qurol
  • CNC de MxN lazer
  • Elektr payvandchi
  • Payvandchi qalay

2 -qadam: Dizayn

Dizayn
Dizayn
Dizayn
Dizayn
Dizayn
Dizayn

Loyihaning eng muhim qismlaridan biri bu uyning dizayni. U lazer pichoq bilan kesilgan 3 qismdan iborat.

Baza MDFda 90x60 qismdan olinadi. Materialning o'lchamlarini hisobga oling, chunki sizga etarlicha katta lazerli kesuvchi kerak bo'ladi.

Ushbu qadam oxirida SVG faylini topishingiz mumkin.

Yuqori qopqoq - bu "Yulduzli urushlar" ning tematik chizmalarini, shuningdek tugmalar va piksellar uchun teshiklarni o'z ichiga olgan qopqoq.

U taglik bilan bir xil shaklga ega.

Yon devorlar kerf deb nomlangan lazer yordamida kesilgan. Bu materialning egiluvchan bo'lishiga imkon beradi. Devorlarni joylashtirish uchun ba'zi qismlar qo'llanma bo'lib xizmat qilgan.

Nihoyat, har bir NeoPixel matritsasida panjara mavjud bo'lib, u erda bir tomondan NeoPixel o'rnatiladi, boshqa tomondan NeoPixel nurini tarqatish uchun o'simlik qog'ozi o'rnatiladi. Bu erda barcha SVG fayllari bor, ularni o'zingiz kesishingiz va ishlab chiqarishingiz mumkin.

3 -qadam: elektron yig'ish

Elektron yig'ish
Elektron yig'ish
Elektron yig'ish
Elektron yig'ish
Elektron yig'ish
Elektron yig'ish
Elektron yig'ish
Elektron yig'ish

Elektronni yig'ishning birinchi bosqichi 5 metrli NeoPixel chizig'ini har bir o'yinchi uchun 10 pikselli va 4 ta alohida pikselli 8 ta chiziqdan kesib tashlash edi. Bir tomondan, 10 ta chiziq bir -birining ortidan yig'ilib, ikkinchisi har bir chiziqni bir necha millimetrga parallel qo'yish uchun etarli simi qoldiradi. Ushbu piksel matritsasi har bir o'yin va natijani ko'rsatishga xizmat qiladi. 4 piksel kalitning to'rtta rangini, qolgan to'rt piksel esa natijani ko'rsatadi. Sizga shuni eslatamanki, natijada biz:

  • Agar piksel oq bo'lsa, u muvaffaqiyatli joylashuv va rangga ega.
  • Agar piksel binafsha bo'lsa, rang to'g'ri, lekin pozitsiya emas.
  • Agar piksel o'chirilgan bo'lsa, rang ham, pozitsiya ham to'g'ri emas.

Biz qilgan xatolardan biri bu elektr simlari va GND. Bu osonroq bo'lishi mumkin edi, lekin biz buni keyinroq tushundik. Ma'lumot kabeli buyurtma bo'yicha bajarilishi kerak, chunki piksellarni raqamlash pastdan yuqoriga o'tadi.

Boshqa tomondan, bizda 4 ta alohida piksel bor, ular bir -biriga ulanishi kerak. Bu piksellar bizga tugmalar yordamida tanlagan rangimizni ko'rsatadi.

Ma'lumotni himoya qilish uchun har bir chiziqqa ketma -ket 470Ω qarshilik ulanadi. Har bir pikselli chiziqli ma'lumot kabeli raqamli pin bilan ulangan. Arduino MEGA -da tanlangan pinlar 6, 7, 8 va 9.

Masalan, 6 va 7 - 1 -o'yinchi uchun va 8 -o'yinchi uchun - 9.

Biz ishlatgan tugmalar arja mashinalarining odatiy tugmalari. Biz ular yaxshi ko'rinadi deb o'yladik va shunday bo'ldi.

Boshqa tugmachalardan foydalanish mumkin, lekin ular kichikroq yoki kattaroq bo'lsa, lazer CNC yordamida kesishdan oldin DXF faylini o'zgartirish kerakligini hisobga olish kerak.

O'yinchilarni farqlash uchun ba'zi tugmalar oq, boshqalari qora.

Har bir o'yinchida 4 tugma yuqoriga va 1 tugma pastga ega. Yuqori 4 tugma tugmachaning har bir pozitsiyasi rangini tanlashga xizmat qiladi.

Pastki tugma tasdiqlash uchun ishlatiladi, ya'ni u kalit va piksellar matritsasida rang va pozitsiya muvaffaqiyatli bo'lganligini tekshiradi.

Hamma narsani yig'ishdan oldin biz barcha kabellarni lehimladik. Shunday qilib, sizga ko'p kabel kerak bo'ladi. Bu o'yin hajmiga bog'liq bo'ladi. Bizning holatimizda bu juda katta.

Masalan, chekilgan kabeldan foydalanib, uni ochish va ichki kabellarni olish mumkin. Bu yaxshi yechim. Ularni iloji boricha tartibli bo'lishga harakat qiling, chunki elektr diagrammada ko'rib turganingizdek, Arduino MEGA bilan aloqa o'rnatishingiz kerak bo'ladi.

Hamma askar bo'lgandan so'ng, uni o'rnatishdan oldin sinab ko'rish kerak. U sinovdan o'tkazildi, chunki u korpusga o'rnatilganda issiq silikon bilan yopishib qoladi va agar u ishlamasa, uni murakkab qilib oling. Pikselli matritsalarni joylashtirish uchun, bir tomoni piksellar yopishtirilgan, boshqa tomoni o'simlik qog'ozi bo'lgan qopqoq panjarasi bilan bir xil o'lchamdagi panjara ishlab chiqilgan.

Ushbu qog'oz har bir pikselning yorug'ligini tarqatadi va bu yanada chiroyli effekt beradi. Keyin, bu struktura ichki qismning yuqori qismiga yopishadi. Bu biroz murakkab, lekin ehtiyotkorlik bilan yaxshi natijaga erishiladi.

Oziqlantirish biroz murakkablashdi. Asos sifatida va sxemaga qarab, biz faqat bitta zaryadlovchidan foydalanmoqchi edik. Ammo, birinchi sinovlar va NeoPixel iste'molidan so'ng, biz ikkita zaryadlovchini olishini ko'rdik.

Har bir piksel maksimal 60 mA iste'mol qilishi mumkin. Agar biz 168 pikselga ko'paytirsak, siz taxminan 10 A iste'mol qilasiz.

Garchi bu eng yomon holatda bo'lar edi. Dasturlashda biz NeoPixel -ning intensivligini maksimal darajada oshirmaslikni allaqachon hisobga olganmiz.

Biz hatto 50% ga ham etib bormaymiz, chunki 5V va 5A zaryadlovchi qurilmasi etarli.

Boshqa tomondan, Arduino MEGA alohida zaryadlovchiga ega, uni ulagich yoki USB port orqali ulash mumkin. Mumkin bo'lgan takomillashtirish - butun tizim uchun bitta zaryadlovchining bo'lishi.

4 -qadam: O'yin dasturlash

O'yin dasturlash
O'yin dasturlash
O'yin dasturlash
O'yin dasturlash

Dasturlash ikkita kutubxona yordamida amalga oshirildi: OneButton va Adafruit_NeoPixel.

OneButton kutubxonasi tugmalarni uzilishlar bilan oddiy usulda boshqarishga imkon beradi.

Adafruit_NeoPixel kutubxonasi bizga NeoPixel tasmasini juda oddiy usulda boshqarishga imkon berdi.

Dasturlash turli holatlarga asoslangan bo'lib, ularda dasturiy ta'minot quyidagicha bo'lishi mumkin:

O'yinni boshlash. Shtat = 0

Bu holatda o'yin boshlanadi va ikkala o'yinchida ham o'yin boshlanishini ko'rsatuvchi chiroqlar ketma -ketligi mavjud. Bu holatda tugmalar javob bermaydi.

Boshlang'ich holat. Shtat = 1

Dastlabki holatda, ikkita o'yinchidan biri tasdiqlash tugmachasini (beshinchi tugma) ikki marta bosishini kuting. Bu harakat o'yinni boshlashga imkon beradi.

O'yinga tayyorgarlik. Shtat = 2

O'yinga tayyorgarlik holatida barcha o'zgaruvchilar qayta tiklanadi va kalit uchun tasodifiy ranglarni tanlash boshlanadi.

O'yin holati = 3

3 -holatda o'yin boshlanadi. Har bir o'yinchi tugmachali kalitni tanlaydi va tasdiqlash tugmasini bosish orqali tasdiqlaydi. Bu holat ikki yo'l bilan tugashi mumkin: o'yinchi kalitni kashf qilganda yoki ikkita o'yinchi 10 ta urinishni tugatganda.

Bitta g'olib davlat = 4

Agar o'yinchi g'alaba qozonsa, uning taxtasida yashil chek, yutgan kombinatsiya va yutqazilgan qizil xoch ko'rsatiladi.

Bog'langan o'yin. Shtat = 5

Agar durang natija qayd etilsa, hech qanday taxtada hech narsa ko'rsatilmagan va ikkala o'yinchi taxtasida ham g'olib kombinatsiya ko'rsatilgan.

O'yinda g'olib yoki tengdosh bo'ladimi, keyingi holat ikki marta bosishni kutadigan birinchi holat bo'ladi.

Siz barcha kodlarni quyida topishingiz mumkin. Ispan tilidagi yagona narsa:)

5 -qadam: Sinov va takomillashtirish

O'yin o'ynash orqali sinovdan o'tkaziladi. Yuqoridagi videoda siz to'liq o'yinni ko'rishingiz mumkin.

Bu erda biz Arduino bilan Mastermind Star Wars -ga qo'shilishi mumkin bo'lgan bir nechta yaxshilanishlar haqida o'ylashimiz mumkin.

Keyin men ularni ro'yxatga olaman.

  • Ikki o'yinchi uchun jami 10 ta urinish bilan navbat bilan o'ynash imkoniyatiga ega bo'lish. Qachonki o'yinchi kalitni ursa, boshqa o'yinchi o'yinni ko'radi.
  • Shaxsiy o'yin rejimi, faqat bitta odam o'ynashi mumkin.
  • Har birini o'z kaliti bilan sozlang.
  • OLED ekranini qo'shing.
  • Hamma narsa uchun bitta zaryadlovchidan foydalaning.
  • NodeMCU ESP8266 ga ulaning

Ishonchim komilki, ko'p odamlar ko'p yaxshilanishlarga ega bo'lishadi. Quyidagi izohlarni kutaman.

Va kuch siz bilan bo'lsin.

Tavsiya: