Микроконтроллеры Arduino, 

Модули, Комлектующие,

Электронные компоненты

Наши контакты: г. Москва,
ул. Молодогвардейская, д.57с10
Въезд авто только по пропуску!

Игрушка – Бабка Гадалка

Опубликовано: 22.04.2022

Игрушка показывает возможности взаимодействия разных датчиков для реализации нескольких событий. Включение, выключение и гадание. Гадание основано на использовании генератора случайных чисел. Похожие принципы используются в игральных автоматах, в вендинге (автоматы, продающие что-то). Этот проект научит Вас работать с аппаратными прерываниями, что бывает очень полезно для решения некоторых задач.

Для реализации данного проекта мы использовали следующие компоненты:

  1. Дисплей LCD1602 – самый простой и недорогой дисплей для ведения диалога с играющим.
  2. 1602 LCD конвертер в IIC/I2C – для упрощения подключения к микроконтроллеру, можно приобрести в комплекте вместе с дисплеем.
  3. Сервопривод SG90 (180 град) – недорогой электромотор с редуктором, способный поворачиваться на заданный угол. Его будем использовать для открытия ставней.
  4. Ультразвуковой датчик измерения расстояния HC-SR04 – Дальномер, который позволит нам определять подошёл ли игрок к Бабке Гадалке.
  5. Модуль фоторезистора KY-018 – фоторезистор позволит определять бросил ли гадающий монетку.
  6. Модуль тактовой кнопки – для того, чтобы гадалка знала задумал человек вопрос или ещё думает.
  7. Контроллер NANO 3.0 CH340G без ног (Arduino совместимый контроллер) – это «мозги» нашей игрушки.
  8. Пара красных светодиодов 3 мм – это глаза Бабки Гадалки. Пара светодиодов синего цвета 5 мм – это подсветка. Цвета конечно зависят от вашего вкуса. Творчество приветствуется. И нам ещё потребуется один обычный светодиод белого света 5 мм для создания прерывателя с фоторезистором для того, чтобы контроллер понимал, когда брошена монетка.
  9. Выключатель двухконтактный KCD1-11 – для питания.

Обратите внимание, что в проекте мы используем два события, которые требуют немедленного перехода в другой режим работы игрушки.

  1. Играющий бросил монетку. Нужно перейти в режим гадания.
  2. Играющий хочет получить ответ на задуманный вопрос и нажимает кнопку.

Для этого мы используем аппаратные прерывания. На контроллере NANO прерывания можно использовать только на пинах D2 и D3.

Подключение дисплея производится к пинам А4, соответственно у конвертора SDA и А5, у конвертора SСL.

Схема подключения устройств:

Логика игрушки простая. Есть три режима.

Первый – режим включения. Гадалка должна включится тогда, когда к ней подходит человек. Используем ультразвуковой дальномер и задаём дистанцию для срабатывания (оптимальной дистанцией оказалось расстояние 80 – 90 см, которое исключает случайные разрывы дистанции). При появлении человека перед гадалкой, она начинает открывать ставни, зажигать светодиоды и включает диалоговое окно на дисплее, где приглашает бросить монетку в обмен на гадание. Когда ставни открыты, а светодиоды горят, гадалка переходит в режим ожидания. Фактически она вновь проверяет условие дистанции, но поскольку ставни открыты, а светодиоды горят, мы не видим работу функции (режима) включения. Гадалка ждёт события, когда играющий бросит монетку. Контроллер всегда ожидает прерывание от фоторезистора, поэтому если вдруг человек бросил монетку, и случайно отошёл от гадалки, то в следующий раз гадалка включится и сразу перейдёт в режим гадания, так как будет считать, что монетка уже есть. Если монетка не брошена, а человек отошёл от игрушки, то сработает режим выключения, гадалка погасит светодиоды, дисплей и закроет ставни. И вновь будет ждать (УЗ датчик будет мерить дистанцию и смотреть, есть ли кто перед игрушкой), когда кто-то подойдёт.

Второй – режим гадания. Если выполняются два условия – человек стоит перед игрушкой (выполняется условие включения) и бросил монетку, то гадалка переходит в режим гадания, просит задумать вопрос и нажать на кнопку. В этом режиме гадалка будет ждать пока не поступит прерывание от кнопки. Как только кнопка нажата, срабатывает генератор случайных чисел и на дисплее отображается ответ. Поскольку дисплеи русифицированы плохо, то внимательно смотрите, как отображаются ваши надписи. Иногда надписи превращаются в иероглифы. Когда ответ получен, гадалка выключается и включится после 10 секундной задержки, если человек не ушёл.

     

Третий – режим выключения. Если работал режим включения, но монетка не была брошена, то при разрыве дистанции с игрушкой, гадалка погасит светодиоды, дисплей и закроет ставни (выключится). То же произойдёт по окончании гадания. Гадалка даст возможность прочитать ответ и выключится, перейдя в режим ожидания и будет мерить дистанцию УЗ датчиком и как только кто-то появится в пределах заданного расстояния перейдёт в режим включения.

Приятной игры)))

Реализация скетча проекта может быть различна, но мы постарались сделать простой и понятный для новичка код.

Скачать скетч можно по этой ссылке.

Как работает игрушка «Бабка-гадалка»?

  1. Человек подходит к игрушке. Игрушка включается и предлагает играющему бросить монетку в обмен на гадание.
  2. Если человек уйдёт, игрушка выключится.
  3. Если человек бросил монетку, то игрушка предложит задумать вопрос и когда играющий будет готов, нажать на кнопку.
  4. После этого она случайным образом выдаст на экране ответ. Подождёт пока играющий прочитает и снова выключится.
  5. Если игрок бросил монетку и отошёл, игрушка тоже выключится, но если играющий подошёл снова, то она включится и будет ждать, пока игрок не нажмёт на кнопку для получения ответа.

Вы всегда можете усовершенствовать логику и диалог. Приятной игры)))

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

  • LCD_1602_RUS_ALL – библиотека с поддержкой русского языка, возможно работать и с другой, но придётся самим в коде задавать символы. Есть уже реализованные варианты.
  • Ultrasonic – библиотека для работы УЗ датчика измерения расстояния. Эту библиотеку можно установить из среды разработки. Мы работали с библиотекой Ultrasonic версия 3.0.0, автор Erick SimÕ
  • Servo – библиотека для сервопривода. Она является встроенной в среду разработки и её не нужно дополнительно устанавливать.
Комментарии (0)
Пока нет комментариев
Вы не представились
Не правильно введен e-mail
Нам интересно Ваше мнение
Все поля обязательны к заполнению
Перед публикацией комментарии проходят модерацию

Главное меню

Каталог

Полезные ссылки

Цена
от
до
0 Корзина: 0 руб.