Мазмуну:
- 1 -кадам: Сизге кээ бир материалдар жана шаймандар керек…
- 2 -кадам: Келгиле, сонун QuizzPi корпусун иштеп чыгалы …
- 3 -кадам: фанера кутусун жасоо…
- 4 -кадам: GPIO казыктарын туташтыруу, Raspberry+LCD орнотуу…
- 5 -кадам: Батарея, баскычтар, которгуч жана USB туташтыргычы …
- 6 -кадам: Rasbian Image жана Quiz Engine программасы …
- 7 -кадам: Демонстрация…
Video: QuizzPi, Python менен Raspberry Pi Trivia оюну: 7 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
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 корпусун иштеп чыгалы …
Бизге керек болгон биринчи нерсе - бул аппараттык жабдыктарды (Raspberry + экран + баскычтар + батарея + зымдар) камтышы керек болгон канча мейкиндикти билүү. Мурунку кадамда сүрөттөлгөн бөлүктөрдү эске алуу менен мен акысыз 3D дизайнер Tinkercadдын жардамы менен иштин 3D дизайнын түздүм..stl.
Ошол учурда мен моделди 3D принтеримде басып чыгарууну же фанерадан жасоону чечишим керек болчу. Мен кызым үчүн фанерадан жасоого дагы бир аз убакыт бөлө алам деп ойлогом. Ошентип, мен 3D моделинен пландарды алып, жыгачты кесем.
Кийинки кадам-тетиктерди ысык желимдөө …
3 -кадам: фанера кутусун жасоо…
Мен пландардын бардык фанер бөлүктөрүн кесип алгандан кийин, кийинки кадам аларды ысык желимдөө. Кээ бир кошулмаларда мен кутуну күчтүү кылуу үчүн арматураларды койгом. Каркас менен ЖК экрандын контурун карандаш менен чийип, аны кесип салам. Мен бурамалар үчүн төрт тешик жасайм. Эгерде сиз башка экранды колдонсоңуз, анда бул нерсени өзгөртүшүңүз керек.
Арткы эшик эшикке жабышкан эки магнит жана корпуска эки магнит менен жабылат, ошондуктан мен илгичтерди колдонуудан алысмын.
QuizzPi иши аяктады …
4 -кадам: 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 туташтыргычы …
Мен кайрадан Тинкеркадды колдонуп, кубат банкын корпуста кармап туруу үчүн клипти иштеп чыктым. Мен 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 программасы …
Биз кубат баскычын басабыз. Эч нерсе болбойт. О, Кудай! Бул иштебейт! Эмне туура эмес болушу мүмкүн? Байланышы жок кабель барбы? Кабатыр болбоңуз, биз 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 -кадам: Демонстрация…
Бул көрсөтмөнү бүтүрүү үчүн бул видеону көрө аласыз. Көрүп турасыз, аны колдонуу оңой жана суроолордун татаалдыгы сизден көз каранды …
Түзөтүү: видео азыр үн менен жаңыртылды!
Микроконтроллер конкурсунда экинчи орун
Сунушталууда:
DIY 37 Leds Arduino Roulette Оюну: 3 кадам (Сүрөттөр менен)
DIY 37 Leds Arduino Roulette Game: Рулет - бул кичинекей дөңгөлөк дегенди билдирген француз сөзүнүн атынан аталган казино оюну
Макей Макей менен магниттик плинко оюну: 6 кадам (сүрөттөр менен)
Магниттик Плинко Оюну Макей Макей менен: Ооба, бул сегментте, дагы бир жолу плейко плейко макей макео.Ошондой эле авто-экспликативдик пландар да: плюс плинко, америкалык магнитикалык, максималдуу сезимдер. Макей.Пара ооруну жаратуу үчүн
Тийүү менен эс тутум оюну (Саймон мындай дейт) - Эгерде бул ошондо: 6 кадам (сүрөттөр менен)
Тийүү менен эс тутум оюну (Саймон мындай дейт) - Эгерде бул ошондо: Мен өз алдынча жасалган сенсордук аянтчалар жана мектеп проектиси үчүн неопикселдүү шакек менен эстутум оюнун жасадым. Бул оюн Simon Saysке окшош, бирок оюндагы көптөгөн киргизүү жана кайтарым байланыштар (үндөр жана жарык эффекттери) башкача. Мен Су үндөрүн программаладым
Смартфон менен башкарыла турган лабиринт оюну: 5 кадам (сүрөттөр менен)
Смартфон менен башкарыла турган лабиринт оюну: акылдуу телефон менен башкара турган лабиринт оюну. Лабиринт смартфондун эңкейишине жараша жылат. Биринчиден, видеону караңыз. Motion image1. Raspberry Pi - бул Websocket сервери. Смартфон Websocket кардары болуп саналат.3. Смартфон даректерди жөнөтөт
Джойстик жана IR алуучу менен Arduino көзөмөлдөгөн платформа оюну: 3 кадам (сүрөттөр менен)
Ардуино көзөмөлдөгөн платформер оюну джойстик жана IR алуучу менен: Бүгүн биз C#негизделген жөнөкөй платформер оюнун башкаруу үчүн Arduino микроконтроллерин колдонобуз. Мен Ардуинону джойстик модулунан киргизүү үчүн колдонуп жатам жана ошол киргизүүнү C# тиркемесине жөнөтөм, ал Serial c аркылуу маалыматты угат жана чечет