Съдържание:

QuizzPi, игра с дреболии на Raspberry Pi с Python: 7 стъпки (със снимки)
QuizzPi, игра с дреболии на Raspberry Pi с Python: 7 стъпки (със снимки)

Видео: QuizzPi, игра с дреболии на Raspberry Pi с Python: 7 стъпки (със снимки)

Видео: QuizzPi, игра с дреболии на Raspberry Pi с Python: 7 стъпки (със снимки)
Видео: CS50 2014 – 2-я неделя 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 с 8Gb или повече SD карта (35 $)
  • Raspberry Pi 3.5 -инчов LCD с калъф (11 $). Вижте (това е по избор, можете да използвате всеки дисплей, който имате, трябва само да промените кутията на QuizzPi за него)
  • Батерии. Можете да използвате банка за захранване или можете да използвате самоделна батерия 18650 (5 $). В моя случай използвах една банка за захранване Aukey 5000mah (12 $). Вижте
  • Четири аркадни бутона. Имам такива у дома (3 $, 12 бутона за 10 $). Вижте
  • Един превключвател за включване/изключване (0,25 $). Вижте
  • Два USB конектора (0,50 $)
  • Един USB/микро 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: Изработка на корпуса от шперплат …

Изработка на корпуса от шперплат …
Изработка на корпуса от шперплат …
Изработка на корпуса от шперплат …
Изработка на корпуса от шперплат …
Изработка на корпуса от шперплат …
Изработка на корпуса от шперплат …
Изработка на корпуса от шперплат …
Изработка на корпуса от шперплат …

След като изрязах всички части от плановете от шперплат, следващата стъпка е тяхното лепене. В някои съединения поставям подкрепления, за да направя кутията по -силна. В рамката рисувам с молив очертанията на LCD екрана и го изрязвам. Правя четири отвора за винтовете. Ако използвате друг екран, трябва да промените това нещо.

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

Делото 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 банка, така че първо поставих проводници, завършени на квадрат в щифтове на бутони, а след това свързах LCD екрана.

Следващата стъпка беше да монтирате корпуса на Raspberry+LCD+върху рамката. Използвах собствените винтове на корпуса на Raspberry Pi.

QuizzPi е монтиран …

Стъпка 5: Батерия, бутони, превключвател и USB конектор …

Батерия, бутони, превключвател и USB конектор …
Батерия, бутони, превключвател и USB конектор …
Батерия, бутони, превключвател и USB конектор …
Батерия, бутони, превключвател и USB конектор …
Батерия, бутони, превключвател и USB конектор …
Батерия, бутони, превключвател и USB конектор …

Използвах Tinkercad отново, за да проектирам клип, който да държи банката за захранване към кутията. Отпечатах клипа с моя 3D принтер и се присъединих към кутията с пистолет с горещо лепило. Прилагам.stl файла на модела по -долу. Ако нямате достъп до 3D принтер, можете да се присъедините към банката за захранване с велкро лента.

Следващата стъпка е да свържете превключвателя за включване/изключване между банката за захранване и Raspberry Pi. Взех USB кабел и отрязах само захранващия проводник, след това споех единия край на проводника към единия щифт на превключвателя за включване/изключване, а другия край на проводника към другия щифт на превключвателя за включване/изключване. Така че, когато превключвателят при изключване на захранването не минава през ключа и Raspberry е изключен и когато превключвателят при включване преминава през ключа и Raspberry е включен.

Когато разрядът на захранващата банка е проблем да го извадите от кутията, за да го заредите, затова не исках да го изваждам всеки път, за да зареждам. Проблемът беше, че портът за зареждане на захранващата банка е USC тип C и имах само кабела на захранващата банка. Затова запоях два женски USB конектора и сложих в калъфа. Вътрешният конектор за свързване на кабела на захранващата банка, а външният конектор за свързване на USB захранващ кабел.

Поставянето на бутоните и свързването им беше лесно. Бутоните имат 2 пина, като един щифт на всеки бутон се свързва към общ кабел, който отива към заземен GPIO щифт, а другият щифт на бутона се свързва със съответния GPIO щифт на малина. Схемата за окабеляване е показана на приложената диаграма.

Звуковата система е базирана на PAM8403, евтин усилвател на звук. Това е необходимо, тъй като звукът от жака на Raspberry Pi не е твърде мощен, за да работи високоговорител. Трябва да го захранвате с 5v или повече. В приложените изображения можете да видите как да свържете усилвателя и високоговорителя. Имаме нужда от мъжки 3,5 мм жак, за да се свържем към аудио/видео жака на Rapberry. запоих 3 проводника към жака: аудио, видео и земя. Приложената диаграма показва какъв щифт е всеки. След това запоявах проводник към превключвателя за включване/изключване за захранване от и друг проводник към заземяващия проводник от кабела на захранващата банка. След това свързвам проводниците от високоговорителя към изходите на усилвателя. Най -лесната част е да разпределите звуковата система в кутията. Можете да видите в изображенията.

QuizzPi е монтиран, на последната снимка все още можем да видим следи от молив върху дървото, но е време за софтуер … нека да създадем малък двигател за тестове …

Стъпка 6: Изображение на Rasbian и програмиране на Quiz Engine …

Rasbian Image и програмиране на Quiz Engine …
Rasbian Image и програмиране на Quiz Engine …
Rasbian Image и програмиране на Quiz Engine …
Rasbian Image и програмиране на Quiz Engine …
Rasbian Image и програмиране на Quiz Engine …
Rasbian Image и програмиране на Quiz Engine …
Rasbian Image и програмиране на Quiz Engine …
Rasbian Image и програмиране на Quiz Engine …

Натискаме бутона за захранване. Нищо не се случва. Боже мой! Не става! Какво може да не е наред? Някакъв кабел без връзка? Не се притеснявайте, трябва да инсталираме изображение на SD картата …

Двигателят на теста е написан в Python 3, така че се нуждаем от Raspbian изображение с инсталиран компилатор на Python. На този етап трябва да вземем предвид вида на екрана, който сме инсталирали. Моят екран е SPI интерфейс и продавачът дава Raspbian изображение с всички инсталирани драйвери на екрана. Тази версия на Raspbian също има Python двигател. Можете да изтеглите това изображение на тази връзка.

Ако имате HDMI или RCA екран, можете да изтеглите последното Raspbian изображение, налично в сайта на raspberrypi.org. Внимание: имате нужда от настолна версия на Rasbian, така че избягвайте да изтегляте Lite Raspbian изображение. Това изображение съдържа компилатор на Python.

За да инсталираме изображението на SD картата, можем да използваме всяко приложение. Използвам Win32diskimager. След това поставяме SD картата в малината и натискаме превключвателя за включване/изключване. Работи! Сега трябва да създадем програма на Python с двигателя на quizz.

Следващата стъпка е да изтеглите файловете на машината за тестове. Прикачих изходен код във файла QuizzPi.zip. Изтеглете източника и създайте папка в Raspberry Pi:

# mkdir/home/pi/QuizzPi

и разархивирайте изтегления в тази папка файл.

QuizzPi.zip съдържа тези файлове:

  • QuizzPi.py - той съдържа кода
  • 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

За да завършите тази инструкция, можете да видите този видеоклип. Можете да видите, че е лесен за използване и трудните въпроси зависят от вас …

Редактиране: видеоклипът е актуализиран сега със звук!

Състезание за микроконтролер
Състезание за микроконтролер

Вицешампион в конкурса за микроконтролер

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