Mundarija:

Stol o'yinlari uchun Arduino Dice: 4 qadam
Stol o'yinlari uchun Arduino Dice: 4 qadam

Video: Stol o'yinlari uchun Arduino Dice: 4 qadam

Video: Stol o'yinlari uchun Arduino Dice: 4 qadam
Video: Kattalar uchun o’yinchoq 2024, Iyul
Anonim

Muallif tomonidan batafsil:

UTSOURCE bilan elektron zarlar
UTSOURCE bilan elektron zarlar
UTSOURCE bilan elektron zarlar
UTSOURCE bilan elektron zarlar
D882 yordamida suv sathini o'zgartirish
D882 yordamida suv sathini o'zgartirish
D882 yordamida suv sathini o'zgartirish
D882 yordamida suv sathini o'zgartirish
Atrofdagi real vaqt soati
Atrofdagi real vaqt soati
Atrofdagi real vaqt soati
Atrofdagi real vaqt soati

Haqida: YouTuber, Drone Manufaturer RoboCircuits_com haqida batafsil »

Siz bu zarlarni LUDO va boshqa stol o'yinlarini o'ynab ishlatgan bo'lishingiz mumkin. Ammo elektron ixlosmand sifatida men bu tendentsiyani o'zgartirishim kerak.

Shunday qilib, men elektron zar yasashga qaror qildim. Men o'z maqsadim uchun Arduino -dan foydalandim.

1 -qadam: DIY Arduino

Bu arduino men tomonidan atmega 328p mikrokontroller yordamida qilingan. PCB "jlcpcb.com" dan buyurtma qilinadi, chunki ular arzon narxlarda eng yaxshi kompyuterlarni taqdim etadi. Keyin men barcha qismlarni lehimladim va nihoyat shunday yoqimli ko'rinishga ega bo'ldim Arduino UNO.

Barcha sxemalar va fayllar mening veb -saytim maqolasida keltirilgan -

2 -qadam: Loyihani tuzish

xop!!!!

Arduino haqida etarli. Endi loyihani tuzamiz. Tasodifiy qiymatlar uchun men tugmani bosganimda 1dan 6gacha qiymatlarni olish uchun arduino ideda tasodifiy funktsiyadan foydalanardim. Loyihaning qanday amalga oshirilganligini bilish uchun ushbu to'liq videoni tomosha qiling.

3 -qadam: kod

/* Bu kod RoboCircuits tomonidan ishlab chiqilgan

Menga youtube -da https://youtube.com/robocircuits yozing yoki robocircuits.com saytiga tashrif buyuring. Biz doimo kutubxonani kiritishimiz kerak*/

#"LedControl.h" ni qo'shing

/* Endi biz bilan ishlash uchun LedControl kerak. ***** Bu pin raqamlari sizning apparatingiz bilan ishlamasligi mumkin ***** pin 12 DataInga ulangan CLK piniga ulangan 10 LOADga ulangan Bizda faqat bitta MAX72XX bor. */

LedControl lc = LedControl (12, 11, 10, 1);

/ * biz har doim displey yangilanishlari o'rtasida biroz kutamiz */ imzosiz uzoq kechikish vaqti = 500; olti bayt [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; besh bayt [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; to'rt bayt [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; bayt uch [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; ikki bayt [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; bayt bir [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup () { / * MAX72XX ishga tushganda quvvatni tejash rejimida, biz uyg'onish qo'ng'irog'ini qilishimiz kerak * / lc.shutdown (0, noto'g'ri); / * Yorqinlikni o'rta qiymatlarga o'rnating */ lc.setIntensity (0, 8); / * va displeyni tozalang */ lc.clearDisplay (0); }

/* Bu usul belgilarni ko'rsatadi (butun belgilarni ko'rish uchun sizga kamida 7x7 diod kerak)* /void one1 () { /* bu erda* / /* belgilariga oid ma'lumotlar, ularni kichik harflar bilan birma -bir ko'rsatish. kechiktirish */ lc.setRow (0, 0, bitta [0]); lc.setRow (0, 1, bitta [1]); lc.setRow (0, 2, bitta [2]); lc.setRow (0, 3, bitta [3]); lc.setRow (0, 4, bitta [4]); lc.setRow (0, 5, bitta [5]); lc.setRow (0, 6, bitta [6]); lc.setRow (0, 7, bitta [7]); kechikish (kechikish); } void two2 () { / * bu erda * / / * belgilariga oid ma'lumotlar, ularni kichik kechikish bilan birma -bir ko'rsatadi * / lc.setRow (0, 0, two [0]); lc.setRow (0, 1, ikkita [1]); lc.setRow (0, 2, ikkita [2]); lc.setRow (0, 3, ikkita [3]); lc.setRow (0, 4, ikkita [4]); lc.setRow (0, 5, ikkita [5]); lc.setRow (0, 6, ikkita [6]); lc.setRow (0, 7, ikkita [7]); kechikish (kechikish); } void three3 () { / * bu erda * / / * belgilariga oid ma'lumotlar, ularni kichik kechikish bilan * / lc.setRow (0, 0, uch [0]) birma -bir ko'rsatadi; lc.setRow (0, 1, uch [1]); lc.setRow (0, 2, uch [2]); lc.setRow (0, 3, uch [3]); lc.setRow (0, 4, uch [4]); lc.setRow (0, 5, uch [5]); lc.setRow (0, 6, uch [6]); lc.setRow (0, 7, uch [7]); kechikish (kechikish); } void four4 () { / * bu erda * / / * belgilariga oid ma'lumotlar, ularni kechiktirib * / lc.setRow (0, 0, to'rt [0]) bilan to'rtdan to'rtgacha ko'rsatiladi; lc.setRow (0, 1, to'rt [1]); lc.setRow (0, 2, to'rt [2]); lc.setRow (0, 3, to'rt [3]); lc.setRow (0, 4, to'rt [4]); lc.setRow (0, 5, to'rt [5]); lc.setRow (0, 6, to'rt [6]); lc.setRow (0, 7, to'rt [7]); kechikish (kechikish); } void five5 () { / * bu erda * / / * belgilariga oid ma'lumotlar, ularni beshdan beshga kichik kechiktirish bilan ko'rsatadi * / lc.setRow (0, 0, besh [0]); lc.setRow (0, 1, besh [1]); lc.setRow (0, 2, besh [2]); lc.setRow (0, 3, besh [3]); lc.setRow (0, 4, besh [4]); lc.setRow (0, 5, besh [5]); lc.setRow (0, 6, besh [6]); lc.setRow (0, 7, besh [7]);

kechikish (kechikish); } void six6 () { / * bu erda * / / * belgilariga oid ma'lumotlar, ularni oltidan oltigacha kichik kechikish bilan ko'rsatadi * / lc.setRow (0, 0, six [0]); lc.setRow (0, 1, olti [1]); lc.setRow (0, 2, olti [2]); lc.setRow (0, 3, olti [3]); lc.setRow (0, 4, olti [4]); lc.setRow (0, 5, olti [5]); lc.setRow (0, 6, olti [6]); lc.setRow (0, 7, olti [7]); kechikish (kechikish); }

void loop () {int x; agar (analogRead (A4) == 1000) {x = tasodifiy (1, 6); } switch (x) {1 holat: one1 (); tanaffus; 2 -holat: two2 (); tanaffus; 3 -holat: three3 (); tanaffus; ish 4: four4 (); tanaffus; ish 5: besh5 (); tanaffus; holat 6: olti (); tanaffus;}}

4 -qadam: Yoqtirishni yoqtirish

Bizga YouTube -da obuna bo'ling -

Biz kabi Facebookda -

Tashrif -

Tavsiya: