Cuprins:

Clopot școlar pentru studenții la distanță: 6 pași
Clopot școlar pentru studenții la distanță: 6 pași

Video: Clopot școlar pentru studenții la distanță: 6 pași

Video: Clopot școlar pentru studenții la distanță: 6 pași
Video: Scoala Iepurasilor - Pazitorii Oului De Aur (Rabbit Schol) 2017 Film Pentru Copii Dublat In Romana 2024, Iulie
Anonim
Clopot școlar pentru studenții la distanță
Clopot școlar pentru studenții la distanță

Cu pandemia COVID-19, multe școli pentru copii au mers la livrarea la distanță. Acest clopot de școală la domiciliu este un mod distractiv de a rămâne la timp, care folosește un Raspberry Pi și un difuzor USB. O poți face cu copilul tău și ei pot învăța despre programare și pot „suna la sonerie”. Am construit acest lucru pentru fiica mea care intră în clasa a VII-a (în prezent prin livrare la distanță) și funcționează bine pentru a ne menține la timp.

Provizii

Pentru acest proiect, veți avea nevoie de:

  • Un computer Raspberry Pi - Funcționează cel mai bine dacă aveți WiFi, am folosit un RPi 3B dintr-un kit Kano
  • Un difuzor - am folosit un difuzor USB

Codul ar putea rula cu ușurință pe computerul Linux al elevului dvs. sau chiar pe un microcontroler care rulează micropitonul, atâta timp cât microcontrolerul are un mecanism pentru a obține data / ora curentă. De asemenea, ar putea fi utilizat orice difuzor amplificat, sau chiar mai rece un releu / sonerie analogică.

Pasul 1: configurați Raspberry Pi

Configurați-vă Raspberry Pi
Configurați-vă Raspberry Pi

Există un număr mare de resurse pentru configurarea unui computer Raspberry Pi, așa că vă trimit la unul găsit de Google. Important este că computerul dvs. are o modalitate de a obține data și ora corecte. Cele mai multe computere moderne Raspberry Pi compatibile cu WiFi folosesc protocolul NTP pentru a seta ora de pe internet, care este modul în care am obținut ora corectă. Mi-am configurat RPi pentru a fi „fără cap”, adică nu are tastatură sau monitor, dar este accesibil prin shell securizat (SSH) prin internet. Dacă sunteți bun cu RPi, puteți face această configurare fără tastatură / video / mouse, dar este mai ușor să configurați pi cu acele accesorii.

Rețineți că nu a fost nevoie să folosesc interfața grafică, așa că tocmai am descărcat „Raspberry Pi OS (32-bit) Lite”, care este mai mic și mai rapid de descărcat și pornește mai repede.

Configurați rețeaua Raspberry Pi și opțiunile de interfață

$ sudo raspi-config

În configurație, efectuați următoarele:

  • Schimbați parola - faceți acest lucru mai întâi, sperăm înainte de a intra online!
  • În „Opțiuni de rețea”,

    • Schimbați numele gazdei. Am folosit numele gazdei: „școală de școală”.
    • Conectați-vă la rețeaua wireless LAN (dacă nu ați făcut acest lucru în configurare)
  • Sub „Opțiuni de interfață”, activați accesul SSH
  • Este întotdeauna bine să rulați opțiunea „Actualizare”

După ce ați făcut acest lucru și ați repornit, ar trebui să vă puteți conecta la Raspberry Pi de pe un alt computer din aceeași rețea locală utilizând un client SSH. Conectați-vă la acesta utilizând următoarele acreditări:

nume gazdă: școală.local

utilizator: parolă pi: whateveryousetitas

Dintr-o casetă Linux, acest lucru este la fel de simplu ca să tastați această linie de comandă la promptul $:

$ ssh [email protected]

… introduceți parola la prompt

Aceasta vă va conecta și puteți verifica dacă ora de pe Raspberry Pi este corectă. În linia de comandă, tastați comanda dată și verificați răspunsul:

pi @ schoolbell: ~ $ date

Joi, 3 septembrie 20:44:34 AKDT 2020

Sperăm că acesta este momentul actual. Dacă nu este corect, adresați-vă Google despre configurarea NTP pe Raspberry Pi.

Pasul 2: Puneți sistemul dvs. de sunet în funcțiune

Funcționează sistemul de sunet
Funcționează sistemul de sunet

Vom reda fișiere MP3 pentru clopote, așa că trebuie să descărcăm software pentru a decoda aceste fișiere audio. Am primit pachetul mpg321 tastând această comandă:

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

Urmați instrucțiunile pentru a instala acest software.

Am folosit un difuzor USB vechi, care avea un driver ciudat și nu s-a configurat complet automat ca placă de sunet implicită, așa că am descoperit că pot „hack” difuzorul să funcționeze folosind adresa hardware a acestuia. După conectarea difuzorului, am folosit comanda „aplay -l” pentru a lista dispozitivele audio:

pi @ schoolbell: ~ $ aplay -l

**** Lista PLAYBACK Hardware Devices **** card 0: Căști [bcm2835 Căști], dispozitiv 0: bcm2835 Căști [bcm2835 Căști] 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], device 0: USB Audio [USB Audio] Subdevices: Subdevice # 0: subdevice # 0

Dispozitivul pe care îl doresc este cel inferior, cardul 1, dispozitivul 0.

Am testat difuzorul cu „speaker-test”, folosind dispozitivul „hw: 1, 0”, adică card hardware 1, dispozitiv 0

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

Acest program scoate zgomot de la difuzoare. Bucurați-vă de zgomot, apoi tastați control-C atunci când vă enervați. Dacă nu auziți niciun zgomot, încercați Google.

Acum ai sunet!

Pasul 3: Testați redarea sunetelor clopotului și / sau creați sunete noi

Testați redarea sunetelor clopotului și / sau creați sunete noi
Testați redarea sunetelor clopotului și / sau creați sunete noi

Pentru soneria mea, am descărcat sunetul „bing-bong” de pe „freesound.org”. Mulțumim lui Benboncan pentru că a făcut disponibil acest sunet:

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

Puteți reda sunetul direct. Aș putea descărca direct o versiune mp3 a acestui fișier tastând această comandă pe computerul Raspberry Pi (presupunând că este pe WiFi):

pi @ schoolbell: ~ $ wget

Am redenumit apoi acest fișier:

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

Am testat apoi că puteam suna cu această comandă (afișând ieșirea):

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

Player audio MPEG 1.0 / 2.0 / 2.5 de înaltă performanță pentru straturile 1, 2 și 3. Versiunea 0.3.2-1 (2012/03/25). Scris și drepturi de autor de Joe Drew, acum întreținut de Nanakos Chrysostomos și alții. Folosește cod de la diverse persoane. Consultați „README” pentru mai multe! ACEST SOFTWARE VINE CU ABSOLUT FĂRĂ GARANȚIE! FOLOSIȚI PE PROPRIA RĂSPUNDERE! Redarea fluxului MPEG de la bing-bong-chime-hq.mp3 … MPEG 1.0 layer III, 128 kbit / s, 44100 Hz mono [0:02] Decodarea bing-bong-chime-hq.mp3 terminată.

Felicitări! Ai sunet.

Folosind codul de editare a sunetului „îndrăzneală” de pe laptop, am împărțit fișierul în „bing” și „bong” pentru mai multă distracție. Puteți utiliza orice fișiere audio mp3 sau poate alt format (nu am testat altele).

Pasul 4: Instalați codul și setați-vă programul

Instalați codul și setați-vă programul
Instalați codul și setați-vă programul

Codul este un script python care obține data / ora curentă și dacă data este o zi săptămânală și nu o sărbătoare, verifică dacă ora se potrivește cu ora clopotului, semnalând dacă ar trebui.

Mai întâi îl veți pune în funcțiune, apoi îl veți automatiza să ruleze în fiecare minut.

Descărcați codul de la Github:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Mi se pare ușor să fac acest lucru salvând fișierul pe un computer local, apoi folosind copia sigură (scp) pentru al pune pe Raspberry pi.

Pe computerul dvs. local, copiați codul din browser, apoi lipiți într-un fișier text și salvați-l cu numele de fișier „schoolbell.py”. Apoi scp fișierul peste:

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

Vi se va solicita să introduceți parola pentru utilizatorul pi pe schoolbell.local - introduceți parola, iar fișierul va fi copiat în siguranță. Această comandă ar trebui să fie executată în același director în care a fost salvat scriptul python și îl copiază în directorul principal al utilizatorului pi. Puteți trece la schoolbell.local și codul ar trebui să fie acolo:

local-machine: ~ $ ssh [email protected]

Apoi, pe schoolbell.local, listați fișierele (este posibil să vedeți mai multe fișiere):

pi @ schoolbell: ~ $ ls

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

Acum editați codul pentru a-l face să aibă programarea clopoțelului dvs. utilizând un editor precum pico:

pi @ schoolbell: ~ $ pico schoolbell.py

Codul are trei „dicționare” care definesc tonurile de clopot de redat, orele de redare și sărbătorile de evitat, Clopotele în weekend sunt omise automat.

De exemplu, dicționarul Belltones este:

sonerii = {

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

Aceasta definește trei tipuri de clopote, un clopot de avertizare, un început de curs și un sfârșit. Deoarece avem un singur ton de sonerie, toate indică același fișier, dar dacă faceți tonuri diferite, le puteți schimba. Puteți adăuga chiar și alte tipuri de tonuri de clopote. De asemenea, m-am jucat cu utilizarea unui sintetizator de vorbire pentru a rosti clopotele, dar acest lucru nu a fost văzut în mod favorabil de alții din casă.

Dicționarul de clopotele este similar, dar „cheia” este acum momentul pentru sonerie. trebuie să utilizați formatul HH: MM cu zero-uri și timp de 24 de ore (timpul militar).

bellschedule = {

'09: 00 ':' start ', # Clopotul' autobuzului 'se pregătește '09: 28': 'avertizează', ….. '13: 58 ':' avertizează ', # pentru perioada 4 '14: 00 ':' start ', '15: 00': 'end'}

Valoarea din această pereche cheie: valoare este tipul de ton de sonerie de utilizat și trebuie să se potrivească cu unul dintre sonerii definiți mai sus.

În sfârșit, dicționarul de sărbători listează datele sărbătorilor. Formatul este AAAA-mm-zz, cu zerouri din partea de sus, așa cum se arată.

sărbători = {

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

După ce ați terminat editarea, salvați fișierul ieșind din editor, tastând ctrl-X dacă utilizați pico.

Faceți codul python executabil prin:

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

Aceasta permite tuturor utilizatorilor să execute codul, „a” pentru toți, „+” pentru permisiunea de adăugare și „x” pentru executare.

Acum testați rulați codul și observați ieșirea. Rețineți că puteți rula fișierul tastând numele fișierului, dar trebuie să specificați că acesta se află în directorul curent, tastând un „./” înainte de numele fișierului:

pi @ schoolbell: ~ $./schoolbell.py

Este o zi școlară, verificând ora 21:35

Codul vă va spune dacă este zi de școală (de exemplu, nu este o sărbătoare sau un weekend) și va vedea dacă timpul se potrivește cu cel al clopotului. În acest caz, nu a fost un moment de clopoțel, așa că a ieșit curat. Dacă s-ar fi întâmplat să fie un clopot, ar fi sunat.

Pentru a testa dacă codul dvs. poate reda clopotele, utilizați opțiunea din linia de comandă a unui fișier pentru a reda. Vom folosi fișierul nostru bing-bong:

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

Este o schoolday, timp de verificare 21:38 High Performance MPEG 1.0 / 2.0 / 2.5 Audio Player pentru Layer 1, 2 și 3. Versiunea 0.3.2-1 (2012/03/25). Scris și drepturi de autor de Joe Drew, acum întreținut de Nanakos Chrysostomos și alții. …. mai multă ieșire….

Ar fi trebuit să auzi clopotul.

Acum testați codul folosind ora ca argument. Amintiți-vă să introduceți ora cu zero-uri. De exemplu, pentru a-mi testa soneria „autobuzului școlar” la ora 9:00, scriu:

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

Acest lucru ar trebui să facă clopotul să sune! De asemenea, puteți testa că nu sună în alte momente.

Pasul 5: automatizați alergarea cu Crond

Automatizează alergarea cu Crond
Automatizează alergarea cu Crond

Daemonul cron este un programator care rulează sarcini repetitive pe un sistem Linux. Se verifică dacă data / ora se potrivește cu un model din tabelul cron (crontab) și apoi rulează cod, dacă este cazul. O puteți edita folosind comanda „crontab -e”:

pi @ schoolbell: ~ $ crontab -e

Aceasta va deschide un editor de fișiere și, în partea de jos a acestui fișier, veți adăuga următoarea linie:

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

Această comandă îi spune lui cron să ruleze python3 executând scriptul în directorul de acasă normal (/ home / pi). Cei cinci * spun că acest lucru ar trebui să ruleze în fiecare minut (primul *), în fiecare oră (următoarea * …), în fiecare zi a lunii, în fiecare lună și în fiecare zi a săptămânii.

Acum, în fiecare minut, scriptul schoolbell.py va rula. Pe parcursul celor mai multe minute, codul va rula și va găsi că ar trebui să renunțe fără să se audă, dar dacă se dovedește că va atinge un clopot, va suna.

Rețineți că, deoarece cron rulează doar în fiecare minut, nu puteți face clopotele mai granulare decât la minut. Cred că este teoretic posibil ca, dacă sistemul dvs. să se împotmolească, cron să nu funcționeze câteva secunde după vârful minutului, făcând clopotul târziu. Dacă cumva cron nu ar alerga pentru minutul întreg, clopotul ar fi ratat.

Sfat: pentru vacanțe prelungite (de exemplu, vară), puteți adăuga un hashtag (#) la primul caracter al acestei linii, care îl transformă într-un comentariu și, astfel, ignoră rularea acestuia. Când școala este din nou în sesiune, trebuie doar să eliminați # și va începe să ruleze din nou.

Pasul 6: Personalizați-vă și bucurați-vă

Acum, ar trebui să aveți un sistem de clopote la domiciliu și elevul dvs. nu ar trebui să întârzie niciodată la oră.

Puteți personaliza acest proiect modificând tonurile soneriei.

  • Ai putea să-l faci să sune la Big Ben, cu clopote trimestriale și sunând orele.
  • Ai putea degusta freestyle-ul rapperului tău preferat.
  • Ai putea face mesaje subliminale pentru a te concentra asupra studierii.

Rămâneți în siguranță în acest timp de COVID.

Imagine
Imagine
Imagine
Imagine

Locul doi în concursul de familie „Nu pot atinge acest lucru”

Recomandat: