Мазмуну:

QuizzPi, Python менен Raspberry Pi Trivia оюну: 7 кадам (сүрөттөр менен)
QuizzPi, Python менен Raspberry Pi Trivia оюну: 7 кадам (сүрөттөр менен)

Video: QuizzPi, Python менен Raspberry Pi Trivia оюну: 7 кадам (сүрөттөр менен)

Video: QuizzPi, Python менен Raspberry Pi Trivia оюну: 7 кадам (сүрөттөр менен)
Video: CS50 2015 – первая неделя 2024, Ноябрь
Anonim
QuizzPi, Python менен Raspberry Pi Trivia оюну
QuizzPi, Python менен Raspberry Pi Trivia оюну
QuizzPi, Python менен Raspberry Pi Trivia оюну
QuizzPi, Python менен Raspberry Pi Trivia оюну

QuizzPi - бул аркада түрүндөгү тривиа оюну. QuizzPi менин кызыма көңүл ачуу керек болгондуктан төрөлгөн. Ал 7 жашта жана ал жаңы технологияларды колдонууну талап кылат, идеясы кызыктуу жана билим берүүчү нерсени жаратуу болчу.

Долбоордун талаптары:

  • Колдонууга оңой
  • Портативдүү
  • Суроо -жооптор топтомун жаңыртуу оңой
  • Жогорку упайлар таблицасы

Бир нече нерселер конфигурацияланат. Сиз суроолордун/жооптордун жеке маалымат базасын түзө аласыз же маалымат базасын сунуштаган бир нече серверлердин бирин колдонсоңуз болот, анда сиз суроолордун түрүн чечесиз, кыйын, … мен кызыма биринчи класстагы суроолордун маалымат базасын түздүм, бирок биз oline серверинен майда -чүйдө суроолорду алуу үчүн конфигурацияны өзгөртүңүз. Бул нускоочу нуска суроолорду биргелешкен суроолордон жана жооптордон, Open Trivia Databaseтен алат. Мен жалпы билим суроолорун тандадым, бирок сиз кино, спорт же дин боюнча суроолорду тандай аласыз.

Мен начар англис тилим үчүн кечирим сурайм. Мен испанмын, бирок англисче үйрөткүчтү түзүүнү туура көрдүм, анткени ал көбүрөөк адамдарга жетет.

Кеттик!

1 -кадам: Сизге кээ бир материалдар жана шаймандар керек…

Сизге кээ бир материалдар жана шаймандар керек…
Сизге кээ бир материалдар жана шаймандар керек…

Сизде үйдө көптөгөн материалдар бар экени шексиз …

  • Raspberry Pi 2/3 8 Гб же андан көп SD карта менен (35 $)
  • Корпусу бар Raspberry Pi 3.5 дюймдук LCD (11 $). Караңыз (бул милдеттүү эмес, сиз каалаган дисплейди колдоно аласыз, ал үчүн QuizzPi корпусун гана өзгөртүү керек)
  • Батарейкалар. Сиз кубат банкын колдонсоңуз болот же DIY 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 $)

Сизге дагы кээ бир шаймандар керек…

  • Soldering Utilities
  • Бурамалар
  • Hotglue тапанчасы
  • 3D принтер (милдеттүү эмес)

Кеттик!

2 -кадам: Келгиле, сонун QuizzPi корпусун иштеп чыгалы …

Кел, сонун QuizzPi корпусун иштеп чыгалы …
Кел, сонун QuizzPi корпусун иштеп чыгалы …
Келгиле, сонун QuizzPi корпусун иштеп чыгалы …
Келгиле, сонун QuizzPi корпусун иштеп чыгалы …

Бизге керек болгон биринчи нерсе - бул аппараттык жабдыктарды (Raspberry + экран + баскычтар + батарея + зымдар) камтышы керек болгон канча мейкиндикти билүү. Мурунку кадамда сүрөттөлгөн бөлүктөрдү эске алуу менен мен акысыз 3D дизайнер Tinkercadдын жардамы менен иштин 3D дизайнын түздүм..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 pin 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 туташтыргычы…

Мен кайрадан Тинкеркадды колдонуп, кубат банкын корпуста кармап туруу үчүн клипти иштеп чыктым. Мен 3D принтерим менен клипти басып чыгардым жана ысык клей тапанчасы менен корпуска кошулдум. Мен төмөндөгү моделдин.stl файлын тиркейм. Эгерде 3D принтерге кирүү мүмкүнчүлүгүңүз жок болсо, сиз велкро лента менен банкка кошулсаңыз болот.

Кийинки кадам - электр банкы менен Raspberry Pi ортосундагы күйгүзүү/өчүрүү туташтыруу. Мен USB кабелин алдым, мен электр зымын гана кесип салдым, андан кийин бир зымдын башын күйгүзүү/өчүрүү которгучунун бир пинине, ал эми башка зымдын учун башка күйгүзүү/өчүргүчкө туташтырдым. Ошентип, өчүрүү кубаты swtich аркылуу өтпөйт жана Raspberry өчөт, ал эми күйгүзүү swtich аркылуу өтөт жана Raspberry күйүп турат.

Күч банкынын разряддары аны заряддоону чечүү үчүн көйгөй болгондо, мен аны дайыма кубаттоо үчүн алып салгым келген жок. Көйгөй кубат банкынын кубаттоочу порту USC түрү, менде кубат банкынын кабели гана бар болчу. Ошентип, мен эки аял USB коннекторун ширетип, корпуска салдым. Кубат банкынын кабелин туташтыруу үчүн ичиндеги туташтыргычы, ал эми тышкы туташтыргычы USB кубат кабелин туташтыруу үчүн.

Түймөлөрдү жайгаштыруу жана аларды зымдоо оңой эле. Кнопкаларда 2 төөнөгүч бар, ар бир баскычтын бир пини жерге GPIO төөнөгүчүнө баруучу жалпы кабелге туташат, ал эми баскычтын башка пини малинанын тиешелүү GPIO пинине туташат. Өткөрүү схемасы тиркелген диаграммада көрсөтүлгөн.

Үн системасы арзан үн күчөткүч PAM8403ке негизделген. Бул керек, анткени Raspberry Pi уячасынан чыккан үн динамикти иштетүү үчүн өтө күчтүү эмес. Сиз 5v же андан көп кубатташыңыз керек. Тиркелген сүрөттөрдө сиз күчөткүчтү жана динамикти кантип зым менен жабууну көрө аласыз. Rapberryдин аудио/видео уячасына туташуу үчүн бизге 3,5 мм эркек джек керек. Мен 3 зымды домкратка туташтырдым: аудио, видео жана жерге. Тиркелген диаграмма ар ким кандай пин экенин көрсөтөт. Андан кийин мен зымдын кубатын алуу үчүн On/Off өчүргүчүнө, дагы бир зымды электр банкынын кабелинен жерге зымга коштум. Андан кийин зымдарды динамиктен күчөткүчтүн чыгышына туташтырам. Оңой бөлүгү - бул үн системасын учурда бөлүштүрүү. Сиз сүрөттөрдөн көрө аласыз.

QuizzPi орнотулган, акыркы сүрөттө биз дагы эле жыгачтан карандаш белгилерин көрө алабыз, бирок программалык камсыздоонун убактысы келди … кичинекей викториналык кыймылдаткычты түзүүгө баралы …

6 -кадам: 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 программасы …
Rasbian Image жана Quiz Engine программасы …

Биз кубат баскычын басабыз. Эч нерсе болбойт. О, Кудай! Бул иштебейт! Эмне туура эмес болушу мүмкүн? Байланышы жок кабель барбы? Кабатыр болбоңуз, биз SD картага сүрөт орнотушубуз керек…

Викторинанын мотору Python 3те жазылган, андыктан бизге Python компилятору орнотулган Raspbian сүрөтү керек. Бул жерде биз орноткон экрандын түрүн эске алышыбыз керек. Менин экраным SPI интерфейси жана сатуучу бардык экран драйверлери орнотулган Raspbian сүрөтүн берет. Бул Raspbian версиясында Python кыймылдаткычы да бар. Бул сүрөттү бул шилтемеден жүктөп алсаңыз болот.

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

Сүрөттү SD картка орнотуу үчүн биз каалаган колдонмону колдоно алабыз. Мен Win32diskimager колдоном. Андан кийин биз SD картаны Raspberryге салып, күйгүзүү/өчүрүү баскычын басабыз. Ал иштейт! Эми биз викторинасы бар Python программасын түзүшүбүз керек.

Кийинки кадам - викторинанын кыймылдаткычынын файлдарын жүктөө. Мен булак кодун 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'

api конфигураторунан алынган url менен өзгөртүү

Мен Photoshopто оюн экрандарын иштеп чыктым, сиз аларды өзгөртө аласыз. Сиз суроо экранында, натыйжалар экранында жана жогорку упай экрандарында кээ бир ак жерлерди сакташыңыз керек, анткени оюн мотору аларга жазат.

Сиз дагы оюндун үндөрүн жекелештире аласыз. Сиз каалаган башка.mp3 файлдарын өзгөртүшүңүз керек, ошол эле аталыштарды сактап калышыңыз керек. Сиз онлайн маалымат базаларынан көптөгөн үндөрдү ала аласыз, мен Free Sound Effectsтен миналарды алам.

Эми сиз автоматтык түрдө QuizzPi иштетүү үчүн Raspbianыңызды өзгөртүүңүз керек. Бул макаланы кантип окууга болот:

Биз бүтүрдүк !!!

7 -кадам: Демонстрация…

Image
Image

Бул көрсөтмөнү бүтүрүү үчүн бул видеону көрө аласыз. Көрүп турасыз, аны колдонуу оңой жана суроолордун татаалдыгы сизден көз каранды …

Түзөтүү: видео азыр үн менен жаңыртылды!

Микроконтроллер конкурсу
Микроконтроллер конкурсу

Микроконтроллер конкурсунда экинчи орун

Сунушталууда: