Съдържание:

Дигитален шах - Проследете вашата игра на шах онлайн: 5 стъпки
Дигитален шах - Проследете вашата игра на шах онлайн: 5 стъпки

Видео: Дигитален шах - Проследете вашата игра на шах онлайн: 5 стъпки

Видео: Дигитален шах - Проследете вашата игра на шах онлайн: 5 стъпки
Видео: Натали - Шахерезада (Официальный клип) 2024, Ноември
Anonim
Дигитален шах - Проследете вашата игра на шах онлайн
Дигитален шах - Проследете вашата игра на шах онлайн

Играя много шах, откакто бях млад, и тъй като в мрежата има огромно количество уебсайтове, на които да играете шах срещу компютри или противници на живо, нито веднъж не намерих уебсайт, който проследява вашата игра на шах, че сте всъщност играе в реалния живот. Така че с този проект се надявам да го осъзная!

Надявам се да:

  • Бъдете в състояние да проследите движението на шахматните фигури
  • Вижте някои класации за минали игри.
  • Проследявайте времето и играйте бързо като професионална игра.

Това е много сложен проект, тъй като ако бъде завършен, ще са необходими 64 светлинни сензора и 8 чипа за четене. Което вече е голяма задача и дори не броим никой от другите сензори.

Моят колеж ни даде голям списък от неща за вършене:

  1. Създайте схема за нашия проект
  2. Създайте база данни за съхранение и получаване на данни.
  3. Проектирайте уебсайт с помощта на Adobe XD
  4. Пресъздайте този уебсайт с CSS и HTML
  5. Прочетете сензорите с python
  6. Покажете данните на сензора на уебсайта с помощта на колба.

В тази инструкция ще ви водя по моето пътуване и всички неприятности и моменти на спасение, които съм преживял през последните няколко седмици.

Стъпка 1: Консумативи/Инструменти

Консумативите, материалите и инструментите са първата стъпка към успешен проект!

Инструменти:

  • Поялник
  • Калай за запояване
  • Клещи
  • Пробивна машина
  • Лента

Консумативи:

  • Raspberry Pi с микро SD карта (4GB трябва да са достатъчни)
  • Rasberry Pi T-обущар
  • Шахматна дъска с фигури
  • 7 -сегментен дисплей (TM 1637)
  • 2 сензора за докосване (TTP223B)
  • RFID четец с карти (MFRC522)
  • MCP3008 (В зависимост от това докъде искате да стигнете, за всеки MCP можете да прочетете 8 шахматни координати)
  • Светлозависим резистор тип 5288 (8 за всеки MCP, който имате)
  • Заглавки (мъжки към мъжки и женски към мъжки)

Ако трябва да купите всичко, прогнозната цена трябва да бъде около 125 евро, включително разходите за доставка (само консумативи)!

Има прикачен файл на Excel с връзки и цени към всичко, от което се нуждаете!

Стъпка 2: Схеми и планиране

Схеми и планиране!
Схеми и планиране!
Схеми и планиране!
Схеми и планиране!

Следващата стъпка в този проект е създаването на схема. Направих 2: Един на макет и един чисто електронен. Ще имаме нужда от тази схема, за да поддържаме всичко чисто и да не се свързваме с ненужни неща!

Използвах програма, наречена "Fritzing", за да създам тези схеми, ако някой се интересува.

Цветово кодиране:

  • Червено = захранване
  • Зелено = връзка
  • Синьо = земята

Връзки на Raspberry Pi:

  • 3V3 => VC линия на чертежа, захранваща всичко
  • 5V => VCC на 7 -сегментен дисплей
  • GND:

    • Заземени на дъската
    • Основа на 7 -сегментния дисплей
  • GPIO4 => Часовник Изберете щифт на MCP3008
  • GPIO10 => MOSI щифт на MCP3008
  • GPIO9 => MISO щифт на MCP3008
  • GPIO11 => CLK щифт на MCP3008
  • GPIO7 => SDA щифт на MFRC522
  • GPIO19 => DIG щифт на първия сензор за докосване
  • GPIO26 => DIG щифт на втория сензор за докосване
  • GPIO20 => CLK щифт на седем сегментния дисплей
  • GPIO21 = DIO извод на дисплея от седем сегмента

Няколко бележки за схемите:

  • Тази схема съдържа само 1 MCP, това означава, че само 8 координати ще могат да бъдат прочетени напълно.
  • Ще използвам GPIO щифтове като моя Chip Select. Тъй като са налични само 2 пина за избор на чип с потенциално 8 MCP.
  • 7 -сегментният дисплей е предложен от учител, необходими са само 4 проводника, тъй като работи по собствен протокол.
  • Резисторите на цифровия щифт на сензорите за докосване не са напълно необходими, но са препоръчани.

Обясняване на компонентите:

  • MCP със сензори за светлина:

    • MCP3008 е 8 -канален 10 -битов ADC:

      • MCP3008 ще прочете аналоговата стойност на сензорите за светлина, тази стойност зависи от количеството светлина, която в момента свети върху сензора.
      • В моя код на python ще получа тази аналогова стойност и ще я преобразувам в 1 или 0
  • Сензори за докосване:

    Работи точно като бутон, използвам клас за това с метод за обратно повикване. Повече за това по -късно

    RFID четец (MFRC 522):

    • Използва специфичен протокол (SPI) с инсталиран пакет.
    • Не е трудно да се кодира с инсталиран пакет
    • Прочита етикета и връща стойността на маркера
    • Можете също да напишете стойност в маркер, така че вместо да връща шестнадесетичната стойност, тя връща име например

    7 сегмент (TM1637)

    • Използва и инсталиран пакет за лесно кодиране
    • Създайте променлива с цяло число, след което я разделете на 4 знака и покажете тези знаци

