Orodha ya maudhui:

Jedwali la Raspberry Pi IoT Foosball: Hatua 11
Jedwali la Raspberry Pi IoT Foosball: Hatua 11

Video: Jedwali la Raspberry Pi IoT Foosball: Hatua 11

Video: Jedwali la Raspberry Pi IoT Foosball: Hatua 11
Video: 100 КНОПОК НА ХЭЛЛОУИН! В ДОМЕ УЧИЛКИ МАЛЕНЬКИХ КОШМАРОВ! 100 кнопок в реальной жизни! 2024, Novemba
Anonim
Jedwali la Raspberry Pi IoT Foosball
Jedwali la Raspberry Pi IoT Foosball

Karibu kwenye toleo langu la meza ya mpira wa miguu iliyokatwakatwa, kama sehemu ya mradi wa wanafunzi wa Teknolojia Mpya ya Habari na Mawasiliano. Kimsingi nilikulia karibu na mpira wa miguu na meza za kuogelea kwa hivyo nilifikiri itakuwa nzuri kujaribu kuunganisha moja ya vifaa hivi kwenye wavuti.

Usanidi kuu unatumia meza ya mpira wa miguu iliyopo iliyounganishwa na Raspberry Pi ambayo inaweza kufanya kazi zote zifuatazo:

  • Inatumia pini za GPIO kuendesha IR LED / Wapokeaji na moduli za matrix za nukta 8x8
  • Inatumia wavuti ya Flask kutumia nginx
  • Inatumia hifadhidata ya MySQL / MariaDB ya uhifadhi wa data

Ili kuweza kurudia mradi huu u itahitaji ustadi ufuatao:

Nyuma:

  • Kuelewa HTML / CSS / Javascript kwa mteja wa wavuti
  • Kuelewa chatu na Flask / Flask-SocketIO / Jinja2 kwa upande wa seva ya wavuti
  • Ujuzi wa kimsingi wa MySQL
  • Jua jinsi ya kuendesha webserver

Mfano

  • Maarifa ya kimsingi juu ya jinsi ya kuweka waya wa umeme
  • Kufundisha
  • Uelewa wa kimsingi juu ya jinsi ya kuandika hati katika Python
  • Kufanya kazi na Linux (Raspbian)
  • Kuwa na uvumilivu mwingi kwa sababu kutakuwa na utatuzi mwingi unaohusika

Hatua ya 1: Vifaa

Hapa kuna orodha na sehemu zote muhimu kwa meza:

  • Mfano wa Raspberry Pi 3 (na casing)
  • T-Cobbler ya kuunganisha Pi kwenye ubao wa mkate
  • Jedwali la mpira wa miguu (nilitumia meza ya zamani sana sawa na hii. Lazima uwe tayari kuchimba mashimo ndani yake)
  • Moduli ya MAX7219 Arduino Dot Matrix (2)
  • Emitters za LED IR (2+ kwa sababu zinavunja, sawa na hii)
  • Wapokeaji wa IR (2+ kwa sababu pia huvunja, sawa na hii)
  • Kibodi cha mkate kisicho na solderless
  • Kura na waya nyingi (inategemea saizi ya meza ya mpira wa miguu)
  • viunganisho vya kiume (30+)
  • viungio vya kike (10+)
  • Wapinzani wa 100-220 Ohm (4+)
  • vifaa vya kutengeneza
  • kamba za waya
  • Wamiliki wa LED
  • kuni / screws ikiwa unataka kupeleka mpira kwenye bomba

Gharama ya jumla ya mradi huu inategemea kabisa gharama ya meza yako ya mpira wa miguu (ghali). Licha ya meza vifaa vitakuwa zaidi ya euro 150.

Hatua ya 2: Mzunguko wa Umeme

Mzunguko wa Umeme
Mzunguko wa Umeme
Mzunguko wa Umeme
Mzunguko wa Umeme
Mzunguko wa Umeme
Mzunguko wa Umeme

Kabla ya kujaribu kutengenezea, unganisha vifaa vyote ninapendekeza ujaribu kwenye ubao wa mkate kwanza. Ni rahisi kuchukua nafasi ya vifaa vibaya kabla ya kutumia masaa kuziunganisha.

Mwanzoni nilijaribu kutekeleza 8x8 LED Matrix na rejista ya mabadiliko ya 74HC595 (picha ya kwanza) na safu ya transistor lakini kwa sababu ya waya nyingi na pato la chini sana nilibadilisha Moduli ya MAX7219 Dot Matrix kwa sababu inachukua waya 5 tu na inaendeshwa moja kwa moja na basi la SPI.

Mzunguko ambao mwishowe nilitumia umechorwa na Fritzing. Tafadhali kumbuka kuwa IRS na Vipokeaji vya IR vinaweza kushikamana na Pini yako yoyote ya bure ya GPIO.

Vipokezi vya IR na LED zinapaswa kuelekeana moja kwa moja na juu ya LED inapaswa kuelekezwa kwa mpokeaji. Kwa sababu tunataka kuiga boriti ya moja kwa moja ambayo inaweza kuvunjika na harakati za mpira katika hali ambayo kutakuwa na mabadiliko ya hali ya laini ya DATA ya mpokeaji kutoka 0 hadi 1.

Hatua ya 3: Kuandika Sensorer

Kuandika Sensorer
Kuandika Sensorer

Nimeandika zaidi ya mradi huu kwa kutumia Pycharm kwa sababu inaruhusu kupelekwa kwa SSH rahisi kwa Raspberry yako ya Pi ukitumia mkalimani wa mbali. Sitakwenda kwa undani jinsi mpango huu unavyofanya kazi lakini habari nyingi zinaweza kupatikana kwenye wavuti ya pycharm.

Bado ninafanya kazi kwenye mradi huo lakini mara tu kila kitu kitakapofanyika mradi wote utapatikana kwenye wasifu wangu wa github

Nambari ya sensorer ina darasa tatu ambazo zinaendeshwa kwa uzi wa nyuma kwenye seva yangu ya Flask (ambayo itaelezwa baadaye):

  1. Darasa la Lengo (kiungo) - Faili hii inaanzisha vifaa vyote tofauti, ambavyo vinaweza kuitwa kwa kuingiza kifaa sahihi cha SPI / basi na nambari ya siri.
  2. Darasa la Matrix (kiungo) -Hili ndilo darasa kuu la kuongeza moduli ya MAX7219
  3. Darasa la LED na Mpokeaji (kiungo) - Hili ndilo darasa kuu la kuimarisha boriti ya kuvunja infrared kwa kutumia Threads tofauti kupunguza mzigo wa CPU wa RPi

LED na mpokeaji hufanya kazi kwa masafa ya 38kHz na wapokeaji kila wakati wanatarajia 50% juu na mapigo ya chini ya 50% kufanya kazi vizuri.

Hatua ya 4: Kuandaa na Kuweka Sensorer

Kuandaa na Kuweka Sensorer
Kuandaa na Kuweka Sensorer
Kuandaa na Kuweka Sensorer
Kuandaa na Kuweka Sensorer
Kuandaa na Kuweka Sensorer
Kuandaa na Kuweka Sensorer

Sasa tutaandaa IR LED na mpokeaji. Katika picha ya meza unaweza kupata maeneo ambayo RPi na sensorer zinapaswa kuwekwa.

Lakini kwanza tunahitaji kuandaa wiring:

  1. Hakikisha upime kiwango cha waya kinachohitajika kutoka eneo la RPi / mkate na eneo la sensorer
  2. Solder pini za mpokeaji za IR hadi mwisho mmoja wa waya (COM / GND / V +)
  3. Solder vipande vya kiunganishi vya kiume upande wa pili wa waya

Sasa tutaandaa meza:

  1. Tengeneza kuchora ya msingi (kulingana na picha) juu ya wapi kuchimba. Ni muhimu sana kwamba mashimo 2 yamepangwa kwa kila mmoja kwa sababu hii itakuwa eneo la boriti.
  2. Piga mashimo
  3. Ikiwa una wadogowadogo wa LED (kiunga) unaweza kuweka hizi ndani ya shimo ili kuifanya iwe imara zaidi
  4. Ingiza + mkanda kipokeaji cha LED + pande zote mbili
  5. Kamba waya + uziweke juu ya kuni ili wasivuke sana
  6. Ingiza pini za kiume kwenye ubao wa mkate kulingana na mzunguko uliotolewa hapo awali

Hatua ya 5: Kuandaa na Kuweka Moduli ya Matrix

Kuandaa na Kuweka Moduli ya Matrix
Kuandaa na Kuweka Moduli ya Matrix

Ifuatayo tutaunganisha moduli 2 za tumbo za LED

Kumbuka:

