Բովանդակություն:

QuizzPi, Raspberry Pi Trivia խաղ Python- ի հետ. 7 քայլ (նկարներով)
QuizzPi, Raspberry Pi Trivia խաղ Python- ի հետ. 7 քայլ (նկարներով)

Video: QuizzPi, Raspberry Pi Trivia խաղ Python- ի հետ. 7 քայլ (նկարներով)

Video: QuizzPi, Raspberry Pi Trivia խաղ Python- ի հետ. 7 քայլ (նկարներով)
Video: QuizzPi, a Raspberry Pi trivia game 2024, Հուլիսի
Anonim
QuizzPi, ազնվամորի Pi մանրուք խաղ Python- ի հետ
QuizzPi, ազնվամորի Pi մանրուք խաղ Python- ի հետ
QuizzPi, ազնվամորի Pi մանրուք խաղ Python- ի հետ
QuizzPi, ազնվամորի Pi մանրուք խաղ Python- ի հետ

QuizzPi- ն արկադային տեսակի մանրուքների խաղ է: QuizzPi- ն ծնվեց, քանի որ ես կարիք ունեի աղջկաս ժամանցի տալ: Նա 7 տարեկան է, և նա արդեն պահանջում է օգտագործել նոր տեխնոլոգիաներ, գաղափարն այն էր, որ ստեղծվեր մի բան, որը և՛ զվարճալի էր, և՛ կրթական:

Նախագծի պահանջները.

  • Հեշտ է օգտագործել
  • Դյուրակիր
  • Հեշտ է արդիականացնել հարցերի և պատասխանների փաթեթը
  • Բարձր միավորների աղյուսակ

Բազմաթիվ տարրեր կարգավորելի են: Դուք կարող եք ստեղծել ձեր սեփական հարցերի/պատասխանների տվյալների շտեմարան կամ կարող եք օգտագործել բազմաթիվ սերվերներից մեկը, որն առաջարկում է տվյալների բազա, որտեղ դուք որոշում եք հարցերի տիպը, դժվարին… Ես ստեղծեցի իմ աղջկա համար առաջին դասարանի հարցերի շտեմարան, բայց մենք կարող ենք փոխել կոնֆիգուրացիան ՝ օլինային սերվերից մանրուքներ ստանալու համար: Այս ուսանելի տարբերակը ստացեք հարցերը համատեղ հարցերից և պատասխաններից ՝ Բաց մանրուքների տվյալների շտեմարանից: Ես ընտրել եմ ընդհանուր գիտելիքների վերաբերյալ հարցեր, բայց դուք կարող եք ընտրել կինոյի, սպորտի կամ կրոնի հարցերը:

Ներողություն եմ խնդրում իմ վատ անգլերենի համար: Ես իսպանացի եմ, բայց նախընտրել եմ ստեղծել անգլերենի համար ուսանելի այս ծրագիրը, որպեսզի այն կարողանա հասնել ավելի շատ մարդկանց:

Գնացինք!

Քայլ 1: Ձեզ անհրաժեշտ են որոշ նյութեր և գործիքներ…

Ձեզ անհրաժեշտ են որոշ նյութեր և գործիքներ…
Ձեզ անհրաժեշտ են որոշ նյութեր և գործիքներ…

Դուք, անշուշտ, տանը ունեք նյութի մեծ մասը…

  • Raspberry Pi 2/3 ՝ 8 Գբ կամ ավելի SD քարտով (35 $)
  • Raspberry Pi 3.5 դյույմանոց LCD պատյանով (11 $): Տեսեք (սա ընտրովի չէ, կարող եք օգտագործել ձեր ունեցած ցանկացած ցուցադրում, դրա համար անհրաժեշտ է միայն փոփոխել QuizzPi գործը)
  • Մարտկոցներ: Դուք կարող եք օգտագործել էներգիայի բանկ կամ կարող եք օգտագործել DI 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 $)

Ձեզ նույնպես պետք են որոշ գործիքներ…

  • Sոդման կոմունալ ծառայություններ
  • Պտուտակային վարորդներ
  • Hotglue ատրճանակ
  • 3D տպիչ (ըստ ցանկության)

Գնացինք!

Քայլ 2: Եկեք նախագծենք թույն QuizzPi գործ…

Եկեք նախագծենք թույն QuizzPi գործ…
Եկեք նախագծենք թույն QuizzPi գործ…
Եկեք նախագծենք թույն QuizzPi գործ…
Եկեք նախագծենք թույն QuizzPi գործ…

Առաջին բանը, որ մեզ պետք է, իմանալն է, թե որքան տարածք է մեզ անհրաժեշտ սարքավորում ներառելու համար (Ազնվամորի + էկրան + կոճակներ + մարտկոց + լարեր): Հաշվի առնելով նախորդ քայլին նկարագրված մասերը, ես գործի 3D ձևավորում կատարեցի ՝ օգտագործելով անվճար առցանց 3D դիզայներ Tinkercad (տես): Եթե ցանկանում եք տպել պատյանների 3D մոդելը, կարող եք ներբեռնել կից ֆայլից QuizzPi պատյան.ստլ

Այդ պահին ես պետք է որոշեի ՝ մոդելը տպե՞լ իմ 3D տպիչի վրա, թե՞ այն պատրաստել նրբատախտակից: Ես մտածեցի, որ լինելով իմ դստեր համար, ես կարող էի մի փոքր ավելի շատ ժամանակ տրամադրել նրբատախտակից պատրաստելու համար: Այսպիսով, ես ստանում եմ պլանները 3D մոդելից և կտրում փայտը:

Հաջորդ քայլը մասերի տաք սոսնձումն է…

Քայլ 3. Նրբատախտակի պատյան պատրաստելը…

Նրբատախտակի պատյան պատրաստելը…
Նրբատախտակի պատյան պատրաստելը…
Նրբատախտակի պատյան պատրաստելը…
Նրբատախտակի պատյան պատրաստելը…
Նրբատախտակի պատյան պատրաստելը…
Նրբատախտակի պատյան պատրաստելը…
Նրբատախտակի պատյան պատրաստելը…
Նրբատախտակի պատյան պատրաստելը…

Երբ ես կտրեցի պլանների բոլոր նրբատախտակի մասերը, հաջորդ քայլը դրանք տաք սոսնձելն է: Որոշ միացումներում ես ամրացումներ եմ դնում, որպեսզի տուփն ավելի ամուր լինի: Եզրագծում մատիտով գծում եմ LCD էկրանի ուրվագիծը և կտրում այն: Պտուտակների համար ես չորս անցք եմ անում: Եթե օգտագործում եք այլ էկրան, ապա պետք է փոփոխեք այս բանը:

Հետևի դուռը փակվում է դռան վրա սոսնձված երկու մագնիսներով և պատյանին երկու սոսինձով, այնպես որ ես խուսափում եմ ծխնիների օգտագործումից:

QuizzPi գործն ավարտված է…

Քայլ 4. GPIO կապումների միացում, ազնվամորի+LCD տեղադրում…

GPIO կապումների միացում, ազնվամորի+LCD տեղադրում…
GPIO կապումների միացում, ազնվամորի+LCD տեղադրում…
GPIO կապումների միացում, ազնվամորի+LCD տեղադրում…
GPIO կապումների միացում, ազնվամորի+LCD տեղադրում…
GPIO կապումների միացում, ազնվամորի+LCD տեղադրում…
GPIO կապումների միացում, ազնվամորի+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 տպիչ չունեք, կարող եք միանալ Power Bank- ին `velcro ժապավենով:

Հաջորդ քայլը հոսանքի բանկի և Raspberry Pi- ի միջև միացնել/անջատելու անջատիչն է: Ես վերցրեցի USB մալուխ և կտրեցի միայն հոսանքի լարը, այնուհետև մի մետաղալարերի ծայրը կպցրեցի միացման/անջատման անջատիչի մեկ քորոցին, իսկ մյուս ծայրը ՝ միացման/անջատման մյուս քորոցին: Այսպիսով, երբ անջատիչ հոսանքի անջատիչը չի անցնում swtich- ով, իսկ Raspberry- ն անջատված է, և երբ հոսանքի անջատիչը անցնում է swtich- ով, իսկ Raspberry- ը միացված է:

Երբ Power Bank- ի լիցքաթափումը խնդիր է այն հանել պատյանը `այն լիցքավորելու համար, ուստի ես չէի ուզում ամեն անգամ հանել այն լիցքավորելու համար: Խնդիրն այն էր, որ Power Bank- ի լիցքավորման պորտը USC տիպի C է, և ես ունեի միայն Power Bank- ի մալուխը: Այսպիսով, ես զոդեցի երկու կին USB միակցիչ և դրեցի պատյանը: Ներքին միակցիչը `սնուցման բանկի մալուխը միացնելու համար, իսկ արտաքին միակցիչը` USB հոսանքի մալուխը միացնելու համար:

Կոճակները տեղադրելը և դրանք միացնելը հեշտ էր: Կոճակներն ունեն 2 կապում, յուրաքանչյուր կոճակի մի կապը միանում է սովորական մալուխին, որը գնում է հիմնավորված GPIO կապին, իսկ կոճակի մյուս քորոցը `ազնվամորի համապատասխան GPIO կապին: Էլեկտրագծերի սխեման ցուցադրվում է կցված դիագրամում:

Ձայնային համակարգը հիմնված է PAM8403- ի վրա `էժան ձայնային ուժեղացուցիչ: Դա անհրաժեշտ է, քանի որ Raspberry Pi- ի խցիկից հնչող ձայնը այնքան էլ հզոր չէ, որ բարձրախոսը աշխատի: Դուք պետք է այն սնուցեք 5 վ կամ ավելի լարման միջոցով: Կցված պատկերներում կարող եք տեսնել, թե ինչպես միացնել ուժեղացուցիչն ու բարձրախոսը: Մեզ պետք է 3,5 մմ արու խցիկ ՝ Rapberry- ի աուդիո/վիդեո խցիկին միանալու համար: Ես 3 լար կապեցի խցիկին `աուդիո, վիդեո և հող: Կցված դիագրամը ցույց է տալիս, թե ինչ քորոց են բոլորը: Այնուհետև ես մի լար միացրեցի միացման/անջատման անջատիչին `հոսանքը վերցնելու համար, և մեկ այլ մետաղալար` գետնին `էլեկտրասնուցման բանկի մալուխից: Այնուհետեւ խոսափողից լարերը միացնում եմ ուժեղացուցիչի ելքերին: Հեշտ մասն այն է, որ ձայնային համակարգը տեղաբաշխվի գործի մեջ: Դուք կարող եք տեսնել պատկերներում:

QuizzPi- ն տեղադրված է, վերջին լուսանկարում մենք դեռ կարող ենք տեսնել մատիտի հետքերը փայտի վրա, բայց ժամանակն է ծրագրային ապահովման… եկեք ստեղծենք փոքրիկ վիկտորինայի շարժիչ…

Քայլ 6. Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…

Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…
Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…
Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…
Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…
Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…
Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…
Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…
Rasbian Image և ծրագրավորում վիկտորինայի շարժիչ…

Մենք սեղմում ենք հոսանքի կոճակը: Ոչինչ տեղի չի ունենում. Օ God, Աստված իմ: Դա չի ստացվում: Ի՞նչը կարող է սխալ լինել: Առանց միացման մալուխ կա՞: Մի անհանգստացեք, մենք պետք է պատկեր տեղադրենք SD քարտի վրա…

Վիկտորինայի շարժիչը գրված է Python 3 -ում, ուստի մեզ պետք է Raspbian պատկեր ՝ տեղադրված Python կոմպիլյատորով: Այս պահին մենք պետք է հաշվի առնենք մեր տեղադրած էկրանի տեսակը: Իմ էկրանը SPI ինտերֆեյս է, և վաճառողը տալիս է Raspbian պատկեր ՝ տեղադրված էկրանի բոլոր վարորդներով: Raspbian- ի այս տարբերակը նույնպես ունի Python շարժիչ: Այս պատկերը կարող եք ներբեռնել այս հղումով:

Եթե ունեք HDMI կամ RCA էկրան, կարող եք ներբեռնել Raspbian- ի վերջին պատկերը, որը հասանելի է raspberrypi.org կայքում: Ուշադրություն. Ձեզ անհրաժեշտ է Desktop Rasbian տարբերակը, այնպես որ խուսափեք Lite Raspbian պատկերը ներբեռնելուց: Այս պատկերները պարունակում են Python կոմպիլյատոր:

Պատկերը SD քարտի վրա տեղադրելու համար կարող ենք օգտագործել ցանկացած հավելված: Ես օգտագործում եմ Win32diskimager- ը: Այնուհետև մենք SD քարտը տեղադրում ենք Ազնվամորիի մեջ և միացնում/անջատում անջատիչը: Աշխատում է! Այժմ մենք պետք է ստեղծենք Python ծրագիր վիկտորինայի շարժիչով:

Հաջորդ քայլը վիկտորինայի շարժիչի ֆայլերը ներբեռնելն է: QuizzPi.zip ֆայլում ես կցել եմ սկզբնաղբյուր: Ներբեռնեք աղբյուրը և ստեղծեք թղթապանակ Raspberry Pi- ում.

# mkdir/home/pi/QuizzPi

և բացեք այս թղթապանակում ներբեռնված ֆայլը:

QuizzPi.zip- ը պարունակում է այս ֆայլերը.

  • QuizzPi.py - այն պարունակում է ծածկագիր
  • MP3 ձայնային ֆայլեր - կարող եք փոխել ՝ անհատականացնելու համար
  • losmejores.txt - այն պարունակում է High Scores աղյուսակ, աղյուսակը նախաստորագրելու համար կարող եք ջնջել այն
  • Instructions.txt

Ես սպառիչ բացատրություն չեմ տա այն մասին, թե ինչպես եմ ծրագրավորել շարժիչի կոդը Python- ում, քանի որ այն դժվար է մարդկանց համար, ովքեր չունեն ծրագրավորման իմացություն: Նրանք միայն պետք է պահեն ֆայլերը Ազնվամորիում: Programրագրավորման իմացությամբ մարդիկ կկարողանան փոփոխել այն առանց որևէ բացատրության;)

Հարցերն ու պատասխանները «Հարցերի և պատասխանների» համատեղ տվյալների բազայից են, որը կոչվում է Բաց մանրուքների տվյալների շտեմարան, կարող եք գտնել այստեղ: Դուք կարող եք փոխել հարցերի կատեգորիան և դժվարությունը QuizzPi.py ֆայլում տող փոխելով:

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

փոխվում է api կոնֆիգուրատորից ստացված url- ով

Ես նախագծել եմ խաղի էկրանները Photoshop- ում, կարող եք դրանք փոփոխել: Դուք միայն պետք է պահպանեք որոշ սպիտակ տարածքներ հարցի էկրանին, արդյունքների էկրանին և բարձր միավորների էկրաններին, քանի որ խաղային շարժիչը գրում է դրանց վրա:

Կարող եք նաև անհատականացնել խաղի հնչյունները: Դուք միայն պետք է փոխեք.mp3 ֆայլերը ձեր ուզածների կողմից, դուք պետք է պահպանեք նույն անունները: Դուք կարող եք շատ հնչյուններ ստանալ առցանց տվյալների շտեմարաններից, ես ականներ եմ ստանում Free Sound Effects- ից:

Այժմ դուք պետք է փոփոխեք ձեր Raspbian- ը ՝ QuizzPi- ն ինքնաբերաբար գործարկելու համար: Դուք կարող եք կարդալ այս հոդվածը, որտեղ բացատրում եք, թե ինչպես դա անել.

Ավարտեցինք !!!

Քայլ 7: Demուցադրություն…

Image
Image

Այս հրահանգը ավարտելու համար կարող եք տեսնել այս տեսանյութը: Դուք կարող եք տեսնել, որ դա հեշտ է օգտագործել, և հարցերի դժվարությունը ձեզանից է կախված…

Խմբագրել. Տեսանյութը այժմ թարմացվել է ձայնով:

Միկրոկառավարիչների մրցույթ
Միկրոկառավարիչների մրցույթ

Միկրոկառավարիչների մրցույթում երկրորդ տեղը զբաղեցնողը

Խորհուրդ ենք տալիս: