İçindekiler:

Uzaktan Öğrenciler için Okul Zili: 6 Adım
Uzaktan Öğrenciler için Okul Zili: 6 Adım

Video: Uzaktan Öğrenciler için Okul Zili: 6 Adım

Video: Uzaktan Öğrenciler için Okul Zili: 6 Adım
Video: Öğretmenlerin derse giriş şekilleri 😎😂 2024, Temmuz
Anonim
Uzaktan Öğrenciler için Okul Zili
Uzaktan Öğrenciler için Okul Zili

COVID-19 pandemisi ile birçok çocuğun okulu uzaktan teslimata geçti. Bu ev okul zili, Raspberry Pi ve USB hoparlör kullanan programa uymanın eğlenceli bir yoludur. Çocuğunuzla birlikte yapabilirsiniz ve programlamayı öğrenebilir ve "zili çalabilir". Bunu 7. sınıfa giden kızım için yaptım (şu anda uzaktan teslimat yoluyla) ve bizi zamanında tutmak için iyi çalışıyor.

Gereçler

Bu proje için ihtiyacınız olacak:

  • Bir Raspberry Pi bilgisayarı - WiFi'niz varsa en iyi şekilde çalışır, Kano kitinden bir RPi 3B kullandım
  • Bir Hoparlör -- Bir USB hoparlör kullandım

Kod, mikrodenetleyicinin geçerli tarih/saati almak için bir mekanizması olduğu sürece, öğrencinizin linux bilgisayarında veya micropython çalıştıran bir mikro denetleyicide kolayca çalışabilir. Ayrıca herhangi bir güçlendirilmiş hoparlör veya hatta soğutucu bir röle / analog zil kullanılabilir.

1. Adım: Raspberry Pi'nizi Kurun

Raspberry Pi'nizi Kurun
Raspberry Pi'nizi Kurun

Raspberry Pi bilgisayarı kurmak için çok sayıda kaynak var, bu yüzden sizi Google'ın bulduğu bir tanesine yönlendiriyorum. Önemli olan, bilgisayarınızın doğru tarih ve saati almanın bir yolunun olmasıdır. Modern WiFi özellikli Raspberry Pi bilgisayarlarının çoğu, zamanı internetten ayarlamak için NTP protokolünü kullanır, bu da doğru zamanı bulmamın yolu. RPI'mı "başsız" olacak şekilde ayarladım, yani klavyesi veya monitörü yok, ancak internet üzerinden güvenli kabuk (SSH) ile erişilebilir. Eğer RPi ile aranız iyiyse bu kurulumu klavye/video/fare olmadan da yapabilirsiniz ancak sadece pi'yi bu aksesuarlarla kurmak daha kolaydır.

Grafik arayüzü kullanmam gerekmediğine dikkat edin, bu yüzden daha küçük ve daha hızlı indirmesi ve daha hızlı önyüklemesi olan "Raspberry Pi OS (32-bit) Lite" ı indirdim.

Raspberry Pi'nin ağını ve arayüz seçeneklerini yapılandırın

$ sudo raspi yapılandırması

Yapılandırmada aşağıdakileri yapın:

  • Şifreyi değiştirin -- ilk önce bunu yapın, umarım internete girmeden önce!
  • "Ağ Seçenekleri"nde,

    • Ana bilgisayar adını değiştirin. Ana bilgisayar adını kullandım: "okul zili".
    • Kablosuz LAN'ınıza bağlanın (bunu kurulumda yapmadıysanız)
  • "Arayüz Seçenekleri" altında SSH erişimini açın
  • "Güncelle" seçeneğini çalıştırmak her zaman iyidir

Bunu yaptıktan ve yeniden başlattıktan sonra, bir SSH istemcisi kullanarak aynı yerel ağdaki başka bir bilgisayardan Raspberry Pi'ye bağlanabilmelisiniz. Aşağıdaki kimlik bilgilerini kullanarak ona bağlanın:

ana bilgisayar adı: okul zili.local

kullanıcı: pi şifresi: ne olursa olsun

Bir linux kutusundan, bu komut satırını $ istemine yazmak kadar basittir:

$ ssh [email protected]

… istendiğinde şifreyi girin

Bu sizi oturum açacaktır ve Raspberry Pi'deki saatin doğru olup olmadığını kontrol edebilirsiniz. Komut satırına date komutunu yazın ve yanıtı kontrol edin:

pi@okul zili:~ $ tarih

3 Eyl 20:44:34 AKDT 2020

Umarım şimdiki zaman budur. Doğru değilse, Raspberry Pi'de NTP kurulumu hakkında google.

2. Adım: Ses Sisteminizi Çalıştırın

Ses Sisteminizi Çalıştırın
Ses Sisteminizi Çalıştırın

Çanlar için MP3 dosyalarını çalacağız, bu yüzden bu ses dosyalarının kodunu çözmek için yazılım indirmemiz gerekiyor. Bu komutu yazarak mpg321 paketini aldım:

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

Bu yazılımı yüklemek için istemleri izleyin.

Garip bir sürücüsü olan ve varsayılan ses kartı olarak tam olarak otomatik olarak yapılandırılmayan eski bir USB hoparlör kullandım, bu yüzden donanım adresini kullanarak hoparlörü "hackleyebileceğimi" öğrendim. Hoparlörü taktıktan sonra, ses cihazlarını listelemek için 'aplay -l' komutunu kullandım:

pi@okul zili:~ $ aplay -l

**** OYNATMA Donanım Cihazlarının Listesi **** kart 0: Kulaklıklar [bcm2835 Kulaklıklar], cihaz 0: bcm2835 Kulaklıklar [bcm2835 Kulaklıklar] Alt Cihazlar: Alt Cihaz #0: Alt Cihaz #0 Alt Cihaz #1: Alt Cihaz #1 Alt Cihaz #2: alt cihaz #2 Alt cihaz #3: alt cihaz #3 Alt cihaz #4: alt cihaz #4 Alt cihaz #5: alt cihaz #5 Alt cihaz #6: alt cihaz #6 Alt cihaz #7: alt cihaz #7 kart 1: CODEC [USB Ses CODEC], cihaz 0: USB Ses [USB Ses] Alt Cihazlar: Alt Cihaz #0: Alt Cihaz #0

İstediğim cihaz alttaki, kart 1, cihaz 0.

Hoparlörü, donanım kartı 1, cihaz 0 anlamına gelen "hw:1, 0" cihazını kullanarak "hoparlör testi" ile test ettim.

pi@schoolbell:~ $ konuşmacı testi -D hw:1, 0

Bu program hoparlörlerden gürültü çıkarır. Gürültünün keyfini çıkarın ve sinirlendiğinizde control-C yazın. Ses duymuyorsanız, google'ı deneyin.

Artık sesin var!

3. Adım: Zil Seslerinin Çalınmasını Test Edin ve/veya Yeni Sesler Yapın

Zil Seslerinin Çalınmasını Test Edin ve/veya Yeni Sesler Yapın
Zil Seslerinin Çalınmasını Test Edin ve/veya Yeni Sesler Yapın

Zil için "freesound.org"dan "bing-bong" sesini indirdim. Bu sesi kullanıma sunduğu için Benboncan'a teşekkürler:

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

Sesi doğrudan çalabilirsiniz. Raspberry Pi bilgisayarına bu komutu yazarak (WiFi üzerinde olduğunu varsayarak) bu dosyanın bir mp3 sürümünü doğrudan indirebilirim:

pi@schoolbell:~ $ wget

Daha sonra bu dosyayı yeniden adlandırdım:

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

Daha sonra bu komutla zili çalabileceğimi test ettim (çıktı gösteriliyor):

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

Katman 1, 2 ve 3 için Yüksek Performanslı MPEG 1.0/2.0/2.5 Ses Oynatıcısı Sürüm 0.3.2-1 (2012/03/25). Joe Drew tarafından yazılmış ve telif hakları, şu anda Nanakos Chrysostomos ve diğerleri tarafından korunmaktadır. Çeşitli insanlardan kod kullanır. Daha fazlası için 'BENİ OKU' bölümüne bakın! BU YAZILIM KESİNLİKLE HİÇBİR GARANTİ İLE GELMEMEKTEDİR! KENDİ RİSKİNİZDE KULLANIN! bing-bong-chime-hq.mp3'ten MPEG akışı oynatılıyor … MPEG 1.0 katman III, 128 kbit/s, 44100 Hz mono [0:02] bing-bong-chime-hq.mp3 kodunun çözülmesi tamamlandı.

Tebrikler! Sesin var.

Dizüstü bilgisayarımdaki "audacity" ses düzenleme kodunu kullanarak, daha fazla eğlence için dosyayı "bing" ve "bong" olarak ayırdım. Herhangi bir mp3 veya başka bir formatta (diğerlerini test etmedim) ses dosyalarını kullanabilirsiniz.

Adım 4: Kodu Kurun ve Programınızı Ayarlayın

Kodu Yükleyin ve Programınızı Ayarlayın
Kodu Yükleyin ve Programınızı Ayarlayın

Kod, geçerli tarih/saati alan bir python betiğidir ve tarih bir tatil değil de hafta içi ise, saatin bir zil saatiyle eşleşip eşleşmediğini kontrol eder, gerekirse zil çalar.

Önce çalışmasını sağlayacaksınız, sonra her dakika çalışmasını otomatikleştireceksiniz.

Kodu Github'dan indirin:

Gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Dosyayı yerel bir bilgisayara kaydedip ardından Raspberry pi'ye yerleştirmek için güvenli kopya (scp) kullanarak bunu yapmayı kolay buluyorum.

Yerel makinenizde, tarayıcınızdan kodu kopyalayın, ardından bir metin dosyasına yapıştırın ve "schoolbell.py" dosya adıyla kaydedin. Ardından dosyayı scp yapın:

yerel makine:~ $ scp schoolbell.py [email protected]:~/

Schoolbell.local'da pi kullanıcısının parolasını girmeniz istenecek -- parolayı girin ve dosya güvenli bir şekilde kopyalanır. Bu komut, python betiğinin kaydedildiği dizinde çalıştırılmalı ve onu pi kullanıcısının ana dizinine kopyalanmalıdır. Schoolbell.local adresine ssh yapabilirsiniz ve kod orada olmalıdır:

yerel makine:~ $ ssh [email protected]

Ardından, schoolbell.local'da dosyaları listeleyin (daha fazla dosya görebilirsiniz):

pi@okul zili:~ $ ls

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

Şimdi, pico gibi bir düzenleyici kullanarak zil zamanlamanıza sahip olması için kodu düzenleyin:

pi@schoolbell:~ $ pico schoolbell.py

Kodun, çalınacak zil seslerini, çalınacak saatleri ve kaçınılması gereken tatilleri tanımlayan üç "sözlük" vardır, hafta sonları zil sesleri otomatik olarak atlanır.

Örneğin, zil sesleri sözlüğü:

zil sesleri = {

'uyar': 'bing-bong-chime-hq.mp3', 'başlangıç': 'bing-bong-chime-hq.mp3', 'bitiş': 'bing-bong-chime-hq.mp3' }

Bu, üç tür zili, bir uyarı zilini, bir sınıfın başlangıcını ve bir bitişi tanımlar. Sadece bir zil tonumuz olduğu için hepsi aynı dosyaya işaret ediyor, ancak farklı tonlar yaparsanız bunları değiştirebilirsiniz. Hatta başka tür zil sesleri de ekleyebilirsiniz. Zilleri söylemek için bir konuşma sentezleyici kullanarak da oynadım, ancak bu, evdeki başkaları tarafından olumlu karşılanmadı.

Bellschedule sözlüğü benzer, ancak "anahtar" şimdi zil zamanı. SS:DD biçimini baştaki sıfırlar ve 24 saatlik zaman (askeri saat) ile kullanmanız gerekir.

çan programı = {

'09:00': 'başla', # 'Otobüs' zili hazırlanıyor '09:28': 'uyar', ….. '13:58': 'uyar', # 4. periyot için '14:00' ': 'başlangıç', '15:00': 'bitiş' }

Bu anahtar:değer çiftindeki değer, kullanılacak zil sesi türüdür ve yukarıda tanımlanan zil seslerinden biriyle eşleşmesi gerekir.

Son olarak, tatil sözlüğü tatil tarihlerini listeler. Biçim YYYY-aa-gg şeklindedir ve gösterildiği gibi başında sıfırlar bulunur.

tatiller = {

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

Düzenlemeyi bitirdikten sonra, editörünüzden çıkıp pico kullanıyorsanız ctrl-X yazarak dosyayı kaydedin.

Python kodunu şu şekilde yürütülebilir yapın:

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

Bu, tüm kullanıcıların kodu, herkes için "a", izin eklemek için "+" ve yürütme için "x" kodunu yürütmesine izin verir.

Şimdi kodu test edin ve çıktıyı izleyin. Dosya adını yazarak dosyayı çalıştırabileceğinizi, ancak dosya adından önce bir "./" yazarak geçerli dizinde olduğunu belirtmeniz gerektiğini unutmayın:

pi@schoolbell:~ $./schoolbell.py

Bugün bir okul günü, kontrol zamanı 21:35

Kod size bir okul günü olup olmadığını (ör. tatil veya hafta sonu değil) söyleyecek ve saatin bir zil saatiyle eşleşip eşleşmediğini görecektir. Bu durumda, bir zil zamanı değildi, bu yüzden temiz bir şekilde çıktı. Zil zamanı olsaydı, çalardı.

Kodunuzun çan çalabildiğini test etmek için, yürütülecek dosyanın komut satırı seçeneğini kullanın. Bing-bong dosyamızı kullanacağız:

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

Bugün bir okul günü, saat 21:38 Katman 1, 2 ve 3 için Yüksek Performanslı MPEG 1.0/2.0/2.5 Ses Oynatıcısı Sürüm 0.3.2-1 (2012/03/25). Joe Drew tarafından yazılmış ve telif hakları, şu anda Nanakos Chrysostomos ve diğerleri tarafından korunmaktadır. …. daha fazla çıktı….

Zil sesini duymalıydın.

Şimdi argüman olarak bir zaman kullanarak kodu test edin. Başına sıfırlar koyarak zamanı girmeyi unutmayın. Örneğin, "okul otobüsü" zilimi sabah 9'da test etmek için şunu yazarım:

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

Bu, zilinizin çalmasına neden olmalıdır! Zil olmayan zamanlarda da çalmadığını test edebilirsiniz.

Adım 5: Crond ile Koşmayı Otomatikleştirin

Crond ile Koşmayı Otomatikleştirin
Crond ile Koşmayı Otomatikleştirin

Cron 'arka plan programı', bir linux sisteminde tekrarlayan görevleri çalıştıran bir zamanlayıcıdır. Tarih/saatin cron tablosundaki (crontab) bir kalıpla eşleşip eşleşmediğini kontrol eder ve ardından uygunsa kodu çalıştırır. "crontab -e" komutunu kullanarak düzenleyebilirsiniz:

pi@okul zili:~ $ crontab -e

Bu, bir dosya düzenleyiciyi açacak ve bu dosyanın altına aşağıdaki satırı ekleyeceksiniz:

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

Bu komut, cron'a betiğinizi normal ana dizinde (/home/pi) yürüten python3'ü çalıştırmasını söyler. Beş *, bunun her dakika (ilk *), her saat (sonraki * …), ayın her günü, her ay ve haftanın her günü çalışması gerektiğini söylüyor.

Şimdi, schoolbell.py betiği her dakika çalışacaktır. Çoğu dakika boyunca, kod çalışacak ve zil çalmadan çıkması gerektiğini görecek, ancak bir zil zamanına çarptığı ortaya çıkarsa, çalacaktır.

Cron yalnızca dakikada bir çalıştığından, çanları dakikadan daha ayrıntılı hale getiremeyeceğinizi unutmayın. Sisteminiz çıkmaza girerse, cron'un dakikanın başından sonra birkaç saniye çalışmayabileceği ve zilin geç kalmasına neden olabileceği teorik olarak mümkün olduğunu düşünüyorum. Bir şekilde cron tüm dakika boyunca çalışmadıysa, zil kaçırılacaktı.

İpucu: Uzatılmış tatiller için (örneğin yaz), bu satırın ilk karakterine bir etiket (#) ekleyebilirsiniz; bu, onu bir yoruma dönüştürür ve böylece çalıştırmayı yok sayar. Okul tekrar oturuma döndüğünde, # işaretini kaldırın ve tekrar çalışmaya başlayacaktır.

6. Adım: Özelleştirin ve Keyfini Çıkarın

Şimdi, çalışan bir evde okul zili sisteminiz olmalı ve öğrenciniz asla derse geç kalmamalıdır.

Zil seslerini değiştirerek bu projeyi özelleştirebilirsiniz.

  • Çeyrek saatlik çanlar ve saatleri çaldırarak Big Ben'i çaldırabilirsiniz.
  • En sevdiğiniz rapçinin serbest stilini örnekleyebilirsiniz.
  • Ders çalışmaya odaklanmak için subliminal mesajlar verebilirsiniz.

Bu COVID zamanında güvende kalın.

resim
resim
resim
resim

"Buna Dokunamam" Aile Yarışmasında İkincilik

Önerilen: