اس DIY الیکٹرانک D20 ڈائی کے ساتھ انداز میں رول کریں۔

اس DIY الیکٹرانک D20 ڈائی کے ساتھ انداز میں رول کریں۔

اپنے اگلے ٹیبل ٹاپ رول پلے گیم کے لیے کچھ انوکھا چاہتے ہیں؟ الیکٹرانک D20 کے بارے میں کس طرح کسٹم گرافکس کے ساتھ اہم ہٹ اور مسز آج میں آپ کو دکھاتا ہوں کہ کس طرح ایک Arduino اور چند سادہ حصوں کے ساتھ اپنا بنانا ہے۔





پریشان نہ ہوں اگر آپ نے پہلے کبھی Arduino استعمال نہیں کیا ہے ، ہمارے پاس ایک ہے۔ شروع کرنا گائیڈ .





تعمیراتی منصوبہ۔

یہ ایک سادہ منصوبہ ہے۔ ایک Arduino ایک OLED ڈسپلے چلائے گا ، اور ایک بٹن ڈائی رول کرے گا۔ کسٹم گرافکس اہم ہٹ یا کریٹیکل مس رولز کے لیے دکھائے جائیں گے۔ آپ کوڈ کو آسانی سے D8 ، D10 ، یا D12 میں تبدیل کر سکتے ہیں۔





تمہیں کیا چاہیے

  • 1 ایکس آرڈوینو۔
  • 1 x 0.96 ' I2C OLED ڈسپلے۔
  • 1 ایکس پش بٹن۔
  • 1 x 10k؟ مزاحم۔
  • 1 ایکس بریڈ بورڈ۔
  • مختلف ہک اپ تاروں
  • یہاں مکمل کوڈ ، اگر آپ تحریری ہدایات کے ذریعے ہر طرح سے عمل نہیں کرنا چاہتے ہیں۔

وہ بنیادی حصے ہیں جن کی آپ کو اپنا D20 بنانے کی ضرورت ہے۔ آپ اسے ایک کیس (نیچے زیر بحث) میں انسٹال کرنا چاہتے ہیں اور سرکٹ کو زیادہ مستقل حالت میں ڈال سکتے ہیں۔ یہاں اضافی حصے ہیں جو آپ کو کرنے کی ضرورت ہوگی۔

یہ OLED ڈسپلے بہت ٹھنڈے ہیں۔ وہ عام طور پر سفید ، نیلے ، پیلے ، یا تینوں کے مرکب میں خریدے جا سکتے ہیں۔ میں نے اپنے کیس سے ملنے کے لیے ایک نیلے رنگ میں خریدا ہے۔ اس بات کو یقینی بنائیں کہ آپ کو ایک مل جائے۔ I2C۔ کے بجائے ماڈل ایس پی آئی .



تقریبا کوئی بھی Arduino مناسب ہوگا۔ میں نے ایک نینو کا انتخاب کیا ہے ، کیونکہ وہ اس کیس میں فٹ ہونے کے لیے کافی چھوٹے ہیں۔ Arduino ماڈلز کے بارے میں مزید معلومات کے لیے ہماری خریداری گائیڈ چیک کریں۔

سرکٹ۔

وہ سرکٹ جس کی آپ کو ضرورت ہے:





جڑیں۔ وی سی سی اور GND Arduino پر OLED ڈسپلے پر۔ +5 وی اور زمین . جڑیں۔ ینالاگ 4۔ Arduino پر لیبل لگا ہوا پن۔ ایس ڈی اے۔ . جڑیں۔ ینالاگ 5۔ کرنے کے لئے ایس سی ایل۔ پن ان پنوں میں I2C بس کا استعمال کرتے ہوئے ڈسپلے کو چلانے کے لیے درکار سرکٹری ہوتی ہے۔ عین مطابق پن ماڈل کے لحاظ سے مختلف ہوں گے ، لیکن A4 اور A5 نینو اور اونو پر استعمال ہوتے ہیں۔ چیک کریں۔ وائر لائبریری کی دستاویزات اپنے ماڈل کے لیے اگر آپ اینو یا نینو استعمال نہیں کر رہے ہیں۔

بیٹری کو زمین سے مربوط کریں۔ شراب پن اس کا مطلب ہے وولٹیج ان ، اور مختلف ڈی سی وولٹیجز کو قبول کرتا ہے - لیکن پہلے اپنے مخصوص ماڈل کو چیک کریں ، اور یہ بعض اوقات تھوڑا سا مختلف ہو سکتا ہے۔





بٹن سے جڑیں۔ ڈیجیٹل پن 2۔ . نوٹس 10k کیسے؟ ریزٹر زمین سے جڑا ہوا ہے۔ یہ بہت اہم ہے! یہ پل ڈاون ریزسٹر کے طور پر جانا جاتا ہے ، اور یہ Arduino کو بٹن دبانے کے طور پر جعلی ڈیٹا یا مداخلت کا پتہ لگانے سے روکتا ہے۔ یہ بورڈ کی حفاظت کے لیے بھی کام کرتا ہے۔ اگر یہ ریزسٹر استعمال نہ ہوتا تو +5V سیدھا زمین میں چلا جاتا۔ یہ ایک کے طور پر جانا جاتا ہے مختصر مختصر اور Arduino کو مارنے کا ایک آسان طریقہ ہے۔

اگر آپ اس سرکٹ کو سولڈر کر رہے ہیں تو ، گرمی سکڑنے والی نلیاں سے اپنے کنکشن کی حفاظت کریں:

اس بات کو یقینی بنائیں کہ آپ اسے زیادہ گرم نہ کریں ، اور صرف اس وقت کریں جب آپ کو یقین ہو کہ سرکٹ کام کرتا ہے۔ آپ اپنے کیبلز کو جوڑوں میں مروڑنا بھی چاہتے ہیں۔ یہ انہیں صاف رکھتا ہے اور انہیں غیر ضروری تناؤ سے بچانے میں مدد کرتا ہے:

بٹن ٹیسٹ۔

اب جب کہ آپ نے سرکٹ بنایا ہے ، یہ ٹیسٹ کوڈ اپ لوڈ کریں (اس بات کو یقینی بنائیں کہ درست بورڈ اور پورٹ کو اوزار> بورڈ۔ اور ٹولز> پورٹ۔ مینو):

const int buttonPin = 2; // the number of the button pin
void setup() {
pinMode(buttonPin, INPUT); // setup button
Serial.begin(9600); // setup serial
}
void loop(){
if(digitalRead(buttonPin) == HIGH) {
Serial.print('It Works');
delay(250);
}
}

ایک بار اپ لوڈ ہونے کے بعد ، Arduino کو USB کے ذریعے منسلک رکھیں اور سیریل مانیٹر کھولیں ( اوپر دائیں> سیریل مانیٹر۔ ). آپ کو الفاظ دیکھنا چاہیے۔ یہ کام کرتا ہے جب بھی آپ بٹن دبائیں ظاہر ہوتے ہیں۔

اگر کچھ نہیں ہوتا ہے تو جاؤ اور اپنے سرکٹ کو ڈبل چیک کرو۔

OLED سیٹ اپ۔

ڈسپلے کو چلانے کے لیے آپ کو دو لائبریریاں انسٹال کرنے کی ضرورت ہے۔ ڈاؤن لوڈ کریں۔ Adafruit_SSD1306 اور Adafruit-GFX [مزید دستیاب نہیں] گیتھب سے لائبریریاں ، اور انہیں اپنے لائبریری فولڈر میں محفوظ کریں۔ اگر آپ کو یقین نہیں ہے کہ آپ لائبریری کے فولڈر کہاں ہیں ، میرا ریٹرو گیمنگ ٹیوٹوریل پڑھیں ، جہاں میں اسی ڈسپلے کو مزید تفصیل سے ترتیب دیتا ہوں۔

اپنے Arduino IDE کو دوبارہ شروع کریں اور سے ایک ٹیسٹ خاکہ اپ لوڈ کریں۔ فائل> مثالیں۔ مینو. منتخب کریں۔ Adafruit SSD1306۔ اور پھر ssd1306_128x64_i2c۔ . اس کوڈ کو اپ لوڈ کریں (اس میں کچھ وقت لگے گا) ، اور آپ کو ڈسپلے پر بہت سی شکلیں اور پیٹرن دیکھنا چاہئیں:

اگر کچھ نہیں ہوتا ہے تو ، اپنے کنکشن کو ڈبل چیک کریں۔ اگر ، چیک کرنے کے بعد ، یہ اب بھی کام نہیں کرے گا ، آپ کو نمونہ کوڈ میں ترمیم کرنے کی ضرورت ہوگی۔

PS4 پر پروفائل کو کیسے حذف کریں

اس لائن کو تبدیل کریں (کے آغاز میں سیٹ اپ فنکشن):

display.begin(SSD1306_SWITCHCAPVCC, 0x3D);

اس کے لیے:

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

یہ لائبریری کو اس ڈسپلے کے بارے میں مخصوص تفصیلات بتاتا ہے جو آپ استعمال کر رہے ہیں۔ اب آپ کو تعمیر کے ساتھ جاری رکھنے کے لیے تیار ہونا چاہیے۔

مسلہ

اگر آپ اسے روٹی بورڈ پر بنا رہے ہیں ، یا اسے باکس نہیں کرنا چاہتے ہیں ، تو آپ اس مرحلے کو چھوڑ سکتے ہیں۔

میں نے اس باکس کو ڈیزائن اور 3D پرنٹ کیا۔ فائلیں آن کریں۔ Thingiverse . اگر آپ کے پاس تھری ڈی پرنٹر نہیں ہے تو فکر نہ کریں - آن لائن خدمات۔ 3D حبس اور شیپ ویز۔ آن لائن پرنٹنگ کی خدمات فراہم کریں۔

آپ یہ باکس آسانی سے لکڑی سے بنا سکتے ہیں ، یا پلاسٹک خرید کر۔ پروجیکٹ باکس .

ڑککن ایک سادہ پش فٹ ڈیزائن ہے ، اور اس میں ہارڈ ویئر کے لیے کچھ کٹ آؤٹ ہیں:

کوڈ

اب جب کہ سب کچھ تیار ہے ، کوڈ کا وقت آگیا ہے۔ یہاں یہ کیسے کام کرے گا۔ سیڈوکوڈ :

if button is pressed
generate random number
if random number is 20
show graphic
else if random number is 1
show graphic
else
show number

اس کے صحیح طریقے سے کام کرنے کے لیے ، بے ترتیب نمبر پیدا کرنے کی ضرورت ہے - یہ ڈائی کا رول ہے۔ Arduino ایک بے ترتیب نمبر جنریٹر کہلاتا ہے۔ بے ترتیب ، لیکن اسے استعمال نہیں کرنا چاہیے۔ اگرچہ یہ بنیادی بے ترتیب کاموں کے لیے کافی اچھا ہے ، الیکٹرانک ڈائی کے لیے یہ کافی بے ترتیب نہیں ہے۔ وجوہات کچھ پیچیدہ کیوں ہیں ، لیکن اگر آپ دلچسپی رکھتے ہیں تو آپ مزید پڑھ سکتے ہیں۔ boallen.com .

ڈاؤن لوڈ کریں۔ ٹرو رینڈم۔ لائبریری کی طرف سے سرلیچ گیتھب پر اسے اپنے لائبریری فولڈر میں شامل کریں اور IDE کو دوبارہ شروع کریں۔

اب ایک نئی فائل بنائیں اور اپنا ابتدائی کوڈ ترتیب دیں (یا صرف گٹ ہب سے تیار شدہ کوڈ پکڑیں):

#include
#include
#include
#include
#include
Adafruit_SSD1306 display(4);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // setup the OLED
pinMode(buttonPin, INPUT); // setup button
}
void loop() {

}

یہ کوڈ OLED کو ترتیب دیتا ہے ، اور اس میں وہ تمام لائبریریاں شامل ہیں جن کے ساتھ آپ کو اپنی نئی بے ترتیب نمبر لائبریری کے ساتھ بات چیت کرنے کی ضرورت ہے۔ اب اسے مرکزی لوپ میں شامل کریں:

if(digitalRead(buttonPin) == HIGH) {
delay(15);
if(digitalRead(buttonPin) == HIGH) {
display.fillScreen(BLACK); // erase the whole display
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(0, 0);
display.println(TrueRandom.random(1, 21)); // print random number
display.display(); // write to display
delay(100);
}
}

یہ منٹ میں کافی بنیادی ہے ، لیکن یہ ایک کام کرنے والا D20 ہے۔ جب بھی بٹن دبایا جاتا ہے ، ایک اور 20 کے درمیان بے ترتیب نمبر اسکرین پر دکھایا جاتا ہے:

یہ اچھی طرح سے کام کرتا ہے ، لیکن یہ تھوڑا سا بورنگ ہے۔ آئیے اسے بہتر بنائیں۔ دو نئے طریقے بنائیں ، ڈرا ڈائی اور مٹانا :

void drawDie() {
display.drawRect(32, 0, 64, 64, WHITE);
}

یہ اسکرین کے وسط میں ایک ڈائی کھینچیں گے۔ آپ شاید اسے زیادہ پیچیدہ بنانا چاہیں گے ، شاید D20 ، یا D12 اور اس طرح کی ڈرائنگ کرکے ، لیکن بنیادی چھ رخا ڈائی کھینچنا آسان ہے۔ یہاں بنیادی استعمال ہے:

drawDie();

اگلا ، بے ترتیب نمبر ڈرا کرنے کے لیے اپنے مین لوپ میں ترمیم کریں ، صرف بڑا اور درمیان میں۔ متن کا سائز اور کرسر کو اس میں تبدیل کریں:

display.setTextColor(WHITE);
display.setCursor(57, 21);

اب یہ بہت بہتر لگ رہا ہے:

واحد مسئلہ نو سے بڑی تعداد کے ساتھ ہے:

اس کا حل آسان ہے۔ 10 سے کم کسی بھی نمبر پر کرسر ان نمبروں 10 یا اس سے بڑے سے مختلف پوزیشن پر سیٹ ہوگا۔ اس لائن کو تبدیل کریں:

بلوٹوتھ ہیڈ فون کو ایکس بکس ون ایس سے کیسے جوڑیں۔
display.setCursor(57, 21);

اس کے ساتھ:

int roll = TrueRandom.random(1, 21); // store the random number
if (roll <10) {
// single character number
display.setCursor(57, 21);
}
else {
// dual character number
display.setCursor(47, 21);
}

یہ اب کی طرح لگتا ہے:

اب جو کچھ باقی رہ گیا ہے وہ ان تصاویر کے لیے ہے جب آپ کسی اہم ہٹ یا مس کو رول کرتے ہیں۔ اس میں کچھ اقدامات شامل ہیں ، لیکن یہ کافی آسان عمل ہے۔

ایک مناسب تصویر تلاش کریں جسے آپ استعمال کرنا چاہتے ہیں (جتنا آسان ڈسپلے واحد رنگ ہے) یہ وہ تصاویر ہیں جو میں نے استعمال کی ہیں:

تصویری کریڈٹ: publicdomainvectors.org

کوئی بھی تصویر جسے آپ استعمال کرنا چاہتے ہیں اسے HEX صف میں تبدیل کرنے کی ضرورت ہوگی۔ یہ کوڈ کی شکل میں تصویر کی نمائندگی ہے۔ ایسا کرنے کے لیے بہت سارے ٹولز دستیاب ہیں ، اور کچھ خاص طور پر OLED ڈسپلے کے لیے لکھے گئے ہیں۔ استعمال کرنے کا سب سے آسان طریقہ ہے۔ تصویر C_Hex آن لائن ٹول یہاں ضروری ترتیبات ہیں:

فون پر موسیقی ڈاؤن لوڈ کرنے کے لیے ایپ۔

اپنی تصویر اپ لوڈ کریں ، اور کوڈ فارمیٹ پر سیٹ کریں۔ HEX: 0x . سیٹ کے لئے استعمال کیا کو تمام ڈرا امیج فنکشن کے لیے بلیک/وائٹ۔ . باقی تمام آپشنز کو بطور ڈیفالٹ چھوڑ دیں۔ اگر آپ کو ضرورت ہو تو آپ یہاں تصویر کا سائز تبدیل کر سکتے ہیں۔ دبائیں سی سٹرنگ حاصل کریں۔ اور آپ کو تصویر کا ڈیٹا ظاہر ہوتا دیکھنا چاہیے:

آپ کو ایک منٹ میں اس تیار کردہ ڈیٹا کی ضرورت ہوگی۔ نامی دو افعال بنائیں۔ دھماکہ اور ڈرا سکل (یا آپ کے ورژن کے لیے موزوں نام)۔ یہاں کوڈ ہے:

void drawExplosion() {
// store image in EEPROM
static const unsigned char PROGMEM imExp[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x78,0x7f,0xff,0xc0,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0xfb,0x00,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x07,0xff,0xff,0xf9,0xff,0xd8,0x00,0x00,0x00,0x3f,0xff,0xf0,0x0f,0x00,0x00,0x00,0x00,0x1f,0x1f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x01,0xbf,0xff,0xff,0xff,0x30,0x00,0x00,0x00,0x13,0xf7,0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
display.drawBitmap(0, 0, imExp, 64, 62, 1); // draw mushroom cloud
}
void drawSkull() {
// store image in EEPROM
static const unsigned char PROGMEM imSku[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x78,0x00,0x07,0xf0,0x00,0x00,0x00,0x00,0xfc,0x00,0x07,0xf8,0x00,0x00,0x00,0x00,0xfe,0x00,0x07,0xf8,0x00,0x00,0x00,0x01,0xfe,0x00,0x07,0xfc,0x00,0x00,0x00,0x01,0xfe,0x00,0x07,0xfe,0x00,0x3f,0xc0,0x03,0xfe,0x00,0x01,0xff,0x81,0xff,0xfc,0x07,0xec,0x00,0x00,0x3f,0xc7,0xff,0xff,0x1f,0xc0,0x00,0x00,0x0f,0xcf,0xff,0xff,0xdf,0x00,0x00,0x00,0x07,0xbf,0xff,0xff,0xee,0x00,0x00,0x00,0x01,0x7f,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x1e,0x3f,0xff,0x3f,0xc7,0x80,0x00,0x00,0x1e,0x0c,0x0f,0x00,0x07,0x80,0x00,0x00,0x1e,0x00,0x0f,0x00,0x0f,0x80,0x00,0x00,0x1e,0x00,0x19,0x80,0x0f,0x00,0x00,0x00,0x0f,0x00,0x19,0x80,0x0f,0x00,0x00,0x00,0x0d,0x00,0x30,0xc0,0x1f,0x00,0x00,0x00,0x05,0x80,0x70,0xc0,0x1e,0x00,0x00,0x00,0x05,0xf0,0xe0,0xe0,0x36,0x00,0x00,0x00,0x01,0xff,0xe0,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0xc4,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0xcc,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0xcc,0x7f,0xf0,0x00,0x00,0x00,0x03,0xff,0x9e,0x7f,0xf0,0x00,0x00,0x00,0x00,0xff,0xfe,0x7f,0xc0,0x00,0x00,0x00,0x00,0x01,0xff,0xf8,0x1c,0x00,0x00,0x00,0x03,0xe0,0x3f,0x01,0xbf,0x00,0x00,0x00,0x07,0xa6,0x40,0x09,0x9f,0x80,0x00,0x00,0x1f,0x27,0x5a,0x39,0x9f,0xf8,0x00,0x01,0xff,0x27,0xdb,0x39,0x0f,0xfc,0x00,0x03,0xfe,0x31,0x7f,0x39,0x07,0xfc,0x00,0x03,0xfc,0x10,0x1a,0x02,0x03,0xf8,0x00,0x03,0xf8,0x10,0x00,0x02,0x01,0xf0,0x00,0x01,0xf8,0x10,0x00,0x02,0x01,0xe0,0x00,0x00,0x78,0x10,0x00,0x02,0x00,0xe0,0x00,0x00,0x70,0x30,0x00,0x02,0x00,0x00,0x00,0x00,0x30,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x73,0x55,0x63,0x00,0x00,0x00,0x00,0x00,0xf9,0x55,0x4f,0x00,0x00,0x00,0x00,0x00,0x7f,0x14,0x1f,0x00,0x00,0x00,0x00,0x00,0x1f,0xe0,0xfe,0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0xfc,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xf0,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
display.drawBitmap(0, 0, imSku, 60, 64, 1); // draw skull cloud
}

اگر آپ ان تصاویر کو استعمال کرنا چاہتے ہیں جو میں نے استعمال کی ہیں ، تو آگے بڑھیں اور کوڈ کاپی کریں۔ اگر آپ اپنی بنائی ہوئی اپنی تصاویر خود استعمال کرنا چاہتے ہیں تو ، بائٹ کوڈ کو اس میں کاپی کریں۔ imSku اور imExp ضرورت کے مطابق صفیں

ڈسپلے پر ان تصاویر کی طرح نظر آتی ہے:

اس کوڈ کا سب سے اہم حصہ یہ لائن ہے:

static const unsigned char PROGMEM imSku[]

یہ Arduino کو بتاتا ہے کہ آپ کی تصاویر کو EEPROM میں محفوظ کریں ( EEPROM کیا ہے؟ اس کی ریم کی بجائے ( رام کے لیے فوری رہنمائی ). اس کی وجہ سادہ ہے آرڈوینو میں محدود رام ہے ، اور تصاویر کو ذخیرہ کرنے کے لیے ان سب کو استعمال کرنے سے آپ کے کوڈ پر عملدرآمد کے لیے کوئی باقی نہیں بچ سکتا۔

اپنے مین میں ترمیم کریں۔ اگر ان نئے گرافکس کو دکھانے کے لیے بیان جب ایک یا 20 کو رول کیا جاتا ہے۔ کوڈ کی لائنوں کو نوٹ کریں تاکہ تصاویر کے ساتھ ساتھ رولڈ نمبر بھی دکھائے جائیں:

if(roll == 20) {
drawExplosion();
display.setCursor(80, 21);
display.println('20');
}
else if(roll == 1) {
display.setCursor(24, 21);
display.println('1');
drawSkull();
}
else if (roll <10) {
// single character number
display.setCursor(57, 21);
display.println(roll); // write the roll
drawDie(); // draw the outline
}
else {
// dual character number
display.setCursor(47, 21);
display.println(roll); // write the roll
drawDie(); // draw the outline
}

اور یہ ہے کہ وہ نئے رول کس طرح نظر آتے ہیں:

کوڈ سائیڈ کے لیے یہ سب کچھ ہے (اگر آپ نے یہ سب چھوڑ دیا تو GitHub سے کوڈ پکڑیں)۔ آپ اسے آسانی سے D12 ، D8 ، اور اسی طرح تبدیل کر سکتے ہیں۔

حتمی اسمبلی۔

اب جبکہ باقی سب کچھ ختم ہوچکا ہے ، اب وقت آگیا ہے کہ ہر چیز کو بند کردیا جائے۔ ڈسپلے کو بولٹ کریں ، اس بات کو یقینی بنائیں کہ بولٹ کو زیادہ سخت نہ کریں۔ یہ ممکنہ طور پر سب سے مشکل حصہ ہے۔ میں نے ایسا کرتے ہوئے ایک ڈسپلے کو توڑ دیا ، لہذا آپ پلاسٹک کے کچھ واشر استعمال کرنا چاہیں گے۔ میں نے کچھ چوکوں کو کاٹ دیا پلاسٹک کارڈ۔ :

چھوٹے گری دار میوے اور بولٹ جوڑنا مشکل ہے۔ ٹپ: ابتدائی طور پر گری دار میوے کو سیٹ کرنے کے لئے سکریو ڈرایور کے آخر میں بلو ٹیک کا ایک چھوٹا ٹکڑا استعمال کریں۔

بٹن کو آن کریں ، بیٹری کو جوڑیں اور ڑککن بند کریں۔ محتاط رہیں کہ کسی بھی تاروں کو نہ پھنسائیں ، یا انہیں بہت مضبوطی سے باندھیں ، ممکنہ طور پر ایک چھوٹا سا سبب بن جائے۔ آپ کے پچھلے لیڈز کی لمبائی پر منحصر ہے ، آپ کو کچھ موصلیت کے ساتھ بے نقاب کنکشن کی حفاظت کرنے کی ضرورت پڑ سکتی ہے (سیریل باکس اچھا کام کرتا ہے):

یہ اندر کی طرح لگتا ہے:

اور یہاں تیار مصنوعات ہے:

اب آپ کو الیکٹرانک D20 کے قابل فخر مالک ہونا چاہیے!

آپ نے کیا ترمیم کی؟ کیا آپ نے تصاویر تبدیل کیں؟ ہمیں تبصرے میں بتائیں ، ہم دیکھنا پسند کریں گے کہ آپ نے کیا کیا!

بانٹیں بانٹیں ٹویٹ ای میل۔ متحرک تقریر کے لیے ایک ابتدائی رہنما۔

متحرک تقریر ایک چیلنج ہوسکتی ہے۔ اگر آپ اپنے پروجیکٹ میں ڈائیلاگ شامل کرنا شروع کرنے کے لیے تیار ہیں تو ہم آپ کے لیے عمل کو توڑ دیں گے۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • DIY
  • Arduino
  • بورڈ گیم۔
  • الیکٹرانکس۔
مصنف کے بارے میں جو کوبرن۔(136 مضامین شائع ہوئے)

جو یونیورسٹی آف لنکن یونیورسٹی سے کمپیوٹر سائنس میں گریجویٹ ہیں۔ وہ ایک پیشہ ور سافٹ وئیر ڈویلپر ہے ، اور جب وہ ڈرون نہیں اڑاتا یا موسیقی نہیں لکھتا ، تو وہ اکثر فوٹو لیتے یا ویڈیو بناتے پائے جاتے ہیں۔

جو کوبرن سے مزید۔

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