Kwa sababu nilitumia meza ya zamani ya mpira wa miguu tayari kulikuwa na mashimo yanayokwenda kuelekea sehemu ya juu kwa sababu ya wamiliki wa sigara. Ikiwa huna hizi utahitaji kuziunda.

Kuandaa waya:

  1. Pima waya kutoka kwenye ubao wa mkate kuelekea sehemu ya juu ya meza
  2. Solder viungio vingine vya kike hadi mwisho wa kwanza wa waya
  3. Solder viungio vingine vya kiume hadi mwisho mwingine wa waya

Kuweka tumbo:

  1. Kuleta tumbo kupitia shimo juu
  2. Kamba + mkanda waya ndani juu ya kuni ili kuepuka kuvuka
  3. Ingiza pini za kiume kwenye ubao wa mkate kulingana na circui iliyotolewa hapo awali

Wakati fulani nitaongeza hatua ndogo ya DIY ili kuongeza kiboreshaji cha moduli ya tumbo, lakini kwa sasa wako uchi.

Hatua ya 6: Kuifanya IoT

Kuifanya IOT
Kuifanya IOT

Ikiwa unataka tu kujiandikisha na kuonyesha alama, unaweza kumaliza mradi huo kwa kuandika hati ndogo ya chatu inayoendesha hadi moja ya alama ifikie 9 na kisha ibadilishe.

Walakini ikiwa unataka kuunganisha meza yako kwenye wavuti hatua chache zifuatazo zinapaswa kulia kwenye barabara yako.

Katika hatua chache zifuatazo tutashughulikia yafuatayo:

  • Kusanidi Raspberry Pi
  • Kutengeneza hifadhidata ya kuhifadhi
  • Kuunda wavuti
  • Kuiweka mkondoni

Kwa wakati huu, ikiwa unaijua git, ninapendekeza uunda hazina kwenye GitHub / GitLab kufuatilia faili zako. Ikiwa hauko unaweza kuunda folda na muundo sawa na kwenye picha.

Mradi kamili utapatikana hivi karibuni kwenye GitHub. Walakini faili ya rar ya muda mfupi na faili zote muhimu inapatikana.

Hatua ya 7: Kuunganisha Raspberry Pi

Ifuatayo tutaanzisha mazingira ya rasiberi, ili kufanya hivyo unahitaji kutekeleza hatua zifuatazo:

  • Unganisha SSH kwenye Rasberry Pi yako (unaweza kutumia PuTTY)
  • Unda folda (mfano mkdir mradi) na songa kwenye folda hii ukitumia amri ya cd
  • Unda mazingira halisi ya chatu kwenye folda hii ukitumia amri ya python3 -m venv --system-site-package env
  • Amilisha mkalimani wa kawaida na chanzo / env / bin / amuru amri
  • Sakinisha vifurushi kutoka kwa mahitaji.txt na python -m pip install command-name command
  • Hamisha faili kutoka kwa faili iliyotolewa hapo awali ya project_example.rar juu ya SSH kwenye folda yako ya mradi

Sasa unapaswa kuweza kutekeleza mradi kamili kwenye Raspberry Pi yako. Ninakushauri utumie IDE ya Python kama PyCharm ambayo hukuruhusu kukutumia kutatua kutoka kwa mkalimani wako wa mbali juu ya SSH na upakie moja kwa moja mabadiliko ikiwa ni lazima.

Hatua ya 8: Kuweka Hifadhidata

Kuweka Hifadhidata
Kuweka Hifadhidata

Sasa unahitaji kuanzisha hifadhidata ya msingi sana, kulingana na mfano huu.

Njia rahisi zaidi ya kwenda na hii ni kuunda hifadhidata yako kwenye eneo la kazi la MySQL ambapo unaweza pia kufanya testinng.

Ukimaliza unaweza kusafirisha dampo la hifadhidata yako na kuipakia kwenye RPi yako na kisha uifanye na sudo mariadb <pathtofile / file.sql

Hatua ya 9: Kuunda Wavuti

Kuunda Tovuti
Kuunda Tovuti
Kuunda Tovuti
Kuunda Tovuti
Kuunda Tovuti
Kuunda Tovuti

Ifuatayo unaweza kuchambua (na kutumia) nambari iliyotolewa kwenye faili ya project_example.rar.

Faili kuu ni Flask.py ambayo ni mkate na siagi ya mradi huu:

  • Inatumia programu ya Flask-SocketIO ambayo inashughulikia nyuma ya wavuti
  • Inaunda uhusiano kati ya hifadhidata na Flask
  • Hutoa uthibitisho wa kuingia na usajili wa mtumiaji
  • Hutoa nambari inayofaa ya jinsi ya kucheza mchezo hutumia socketio kusasisha wakati halisi wa wavuti wakati wa mchezo
  • Inaweka matokeo ya mchezo kwenye hifadhidata

Katika folda za tuli na templeti unaweza kupata HTML / CSS / JS ambayo hutoa sehemu ya mbele ya wavuti. Jisikie huru kurekebisha haya kulingana na matakwa yako mwenyewe.

Hatua ya 10: Kuunganisha kwa Wavuti Ulimwenguni

Kuunganisha wavuti yetu kwa wavuti tutatumia nginx na uwsgi. Katika mfano wa mradi unaweza kupata faili muhimu kwenye folda ya conf.

Kwanza kabisa unahitaji kusasisha zifuatazo katika faili hizi:

  • Katika uwsgi-flask.ini unahitaji kubadilisha njia ya kielelezo cha wema hadi mkalimani wako
  • Katika mradi1-flask.service unahitaji kusasisha sehemu ya [Huduma] ya faili na hati zako na njia za faili zinazohusiana
  • Katika faili ya nginx unahitaji kusasisha seva na eneo / njia kwa tundu lako linalohusiana

Ifuatayo unahitaji kuchukua nafasi ya faili chaguo-msingi ya wavuti na eneo la faili yako ya usanidi wa nginx, hapa chini ni mfano wa amri za linux kufanya hivi

  • mimi @ my-rpi: ~ / project1 $ sudo cp conf / nginx / nk / nginx / tovuti zinazopatikana / project1
  • mimi @ my-rpi: ~ / project1 $ sudo rm / nk / nginx / tovuti-kuwezeshwa / defaul t
  • mimi @ my-rpi: ~ / project1 $ sudo ln -s / nk / nginx / tovuti zinazopatikana / project1 / nk / nginx / tovuti-kuwezeshwa / project1
  • me @ my-rpi: ~ / project1 $ sudo systemctl kuanzisha upya nginx.service

Mwishowe unahitaji kuongeza huduma za kawaida kwenye folda yako ya mfumo, huu ni mfano wa jinsi ya kuifanya:

  • mimi @ my-rpi: ~ / project1 $ sudo cp conf / project1 - *. huduma / nk / systemd / mfumo /
  • mimi @ my-rpi: ~ / project1 $ sudo systemctl daemon-reload
  • mimi @ my-rpi: ~ / project1 $ sudo systemctl anza mradi1- *
  • mimi @ my-rpi: ~ / project1 $ sudo systemctl hali ya mradi1- *

Ikiwa unataka webserver kuanza kwenye boot ya raspberry yako unahitaji kutumia mfumo wa sudo kuwezesha project1 - * amri ya huduma.

Ikiwa imefanywa kwa usahihi, baada ya mfumo kuwasha upya wavuti yako inapaswa kuwa ikiendesha kwenye anwani yako ya IP. Ikiwa unataka kuhariri mojawapo ya faili hizi za usanidi unahitaji kila wakati kusimamisha huduma, pakia tena faili na utumie amri ya kupakia tena daemon ikifuatiwa na mwanzo, vinginevyo mabadiliko hayatakuwa na ufanisi.

Hatua ya 11: Kumaliza

Kumaliza Kuisha
Kumaliza Kuisha

Wakati wa kuchapa sehemu ya mwisho ya hii inayoweza kufundishwa, mradi huu mdogo wa shule bado ni kazi inayoendelea.

Nimetumia masaa mengi kumaliza hii katika wiki 2.5. Ingawa kila kitu kilikimbizwa kidogo bado ninajivunia kile nilichofanikiwa. Wakati wa awamu ya mkutano nimekutana na mende / makosa / sensorer nyingi kasoro hivyo usivunjika moyo sana ikiwa kila kitu hakifanyi kazi kwenye jaribio la kwanza.

Jambo bora unaloweza kufanya ni kuuliza au kutafuta msaada kwenye wavuti, kuna watu wengi wenye maarifa bora zaidi ambao wana hamu kubwa ya kukusaidia.

Mwisho kabisa nataka kuwashukuru walimu wangu kutoka Teknolojia Mpya ya Habari na Mawasiliano kwa kunipa ushauri mwingi na kunisaidia kumaliza mradi huu.

Ilipendekeza: