Talaan ng mga Nilalaman:

School Bell para sa Mga Mag-aaral sa Distansya: 6 na Hakbang
School Bell para sa Mga Mag-aaral sa Distansya: 6 na Hakbang

Video: School Bell para sa Mga Mag-aaral sa Distansya: 6 na Hakbang

Video: School Bell para sa Mga Mag-aaral sa Distansya: 6 na Hakbang
Video: Huwarang Mag-Aaral | Flexy Bear Original Awiting Pambata Nursery Rhymes & Songs 2024, Hulyo
Anonim
School Bell para sa Mga Mag-aaral sa Distansya
School Bell para sa Mga Mag-aaral sa Distansya

Gamit ang COVID-19 pandemya, maraming mga paaralan ng mga bata ang napunta sa paghahatid ng distansya. Ang home school bell na ito ay isang nakakatuwang paraan upang manatili sa iskedyul na gumagamit ng isang Raspberry Pi at isang USB speaker. Maaari mo itong gawin sa iyong anak at matutunan nila ang tungkol sa pagprograma at maaaring "mag-ring ng kampanilya". Itinayo ko ito para sa aking anak na papunta sa ika-7 baitang (kasalukuyang sa pamamagitan ng paghahatid ng distansya), at gumagana nang maayos upang mapanatili kami sa tamang oras.

Mga gamit

Para sa proyektong ito, kakailanganin mo ang:

  • Isang Raspberry Pi computer - Ito ay pinakamahusay na gumagana kung mayroon kang WiFi, gumamit ako ng isang RPi 3B mula sa isang Kano kit
  • Isang Speaker - Gumamit ako ng isang USB speaker

Madaling tumakbo ang code sa linux computer ng iyong mag-aaral o kahit isang microcontroller na nagpapatakbo ng micropython, hangga't ang microcontroller ay may ilang mekanismo upang makuha ang kasalukuyang petsa / oras. Gayundin ang anumang amplified speaker, o kahit na mas cool na isang relay / analog bell, ay maaaring gamitin.

Hakbang 1: I-set up ang Iyong Raspberry Pi

I-set up ang Iyong Raspberry Pi
I-set up ang Iyong Raspberry Pi

Mayroong isang malaking bilang ng mga mapagkukunan para sa pag-set up ng isang Raspberry Pi computer, kaya't tinutukoy ka namin sa isa na nahahanap ng Google. Ang mahalaga ay may paraan ang iyong computer upang makuha ang tamang petsa at oras. Karamihan sa mga modernong WiFi na pinagana ng mga computer ng Raspberry Pi ay gumagamit ng NTP protocol upang maitakda ang oras mula sa internet, na kung saan ay ang paraan na nakuha ko ang tamang oras. Itinakda ko ang aking RPi na maging "walang ulo", nangangahulugang wala itong keyboard o monitor, ngunit maa-access ng mga secure na shell (SSH) sa internet. Kung mahusay ka sa RPi, magagawa mo ang pag-set up na ito nang walang keyboard / video / mouse, ngunit mas madaling i-set up lamang ang pi gamit ang mga accessories.

Tandaan na hindi ko kailangang gamitin ang interface ng grapiko, kaya na-download ko lang ang "Raspberry Pi OS (32-bit) Lite", na mas maliit at mas mabilis mag-download at mas mabilis ang pag-boot.

I-configure ang network ng Raspberry Pi at mga pagpipilian sa interfacing

$ sudo raspi-config

Sa pagsasaayos, gawin ang sumusunod:

  • Baguhin ang password - gawin muna ito, sana bago mag-online!
  • Sa "Mga Pagpipilian sa Network",

    • Palitan ang hostname. Ginamit ko ang hostname: "schoolbell".
    • Kumonekta sa iyong Wireless LAN (kung hindi mo pa nagagawa iyon sa pag-set up)
  • Sa ilalim ng "Mga Pagpipilian sa Interfacing", i-on ang SSH access
  • Palaging mabuti na patakbuhin ang pagpipiliang "I-update"

Kapag nagawa mo ito at muling mag-boot, dapat kang makakonekta sa Raspberry Pi mula sa isa pang computer sa parehong lokal na network sa pamamagitan ng paggamit ng isang SSH client. Kumonekta dito sa pamamagitan ng paggamit ng mga sumusunod na kredensyal:

hostname: schoolbell.local

gumagamit: pi password: whateveryousetitas

Mula sa isang kahon ng linux, ito ay kasing simple ng pagta-type ng linya ng utos na ito sa $ prompt:

$ ssh [email protected]

… Ipasok ang password kaagad

Mag-log in ka iyan at maaari mong suriin na ang oras sa Raspberry Pi ay tama. Sa linya ng utos, i-type ang petsa ng utos at suriin ang tugon:

pi @ schoolbell: ~ $ date

Sa 3 Sep 20:44:34 AKDT 2020

Sana ito ang kasalukuyang oras. Kung hindi ito tama, google tungkol sa pag-set up ng NTP sa Raspberry Pi.

Hakbang 2: Gawain ang Iyong Sound System

Gumana ang Iyong Sound System
Gumana ang Iyong Sound System

Magpe-play kami ng mga MP3 file para sa mga kampanilya, kaya kailangan naming mag-download ng software upang ma-decode ang mga audio file na ito. Nakuha ko ang mpg321 na pakete sa pamamagitan ng pagta-type ng utos na ito:

pi @ schoolbell: ~ $ sudo apt-get install mpg321

Sundin ang mga senyas upang mai-install ang software na ito.

Gumamit ako ng isang lumang USB speaker, na may kakaibang driver at hindi ganap na nag-configure bilang default na sound card, kaya nalaman kong maaari kong "tadtad" ang speaker upang gumana sa pamamagitan ng paggamit ng address ng hardware. Matapos ang pag-plug sa speaker, ginamit ko ang command na 'aplay -l' upang ilista ang mga audio device:

pi @ schoolbell: ~ $ aplay -l

**** Listahan ng mga PLAYBACK Hardware Device **** card 0: Headphones [bcm2835 Headphones], aparato 0: bcm2835 Headphones [bcm2835 Headphones] Subdevices: Subdevice # 0: subdevice # 0 Subdevice # 1: subdevice # 1 Subdevice # 2: subdevice # 2 Subdevice # 3: subdevice # 3 Subdevice # 4: subdevice # 4 Subdevice # 5: subdevice # 5 Subdevice # 6: subdevice # 6 Subdevice # 7: subdevice # 7 card 1: CODEC [USB Audio CODEC], aparato 0: USB Audio [USB Audio] Subdevices: Subdevice # 0: subdevice # 0

Ang aparato na gusto ko ay ang mas mababang isa, card 1, aparato 0.

Sinubukan ko ang nagsasalita ng "speaker-test", gamit ang aparato na "hw: 1, 0", ibig sabihin hardware card 1, aparato 0

pi @ schoolbell: ~ $ speaker-test -D hw: 1, 0

Ang program na ito ay naglalagay ng ingay mula sa mga nagsasalita. Masiyahan sa ingay pagkatapos ay i-type ang control-C kapag naiinis ka. Kung wala kang marinig na ingay, subukan ang google.

Ngayon mayroon kang tunog!

Hakbang 3: Subukan ang Pag-playback ng Mga Tunog ng Bell At / o Gumawa ng Mga Bagong Tunog

Subukan ang Pag-playback ng Mga Tunog ng Bell At / o Gumawa ng Mga Bagong Tunog
Subukan ang Pag-playback ng Mga Tunog ng Bell At / o Gumawa ng Mga Bagong Tunog

Para sa aking kampana, na-download ko ang tunog na "bing-bong" mula sa "freesound.org". Salamat sa Benboncan para sa magagamit na tunog na ito:

freesound.org/people/Benboncan/sounds/93646/

Maaari mong i-play ang tunog nang direkta. Direkta kong mai-download ang isang mp3 bersyon ng file na ito sa pamamagitan ng pagta-type ng utos na ito sa Raspberry Pi computer (sa pag-aakalang nasa WiFi ito):

pi @ schoolbell: ~ $ wget

Pagkatapos ay pinalitan ko ang pangalan ng file na ito:

pi @ schoolbell: ~ $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3

Sinubukan ko pagkatapos na maaari kong mag-ring ng kampanilya sa utos na ito (ipinapakita ang output):

pi @ schoolbell: ~ $ mpg321 -a hw: 1, 0 bing-bong-chime-hq.mp3

Mataas na Pagganap MPEG 1.0 / 2.0 / 2.5 Audio Player para sa Layer 1, 2, at 3. Bersyon 0.3.2-1 (2012/03/25). Nakasulat at copyright ng Joe Drew, na pinapanatili ngayon ng Nanakos Chrysostomos at iba pa. Gumagamit ng code mula sa iba't ibang mga tao. Tingnan ang 'README' para sa higit pa! ANG SOFTWARE NA ITO AY DUMATING SA LAKAS NA WARRANTY! GAMITIN SA IYONG SARILI NA PELIGRO! Nagpe-play ang MPEG stream mula sa bing-bong-chime-hq.mp3… MPEG 1.0 layer III, 128 kbit / s, 44100 Hz mono [0:02] Tapos na ang pag-decode ng bing-bong-chime-hq.mp3.

Congrats! May audio ka.

Gamit ang sound-editing code na "audacity" sa aking laptop, hinati ko ang file sa "bing" at "bong" para sa mas masaya. Maaari kang gumamit ng anumang mp3 o marahil iba pang format (hindi ko pa nasubukan ang iba) mga file ng tunog.

Hakbang 4: I-install ang Code at Itakda ang Iyong Iskedyul

I-install ang Code at Itakda ang Iyong Iskedyul
I-install ang Code at Itakda ang Iyong Iskedyul

Ang code ay isang script ng sawa na nakakakuha ng kasalukuyang petsa / oras at kung ang petsa ay isang araw ng linggo at hindi isang piyesta opisyal, susuriin nito kung tumutugma ang oras sa oras ng kampanilya, chiming kung dapat.

Una mo itong gagamitin, pagkatapos ay i-automate mo ito upang tumakbo bawat minuto.

I-download ang code mula sa Github:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Madali akong gawin ito sa pamamagitan ng pag-save ng file sa isang lokal na computer pagkatapos ay gumagamit ng ligtas na kopya (scp) upang ilagay ito sa Raspberry pi.

Sa iyong lokal na makina, kopyahin ang code mula sa iyong browser, pagkatapos ay i-paste sa isang text file at i-save ito sa filename na "schoolbell.py". Pagkatapos i-scp ang file sa paglipas:

local-machine: ~ $ scp schoolbell.py [email protected]: ~ /

Sasabihan ka upang ipasok ang password para sa pi sa gumagamit sa schoolbell.local - ipasok ang password, at ligtas na makopya ang file. Ang utos na ito ay dapat na patakbuhin sa parehong direktoryo kung saan nai-save ang script ng sawa, at kopyahin ito sa direktoryo ng bahay ng pi gumagamit. Maaari kang magpunta sa schoolbell.local at dapat nandoon ang code:

local-machine: ~ $ ssh [email protected]

Pagkatapos sa schoolbell.local, ilista ang mga file (maaari kang makakita ng higit pang mga file):

pi @ schoolbell: ~ $ ls

bing-bong-chime-hq.mp3 schoolbell.py

Ngayon i-edit ang code upang magkaroon ito ng iskedyul ng iyong kampanilya sa pamamagitan ng paggamit ng isang editor tulad ng pico:

pi @ schoolbell: ~ $ pico schoolbell.py

Ang code ay may tatlong "mga diksyunaryo" na tumutukoy sa mga tunog ng kampanilya upang i-play, ang mga oras upang i-play ang mga ito, at ang mga piyesta opisyal upang maiwasan, Bells sa katapusan ng linggo ay awtomatikong nilaktawan.

Halimbawa, ang diksyunaryo ng mga belltone ay:

mga belltone = {

'warn': 'bing-bong-chime-hq.mp3', 'start': 'bing-bong-chime-hq.mp3', 'end': 'bing-bong-chime-hq.mp3'}

Tinutukoy nito ang tatlong uri ng mga kampanilya, isang kampanang nagbabala, isang pagsisimula ng klase, at isang pagtatapos. Dahil mayroon lamang kaming isang tono ng kampanilya, lahat sila ay tumuturo sa parehong file, ngunit kung gumawa ka ng iba't ibang mga tono, maaari mong baguhin ang mga ito. Maaari ka ring magdagdag ng iba pang mga uri ng mga tunog ng kampanilya. Naglaro din ako ng paggamit ng isang speech synthesizer upang magsalita ng mga kampanilya, ngunit hindi ito tiningnan ng mabuti ng iba sa bahay.

Ang diksyunaryo ng bellschedule ay magkatulad, ngunit ang "key" ay oras na ngayon para sa kampanilya. kailangan mong gamitin ang format na HH: MM na may nangungunang mga zero at 24 na oras na oras (oras ng militar).

bellschedule = {

'09: 00 ':' start ', #' Bus 'bell na naghahanda '09: 28': 'warn',….. '13: 58 ':' warn ', # for period 4 '14: 00 ':' start ', '15: 00': 'end'}

Ang halaga sa key na ito: ang pares ng halaga ay ang uri ng tone ng kampanilya na gagamitin at kailangang tumugma sa isa sa mga belltone na tinukoy sa itaas.

Huling, nakalista sa diksyunaryo ng bakasyon ang mga petsa ng holiday. Ang format ay YYYY-mm-dd, na may mga nangungunang zero tulad ng ipinakita.

piyesta opisyal = {

'2020-09-07', …. '2021-03-11', '2021-03-12' }

Kapag tapos ka nang mag-edit, i-save ang file sa pamamagitan ng paglabas sa iyong editor, pagta-type sa ctrl-X kung gumagamit ka ng pico.

Gawing maipapatupad ang python code sa pamamagitan ng:

pi @ schoolbell: ~ $ chmod a + x schoolbell.py

Hinahayaan nito ang lahat ng mga gumagamit na magpatupad ng code, "a" para sa lahat, "+" para sa pagdaragdag ng pahintulot, at "x" para sa pagpapatupad.

Ngayon subukang patakbuhin ang code at obserbahan ang output. Tandaan na maaari mong patakbuhin ang file sa pamamagitan ng pagta-type ng filename ngunit kailangang tukuyin na nasa kasalukuyang direktoryo ito sa pamamagitan ng pagta-type ng isang "./" bago ang filename:

pi @ schoolbell: ~ $./schoolbell.py

Ito ay isang schoolday, oras ng pagsuri 21:35

Sasabihin sa iyo ng code kung ito ay isang schoolday (hal. Hindi piyesta opisyal o katapusan ng linggo) at makikita kung tumutugma ang oras sa oras ng kampanilya. Sa kasong ito, hindi ito oras ng kampanilya, kaya't malinis na itong lumabas. Kung ito ay oras ng kampanilya, maaaring tumunog ito.

Upang subukan na ang iyong code ay maaaring maglaro ng mga kampanilya, gamitin ang opsyon na linya ng utos ng isang file upang i-play. Gagamitin namin ang aming file na bing-bong:

pi @ schoolbell: ~ / schoolbell $./schoolbell.py bing-bong-chime-hq.mp3

Ito ay isang schoolday, oras ng pagsuri 21:38 Mataas na Pagganap MPEG 1.0 / 2.0 / 2.5 Audio Player para sa Layer 1, 2, at 3. Bersyon 0.3.2-1 (2012/03/25). Nakasulat at copyright ng Joe Drew, na pinapanatili ngayon ng Nanakos Chrysostomos at iba pa. …. mas maraming output ….

Narinig mo dapat ang kampana.

Ngayon subukan ang code gamit ang paggamit ng isang oras bilang argument. Tandaan na ipasok ang oras sa mga nangungunang zero. Halimbawa, upang subukan ang aking "school bus" bell sa 9:00, nagta-type ako:

pi @ schoolbell: ~ $./schoolbell.py 09:00

Ito ay maaaring maging sanhi ng pag-ring ng iyong kampanilya! Maaari mo ring subukan na hindi ito nagri-ring sa mga oras na hindi bell.

Hakbang 5: I-automate ang Tumatakbo Sa Crond

I-automate ang Tumatakbo Sa Crond
I-automate ang Tumatakbo Sa Crond

Ang cron 'daemon' ay isang tagapag-iskedyul na nagpapatakbo ng paulit-ulit na mga gawain sa isang linux system. Sinusuri nito upang makita kung ang petsa / oras ay tumutugma sa isang pattern sa cron table (crontab) at pagkatapos ay nagpapatakbo ng code kung gagawin ito. Maaari mong i-edit ito gamit ang "crontab -e" na utos:

pi @ schoolbell: ~ $ crontab -e

Bubuksan nito ang isang editor ng file, at sa ilalim ng file na ito, idaragdag mo ang sumusunod na linya:

* * * * * python3 /home/pi/schoolbell.py

Sinasabi ng utos na ito sa cron na patakbuhin ang python3 na isinasagawa ang iyong script sa normal na direktoryo sa bahay (/ home / pi). Sinabi ng limang * na dapat itong tumakbo bawat minuto (una *), bawat oras (susunod *…), bawat araw ng buwan, buwan, at bawat araw ng linggo.

Ngayon, bawat minuto ay tatakbo ang script ng schoolbell.py. Sa loob ng karamihan ng mga minuto, tatakbo ang code at hahanapin na dapat itong tumigil nang walang chiming, ngunit kung ito ay lumabas upang maabot ang isang oras ng kampanilya, ito ay magbubuhos.

Tandaan na dahil ang cron ay tumatakbo lamang bawat minuto, hindi mo magawa ang mga kampanilya nang higit pa butil kaysa sa minuto. Sa palagay ko posible sa teoretikal na kung ang iyong system ay nabulok, ang cron ay maaaring hindi tumakbo ng ilang segundo pagkatapos ng tuktok ng minuto, na ginagawang huli ang kampanilya. Kung sa paanuman ay hindi tumakbo ang cron sa buong minuto, ang kampanilya ay hindi makaligtaan.

Tip: Para sa pinalawig na piyesta opisyal (hal. Tag-araw), maaari kang magdagdag ng isang hashtag (#) sa unang character ng linyang ito, na ginagawang isang komento at sa gayon ay hindi pinapansin ang pagpapatakbo nito. Kapag bumalik sa sesyon ang paaralan, alisin lamang ang # at magsisimulang tumakbo muli.

Hakbang 6: Ipasadya at Masiyahan

Ngayon, dapat ay mayroon kang isang nagtatrabaho system ng home school bell at ang iyong mag-aaral ay hindi dapat huli sa klase.

Maaari mong ipasadya ang proyektong ito sa pamamagitan ng pagbabago ng mga tone ng kampanilya.

  • Maaari mo itong i-ring ang Big Ben, na may mga chime quarter-hour at pag-ring ang mga oras.
  • Maaari mong i-sample ang freestyle ng iyong paboritong rapper.
  • Maaari kang gumawa ng mga mensahe ng subliminal upang tumuon sa pag-aaral.

Manatiling ligtas sa oras na ito ng COVID.

Larawan
Larawan
Larawan
Larawan

Runner Up sa Paligsahan ng Pamilya na "Hindi Mahawakan Ito"

Inirerekumendang: