Оглавление:

QuizzPi, викторина для Raspberry Pi с Python: 7 шагов (с изображениями)
QuizzPi, викторина для Raspberry Pi с Python: 7 шагов (с изображениями)

Видео: QuizzPi, викторина для Raspberry Pi с Python: 7 шагов (с изображениями)

Видео: QuizzPi, викторина для Raspberry Pi с Python: 7 шагов (с изображениями)
Видео: Coursera- The raspberry pi platform and python programming for the Raspberry pi week 1 quiz answers 2024, Июль
Anonim
QuizzPi, пустяковая игра Raspberry Pi с Python
QuizzPi, пустяковая игра Raspberry Pi с Python
QuizzPi, пустяковая игра Raspberry Pi с Python
QuizzPi, пустяковая игра Raspberry Pi с Python

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

Требования проекта:

  • Легко использовать
  • Портативный
  • Легко обновить набор вопросов и ответов
  • Таблица рекордов

Можно настроить несколько элементов. Вы можете создать свою собственную базу данных вопросов / ответов, или вы можете использовать один из нескольких серверов, которые предлагают базу данных, где вы определяете тип вопросов, сложные, … Я создал для своей дочери базу данных вопросов первого класса, но мы можем измените конфигурацию, чтобы получать викторины с сервера oline. Эта обучающая версия позволяет получить ответы на общие вопросы и получить ответы из базы данных Open Trivia. Я выбрал общие вопросы, но вы можете выбрать вопросы о фильмах, спорте или религии.

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

Пойдем!

Шаг 1. Вам понадобятся материалы и инструменты…

Вам нужны материалы и инструменты …
Вам нужны материалы и инструменты …

У вас дома наверняка большая часть материалов…

  • Raspberry Pi 2/3 с SD-картой 8 ГБ или больше (35 $)
  • Raspberry Pi 3.5inch LCD с корпусом (11 $). См. (Это необязательно, вы можете использовать любой дисплей, который у вас есть, вам нужно только изменить для него чехол QuizzPi)
  • Аккумуляторы. Вы можете использовать внешний аккумулятор или аккумуляторную батарею diy 18650 (5 $). В моем случае я использовал один павербанк Aukey 5000mah (12 $). Видеть
  • Четыре аркадные кнопки. У меня дома есть такие (3 доллара, 12 пуговиц по 10 долларов). Видеть
  • Один выключатель (0,25 $). Видеть
  • Два разъема USB (0.50 $)
  • Один кабель USB / micro USB
  • Один дешевый динамик (опционально) (0,25 $). Видеть
  • Один усилитель PAM8403 (опционально) (0,80 $). Видеть
  • Некоторые провода для подключения кнопок, разъема USB и переключателя включения / выключения к контактам GPIO (1 $?)
  • Четыре неодимовых магнита или можно использовать что угодно, чтобы закрыть заднюю дверь. Видеть
  • Фанера. Я использовал фанеру толщиной 5 мм, но вы можете использовать любую, что есть дома (2 $).

Вам тоже понадобятся инструменты …

  • Утилиты для пайки
  • Отвертки
  • Пистолет для горячего клея
  • 3D-принтер (опционально)

Пойдем!

Шаг 2. Давайте разработаем классный чехол для QuizzPi…

Давайте создадим классный чехол для QuizzPi…
Давайте создадим классный чехол для QuizzPi…
Давайте создадим крутой чехол для QuizzPi…
Давайте создадим крутой чехол для QuizzPi…

Первое, что нам нужно, это знать, сколько места нам нужно, чтобы включить оборудование (Raspberry + экран + кнопки + аккумулятор + провода). С учетом деталей, описанных на предыдущем шаге, я сделал 3D-дизайн корпуса с помощью бесплатного онлайн-3D-конструктора Tinkercad (см.). Если вы хотите распечатать 3D-модель корпуса, вы можете скачать ее из прикрепленного файла QuizzPi case.stl.

В тот момент мне нужно было решить, распечатать модель на моем 3D-принтере или сделать ее из фанеры. Я подумал, что ради дочери я смогу потратить немного больше времени на изготовление ее из фанеры. Я беру планы из 3D-модели и распиливаю дрова.

Следующим шагом будет горячая склейка деталей…

Шаг 3. Изготовление фанерного ящика…

Изготовление фанерного ящика…
Изготовление фанерного ящика…
Изготовление фанерного ящика…
Изготовление фанерного ящика…
Изготовление фанерного ящика…
Изготовление фанерного ящика…
Изготовление фанерного ящика…
Изготовление фанерного ящика…

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

Задняя дверь закрывается двумя магнитами, приклеенными к двери, и двумя магнитами, приклеенными к корпусу, поэтому я избегаю использования петель.

Дело QuizzPi готово …

Шаг 4: Подключение контактов GPIO, установка Raspberry + LCD…

Подключение контактов GPIO, установка Raspberry + LCD…
Подключение контактов GPIO, установка Raspberry + LCD…
Подключение контактов GPIO, установка Raspberry + LCD…
Подключение контактов GPIO, установка Raspberry + LCD…
Подключение контактов GPIO, установка Raspberry + LCD…
Подключение контактов GPIO, установка Raspberry + LCD…

Нам нужно подключить кнопки к Raspberry Pi, чтобы он мог знать, какая кнопка нажата. Кнопки подключаются к контактам GPIO. Нам нужно четыре контакта IN GPIO плюс один контакт Gnd GPIO. Я использовал контакты GPIO 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) и 39 (Gnd) для красной, желтой, зеленой и синей кнопок соответственно. Этот экран имеет интерфейс SPI. Это означает, что он подключен к банку GPIO, поэтому сначала я вставил провода, оканчивающиеся квадратом, в контакты кнопок, а затем подключил ЖК-экран.

Следующим шагом было крепление корпуса Raspberry + LCD + к лицевой панели. Я использовал собственные винты корпуса Raspberry Pi.

QuizzPi установлен…

Шаг 5. Аккумулятор, кнопки, переключатель и разъем USB…

Аккумулятор, кнопки, переключатель и разъем USB…
Аккумулятор, кнопки, переключатель и разъем USB…
Аккумулятор, кнопки, переключатель и разъем USB…
Аккумулятор, кнопки, переключатель и разъем USB…
Аккумулятор, кнопки, переключатель и разъем USB…
Аккумулятор, кнопки, переключатель и разъем USB…

Я снова использовал Tinkercad, чтобы создать зажим, чтобы прикрепить блок питания к корпусу. Я распечатал клип на 3D-принтере и прикрепил к корпусу пистолетом с горячим клеем. Прилагаю.stl файл модели ниже. Если у вас нет доступа к 3D-принтеру, вы можете присоединить блок питания с помощью липкой ленты.

Следующим шагом является подключение переключателя включения / выключения между блоком питания и Raspberry Pi. Я взял USB-кабель и перерезал только провод питания, затем припаял один конец провода к одному контакту переключателя включения / выключения, а другой конец провода - к другому контакту переключателя включения / выключения. Итак, когда выключатель в выключенном состоянии не проходит через выключатель, а Raspberry выключен, а при включении питание проходит через выключатель, а Raspberry включен.

Когда power bank разряжается, трудно вынуть его из футляра, чтобы зарядить, поэтому я не хотел вынимать его каждый раз для зарядки. Проблема заключалась в том, что порт зарядки внешнего блока питания - USC type C, и у меня был только кабель блока питания. Поэтому я припаял два USB-разъема-розетки и вставил их в корпус. Разъем внутри для подключения кабеля блока питания и внешний разъем для подключения кабеля питания USB.

Расставить кнопки и подключить их было несложно. Кнопки имеют 2 контакта, один контакт каждой кнопки подключается к общему кабелю, который идет к контакту заземления GPIO, а другой контакт кнопки подключается к соответствующему контакту GPIO малины. Схема подключения показана на прилагаемой схеме.

Звуковая система построена на дешевом усилителе звука PAM8403. Это необходимо, потому что звук, поступающий из разъема Raspberry Pi, не слишком мощный, чтобы динамик работал. Вам необходимо запитать его от 5В или более. На прикрепленных изображениях вы можете увидеть, как подключить усилитель и динамик. Нам понадобится штекерный разъем 3,5 мм для подключения к аудио / видео разъему Rapberry. К разъему припаял 3 провода: аудио, видео и земля. На прилагаемой диаграмме показано, какой контакт у каждого. Затем я припаял провод к переключателю включения / выключения для получения питания, а другой провод к заземляющему проводу от кабеля блока питания. Затем подключаю провода от динамика к выходам усилителя. Самое простое - разместить аудиосистему в корпусе. Вы можете видеть на изображениях.

QuizzPi смонтирован, на последней фотографии мы все еще можем видеть следы карандаша на дереве, но пришло время программного обеспечения … давайте создадим крошечный движок викторины …

Шаг 6: Изображение Rasbian и программирование движка викторины…

Изображение Rasbian и программирование движка викторины…
Изображение Rasbian и программирование движка викторины…
Изображение Rasbian и программирование движка викторины…
Изображение Rasbian и программирование движка викторины…
Изображение Rasbian и программирование движка викторины…
Изображение Rasbian и программирование движка викторины…
Изображение Rasbian и программирование движка викторины…
Изображение Rasbian и программирование движка викторины…

Нажимаем кнопку включения. Ничего не произошло. О мой Бог! Не работает! Что может быть не так? Любой кабель без подключения? Не волнуйтесь, нам нужно установить образ на SD-карту …

Механизм викторины написан на Python 3, поэтому нам нужен образ Raspbian с установленным компилятором Python. На этом этапе мы должны принять во внимание тип установленного нами экрана. Мой экран - это интерфейс SPI, и продавец дает образ Raspbian со всеми установленными драйверами экрана. Эта версия Raspbian также имеет движок Python. Вы можете скачать это изображение по этой ссылке.

Если у вас есть экран HDMI или RCA, вы можете загрузить последний образ Raspbian, доступный на сайте raspberrypi.org. Внимание: вам нужна версия Desktop Rasbian, поэтому не загружайте образ Lite Raspbian. Эти изображения содержат компилятор Python.

Для установки образа на SD-карту мы можем использовать любое приложение. Пользуюсь Win32diskimager. Затем вставляем SD-карту в Raspberry и нажимаем выключатель. Оно работает! Теперь нам нужно создать программу Python с движком викторины.

Следующим шагом будет загрузка файлов движка викторины. Я прикрепил исходный код в файле QuizzPi.zip. Загрузите исходный код и создайте папку в Raspberry Pi:

# mkdir / home / pi / QuizzPi

и разархивируйте скачанный файл в эту папку.

QuizzPi.zip содержит следующие файлы:

  • QuizzPi.py - содержит код
  • Файлы изображений-p.webp" />
  • Звуковые файлы MP3 - вы можете изменить для персонализации
  • losmejores.txt - содержит таблицу рекордов, вы можете удалить ее, чтобы инициализировать таблицу
  • Instructions.txt

Я не буду давать исчерпывающих объяснений того, как я программировал код движка на Python, потому что это сложно для людей без знаний программирования. Им нужно только сохранить файлы в Raspberry. Люди со знаниями программирования смогут изменить его без объяснения причин;)

Вопросы и ответы взяты из совместной базы данных вопросов и ответов под названием Open Trivia Database, которую вы можете найти здесь. Вы можете изменить категорию и сложность вопросов, изменив строку в файле QuizzPi.py:

#Cargo desde URLurl = 'https://opentdb.com/api.php?amount=10&type=multiple'

изменение с помощью URL-адреса, полученного из конфигуратора api

Я проектировал игровые экраны в Photoshop, вы можете их модифицировать. Вы должны сохранить только некоторые белые области на экране вопросов, на экране результатов и на экранах рекордов, потому что игровой движок пишет на них.

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

Теперь вы должны изменить свой Raspbian для автоматического запуска QuizzPi. Вы можете прочитать эту статью, в которой объясняется, как это сделать:

Мы закончили!!!

Шаг 7. Демонстрация…

Image
Image

Чтобы закончить это руководство, вы можете посмотреть это видео. Как видите, им легко пользоваться, а сложность вопросов зависит от вас …

Редактировать: видео теперь обновлено со звуком!

Конкурс микроконтроллеров
Конкурс микроконтроллеров

Финалист конкурса микроконтроллеров

Рекомендуемые: