Skip to content

Latest commit

 

History

History
301 lines (259 loc) · 9.27 KB

README.md

File metadata and controls

301 lines (259 loc) · 9.27 KB

Monopoly Terminal V2

English:

(click to expand)

The project of an electronic terminal for the game Monopoly

Video on YouTube: https://youtu.be/6EhA8CsS5kU

Terminal Features:

  • Support for RFID cards;
  • 128x64 display;
  • IR Contactless input;
  • Keyboard input;
  • Sound indication;
  • Light indication;
  • Adding your own games.

Component base:

  • Raspberry Pi Pico Controller;
  • 12864 LCD DISPLAY(128x64,SPI);
  • Matrix keyboard(4x4);
  • RFID PN532 Wireless module;
  • RFID cards;
  • Three-color LED(RGB);
  • IR(NEC) Signal receiver;
  • IR remote control "Car MP3 TZT";
  • Passive buzzer 3.3V;
  • Step-down module 3.3V.
Connecting components (click to expand)
  • Display:

    Contact name I/O port
    RSE 1
    SCL 2
    SI 3
    RS 4
    CS 5
  • PN532:

    Contact name I/O port
    SCK 6
    MOSI 7
    MISO 8
    SS 9
  • Matrix keyboard:

    Contact name I/O port
    Pin 1 IN 10
    Pin 2 IN 11
    Pin 3 IN 12
    Pin 4 IN 13
    Pin 5 OUT 14
    Pin 6 OUT 15
    Pin 7 OUT 17
    Pin 8 OUT 16
  • IR:

    Contact name I/O port
    DATA 28
  • Buzzer:

    Contact name I/O port
    Power 0
    Scheme (click to expand)

    f

Adding your game (click to expand)

  1. Create a new directory with the name of your game in the games folder;
  2. In this directory, create a file run.py ;
  3. Copy the code below into run.py:
class Run:
   def __init__(self,loader):
     loader.ControlCallback = self.__control
     self.Loader = loader
     #Your game initialization code
     ''' Example:'''
     self.Loader.Display.fill(0)
     self.Loader.Display.ctext('Hello!', 0, 1, 1)  
     self.Loader.Display.show()
   
   def __control(self,command):
     if command == 14:
       self.Loader.setdefaultcontrol()
       self.Loader.__showmenu()
     #Your command processing code
  1. You can start implementing your idea!
  2. If you need to add settings, create a file options.py in the catalog of your game;
  3. Copy the above code in options.py
 import os
 class Options:
   def __init__(self,loader):
     loader.ControlCallback = self.__control
     self.Loader = loader
     self.path = '/games/<Game Name>/'
     #Your settings initialization code
     ''' Example:'''
     self.Loader.Display.fill(0)
     self.Loader.Display.ctext('SETTINGS!', 0, 1, 1)  
     self.Loader.Display.show()
   
   def __control(self,command):
     if command == 14:
       self.Loader.setdefaultcontrol()
       self.Loader.__showmenu()
     #Your command processing code
  1. Create the options you need;
  2. After restarting the terminal, play your game will appear in the point and if you have a file options.py a new option with the name of your game will appear in the settings point

Libraries used:

Notes:

  • Development was carried out in the Thonny IDE;
  • Workability tested on: "MicroPython v1.19.1 on 2022-06-18";
  • It is recommended to use Rshell to load the code: https://github.com/dhylands/rshell

Creators:

  • Author of the ideaa: Nikita
  • Code author: Denis

Русский:

(нажмите, чтобы развернуть)

Проект электронного терминала для игры Monopoly

Ролик на YouTube: https://youtu.be/6EhA8CsS5kU

Особенности терминала:

  • Поддержка RFID карт;
  • Дисплей 128x64;
  • IR Бесконтактный ввод;
  • Клавиатурный ввод;
  • Звуковая индикация;
  • Световая индикация;
  • Добавление своих игр.

Компонентная база:

  • Контроллер Raspberry Pi Pico;
  • 12864 LCD дисплей(128x64,SPI);
  • Матричная клавиатура(4x4);
  • Беспроводной модуль RFID PN532;
  • RFID карты;
  • Трёхцветный светодиод(RGB);
  • IR(NEC) Приёмник сигнала;
  • IR пульт "Car MP3 TZT";
  • Пассивный зуммер 3.3V;
  • Понижающий модуль 3.3V.
Подключение компонентов (нажмите, чтобы развернуть)
  • Дисплей:

    Название контакта I/O порт
    RSE 1
    SCL 2
    SI 3
    RS 4
    CS 5
  • PN532:

    Название контакта I/O порт
    SCK 6
    MOSI 7
    MISO 8
    SS 9
  • Матричная клавиатура:

    Название контакта I/O порт
    Pin 1 IN 10
    Pin 2 IN 11
    Pin 3 IN 12
    Pin 4 IN 13
    Pin 5 OUT 14
    Pin 6 OUT 15
    Pin 7 OUT 17
    Pin 8 OUT 16
  • IR:

    Название контакта I/O порт
    DATA 28
  • Buzzer:

    Название контакта I/O порт
    Power 0
    Схема (нажмите, чтобы развернуть)

    f

Добавления своей игры (нажмите, чтобы развернуть)

  1. Создайте новый каталог с именем вашей игры в папке games;
  2. В этом каталоге создайте файл run.py ;
  3. Скопируйте ниже приведённый код в run.py
class Run:
   def __init__(self,loader):
     loader.ControlCallback = self.__control
     self.Loader = loader
     #Ваш код инициализации игры
     ''' Пример:'''
     self.Loader.Display.fill(0)
     self.Loader.Display.ctext('ЗДРАСТИ!', 0, 1, 1)  
     self.Loader.Display.show()
   
   def __control(self,command):
     if command == 14:
       self.Loader.setdefaultcontrol()
       self.Loader.__showmenu()
     #Ваш код обработки команд
  1. Можете приступать к реализации вашей идеи!
  2. Если необходимо добавить настройки, создайте файл options.py в каталоге вашей игры;
  3. Скопируйте ниже приведённый код в options.py
 import os
 class Options:
   def __init__(self,loader):
     loader.ControlCallback = self.__control
     self.Loader = loader
     self.path = '/games/<Game Name>/'
     #Ваш код инициализации настроек
     ''' Пример:'''
     self.Loader.Display.fill(0)
     self.Loader.Display.ctext('НАСТРОЙКИ!', 0, 1, 1)  
     self.Loader.Display.show()
   
   def __control(self,command):
     if command == 14:
       self.Loader.setdefaultcontrol()
       self.Loader.__showmenu()
     #Ваш код обработки команд
  1. Создайте необходимые вам опции;
  2. После перезапуска терминала в пункте играть появится ваша игра и при наличии файла options.py в пункте настройки появиться новая опция с названием вашей игры(Если невидно листайте ниже)

Используемые библиотеки:

Примечания:

  • Разработка велась в Thonny IDE V4.0.2;
  • Работоспособность проверена на: "MicroPython v1.19.1 on 2022-06-18";
  • Для загрузки кода рекомендуется использовать Rshell: https://github.com/dhylands/rshell

Создатели:

  • Автор идеи: Никита
  • Автор кода: Денис