Стъпка 3: SQL база данни

SQL база данни
SQL база данни

Третата стъпка към този проект е създаването на 3NF нормализирана SQL база данни!

Ще имаме нужда от това за:

  • Вмъкване на данни
  • Получаване на данни и показването им на нашия уебсайт
  • Да можеш да видиш колко оборота са минали в настоящата игра на шах!

Обяснени таблици:

  • Игри

    • Това проследява кой е спечелил определена игра и кога е играна
    • Първичният ключ тук е GameID
    • Датата има стандартна стойност на текущата дата
    • Победителят и резултатът ще бъдат добавени по -късно, след като играта приключи!
  • Играчи (играчи на холандски)

    • Те се вмъкват ръчно, но могат да се поставят и с помощта на системата за RFID карти.
    • Напишете име на вашата карта, след това прочетете картата и вмъкнете името в тази таблица
    • Той също така проследява записа на печалба / загуба на всеки играч, който да бъде показан на уебсайта
  • Historiek (История)

    • Това е историята на завоите
    • когато шахматната фигура се премести, тя ще бъде актуализирана тук
    • Той има 3 чуждестранни ключа, играч, игра и шахмат
    • ReadDate (InleesDatum) е датата, на която сензорът е прочетен
    • ReadTime е същото като ReadDate, но с времева отметка
    • LocationID (LocatieID) е името на координатата, на която е позиционирана. например "a3"
  • Шахматни фигури (Schaakstukken на холандски)

    • Всяка шахматна фигура има идентификационен номер, екип, име и статус
    • Екипът е 1 или 2, черен или бял;
    • Името на някое парче би било т.е. "Пешка 1"
    • Състоянието означава, че парчето е живо или мъртво!

Стъпка 4: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер

Сега, когато имаме всички правилни парчета на място, можем да започнем да създаваме нещо!

Нека разделим тази част на подетапи, тъй като ще бъде по -лесно да се обясни:

  • Стъпка 1: Искате да пробиете дупка във всяка координата на вашата шахматна дъска, както е показано на първата снимка, също така пробийте дупка, където искате да поставите сензорите за докосване, RFID четеца и 7 -сегментния дисплей.

    Не забравяйте да пробиете някои дупки отстрани на дъската, те са за проводниците на различните компоненти отгоре на дъската. Много сондажи, знам

  • Стъпка 2: Опитайте да свържете един или два сензора към Raspberry Pi, проверете дали работят. Искате да ги свържете към аналоговия четец на MCP, както е обяснено по -рано в Стъпка 2 (Схемите).
  • Стъпка 3: Това може да е сложно и да развали нервите, тъй като заглавките на джъмпера не са много залепени на място, може да искате да ги залепите всички върху дъската, поотделно или няколко наведнъж. Трябва да се уверите, че те остават залепени на шахматната дъска, в противен случай няма да можете да четете сензорите успешно

    БАКШИШ! Ако това ви улеснява, някои лепила може действително да помогнат за запазването на сензорите на място, докато ги залепвате, открих това по трудния начин

Стъпка 5: Софтуер

Софтуер
Софтуер

След като сте направили хардуер, който можете да тествате, нека се опитаме да напишем малко код за него! Ако искате да разгледате моя код, моля, преминете към моя github.

Първо ще ни трябват няколко пакета за инсталиране, аз продължих и направих списък за вас:

  • колба

    На това ще работи вашият код на python

  • Гнездо за колбаIO

    За комуникация между предния и задния край

  • буца

    Полезно за четене на светлинни сензори, работи с матрични

  • мрежови интерфейси

    За да отпечатате свой собствен IP адрес на 7 -сегментния дисплей

  • Колба-CORS

    Споделяне на кръстосани източници, позволява споделяне на пакети в различни домейни

До това съм написал няколко класа и вие сте свободни да ги използвате.

Преден край

Кодът на уебсайта също е достъпен на моята страница на github!

За предния край ще използвам Chessboard.js. Това вмъква лесна за използване шахматна дъска с лесни за преместване фигури!

Всичко на дъската е персонализирано, така че се забавлявайте! След като изтеглите най -новата версия, ще трябва да плъзнете файловете във вашия проект и да ги свържете със страницата, където искате да покажете шахматна дъска!

След това, нека се опитаме да създадем дъска, не изглежда твърде трудно:

Първо, във вашия html:

Второ, във вашия javascript файл:

board1 = ChessBoard ('board1', 'start');

и ето го, трябва да можете да видите шахматна дъска сега! Чувствайте се свободни да персонализирате дъската в CSS файловете!

Сега искаме да видим някои ходове на шахматната дъска, не твърде трудни. Но трябва да го персонализираме, така че командата за преместване да бъде изпратена от задния край. Няма да навлизам в подробности, но искаме да направим нещо подобно:

new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); board1.move (командос);

Получаваме списък от нашата back-end програма и поставяме тире между двете координати, след което използваме командата board.move, за да изпълним хода!

Това е моето обяснение за това, от което се нуждаем от плъгина chessboard.js, отидете в моя github, за да разгледате кода сами

Препоръчано: