Сделай сам игральную кость на Arduino

Что делать если вам нужно поиграть в настольную игру, требующую игральную кость, а под рукой только Arduino? Не страшно, вы сможете сделать свой собственный кубик менее чем за 15 минут! Вам просто нужно немного терпение и Arduino.

Сделай сам игральную кость на Arduino

Шаг 1: Необходимые детали

Теперь давайте остановимся на том что нам пригодится для создания аналога игрального кубика на нашем Ардуино.

Необходимые детали

  • 16 проводов перемычек
  • Кнопка
  • Arduino
  • Макетная плата
  • Кабель USB
  • 6 светодиодов (цвет не имеет значения)
  • 6 резисторов на 220 Ом
  • Резистор 10 кОм

Шаг 2: Подключение кнопки

Подключение кнопки

Во-первых, давайте начнем с кнопки. При каждом нажатии вы как бы «бросаете кубики» (генерируя случайное число и подсвечивая соответствующее количество светодиодов).

Возьмите кнопку и вставьте ее в макет, выберите одну из сторон. Вы увидите 2 контакта. Тот, который находится слева (вы можете поменять их), соединяется с землей (GND) Arduino (через макет) с резистором 10 кОм.

Подключите ту же строку к цифровому выходу 13 Arduino (определенному в коде, можно изменить). Разъем (пин) в левой части кнопки подключается к питанию 5 В. Вы можете использовать приведенное выше изображение для примера.

Шаг 3: Подключение светодиодов

Вы уже вставили светодиоды в макет. Если нет, теперь это идеальный момент. Мы не знаем как вы будете позиционировать их, но в основном, следуйте общему правилу - все 6 катодов должны быть соединены вместе, а затем заземлены (GND). Смотрите фотографии выше, если у вас возникли проблемы.

Теперь нам нужно подключить аноды. Позвольте объяснить вам: вам нужно подключить другой провод каждого светодиода к соответствующему цифровому выходу Arduino, каждый из которых использует резистор 220 Ом! Перенаправляем другие концы резисторов на несколько пустых строк макета, которые затем подключаются к контактам с помощью перемычек.

Мы начали соединять их с левого нижнего уровня, чтобы привести к выводу 2, затем - к выводу 4, справа - к выводу 6 и над указанной строкой, начиная справа налево.

Шаг 4: Код для Arduino

Финальные штрихи

Подключите шину питания макета к вашему Arduino.

Затем подключите плату и загрузите код:

// Arduino LED Dice
// Made by Aleksandar Tsvetkov
// Using button debouncing logic from the Internet!
// Available on Instructables, just search it 🙂
 
const int pins[6] = {2, 4, 6, 8, 10, 12};
int buttonPin = 13, buttonStatus, randNum, lastNum, i, lastDebounceTime, debounceDelay = 150;
 
void draw(int randN);
 
void setup() {
  for (i = 0; i <= 5; i++) {
    pinMode(pins[i], OUTPUT);
  }
  pinMode(buttonPin, INPUT);
}
 
void loop() {
  buttonStatus = digitalRead(buttonPin);
 
  if (buttonStatus == HIGH && (millis() - lastDebounceTime) > debounceDelay) {
    do {
      randNum = random(1, 6);
    } while (lastNum == randNum);
   
    draw(randNum);
    lastDebounceTime = millis();
    lastNum = randNum;
  }
  delay(100);
}
 
void draw(int randN) {
  for (i = 0; i <= 5; i++) {
    digitalWrite(pins[i], LOW);
  }
  for (i = 0; i <= randN; i++) {
    digitalWrite(pins[i], HIGH);
  }
}

Шаг 5: Итоговый результат

Имейте в виду, ничто в мире, в котором мы живем, не случайно. Даже «случайные» числа. Таким образом, получение одинаковых номеров подряд очень вероятно. Мы пробовали исправить это в коде, но он не может быть идеальным. Ждем ваших корректировок и пожеланий в комментариях.

Ардуино+