INHOUDSOPGAWE:

Skoolklok vir afstandstudente: 6 stappe
Skoolklok vir afstandstudente: 6 stappe

Video: Skoolklok vir afstandstudente: 6 stappe

Video: Skoolklok vir afstandstudente: 6 stappe
Video: Robbie Wessels - Bobjan 2024, Julie
Anonim
Skoolklok vir afstandstudente
Skoolklok vir afstandstudente

Met die COVID-19-pandemie het baie kinderskole afstand afgelewer. Hierdie tuisskoolklok is 'n prettige manier om volgens die skedule te bly, met 'n Raspberry Pi en 'n USB -luidspreker. U kan dit saam met u kind maak, en hulle kan leer oor programmering en kan 'lui'. Ek het dit gebou vir my dogter wat in die 7de klas gaan (tans via aflewering), en dit werk goed om ons betyds te hou.

Voorrade

Vir hierdie projek benodig u:

  • 'N Raspberry Pi -rekenaar - Dit werk die beste as u WiFi het; ek het 'n RPi 3B van 'n Kano -kit gebruik
  • 'N Luidspreker - ek het 'n USB -luidspreker gebruik

Die kode kan maklik op die Linux -rekenaar van u student of selfs 'n mikrobeheerder uitgevoer word, met mikropython, solank die mikrobeheerder 'n meganisme het om die huidige datum/tyd te kry. Elke versterkte luidspreker, of selfs koeler as 'n relais / analoog klok, kan gebruik word.

Stap 1: Stel u Framboos Pi op

Stel u Framboos Pi op
Stel u Framboos Pi op

Daar is 'n groot aantal hulpbronne vir die opstel van 'n Raspberry Pi -rekenaar, so ek verwys u na een wat Google vind. Die belangrikste ding is dat u rekenaar die regte datum en tyd kan kry. Die meeste moderne Raspberry Pi-rekenaars met WiFi gebruik die NTP-protokol om die tyd van die internet af te stel, en dit is die manier waarop ek die regte tyd gekry het. Ek het my RPi opgestel om 'koploos' te wees, wat beteken dat dit geen sleutelbord of monitor het nie, maar is toeganklik via 'n veilige shell (SSH) via die internet. As u goed is met RPi, kan u hierdie opstelling doen sonder 'n sleutelbord / video / muis, maar dit is makliker om die pi met die bykomstighede op te stel.

Let daarop dat ek nie die grafiese koppelvlak hoef te gebruik nie, en ek het net die "Raspberry Pi OS (32-bit) Lite" afgelaai, wat kleiner en vinniger is om af te laai en vinniger te begin.

Stel die netwerk en koppelvlakopsies van die Raspberry Pi op

$ sudo raspi-config

Doen die volgende in die opset:

  • Verander die wagwoord - doen dit eers, hopelik voordat u aanlyn gaan!
  • In "Netwerkopsies",

    • Verander die gasheernaam. Ek het die gasheernaam: "skoolklok" gebruik.
    • Koppel aan u draadlose LAN (as u dit nog nie tydens die opstelling gedoen het nie)
  • Skakel SSH -toegang onder 'Interfacing Options' aan
  • Dit is altyd goed om die opsie 'Update' uit te voer

Sodra u dit gedoen het en weer begin het, moet u via 'n SSH -kliënt vanaf 'n ander rekenaar op dieselfde plaaslike netwerk aan die Raspberry Pi kon koppel. Koppel daarby deur die volgende geloofsbriewe te gebruik:

gasheernaam: skoolklok.lokaal

gebruiker: pi -wagwoord: wat u almal kan noem

Vanuit 'n Linux -boks is dit so eenvoudig soos om hierdie opdragreël by die $ prompt te tik:

$ ssh [email protected]

… voer wagwoord onmiddellik in

Dit sal u aanmeld en u kan seker maak dat die tyd op die Raspberry Pi korrek is. Tik op die opdragreël die datumopdrag en kyk na die antwoord:

pi@skoolklok: ~ $ datum

Do 3 Sep 20:44:34 AKDT 2020

Hopelik is dit die huidige tyd. As dit nie korrek is nie, google oor die opstel van NTP op die Raspberry Pi.

Stap 2: Laat u klankstelsel werk

Laat u klankstelsel werk
Laat u klankstelsel werk

Ons gaan MP3 -lêers vir die klokke speel, so ons moet sagteware aflaai om hierdie klanklêers te dekodeer. Ek het die mpg321 -pakket gekry deur hierdie opdrag in te tik:

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

Volg die instruksies om hierdie sagteware te installeer.

Ek het 'n ou USB -luidspreker gebruik, met 'n vreemde bestuurder en nie heeltemal outomaties as die standaard klankkaart gekonfigureer nie. Nadat ek die luidspreker aangesluit het, gebruik ek die opdrag 'aplay -l' om klanktoestelle te lys:

pi@skoolklok: ~ $ aplay -l

**** Lys van afspeel hardeware toestelle **** kaart 0: koptelefoon [bcm2835 koptelefoon], toestel 0: bcm2835 koptelefoon [bcm2835 koptelefoon] sub -toestelle: sub -toestel #0: sub -toestel #0 sub -toestel #1: sub -toestel #1 sub -toestel #2: subapparaat #2 Subapparaat #3: subapparaat #3 Subapparaat #4: subapparaat #4 Subapparaat #5: subapparaat #5 Onderdeel #6: subapparaat #6 Subapparaat #7: subapparaat #7 kaart 1: CODEC [USB Audio CODEC], toestel 0: USB Audio [USB Audio] Subtoestelle: Subapparaat #0: subapparaat #0

Die toestel wat ek wil hê, is die onderste, kaart 1, toestel 0.

Ek het die luidspreker getoets met 'luidspreker-toets', met behulp van die toestel 'hw: 1, 0', wat beteken hardeware kaart 1, toestel 0

pi@skoolklok: ~ $ luidspreker -toets -D hw: 1, 0

Hierdie program gee geluid uit die luidsprekers. Geniet die geraas, tik dan beheer-C as u geïrriteerd raak. Probeer Google as jy geen geraas hoor nie.

Nou het jy klank!

Stap 3: Toets die afspeel van klanke en/of maak nuwe klanke

Toets afspeel van klanke en/of maak nuwe klanke
Toets afspeel van klanke en/of maak nuwe klanke

Vir my klokkie het ek die 'bing-bong' geluid afgelaai van 'freesound.org'. Dankie aan Benboncan vir die beskikbaarstelling van hierdie geluid:

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

U kan die klank direk speel. Ek kan 'n mp3 -weergawe van hierdie lêer direk aflaai deur hierdie opdrag op die Raspberry Pi -rekenaar te tik (as dit op WiFi is):

pi@schoolbell: ~ $ wget

Ek verander toe die lêer:

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

Ek het toe getoets dat ek die klok kon lui met hierdie opdrag (vertoon uitvoer):

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

Hoëprestasie MPEG 1.0/2.0/2.5 klankspeler vir laag 1, 2 en 3. Weergawe 0.3.2-1 (2012/03/25). Geskryf en outeursreg deur Joe Drew, nou onderhou deur Nanakos Chrysostomos en ander. Gebruik kode van verskillende mense. Sien 'README' vir meer! HIERDIE SOFTWARE KOM MET ABSOLUUT GEEN GARANTIE NIE! GEBRUIK OP U EIE RISIKO! Speel MPEG-stroom vanaf bing-bong-chime-hq.mp3 … MPEG 1.0 laag III, 128 kbit/s, 44100 Hz mono [0:02] Dekodering van bing-bong-chime-hq.mp3 klaar.

Geluk! Jy het klank.

Deur die klankbewerkingskode "vermetelheid" op my skootrekenaar te gebruik, verdeel ek die lêer in "bing" en "bong" vir meer plesier. U kan enige mp3 of miskien ander formaat (ek het ander nie getoets nie) klanklêers gebruik.

Stap 4: Installeer die kode en stel u skedule op

Installeer die kode en stel u skedule op
Installeer die kode en stel u skedule op

Die kode is 'n luislang -skrip wat die huidige datum/tyd kry, en as die datum 'n weeksdag is en nie 'n vakansie nie, kyk dit of die tyd ooreenstem met 'n klok, of dit moet klink.

Eerstens laat u dit werk, dan outomatiseer u dit om elke minuut te werk.

Laai die kode van Github af:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Ek vind dit maklik om dit te doen deur die lêer op 'n plaaslike rekenaar te stoor en dan 'n veilige kopie (scp) te gebruik om dit op die Raspberry pi te plaas.

Kopieer die kode van u blaaier op u plaaslike masjien, plak dit dan in 'n tekslêer en stoor dit met die lêernaam "schoolbell.py". Scp dan die lêer oor:

plaaslike masjien: ~ $ scp schoolbell.py [email protected]: ~/

U sal gevra word om die wagwoord vir die gebruiker pi op schoolbell.local in te voer - voer die wagwoord in en die lêer word veilig gekopieer. Hierdie opdrag moet uitgevoer word in dieselfde gids waar die python -script gestoor is, en dit kopieer na die tuisgids van die pi -gebruiker. U kan oorskakel na schoolbell.local en die kode moet daar wees:

plaaslike masjien: ~ $ ssh [email protected]

Noem dan die lêers op schoolbell.local (u kan meer lêers sien):

pi@skoolklok: ~ $ ls

bing-bong-klokkie-hq.mp3 skoolklok.py

Wysig nou die kode sodat u u klokskedule kan gebruik deur 'n redakteur soos pico te gebruik:

pi@schoolbell: ~ $ pico schoolbell.py

Die kode bevat drie 'woordeboeke' wat die klokkie toon wat gespeel moet word, die tye om dit te speel en die vakansiedae wat vermy moet word, en naweke word outomaties oorgeslaan.

Die belltones -woordeboek is byvoorbeeld:

belltones = {

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

Dit definieer drie soorte klokke, 'n waarskuwingsklok, 'n begin van die klas en 'n einde. Omdat ons net een klokkie het, wys hulle almal op dieselfde lêer, maar as u verskillende kleure maak, kan u dit verander. U kan selfs ander soorte klokketone byvoeg. Ek het ook gespeel met die gebruik van 'n spraaksintetiseerder om die klokkies te praat, maar dit was nie gunstig deur ander in die huis nie.

Die klokroosterwoordeboek is soortgelyk, maar die 'sleutel' is nou die tyd vir die klok. u moet die formaat HH: MM met toonaangewende nulle en 24-uur-tyd (militêre tyd) gebruik.

klokrooster = {

'09: 00 ':' begin ', #' bus 'klok om gereed te maak '09: 28': 'waarsku', … '13: 58 ':' waarsku ', # vir periode 4 '14: 00 ':' begin ', '15: 00': 'einde'}

Die waarde in hierdie sleutel: waardepaar is die tipe klokkentoon wat gebruik moet word en moet ooreenstem met een van die klokkies wat hierbo gedefinieer is.

Laastens word die vakansiedatums in die vakansiewoordeboek gelys. Die formaat is JJJJ-mm-dd, met voorste nulle soos getoon.

vakansie = {

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

As u klaar is met redigering, stoor u die lêer deur die redakteur te verlaat en ctrl-X in te tik as u pico gebruik.

Maak die python -kode uitvoerbaar deur:

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

Hiermee kan alle gebruikers die kode, 'a' vir almal, '+' vir toestemming vir byvoeging en 'x' vir uitvoer uitvoer.

Toets nou die kode en kyk na die uitset. Let daarop dat u die lêer kan uitvoer deur die lêernaam in te tik, maar u moet spesifiseer dat dit in die huidige gids is deur 'n "./" voor die lêernaam in te tik:

pi@skoolklok: ~ $./schoolbell.py

Dit is 'n skooldag, die tyd is 21:35

Die kode sal u vertel of dit 'n skooldag is (byvoorbeeld nie 'n vakansie of naweek nie) en kyk of die tyd by 'n klok pas. In hierdie geval was dit nie 'n klok nie, so dit was net skoon. As dit toevallig 'n klok was, sou dit gelui het.

Gebruik die opdragreëlopsie van 'n lêer om te toets dat u kode klokke kan speel. Ons sal ons bing-bong-lêer gebruik:

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

Dit is 'n skooldag, tyd om 21:38 hoëprestasie MPEG 1.0/2.0/2.5 klankspeler vir laag 1, 2 en 3. weergawe 0.3.2-1 (2012/03/25) na te gaan. Geskryf en outeursreg deur Joe Drew, nou onderhou deur Nanakos Chrysostomos en ander. …. meer uitset….

Jy moes die klokkie gehoor het.

Toets nou die kode met 'n tyd as argument. Onthou om die tyd in te voer met vooraanstaande nulle. Om byvoorbeeld my "skoolbus" -klok om 09:00 te toets, tik ek:

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

Dit behoort jou klok te laat lui! U kan ook toets dat dit nie lui tydens nie-klok-tye.

Stap 5: Outomatiseer die hardloop met Crond

Outomatiseer die hardloop met Crond
Outomatiseer die hardloop met Crond

Die cron 'daemon' is 'n skeduleerder wat herhalende take op 'n Linux -stelsel uitvoer. Dit kyk of die datum/tyd ooreenstem met 'n patroon in die cron -tabel (crontab) en voer dan die kode uit. U kan dit wysig met die 'crontab -e' opdrag:

pi@skoolklok: ~ $ crontab -e

Dit sal 'n lêerredakteur oopmaak, en onderaan hierdie lêer voeg u die volgende reël by:

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

Hierdie opdrag vertel cron om python3 uit te voer deur u script uit te voer in die normale tuisgids (/home/pi). Die vyf *s sê dat dit elke minuut (eerste *), elke uur (volgende *…), elke dag van die maand, elke maand en elke dag van die week moet loop.

Elke minuut loop die scriptbell.py -script. Gedurende die meeste minute sal die kode hardloop en vind dat dit net moet ophou sonder om te hoor, maar as dit 'n klokkie lyk, klink dit.

Let daarop dat, omdat cron slegs elke minuut loop, u die klokkies nie meer korrelig as van die minuut kon maak nie. Ek dink dit is teoreties moontlik dat as u stelsel vasval, dat cron na die einde van die minuut nie 'n paar sekondes kan werk nie, wat die klok laat laat word. As cron op die een of ander manier nie die volle minuut hardloop nie, sal die klok gemis word.

Wenk: Vir lang vakansies (bv. Somer), kan u 'n hutsmerk (#) by die eerste karakter van hierdie reël voeg, wat dit in 'n opmerking verander en dit dus ignoreer om dit te laat loop. As die skool weer in diens is, verwyder die #, en dit begin weer loop.

Stap 6: Pas aan en geniet

Nou moet u 'n werkende tuisskoolklokkiesisteem hê, en u student mag nooit laat wees vir die klas nie.

U kan hierdie projek aanpas deur die klokkies te verander.

  • U kan die Big Ben laat bel, met 'n kwartier-klokkie en die ure.
  • U kan u gunsteling rapper se vryslag proe.
  • U kan subliminale boodskappe stuur om op die studie te konsentreer.

Bly veilig in hierdie tyd van COVID.

Beeld
Beeld
Beeld
Beeld

Naaswenner in die "Can't Touch This" -gesinswedstryd

Aanbeveel: