Sisällysluettelo:

Koulukello etäopiskelijoille: 6 vaihetta
Koulukello etäopiskelijoille: 6 vaihetta

Video: Koulukello etäopiskelijoille: 6 vaihetta

Video: Koulukello etäopiskelijoille: 6 vaihetta
Video: Lehtikuusen koulun Kaarnan kellon ääni 2024, Heinäkuu
Anonim
Koulukello etäopiskelijoille
Koulukello etäopiskelijoille

COVID-19-pandemian myötä monet lasten koulut ovat siirtyneet etätoimitukseen. Tämä kotikoulukello on hauska tapa pysyä aikataulussa Raspberry Pi: n ja USB -kaiuttimen avulla. Voit tehdä sen lapsesi kanssa ja he voivat oppia ohjelmoinnista ja voivat "soittaa kelloa". Rakensin tämän tyttärelleni, joka menee 7. luokalle (tällä hetkellä etätoimituksen kautta), ja se toimii hyvin pitääksemme meidät ajoissa.

Tarvikkeet

Tätä projektia varten tarvitset:

  • Raspberry Pi -tietokone - Se toimii parhaiten, jos sinulla on WiFi, käytin RPi 3B: tä Kano -sarjasta
  • Kaiutin - Käytin USB -kaiutinta

Koodi voi helposti toimia oppilaasi linux -tietokoneessa tai jopa mikropythonia käyttävässä mikro -ohjaimessa, kunhan mikrokontrollerilla on jokin mekanismi nykyisen päivämäärän/ajan saamiseksi. Myös mitä tahansa vahvistettua kaiutinta tai jopa viileämpi rele / analoginen kello voitaisiin käyttää.

Vaihe 1: Määritä Raspberry Pi

Asenna Raspberry Pi
Asenna Raspberry Pi

Raspberry Pi -tietokoneen käyttöönotossa on paljon resursseja, joten viittaan siihen, jonka Google löytää. Tärkeintä on, että tietokoneessa on tapa saada oikea päivämäärä ja kellonaika. Useimmat nykyaikaiset WiFi-yhteensopivat Raspberry Pi -tietokoneet käyttävät NTP-protokollaa asettaakseen ajan Internetistä, mikä on oikea tapa saada aika. Määritin RPi: n olemaan "päätön", eli sillä ei ole näppäimistöä tai näyttöä, mutta se on saatavilla suojatun kuoren (SSH) avulla Internetin kautta. Jos olet hyvä RPi: n kanssa, voit tehdä tämän asennuksen ilman näppäimistöä / videota / hiirtä, mutta on helpompi vain asentaa pi näiden lisävarusteiden avulla.

Huomaa, että minun ei tarvinnut käyttää graafista käyttöliittymää, joten latasin juuri "Raspberry Pi OS (32-bittinen) Lite", joka on pienempi ja nopeampi ladata ja käynnistyy nopeammin.

Määritä Raspberry Pi: n verkko ja liitäntävaihtoehdot

$ sudo raspi-config

Tee kokoonpanossa seuraavat toimet:

  • Vaihda salasana - tee tämä ensin, toivottavasti ennen kuin siirryt verkkoon!
  • "Verkkoasetukset" -kohdassa
    • Vaihda isäntänimi. Käytin isäntänimeä: "koulukello".
    • Yhdistä langattomaan lähiverkkoon (jos et ole tehnyt sitä asennuksen aikana)
  • Ota SSH -yhteys käyttöön "Liitäntäasetukset" -kohdassa
  • On aina hyvä käyttää "Päivitä" -vaihtoehtoa

Kun olet tehnyt tämän ja käynnistänyt uudelleen, sinun pitäisi pystyä muodostamaan yhteys Raspberry Pi -laitteeseen toisesta tietokoneesta samassa lähiverkossa SSH -asiakkaan avulla. Muodosta yhteys seuraavilla kirjautumistiedoilla:

isäntänimi: schoolbell.local

käyttäjä: pi salasana: mitä tahansa

Linux -laatikosta tämä on yhtä helppoa kuin kirjoittaa tämä komentorivi $ -kehotteeseen:

$ ssh [email protected]

… Anna salasana pyydettäessä

Se kirjaa sinut sisään ja voit tarkistaa, että Raspberry Pi: n aika on oikea. Kirjoita komentoriville päivämääräkomento ja tarkista vastaus:

pi@koulukello: ~ $ päivämäärä

To 3 syys 20:44:34 AKDT 2020

Toivottavasti tämä on nykyinen aika. Jos se ei ole oikein, googlettamalla NTP: n asettamisesta Raspberry Pi: lle.

Vaihe 2: Hanki äänijärjestelmäsi toimintaan

Saat äänijärjestelmän toimimaan
Saat äänijärjestelmän toimimaan

Aiomme toistaa MP3 -tiedostoja kelloille, joten meidän on ladattava ohjelmisto näiden äänitiedostojen purkamiseksi. Sain mpg321 -paketin kirjoittamalla tämän komennon:

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

Asenna tämä ohjelmisto noudattamalla ohjeita.

Käytin vanhaa USB -kaiutinta, jossa oli outo ajuri eikä määritetty täysin automaattisesti oletusäänikortiksi, joten huomasin, että voin "hakata" kaiuttimen toimimaan käyttämällä sen laitteisto -osoitetta. Kaiuttimen kytkemisen jälkeen käytin komentoa 'aplay -l' luetteloida äänilaitteet:

pi@koulukello: ~ $ aplay -l

**** Luettelo TOISTO -laitteistoista **** -kortti 0: Kuulokkeet [bcm2835 Kuulokkeet], laite 0: bcm2835 Kuulokkeet [bcm2835 Kuulokkeet] Alalaitteet: Alalaite #0: alilaite #0 Alalaite #1: alilaite #1 Alalaite #2: alilaite #2 alilaite #3: alilaite #3 alilaite #4: alilaite #4 alilaite #5: alilaite #5 alilaite #6: alilaite #6 alilaite #7: alilaite #7 kortti 1: CODEC [USB Audio CODEC], laite 0: USB -ääni [USB -ääni] Alilaitteet: Alilaite #0: alilaite #0

Haluttu laite on alempi, kortti 1, laite 0.

Testasin kaiuttimen "kaiutintestillä" käyttämällä laitetta "hw: 1, 0", eli laitteistokortti 1, laite 0

pi@koulukello: ~ $ kaiutintesti -D hw: 1, 0

Tämä ohjelma poistaa melun kaiuttimista. Nauti melusta ja kirjoita sitten control-C, kun ärsyyntyy. Jos et kuule ääntä, kokeile googlea.

Nyt sinulla on ääni!

Vaihe 3: Testaa soittoääniä ja/tai tee uusia ääniä

Testaa soittoääniä ja/tai tee uusia ääniä
Testaa soittoääniä ja/tai tee uusia ääniä

Kelloni vuoksi latasin "bing-bong" -äänen osoitteesta "freesound.org". Kiitos Benboncanille tämän äänen saatavuudesta:

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

Voit toistaa äänen suoraan. Voisin ladata tämän tiedoston mp3 -version suoraan kirjoittamalla tämän komennon Raspberry Pi -tietokoneeseen (olettaen, että se on WiFi: ssä):

pi@koulukello: ~ $ wget

Nimesin tämän tiedoston uudelleen:

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

Testasin sitten, että voisin soittaa kelloa tällä komennolla (näytetään lähtö):

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

Tehokas MPEG 1.0/2.0/2.5 -äänisoitin tasolle 1, 2 ja 3. Versio 0.3.2-1 (2012/03/25). Kirjoittanut ja tekijänoikeudet kirjoittanut Joe Drew, nyt Nanakos Chrysostomos ja muut. Käyttää eri ihmisten koodia. Katso lisätietoja kohdasta README! TÄMÄ OHJELMISTO TAKUU EI EI TAKUUTA! KÄYTÄ OMALLA VASTUULLASI! Toistetaan MPEG-suoratoistoa bing-bong-chime-hq.mp3… MPEG 1.0 -kerroksesta III, 128 kbit/s, 44100 Hz mono [0:02] Bing-bong-chime-hq.mp3: n dekoodaus valmis.

Onnittelut! Sinulla on ääni.

Käyttämällä kannettavan tietokoneen äänieditointikoodia "audacity", jaoin tiedoston "bingiksi" ja "bongiksi" hauskanpidon vuoksi. Voit käyttää mitä tahansa mp3- tai ehkä muussa muodossa (en ole testannut muita) äänitiedostoja.

Vaihe 4: Asenna koodi ja aseta aikataulusi

Asenna koodi ja aseta aikataulusi
Asenna koodi ja aseta aikataulusi

Koodi on python -skripti, joka saa nykyisen päivämäärän/kellonajan ja jos päivämäärä on arkipäivä eikä loma, se tarkistaa, vastaako aika kelloaikaa, ja soi, jos pitäisi.

Ensin saat sen toimimaan, sitten automatisoit sen toimimaan joka minuutti.

Lataa koodi Githubista:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Minusta on helppo tehdä tämä tallentamalla tiedosto paikalliselle tietokoneelle ja käyttämällä sitten suojattua kopiota (scp) sen asettamiseksi Raspberry pi -laitteeseen.

Kopioi koodi paikallisella koneellasi selaimeltasi, liitä sitten tekstitiedostoon ja tallenna se tiedostonimellä "schoolbell.py". Sitten scp tiedosto:

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

Sinua pyydetään antamaan käyttäjän pi salasana osoitteessa schoolbell.local - kirjoita salasana, ja tiedosto kopioidaan suojatusti. Tämä komento on suoritettava samassa hakemistossa, johon python -komentosarja on tallennettu, ja kopioi sen pi -käyttäjän kotihakemistoon. Voit siirtyä osoitteeseen schoolbell.local ja koodin pitäisi olla siellä:

local-machine: ~ $ ssh [email protected]

Lista sitten tiedostot schoolbell.local -sivustossa (saatat nähdä lisää tiedostoja):

pi@koulukello: ~ $ ls

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

Muokkaa nyt koodia saadaksesi kelloaikataulusi käyttämällä editoria, kuten pico:

pi@koulukello: ~ $ pico schoolbell.py

Koodissa on kolme "sanakirjaa", jotka määrittelevät soitettavat soittoäänet, niiden toistoajat ja vältettävät vapaapäivät. Kellot ohitetaan automaattisesti viikonloppuisin.

Esimerkiksi Belltones -sanakirja on:

soittokellot = {

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

Tämä määrittelee kolme tyyppistä kelloa, varoituskellon, luokan alun ja lopun. Koska meillä on vain yksi soittoääni, ne osoittavat samaan tiedostoon, mutta jos teet erilaisia ääniä, voit muuttaa niitä. Voit jopa lisätä muunlaisia kelloja. Pelasin myös puhesyntetisaattorin avulla puhumaan kelloja, mutta muut eivät pitäneet sitä suotuisasti.

Bellschedule -sanakirja on samanlainen, mutta "avain" on nyt kellon aika. sinun on käytettävä muotoa HH: MM, jossa on nolla ja 24 tunnin aika (armeijan aika).

kellotaulu = {

'09: 00 ':' start ', #' Bus 'kello valmistautuu '09: 28': 'varoita',….. '13: 58 ':' varoita ', # jaksolle 4 '14: 00 ':' start ', '15: 00': 'end'}

Tämän avaimen: arvo -parin arvo on käytettävä soittoäänityyppi, ja sen on vastattava jotakin edellä määritellyistä soittoäänistä.

Lopuksi loma -sanakirja luettelee lomapäivät. Muoto on VVVV-kk-pp, nolla edessä, kuten kuvassa.

vapaapäivät = {

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

Kun olet lopettanut muokkaamisen, tallenna tiedosto poistumalla editorista ja kirjoittamalla ctrl-X, jos käytät picoa.

Tee python -koodista suoritettava:

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

Tämän avulla kaikki käyttäjät voivat suorittaa koodin, "a" kaikille, "+" lisätä käyttöoikeuden ja "x" suorittaa.

Testaa nyt koodi ja tarkkaile lähtöä. Huomaa, että voit suorittaa tiedoston kirjoittamalla tiedostonimen, mutta sinun on määritettävä, että se on nykyisessä hakemistossa kirjoittamalla "./" ennen tiedostonimeä:

pi@koulukello: ~ $./schoolbell.py

On koulupäivä, tarkistusaika 21:35

Koodi kertoo, onko kyse koulupäivästä (esim. Ei lomasta tai viikonlopusta), ja näyttää, vastaako aika kelloaikaa. Tässä tapauksessa se ei ollut kelloaika, joten se poistui puhtaasti. Jos se sattuisi olemaan kellon aika, se olisi soinut.

Voit testata, että koodisi voi soittaa kelloja, käyttämällä toistettavan tiedoston komentorivivaihtoehtoa. Käytämme bing-bong-tiedostoamme:

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

On koulupäivä, tarkistusaika 21:38 Korkean suorituskyvyn MPEG 1.0/2.0/2.5 -äänisoitin tasolle 1, 2 ja 3. Versio 0.3.2-1 (2012/03/25). Kirjoittanut ja tekijänoikeudet kirjoittanut Joe Drew, nyt Nanakos Chrysostomos ja muut. …. enemmän lähtöä….

Sinun olisi pitänyt kuulla kello.

Testaa nyt koodi käyttämällä argumenttia aika. Muista syöttää aika nollien alussa. Esimerkiksi testatakseni koulubussikelloni kello 9.00 kirjoitan:

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

Tämän pitäisi saada kellosi soimaan! Voit myös testata, ettei se soi kelloaikojen ulkopuolella.

Vaihe 5: Automatisoi juoksu Crondilla

Automatisoi juoksu Crondin kanssa
Automatisoi juoksu Crondin kanssa

Cron 'daemon' on ajoitus, joka suorittaa toistuvia tehtäviä linux -järjestelmässä. Se tarkistaa, vastaako päivämäärä/aika cron -taulukon mallia (crontab), ja suorittaa sitten koodin, jos se vastaa. Voit muokata sitä komennolla "crontab -e":

pi@koulukello: ~ $ crontab -e

Tämä avaa tiedostoeditorin ja lisää tämän tiedoston alareunaan seuraavan rivin:

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

Tämä komento kehottaa cronia suorittamaan python3 suorittamalla komentosarjasi normaalissa kotihakemistossa (/home/pi). Viisi *sanoo, että tämän pitäisi tapahtua joka minuutti (ensimmäinen *), joka tunti (seuraava *…), joka kuukauden päivä, joka kuukausi ja joka viikonpäivä.

Nyt schoolbell.py -komentosarja suoritetaan joka minuutti. Useimpien minuuttien aikana koodi toimii ja huomaa, että sen pitäisi vain lopettaa ilman äänimerkkiä, mutta jos se osoittautuu soittamaan kelloaikaa, se soi.

Huomaa, että koska cron toimii vain joka minuutti, et voisi tehdä kelloja rakeisemmiksi kuin minuutti. Mielestäni on teoriassa mahdollista, että jos järjestelmäsi jumittuu, cron ei välttämättä toimi muutaman sekunnin ajan minuutin jälkeen, jolloin kello myöhästyy. Jos jotenkin cron ei toiminut koko minuutin ajan, kello jäi väliin.

Vinkki: Voit pidentää lomaa (esim. Kesää) lisäämällä hashtagin (#) tämän rivin ensimmäiseen merkkiin, mikä muuttaa sen kommentiksi ja jättää siten huomiotta sen. Kun koulu on palannut istuntoon, poista # -merkki ja se alkaa toimia uudelleen.

Vaihe 6: Muokkaa ja nauti

Nyt sinulla pitäisi olla toimiva kotikoulukellojärjestelmä, eikä oppilaasi saa koskaan myöhästyä luokasta.

Voit muokata tätä projektia muuttamalla soittoääniä.

  • Voit saada sen soittamaan Big Benille neljännes tunnin välein ja kellot soimaan.
  • Voit maistella suosikki räppärisi freestyleä.
  • Voit kirjoittaa alitajuisia viestejä keskittyäksesi opiskeluun.

Pysy turvassa tänä COVID -aikana.

Kuva
Kuva
Kuva
Kuva

Toinen sija "Tätä ei voi koskea" -perhekilpailussa

Suositeltava: