Mündəricat:

Uzaqdan təhsil alan tələbələr üçün məktəb zəngi: 6 addım
Uzaqdan təhsil alan tələbələr üçün məktəb zəngi: 6 addım

Video: Uzaqdan təhsil alan tələbələr üçün məktəb zəngi: 6 addım

Video: Uzaqdan təhsil alan tələbələr üçün məktəb zəngi: 6 addım
Video: 6 cı sinifdə təcrübə ❤❤❤ 2024, Noyabr
Anonim
Uzaq Tələbələr üçün Məktəb Zəngi
Uzaq Tələbələr üçün Məktəb Zəngi

COVID-19 pandemiyası ilə bir çox uşaq məktəbi distant təhsilə keçdi. Bu ev məktəbi zəngi, Raspberry Pi və USB dinamikdən istifadə edən cədvəl üzrə qalmağın əyləncəli bir yoludur. Uşağınızla birlikdə edə bilərsiniz və onlar proqramlaşdırma haqqında öyrənə və "zəng çala" bilərlər. Bunu 7 -ci sinfə gedən qızım üçün tikmişəm (hazırda məsafədən çatdırılma yolu ilə) və vaxtında bizi tutmaq üçün yaxşı işləyir.

Təchizat

Bu layihə üçün sizə lazım olacaq:

  • Raspberry Pi kompüteri - WiFi varsa ən yaxşı işləyir, Kano dəstindən bir RPi 3B istifadə etdim
  • Dinamik - USB dinamikindən istifadə etdim

Kod, tələbənizin linux kompüterində və ya hətta mikropiton işləyən bir mikro nəzarətçidə asanlıqla işləyə bilər, çünki mikrokontrolörün cari tarixi/saatı əldə etmək üçün bir mexanizmi var. Həm də hər hansı bir gücləndirilmiş dinamik və ya hətta soyuducu bir röle / analog zəng istifadə edilə bilər.

Addım 1: Raspberry Pi qurun

Raspberry Pi qurun
Raspberry Pi qurun

Bir Raspberry Pi kompüter qurmaq üçün çox sayda qaynaq var, buna görə Google -un tapdığı bir kompüterə müraciət edirəm. Əsas odur ki, kompüterinizdə doğru tarixi və saatı əldə etmək üçün bir yol var. WiFi ilə işləyən ən müasir Raspberry Pi kompüterləri, İnternetdən vaxt təyin etmək üçün NTP protokolundan istifadə edir, bu da düzgün vaxt əldə etməyimdir. RPi -ni "başsız" olaraq qurdum, yəni klaviaturası və ya monitoru yoxdur, ancaq internet üzərindən təhlükəsiz qabıq (SSH) ilə əldə edilə bilər. RPi -ni yaxşı bilirsinizsə, bu qurğunu klaviatura / video / siçan olmadan edə bilərsiniz, ancaq pi -ni bu aksesuarlarla qurmaq daha asandır.

Diqqət yetirin, qrafik interfeysdən istifadə etməyimə ehtiyac yox idi, buna görə yükləmək üçün daha kiçik və daha sürətli olan "Raspberry Pi OS (32 bit) Lite" proqramını yüklədim.

Raspberry Pi şəbəkəsini və interfeys seçimlərini konfiqurasiya edin

$ sudo raspi-config

Konfiqurasiyada aşağıdakıları edin:

  • Şifrəni dəyişdirin - əvvəlcə bunu edin, inşallah internetə girməzdən əvvəl!
  • "Şəbəkə Seçimləri" ndə

    • Host adını dəyişdirin. Ev sahibi adını istifadə etdim: "məktəb zəngi".
    • Simsiz LAN -a qoşulun (bunu quraşdırmada etməmisinizsə)
  • "İnterfeys Seçimləri" altında SSH girişini yandırın
  • "Yeniləmə" seçimini işə salmaq həmişə yaxşıdır

Bunu etdikdən və yenidən başladıqdan sonra, SSH müştəri istifadə edərək eyni yerli şəbəkədəki başqa bir kompüterdən Raspberry Pi -yə qoşula bilməlisiniz. Aşağıdakı etimadnamələrdən istifadə edərək ona qoşulun:

ana adı: schoolbell.local

İstifadəçi: pi şifrəsi: whateveryousetitas

Bir Linux qutusundan, bu əmr satırını $ əmrinə yazmaq qədər sadədir:

$ ssh [email protected]

… Dərhal parol daxil edin

Bu sizi daxil edəcək və Raspberry Pi -də vaxtın düzgün olduğunu yoxlaya bilərsiniz. Komanda satırına tarix əmrini yazın və cavabı yoxlayın:

pi@məktəb zəngi: ~ $ date

Per 3 Sentyabr 20:44:34 AKDT 2020

İnşallah indiki vaxtdır. Düzgün deyilsə, Google -a Raspberry Pi -də NTP qurmaq barədə müraciət edin.

Addım 2: Səs Sisteminizi işə salın

Səs Sisteminizi Çalışdırın
Səs Sisteminizi Çalışdırın

Zənglər üçün MP3 faylları oynayacağıq, buna görə də bu audio faylları deşifr etmək üçün proqram yükləməliyik. Bu əmri yazaraq mpg321 paketini aldım:

pi@schoolbell: ~ $ sudo apt-get mpg321 quraşdırın

Bu proqramı quraşdırmaq üçün əmrləri yerinə yetirin.

Qəribə bir sürücüsü olan və avtomatik olaraq standart səs kartı olaraq konfiqurasiya edilməyən köhnə bir USB dinamikdən istifadə etdim, buna görə də hardware ünvanından istifadə edərək dinamikin işləməsini "sındıra" bildim. Dinamiki bağladıqdan sonra səs cihazlarını siyahıya salmaq üçün 'aplay -l' əmrindən istifadə etdim:

pi@məktəb zəngi: ~ $ aplay -l

**** PLAYBACK Avadanlıq Cihazlarının Siyahısı **** kart 0: Qulaqlıqlar [bcm2835 Qulaqlıqlar], cihaz 0: bcm2835 Qulaqlıqlar [bcm2835 Qulaqlıqlar] Alt Cihazlar: Alt Cihaz #0: alt qurğu #0 Alt Cihaz #1: alt qurğu #1 Alt qurğu #2: alt qurğu #2 Alt qurğu #3: alt qurğu #3 Alt qurğu #4: alt qurğu #4 Alt qurğu #5: alt qurğu #5 Alt qurğu #6: alt qurğu #6 Alt qurğu #7: alt cihaz #7 kart 1: CODEC [USB Audio CODEC], cihaz 0: USB Audio [USB Audio] Alt Cihazlar: Alt Cihaz #0: alt qurğu #0

İstədiyim cihaz aşağıdır, kart 1, cihaz 0.

Dinamiki "hw: 1, 0" cihazından istifadə edərək "natiq testi" ilə sınadım, yəni hardware kartı 1, cihaz 0

pi@məktəb zəngi: ~ $ natiq -test -D hw: 1, 0

Bu proqram natiqlərdən səs -küy çıxarır. Səsdən zövq alın, əsəbiləşəndə Control-C yazın. Səs -küy eşitmirsinizsə, google -dan istifadə edin.

İndi səsiniz var!

Addım 3: Zəng Səslərinin Çalınmasını Test Edin və/Və ya Yeni Səslər Edin

Zəng Səslərinin Çalınmasını Test Edin və/və ya Yeni Səslər Edin
Zəng Səslərinin Çalınmasını Test Edin və/və ya Yeni Səslər Edin

Zəng üçün "freesound.org" dan "bing-bong" səsini yüklədim. Bu səsi hazırladığı üçün Benboncan'a təşəkkür edirəm:

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

Səsi birbaşa oynaya bilərsiniz. Bu əmri Raspberry Pi kompüterinə yazaraq bu faylın mp3 versiyasını birbaşa yükləyə bilərdim (WiFi -də olduğunu düşünürəm):

pi@məktəb zəngi: ~ $ wget

Sonra bu faylın adını dəyişdim:

pi@məktəb zili: ~ $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3

Sonra sınadım ki, bu əmrlə zəng vura bilərəm (çıxışı göstərir):

pi@məktəb zili: ~ $ mpg321 -a-hw: 1, 0 bing-bong-chime-hq.mp3

Layer 1, 2 və 3 üçün Yüksək Performanslı MPEG 1.0/2.0/2.5 Audio Pleyer. 0.3.2-1 (2012/03/25). Joe Drew tərəfindən yazılmış və müəllif hüquqları, hazırda Nanakos Chrysostomos və başqaları tərəfindən qorunur. Müxtəlif insanların kodlarından istifadə edir. Daha çox məlumat üçün 'README' ə baxın! BU YAZILIM TAMAMEN GARANTİSİZ GƏLİR! Öz riskinizdən istifadə edin! MPEG axını bing-bong-chime-hq.mp3-dən səsləndirilir… MPEG 1.0 qat III, 128 kbit/s, 44100 Hz mono [0:02] Bing-bong-chime-hq.mp3 kodlarının deşifr edilməsi başa çatdı.

Təbriklər! Səsiniz var.

Laptopumdakı "redaktə" səs tənzimləmə kodundan istifadə edərək, daha çox əylənmək üçün faylı "bing" və "bong" a ayırdım. İstənilən mp3 və ya başqa bir formatdan (başqalarını sınamamışam) istifadə edə bilərsiniz.

Addım 4: Kodu quraşdırın və cədvəlinizi təyin edin

Kodu yükləyin və cədvəlinizi təyin edin
Kodu yükləyin və cədvəlinizi təyin edin

Kod, cari tarixi/saatı alan bir python skriptidir və tarix tətil deyil, iş günüdürsə, vaxtın bir zəng vaxtı ilə uyğun olub -olmadığını yoxlayır, lazımsa çalır.

Əvvəlcə işə başlayacaqsınız, sonra hər dəqiqə işləməsini avtomatlaşdıracaqsınız.

Kodu Github -dan yükləyin:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Dosyanı yerli bir kompüterdə saxlayaraq sonra Raspberry pi üzərinə qoymaq üçün etibarlı surəti (scp) istifadə edərək bunu etməyi asan tapıram.

Yerli maşınınızda kodu brauzerinizdən kopyalayın, sonra mətn faylına yapışdırın və "schoolbell.py" adı ilə qeyd edin. Sonra faylı skp edin:

yerli maşın: ~ $ scp schoolbell.py [email protected]: ~/

Sizdən schoolbell.local səhifəsində pi istifadəçisi üçün parol daxil etməyiniz istənəcək - şifrəni daxil edin və fayl etibarlı şəkildə kopyalanacaq. Bu əmr, python skriptinin saxlandığı eyni qovluqda çalışmalı və pi istifadəçisinin ev qovluğuna kopyalanmalıdır. Schoolbell.local ünvanına ssh göndərə bilərsiniz və kod orada olmalıdır:

yerli maşın: ~ $ ssh [email protected]

Sonra schoolbell.local saytında faylları sadalayın (daha çox fayl görə bilərsiniz):

pi@məktəb zəngi: ~ $ ls

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

İndi pico kimi bir redaktordan istifadə edərək zəng cədvəlinizə sahib olmaq üçün kodu düzəldin:

pi@məktəb zəngi: ~ $ pico schoolbell.py

Kodda çalınan zəng tonlarını, çalınma vaxtlarını və tətillərdən çəkinməyi təyin edən üç "lüğət" var, həftə sonları zənglər avtomatik olaraq atlanır.

Məsələn, zəng zəngləri lüğəti belədir:

zəng melodiyaları = {

'xəbərdar et': 'bing-bong-chime-hq.mp3', 'start': 'bing-bong-chime-hq.mp3', 'son': 'bing-bong-chime-hq.mp3'}

Bu üç növ zəngi, xəbərdarlıq zəngi, dərsin başlanğıcı və sonunu təyin edir. Yalnız bir zəng tonumuz olduğu üçün hamısı eyni faylı göstərir, ancaq fərqli tonlar hazırlasanız, onları dəyişə bilərsiniz. Hətta başqa növ zəng tonları da əlavə edə bilərsiniz. Zəngləri danışmaq üçün bir nitq sintezatoru ilə də oynadım, amma evdəki başqaları tərəfindən müsbət qarşılanmadı.

Zənglər cədvəli oxşardır, amma "açar" indi zəng vaxtıdır. HH: MM formatını sıfırlarla və 24 saatlıq vaxtla (hərbi vaxt) istifadə etməlisiniz.

zəng cədvəli = {

'09: 00 ':' start ', #' Bus 'zili hazırlaşır '09: 28': 'xəbərdar et',….. '13: 58 ':' xəbərdar et ', # 4 dövrü üçün '14: 00 ':' başlanğıc ', '15: 00': 'son'}

Bu açardakı dəyər: dəyər cütü istifadə ediləcək zəng tonudur və yuxarıda təyin olunan zəng melodiyalarından birinə uyğun olmalıdır.

Son olaraq, tətil lüğətində tətil tarixləri göstərilir. Format YYYY-aa-gg, göstərildiyi kimi öndə sıfırları var.

bayram = {

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

Redaktə etməyi bitirdikdən sonra redaktordan çıxaraq, piko istifadə edirsinizsə ctrl-X yazaraq faylı qeyd edin.

Python kodunu aşağıdakı kimi icra olun:

pi@məktəb zəngi: ~ $ chmod a+x schoolbell.py

Bu, bütün istifadəçilərin kodunu, hamı üçün "a", əlavə icazə üçün "+" və icra üçün "x" kodunu yerinə yetirməsinə imkan verir.

İndi kodu sınayın və çıxışı izləyin. Dosyanı fayl adını yazaraq işlədə biləcəyinizi unutmayın, ancaq fayl adından əvvəl "./" yazaraq cari qovluqda olduğunu göstərməlisiniz:

pi@məktəb zəngi: ~ $./schoolbell.py

Məktəb günüdür, yoxlama vaxtı 21:35

Kod, bir məktəb gününün olub olmadığını (məsələn, tətil və ya həftə sonu deyil) sizə xəbər verəcək və zamanın zəng saatına uyğun olub olmadığını görəcək. Bu vəziyyətdə, zəng vaxtı deyildi, buna görə də təmiz bir şəkildə çıxdı. Zəng vaxtı olsaydı, səslənərdi.

Kodunuzun zəng çala biləcəyini yoxlamaq üçün bir faylın əmr satırı seçimini istifadə edin. Bing-bong faylımızı istifadə edəcəyik:

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

Bir məktəb günüdür, yoxlama vaxtı 21:38 Yüksək Performanslı MPEG 1.0/2.0/2.5 Layer 1, 2 və 3 üçün Audio Pleyer. Versiya 0.3.2-1 (2012/03/25). Joe Drew tərəfindən yazılmış və müəllif hüquqları, hazırda Nanakos Chrysostomos və başqaları tərəfindən qorunur. …. daha çox çıxış ….

Zəngi eşitməli idin.

İndi arqument olaraq bir zaman istifadə edərək kodu sınayın. Aparıcı sıfırlarla vaxt daxil etməyi unutmayın. Məsələn, səhər 9 -da "məktəb avtobusu" zəngimi sınamaq üçün yazıram:

pi@məktəb zəngi: ~ $./schoolbell.py 09:00

Bu, zənginizin çalmasına səbəb olmalıdır! Zəng vurulmayan vaxtlarda zəng vurmadığını da sınaya bilərsiniz.

Addım 5: Qaçışı Crond ilə Avtomatlaşdırın

Crond ilə qaçışı avtomatlaşdırın
Crond ilə qaçışı avtomatlaşdırın

Cron 'daemon', Linux sistemində təkrarlanan vəzifələri yerinə yetirən bir planlaşdırıcıdır. Tarixin/vaxtın cron cədvəlindəki (crontab) bir nümunəyə uyğun olub olmadığını yoxlayır və uyğun gəlirsə kodu işə salır. Bunu "crontab -e" əmrindən istifadə edərək düzəldə bilərsiniz:

pi@məktəb zəngi: ~ $ crontab -e

Bu bir fayl redaktoru açacaq və bu faylın altına aşağıdakı sətri əlavə edəcəksiniz:

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

Bu əmr, cron -a, skriptinizi normal ev qovluğunda (/home/pi) icra edən python3 -ü işə salmağı bildirir. Beş *deyirlər ki, bu hər dəqiqə (ilk *), hər saat (növbəti *…), ayın hər günü, hər ay və həftənin hər günü işləməlidir.

İndi, hər dəqiqə schoolbell.py skript işləyəcək. Əksər dəqiqələrdə kod işləyəcək və çalmadan çıxmalı olduğunu tapacaq, ancaq zəng saatına çıxsa, zəng çalacaq.

Diqqət yetirin ki, cron yalnız hər dəqiqə işlədiyi üçün zəngləri dəqiqədən daha zərif edə bilməzsiniz. Düşünürəm ki, sisteminiz bataqlaşarsa, cron dəqiqənin yuxarısından bir neçə saniyə sonra işləməyəcək və zəngi gecikdirə bilər. Birtəhər cron tam dəqiqə işləməsəydi, zəng əldən veriləcəkdi.

İpucu: Uzadılmış tətillər üçün (məsələn, yay), bu sətrin ilk simvoluna bir şərhə çevirən və buna görə də işləməyini görməyən bir hashtag (#) əlavə edə bilərsiniz. Məktəb sessiyaya qayıtdıqda # nömrəsini çıxarın və yenidən işləməyə başlayacaq.

Addım 6: Fərdiləşdirin və zövq alın

İndi işləyən bir ev zəngi sistemi olmalı və tələbəniz heç vaxt dərsə gecikməməlidir.

Zəng tonlarını dəyişdirərək bu layihəni fərdiləşdirə bilərsiniz.

  • Big Ben-ə dörddə bir saatlıq zənglər və saatlarla zəng vura bilərsiniz.
  • Sevdiyiniz repçinin sərbəst üslubundan nümunə götürə bilərsiniz.
  • Tədqiqata diqqət yetirmək üçün subliminal mesajlar verə bilərsiniz.

COVID -in bu vaxtında təhlükəsiz olun.

Şəkil
Şəkil
Şəkil
Şəkil

"Buna toxunmaq olmaz" Ailə Yarışmasında ikinci yeri tutdu

Tövsiyə: