Mündəricat:

Kod Oyunu, Arduino Tabanlı Bulmacalar Qutusu: 4 Addım (Şəkillərlə)
Kod Oyunu, Arduino Tabanlı Bulmacalar Qutusu: 4 Addım (Şəkillərlə)

Video: Kod Oyunu, Arduino Tabanlı Bulmacalar Qutusu: 4 Addım (Şəkillərlə)

Video: Kod Oyunu, Arduino Tabanlı Bulmacalar Qutusu: 4 Addım (Şəkillərlə)
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Iyul
Anonim
Image
Image
Kod oyununu sındırın, Arduino əsaslı tapmaca qutusu
Kod oyununu sındırın, Arduino əsaslı tapmaca qutusu
Kod oyununu sındırın, Arduino əsaslı tapmaca qutusu
Kod oyununu sındırın, Arduino əsaslı tapmaca qutusu

Tinkercad Layihələri »

Bu Təlimat kitabında, təsadüfi olaraq yaradılan kodu seyfə çıxarmaq üçün fırlanan bir kodlayıcı yığımdan istifadə etdiyiniz kod oyununun necə qurulacağını sizə göstərəcəyəm. Kassanın ön tərəfində, təxmin etdiyiniz rəqəmlərin nə qədərinin doğru olduğunu və nə qədərinin doğru yerdə olduğunu söyləmək üçün 8 LED var.

Kassa əvvəlcə açıqdır və içəriyə bir şey qoymağa imkan verir. Arduino və batareya arxa hissədə ayrı bir bölmədə yerləşir. Daha sonra qapının içərisində bir servo istifadə edərək edilən kassanı kilidləmək üçün düyməni itələyirsiniz. Sonra rəqəmləri seçmək üçün düyməni çevirərək və hər bir rəqəmi təsdiqləmək üçün düyməni basaraq kodu daxil etməlisiniz. Dördüncü rəqəminiz seçildikdən sonra, qapıdakı qırmızı və yaşıl LED -lərdən istifadə edərək, seyfinizdə neçə rəqəminizin doğru olduğunu və nə qədərinin doğru yerdə olduğunu göstərir.

Qırmızı LED doğru rəqəmi, yaşıl LED də doğru yerdə olduğunu göstərir. Beləliklə, kodu sındırmaq və seyfi açmaq üçün dörd qırmızı və yaşıl LED -in hamısını yandırmalısınız.

Kassa, kodu sındırmaq üçün nə qədər təxmin etdiyinizi izləyir və onu sındırmağı bacardığınız zaman göstərilir. Əvvəlcə mürəkkəb görünə bilər, amma əslində o qədər də çətin deyil, sadəcə əvvəlki təxminlərinizi xatırlamalı və onlara əsaslanmalısınız. Əksər hallarda, ilk təxminlərinizin nə qədər şanslı olduğuna bağlı olaraq kodu 5-10 -a qədər təxmin edə bilərsiniz.

Bu təlimatdan zövq alırsınızsa, zəhmət olmasa Arduino yarışmasında ona səs verməyi düşünün.

Təchizat

Bu Crack The Code təhlükəsiz qutusunu qurmaq üçün sizə lazım olacaq:

  • Arduino Uno - Buradan Alın
  • I2C OLED Ekranı - Buradan Alın
  • Pushbutton Encoder - Burada Alın
  • 4 x 5 mm Qırmızı LED - Burada Alın
  • 4 x 5 mm Yaşıl LEDlər - Burada Alın
  • 8 x 220Ω Rezistorlar - Buradan Alın
  • Mikro Servo - Burada Alın
  • Şerit Kabeli - Burada Alın
  • Başlıq Zolaqları - Burada Alın
  • Güc Anahtarı - Burada Alın
  • 3 mm MDF təbəqəsi - buradan alın

Ayrıca bəzi əsas vasitələrə, ağac yapışqanına, yapışqan tabancasına və bir lehimləmə dəmirinə ehtiyacınız olacaq.

Təhlükəsiz qutunun hissələri lazerlə kəsilməlidir. Lazer kəsiciyə girişiniz yoxdursa, onlayn lazer kəsmə xidmətindən istifadə etməyi düşünün, onlar olduqca əlverişli hala gəldilər və komponentləri kəsib qapınıza çatdıracaqlar.

Bu, K40 Lazer Kesici - Təlimatlandırmada istifadə etdiyim lazer kəsicidir

Addım 1: Qutunu yığın

Qutunu yığın
Qutunu yığın
Qutunu yığın
Qutunu yığın
Qutunu yığın
Qutunu yığın
Qutunu yığın
Qutunu yığın

3 mm MDF -dən kəsiləcək Inkscape -dəki kassanı hazırladım. İstəsəniz parçaları 3 mm akril və ya kontrplakdan da kəsə bilərsiniz. Fərqli bir qalınlıq materialı istifadə edirsinizsə, qutunun komponentlərindəki yuvaları bir -birinə düzgün oturacaq şəkildə tənzimləməlisiniz.

Lazer kəsmə fayllarını buradan yükləyə bilərsiniz.

Qutunun kənarını təşkil edən 6 panel var, arxa və ön hissələrdə ön və arxa qapılar üçün kəsiklər var. Panellər çap sənədində etiketlənmişdir ki, onları izləyə biləsiniz.

Dial, daha sonra bir -birinə yapışdırılan bəzi lazer kəsik parçaları istifadə edərək hazırlanır.

Kassaya daha çox bənzəmək üçün qutunun yuxarı və iki tərəfinə yapışdırılmış üç dekorativ panel var. Qapını təşkil edən iki panel və təhlükəsiz bölməni elektronika bölməsindən ayırmaq üçün qutunun ortasına gedən bölücü panel də var.

Parçalar tək bir MDF 400 x 500mm parçasına uyğundur və lazer kəsiciniz bütün parçaları bir anda kəsmək üçün kifayət qədər böyük deyilsə daha kiçik hissələrə bölünə bilər.

Dekorativ panelləri əvvəlcə üst və yan tərəflərə yapışdırmağa başladım. Parçaların hansının olduğunu bilmək üçün onları düzgün qaydada aldığınızdan əmin olun. Üç fərqli parça var, üst və alt eyni, tərəflər eyni, ön və arxa eyni.

Panellər quruduqdan sonra qutunu yığa bilərsiniz.

Orta bölücü üçün kəsiklərin tərəflərdə olduğundan əmin olun. Bunlar, qutunun önündən Arduino və batareyanın oturduğu qutunun arxasına qədər olan bütün telləri çəkməkdir.

Menteşələr də lazerlə kəsilir və qapını düzdükdən sonra sadəcə yerə yapışdırılır. Qapıya paralel olduğundan əmin olun, yoxsa onu açmaqda çətinlik çəkəcəksiniz. Qapının içindən keçərkən qutunun kənarına sürtülməməsi üçün qapının daxili menteşeli kənarından bir az zımpara etmək lazım ola bilər.

Arxa qapağın vidalarını deşmək üçün dörd kvadratı arxa panelin arxasındakı künclərə yapışdırın.

Sonra vintlər üçün deliklər qaza bilərsiniz və ekranı, Arduino, arxa qapağı və son olaraq kodlayıcını quraşdırmağa başlaya bilərsiniz.

Addım 2: Elektronikanı qoşun

Elektronikaya qoşun
Elektronikaya qoşun
Elektronikaya qoşun
Elektronikaya qoşun
Elektronikaya qoşun
Elektronikaya qoşun

Tinkercad Circuits -də bir çörək taxtasında dövrə dizayn etdim və sonra OLED ekrana əlavə etdim.

6 -dan 13 -ə qədər rəqəmsal IO pinlərinə qoşulmuş 8 LED -lərimiz var. Kilidləmə servosu pin 5 -ə bağlıdır. 2, 3 və 4 -cü pinlərə bağlı olan kodlayıcı və OLED ekranı Arduinonun I2C interfeysinə bağlıdır.

Mənfi LED -ə birbaşa lehimlənmiş hər bir LED üçün 220 ohm rezistor istifadə etdim və kabelləri səliqəli saxlamaq və hər bir Arduino pininə hansı telin getməsi lazım olduğunu izləmək üçün rəngli lent kabelindən istifadə edərək komponentləri birləşdirdim.

Şerit kabellərini arxa hissəyə itələdim və Arduino'ya qoşulmaq üçün lent kabelinin üstünə bir neçə pin başlığı qoydum.

Arxa qapağa bir güc açarı da bağladım və oyunu gücləndirmək üçün şarj edilə bilən bir batareyaya bağlamaq üçün bunu bir batareya fişinə bağladım. İstəsəniz 9V batareya da istifadə edə bilərsiniz.

Nəhayət, kilidləmə servosunu qapının kənarına doğru yerləşdirməlisiniz ki, qutudakı dodağın üstündən keçsin və qolu qutunu kilidləmək üçün dodağın içindən yuxarı itələsin. Bu ən güclü kilidləmə mexanizmi deyil, amma həqiqətən sadədir və oyunun məqsədi üçün yaxşı işləyir.

Addım 3: Arduino proqramlaşdırılması

Arduino proqramlaşdırma
Arduino proqramlaşdırma
Arduino proqramlaşdırma
Arduino proqramlaşdırma

Kodun çox olduğu üçün hər zamankı qədər detallı keçməyəcəyəm. Bu linkdən yükləyə biləcəyiniz kodla birlikdə tapa biləcəyiniz hər bir hissəni izah edən ətraflı bir yazı etdim - Kod Oyunu Kodunu Çatdırın.

Xülasə; OLED displeyə və servoya nəzarət etmək üçün kitabxanaları idxal etməklə başlayırıq.

Sonra ekran üçün parametrləri təyin edirik və bütün dəyişənlərimizi yaradırıq. 2 və 3 -cü pinlərdə yüksələn kənar kəsilmələr nəticəsində edildiyi üçün kodlayıcının dönüşlərini izləməyə həsr olunmuş bir neçə dəyişən var.

Təsadüfi olaraq yaradılan kodu saxlamaq üçün və istifadəçilərin indiki ehtimalını saxlamaq üçün iki kod dizisi yaradılmışdır.

Quraşdırma funksiyasında ekranı işə salırıq, servonu bağlayırıq, IO pin rejimlərini qururuq və sonra Crack The Code mətn animasiyasını ekranda göstəririk.

Döngə funksiyaları LED -ləri yandırır və istifadəçinin oyuna başlamaq üçün düyməni itirməsini gözləyən təhlükəsiz kilidləmə mesajını göstərir. Eyni kod, cəhdlərin sayını göstərən və yeni bir oyuna başlamaq üçün yığma düyməsini gözləyən oyunun sonunda işlədilir.

Enkoder düyməsində bir neçə borc kodu var və bir dəfə itildikdə, servo kassanı kilidləyir və təsadüfi kod yaradılır. Kod daha sonra istifadəçidən öz tahminini daxil etməsini istəmək üçün bir funksiya çağırır və sonra başqa bir proqnozu yoxlamaq üçün bu istifadəçi kodu düzgün təxmin edənə qədər təkrarlanır.

Göstərilən kodu yeniləmək üçün bir funksiya var, bu kodlayıcı hər dəfə çevrildikdə və göstərilən kodun dəyişdirilməsi lazım olduqda çağırılır.

Yeni bir kod yaratmaq funksiyası, kod sırasındakı dörd elementin hər birinə təsadüfi bir rəqəm təyin edir.

Bir kod təxmin etmə funksiyası istifadəçiyə kodlayıcıdan istifadə edərək bir rəqəm seçməsinə və sonra enkoderi aşağı itələyərək hər bir rəqəmin daxil edilməsini təsdiqləməsinə imkan verir.

Çek kodunu təxmin etmə funksiyası daha sonra təxmin edilən kodu nəzərdən keçirir və neçə rəqəmin doğru olduğunu və nə qədərinin doğru yerdə olduğuna qərar verir.

Yeniləmə LED funksiyası istifadəçilərin təxminlərinə əsaslanaraq doğru sayda qırmızı və yaşıl LEDləri dəyişir.

Başlanğıc ani funksiyası, başlanğıcda Crack The Code animasiyasını göstərir.

Nəhayət, iki kəsmə funksiyası kodlayıcının girişini idarə edir, biri rəqəmi saat əqrəbi istiqamətində yuxarıya, biri isə saat əqrəbinin əksinə döndərildikdə aşağıya doğru artırır.

Addım 4: Kod Oyunu Çatdırın

Kod Oyunu Çatdırın
Kod Oyunu Çatdırın
Kod Oyunu Çatdırın
Kod Oyunu Çatdırın
Kod Oyunu Çatdırın
Kod Oyunu Çatdırın
Kod Oyunu Çatdırın
Kod Oyunu Çatdırın

Oyunun necə oynanılacağını öyrənməyin ən yaxşı yolu, əvvəlində videoya baxmaqdır, oyunun sonuna yaxın oynandığına dair iki nümunə var.

Seyf əvvəlcə kilidini açır və içərisinə bir şey qoymağa imkan verir.

Daha sonra kassanı kilidləmək və yeni bir kod yaratmaq üçün düyməni basırsınız.

Güman edilən kod, rəqəmi artırmaq və sonrakı rəqəmə keçmək və ya dörd rəqəm seçildikdən sonra kodu təsdiqləmək üçün düyməni basmaq üçün kadrdan istifadə etməklə daxil edilir.

Ön tərəfdəki LEDlər, ehtimal etdiyimiz şeyin doğru olduğunu söyləmək üçün yanır.

Doğru kodu təxmin edib kassanı yenidən açana qədər növbəti təxmininizi etmək üçün bu rəydən istifadə edirsiniz. Doğru kodu daxil etdikdən sonra seyf açılır və kodu sındırmağınız üçün edilən cəhdlərin sayı göstərilir.

Öz kod şifrənizi düzəltməkdən zövq alın. Bu təlimatı bəyənmisinizsə, zəhmət olmasa Arduino yarışmasında səs verməyi düşünün.

Arduino Müsabiqəsi 2020
Arduino Müsabiqəsi 2020
Arduino Müsabiqəsi 2020
Arduino Müsabiqəsi 2020

Arduino 2020 yarışmasında ikinci mükafat

Tövsiyə: