repkatech
repkatech
65 просмотров0 комментариев

Проект “Охота на светлячка” на базе одноплатного компьютера Repka PI 4.

Представляю вам образовательный проект — “Охота на светлячка” разработанный в рамках учебно-методического комплекса на базе одноплатного компьютера Repka PI 4.

Игра состоит из 10 раундов, в каждом из которых пользователю необходимо наклонить гироскоп в случайно выбранном направлении и нажать кнопку в течение заданного времени. За правильное выполнение задания игрок получает балл, а за ошибку теряет один. Результат каждого действия отображается с помощью RGB-светодиода и зуммера.

Проект будет собираться с использованием “Учебно-методический комплекс REPKA”. Схему сборки можно найти в разделе "Примеры готовых проектов" учебного пособия УМК “REPKA”.

Также все необходимые материалы и схемы подключения доступны в репозитории на платформе Gitflic.

Компоненты проекта

1. Дисплей OLED 0.96″ I2C см. рисунок 1. Отображает игровой процесс.

2. Зуммер пассивный модуль (Passive buzzer KY-006) см. рисунок 2. Сигнализирует о результате действия игрока.

3. Четырехконтактный светодиодный RGB модуль (RGB LED) см. рисунок 3. Отображает состояние игры: успех или ошибка.

4. Модуль трехосевого гироскопа и акселерометра (GY-521; MPU-6050) см. рисунок 4. Отслеживает наклон устройства.

5. Кнопка см. рисунок 5. Требуется для нажатия по таймингу.

Вы можете приобрести все необходимые компоненты отдельно от "Учебно-методический комплекс REPKA". Ссылки на модули приведены в таблице ниже.

Компонент Ссылка на приобретение
Монтажная/макетная плата Ссылка
Шлейф Ссылка
Переходник с шлейфа на макетную плату Ссылка
Соединительные провода

Провода соединительные м-п

Провода соединительные п-п

Провода соединительные п-п

Дисплей OLED 0.96 Ссылка
Зуммер пассивный модуль (Passive buzzer KY-006) Ссылка
Четырехконтактный светодиодный RGB модуль (RGB LED) Ссылка
Модуль трехосевого гироскопа и акселерометра (GY-521; MPU-6050) Ссылка
Кнопка Ссылка

Подготовительный этап

1. Подключим дополнительное питание 5V к макетной плате:

2. После чего выведем дополнительное питание на макетную плату:

3. Подключим переходник с шлейфа на макетную плату:

4. Соединим шлейф с переходником для подключения к макетной плате и Repka Pi 4:

5. Итоговый результат должен выглядеть таким образом:

Сборка проекта

Во время сборки проекта будем регулярно обращаться к электрической принципиальной схеме и монтажной схеме, представленными в учебном пособии (см. рисунки 6 и 7). Эти схемы будут служить основным ориентиром на всех этапах подключения компонентов, обеспечивая точность и правильность сборки устройства.

Для разработки кода будет использоваться текстовый редактор Geany, который входит в состав стандартного ПО Репка ОС.

Электрическая принципиальная схема

Монтажная схема

1. Подключение дисплея OLED 0.96″ I2C.

Как видно из рисунков 6 и 7 устройство подключается через интерфейс I2C и питается от 5V.

1.1. Подключим дисплей OLED 0.96″ I2C к макетной плате согласно таблице 1.

Макетная плата

Дисплей OLED 0.96″ I2C

5V

VDD

GND

GND

SCL1

SCK

SDA1

SDA

Таблица 1. Подключение дисплея OLED 0.96″ I2C к макетной плате.

1.2.  Результат подключения будет выглядеть следующим образом, см. рисунок 8:

2. Для проверки правильности подключения используем python скрипт из репозитория repka-pi_iot-examples.

2.1. Клонируем репозиторий:

git clone git@gitflic.ru:repka_pi/repka-pi_iot-examples.git

2.2. Переходим в репозиторий:

cd repka-pi_iot-examples/

2.3. Выполним установку зависимостей.

2.3.1. Если хотите установить зависимости только дисплея, выполните:

make setup-OLED-SSD1306 

2.3.2. Если хотите установить зависимости для всех датчиков и проектов, выполните:

make setup-all

2.4. Запускаем скрипт для проверки работоспособности прибора:

make OLED-SSD1306

2.5. Если на этапе 2.4. возникает ошибка, то измените в python скрипте номер шины – port или адрес на шине – address, если ошибок нет, то пропустите данный пункт.

# Инициализация подключения к OLED дисплею через шину I2C

port=1 # номер I2C-шины Repka PI (обычно 1)

address=0x3C # адрес OLED дисплея на шине I2C (часто 0x3C или 0x3D)

serial = i2c(port=1, address=0x3C

2.6. Из рисунка 9 видим, что скрипт успешно выполнился, тестовый текст успешно появился на дисплее.

3. Подключение пассивного зуммера.

Обратимся к рисункам 6 и 7. Из них видно, что устройство подключается через GPIO4 и питается от 3.3V.

3.1. Выполним подключение к макетной плате согласно таблице 2.

Макетная плата

Пассивный зуммер

3.3V

VCC

GPIO4

IO

GND

GND

Таблица 2. Подключение пассивного зуммера к макетной плате.

3.2. Результат подключения будет выглядеть следующим образом, см. рисунок 10:

4. Аналогично пункту 2 выполним проверку подключения датчика.

4.1. Установим зависимости для зуммера, выполнив:

make setup-KY-006

4.2. Выполните команду:

make KY-006

4.2.1. Если нет никакой реакции, то проверьте номер GPIO указанный в скрипте по пути devices/executive/KY-006_example/py.

BEEP_PIN = 111  # Укажите номер пина, к которому подключен BEEP

4.2.2. Обратимся к пособию “УМК Репка. Учебно-методическое пособие”, в котором представлена распиновка Repka PI 4 (рисунок 11).  Из нее следует, что уникальный идентификатор порта GPIO4 равен 362.

4.2.3. Внесем правки в код и выполним скрипт
BEEP_PIN = 362  # Укажите номер пина, к которому подключен BEEP

4.3. После запуска зуммер должен воспроизвести мелодию.

5. Подключение четырехконтактного светодиодного RGB модуля (RGB LED)

Обратимся к рисункам 6 и 7. Из них видно, что устройство подключается через GPIO17, GPIO27, GPIO22.

5.1. Подключим RGB LED к макетной плате согласно таблице 3:

Макетная плата

RGB LED 

GPIO17

R

GPIO27

G

GPIO22

B

GND

GND

Таблица 3. Подключение RGB LED к макетной плате.

5.2.  Результат подключения будет выглядеть следующим образом, см. рисунок 12.

6. Аналогично пункту 4 выполним проверку подключения модуля.

6.1. Если ранее не устанавливали все зависимости командой setup-all, то установим зависимости для RGB модуля, выполнив:

make setup-rgb-led

6.2. Запустим python скрипт:

make rgb-led

6.3. Если все подключено верно, то в консоли появится выбор работы программы, см. рисунок 13.

6.4. Выберем только красный цвет и оценим результат, см. рисунок 14.

7. Подключение  трехосевого гироскопа и акселерометра (GY-521; MPU-6050).

Обратимся к рисункам 6 и 7. Из них видно, что устройство подключается по интерфейсу I2C и питается от 5V.

7.1. Выполним подключение к макетной плате согласно таблице 4.

Макетная плата

Трехосевой гироскоп

5V

VCC

GND

GND

SCL

SCL

SDA

SDA

Таблица 4. Подключение  трехосевого гироскопа и акселерометра к макетной плате.

7.2. Результат подключения будет выглядеть следующим образом, см. рисунок 15:

8. Аналогично пункту 4 выполним проверку подключения датчика.

8.1. Если ранее не устанавливали все зависимости командой setup-all, то установим зависимости для RGB модуля, выполнив:

make setup-gy-521

8.2. Запустим python скрипт:

make gy-521

8.3. Если все подключено правильно, в консоли отобразятся данные с датчика GY-521, как показано на рисунке 16.

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

Обратимся к рисункам 6 и 7. На них показано, что устройство подключается к GPIO18, а также имеется подтяжка к плюсу через резистор номиналом 4.7 кОм.

9.1. Выполним подключение к макетной плате согласно таблице 5.

Макетная плата

Трехосевой гироскоп

GND

GND

GPIO18

GPIO

Таблица 5. Подключение кнопки к макетной плате.

9.2. Результат подключения будет выглядеть следующим образом, см. рисунок 17.

10. Аналогично пункту 4 выполним проверку подключения датчика.

10.1. Установим зависимости для кнопки, выполнив:

make setup-one-button

10.2. Выполним python скрипт:

make one-button

10.2.1. Если нет никакой реакции, то проверьте номер GPIO указанный в скрипте по пути devices/input-output/one_button_example/py, в данном проекте для кнопки используется GPIO с id равным 203, см. рисунок 11.

PIN1 = 203  # GPIO17

10.3. После выполнения Python-скрипта в консоли должна появиться индикация нажатия кнопки.

Запуск проекта

Теперь, когда все компоненты подключены, можно запустить проект "Охота на светлячка". Для этого в репозитории repka-pi_iot-examples выполняем команду:

make hunting-fireflies

После запуска на дисплее можем наблюдать игровой процесс, а принимать участие в нем можем благодаря кнопки и гороскопу, см. рисунок 19.

Практическая значимость проекта

Проект "Охота на светлячка" имеет большую практическую значимость в образовательном процессе. Он представляет собой интерактивную игру, которая позволяет студентам и ученикам развивать навыки работы с одноплатными компьютерами, такими как Repka PI 4, а также освоить различные компоненты и модули, включая гироскопы, RGB-светодиоды и OLED-дисплеи. Помимо этого, проект помогает в обучении основам программирования на Python, а также в освоении принципов подключения и конфигурирования электронных компонентов с использованием интерфейсов I2C и GPIO.

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

Расширение проекта

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

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

Видеообзор проекта

Для более детального ознакомления с проектом, вы можете посмотреть видеообзор на платформе Rutube.

Пример использования с Python

Проект полностью реализован на языке Python. Код для работы можно найти в репозитории на платформе Gitflic.


Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Темы

Навигация

ВойтиРегистрация