Taula de continguts:

Campana escolar per a estudiants a distància: 6 passos
Campana escolar per a estudiants a distància: 6 passos

Vídeo: Campana escolar per a estudiants a distància: 6 passos

Vídeo: Campana escolar per a estudiants a distància: 6 passos
Vídeo: АСМР 🏆🔥[Гарри Поттер и Кубок огня] [Глава 20-29] Чтение шепотом 📚 ASMR whisper [Harry Potter] 2024, Juliol
Anonim
Campana escolar per a estudiants a distància
Campana escolar per a estudiants a distància

Amb la pandèmia COVID-19, moltes escoles infantils han anat a parir a distància. Aquesta campana de l’escola domèstica és una manera divertida de mantenir-se en horari mitjançant un Raspberry Pi i un altaveu USB. Pots fer-ho amb el teu fill i ells poden aprendre sobre programació i poden "tocar el timbre". Ho he construït per a la meva filla que va al 7è grau (actualment mitjançant lliurament a distància), i està funcionant bé per mantenir-nos a temps.

Subministraments

Per a aquest projecte, necessitareu:

  • Un ordinador Raspberry Pi: funciona millor si teniu WiFi, he utilitzat un RPi 3B d’un kit Kano
  • Un altaveu: he utilitzat un altaveu USB

El codi es podria executar fàcilment a l'ordinador Linux del vostre estudiant o fins i tot a un microcontrolador que executi micropitó, sempre que el microcontrolador tingui algun mecanisme per obtenir la data / hora actual. També es podria utilitzar qualsevol altaveu amplificat, o fins i tot un relé / campana analògica més freda.

Pas 1: configureu el vostre Raspberry Pi

Configureu el vostre Raspberry Pi
Configureu el vostre Raspberry Pi

Hi ha un gran nombre de recursos per configurar un equip Raspberry Pi, de manera que us remeto a un que troba Google. L’important és que l’ordinador tingui una manera d’obtenir la data i l’hora correctes. La majoria d’ordinadors moderns Raspberry Pi habilitats per WiFi utilitzen el protocol NTP per configurar l’hora des d’Internet, que és la forma en què he aconseguit l’hora correcta. He configurat el meu RPi perquè sigui "sense cap", és a dir, que no tingui teclat ni monitor, però que sigui accessible mitjançant un shell segur (SSH) a través d'Internet. Si esteu bé amb RPi, podeu fer aquesta configuració sense un teclat / vídeo / ratolí, però és més fàcil configurar el pi amb aquests accessoris.

Tingueu en compte que no necessitava utilitzar la interfície gràfica, de manera que acabo de descarregar el "Raspberry Pi OS (32-bit) Lite", que és més petit i més ràpid de baixar i arrenca més ràpidament.

Configureu les opcions de xarxa i interfície del Raspberry Pi

$ sudo raspi-config

A la configuració, feu el següent:

  • Canvieu la contrasenya: feu-ho primer, amb sort, abans d’entrar en línia.
  • A "Opcions de xarxa",

    • Canvieu el nom de l'amfitrió. He utilitzat el nom de l'amfitrió: "schoolbell".
    • Connecteu-vos a la vostra xarxa sense fils (si no ho heu fet a la configuració)
  • A "Opcions d'interfície", activeu l'accés SSH
  • Sempre és bo executar l'opció "Actualitzar"

Un cop fet això i reiniciat, hauríeu de poder connectar-vos al Raspberry Pi des d’un altre equip de la mateixa xarxa local mitjançant un client SSH. Connecteu-vos-hi mitjançant les següents credencials:

nom d’amfitrió: schoolbell.local

usuari: contrasenya pi: whateveryousetitas

Des d’un quadre Linux, això és tan senzill com escriure aquesta línia d’ordres a l’indicador $:

$ ssh [email protected]

… introduïu la contrasenya a la sol·licitud

Això us iniciarà la sessió i podreu comprovar que l’hora al Raspberry Pi sigui correcta. A la línia d’ordres, escriviu l’ordre date i comproveu la resposta:

pi @ schoolbell: ~ $ data

Dij. 3 de setembre 20:44:34 AKDT 2020

Esperem que sigui l’hora actual. Si no és correcte, busqueu com configurar NTP al Raspberry Pi.

Pas 2: Feu que el vostre sistema de so funcioni

Feu funcionar el vostre sistema de so
Feu funcionar el vostre sistema de so

Reproduirem fitxers MP3 per a les campanes, de manera que hem de descarregar programari per descodificar aquests fitxers d’àudio. Vaig obtenir el paquet mpg321 escrivint aquesta ordre:

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

Seguiu les instruccions per instal·lar aquest programari.

Vaig utilitzar un altaveu USB antic, que tenia un controlador estrany i no es configurava completament automàticament com a targeta de so per defecte, de manera que vaig poder "piratejar" l'altaveu perquè funcionés mitjançant la seva adreça de maquinari. Després d'endollar l'altaveu, vaig utilitzar l'ordre 'aplay -l' per llistar els dispositius d'àudio:

pi @ schoolbell: ~ $ aplay -l

**** Llista de dispositius de maquinari PLAYBACK **** targeta 0: Auriculars [bcm2835 Auriculars], dispositiu 0: bcm2835 Auriculars [bcm2835 Auriculars] 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

El dispositiu que vull és el inferior, la targeta 1, el dispositiu 0.

He provat l'altaveu amb "speaker-test", amb el dispositiu "hw: 1, 0", que significa targeta de maquinari 1, dispositiu 0

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

Aquest programa emet sorolls dels altaveus. Gaudeix del soroll i escriu control-C quan et molesti. Si no sentiu cap soroll, proveu Google.

Ara ja tens so!

Pas 3: proveu la reproducció de sons de campana i / o creeu nous sons

Prova la reproducció de sons de campana i / o crea sons nous
Prova la reproducció de sons de campana i / o crea sons nous

Per al meu timbre, he descarregat el so "bing-bong" de "freesound.org". Gràcies a Benboncan per fer disponible aquest so:

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

Podeu reproduir el so directament. Podria descarregar directament una versió mp3 d’aquest fitxer escrivint aquesta ordre a l’ordinador Raspberry Pi (suposant que estigui a WiFi):

pi @ schoolbell: ~ $ wget

Llavors vaig canviar el nom d’aquest fitxer:

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

Llavors vaig provar que podia tocar la campana amb aquesta ordre (mostrant la sortida):

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

Reproductor d’àudio MPEG 1.0 / 2.0 / 2.5 d’alt rendiment per a les capes 1, 2 i 3. Versió 0.3.2-1 (2012/03/25). Escrit i copyrights de Joe Drew, ara mantingut per Nanakos Chrysostomos i altres. Utilitza el codi de diverses persones. Consulteu "LLEGIR-ME" per obtenir més informació. AQUEST PROGRAMARI SOMNI ABSOLUTAMENT SENSE GARANTIA. USEU AL VOSTRE RISC. Reproducció de flux MPEG des de bing-bong-chime-hq.mp3 … MPEG 1.0 capa III, 128 kbit / s, 44100 Hz mono [0:02] Acabada la descodificació de bing-bong-chime-hq.mp3.

Felicitats! Tens àudio.

Amb el codi d’edició de so “audacity” del meu ordinador portàtil, vaig dividir el fitxer en “bing” i “bong” per divertir-me. Podeu utilitzar qualsevol fitxer de so de mp3 o potser d’un altre format (no n’he provat d’altres).

Pas 4: instal·leu el codi i configureu la vostra programació

Instal·leu el codi i configureu la vostra programació
Instal·leu el codi i configureu la vostra programació

El codi és un script Python que obté la data / hora actual i, si la data és un dia feiner i no festiu, comprova si l’hora coincideix amb l’hora de la campana, indicant si cal.

Primer aconseguirà que funcioni, després l’automatitzarà perquè s’executi cada minut.

Descarregueu el codi de Github:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Ho faig fàcil desant el fitxer en un ordinador local i després fent servir còpia segura (scp) per posar-lo al Raspberry pi.

A la màquina local, copieu el codi del navegador i, a continuació, enganxeu-lo en un fitxer de text i deseu-lo amb el nom de fitxer "schoolbell.py". A continuació, fes clic al fitxer:

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

Se us demanarà que introduïu la contrasenya de l'usuari pi a schoolbell.local: introduïu la contrasenya i es copiarà el fitxer de manera segura. Aquesta ordre s'hauria d'executar al mateix directori on es va desar l'script python i el copia al directori inicial de l'usuari pi. Podeu dirigir-vos a schoolbell.local i el codi hauria d’estar allà:

local-machine: ~ $ ssh [email protected]

A continuació, a schoolbell.local, enumereu els fitxers (és possible que vegeu més fitxers):

pi @ schoolbell: ~ $ ls

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

Ara editeu el codi per fer que tingui la vostra programació de campanes mitjançant un editor com ara pico:

pi @ schoolbell: ~ $ pico schoolbell.py

El codi té tres "diccionaris" que defineixen els tons de campana per tocar, els horaris per tocar-los i les vacances a evitar; les campanes els caps de setmana s'ometen automàticament.

Per exemple, el diccionari de botons és:

botons = {

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

Això defineix tres tipus de campanes, una campana d’avís, un inici de classe i un final. Com que només tenim un to de campana, tots apunten al mateix fitxer, però si feu tons diferents, els podeu canviar. Fins i tot podeu afegir altres tipus de tons de campana. També vaig jugar amb l’ús d’un sintetitzador de veu per dir les campanes, però la gent no la veia favorablement.

El diccionari de programació de campanes és similar, però la "clau" és ara el moment de la campana. cal utilitzar el format HH: MM amb zeros inicials i temps de 24 hores (hora militar).

horari de campana = {

'09: 00 ':' start ', # Campana' Bus 'que es prepara '09: 28': 'avisa', ….. '13: 58 ':' avisa ', # per al període 4 '14: 00 ':' start ', '15: 00': 'end'}

El valor d'aquesta parella de claus: valor és el tipus de to de campana que cal utilitzar i que ha de coincidir amb un dels tons definits anteriorment.

Finalment, el diccionari de vacances enumera les dates de vacances. El format és AAAA-mm-dd, amb zeros inicials com es mostra.

vacances = {

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

Un cop hàgiu acabat d'editar, deseu el fitxer per sortir de l'editor, escrivint ctrl-X si utilitzeu pico.

Feu que el codi python sigui executable mitjançant:

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

Això permet a tots els usuaris executar el codi, "a" per a tots, "+" per afegir permís i "x" per executar.

Ara proveu d'executar el codi i observeu la sortida. Tingueu en compte que podeu executar el fitxer escrivint el nom del fitxer, però cal especificar que es troba al directori actual escrivint un "./" abans del nom del fitxer:

pi @ schoolbell: ~ $./schoolbell.py

És un dia escolar, comprovant l’hora 21:35

El codi us indicarà si és un dia escolar (per exemple, no és un dia festiu ni un cap de setmana) i veurà si l’hora coincideix amb el de la campana. En aquest cas, no era una hora de campana, de manera que només sortia netament. Si hagués passat una hora de campana, hauria sonat.

Per provar que el vostre codi pugui tocar campanes, utilitzeu l'opció de línia d'ordres d'un fitxer per reproduir-la. Utilitzarem el nostre fitxer bing-bong:

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

És un dia escolar, comprovant el temps 21:38 Reproductor d'àudio MPEG 1.0 / 2.0 / 2.5 d'alt rendiment per a les capes 1, 2 i 3. Versió 0.3.2-1 (2012/03/25). Escrit i copyrights de Joe Drew, ara mantingut per Nanakos Chrysostomos i altres. …. més sortida….

Hauríeu d’haver sentit la campana.

Ara proveu el codi fent servir una hora com a argument. Recordeu introduir l’hora amb zeros inicials. Per exemple, per provar la campana del meu "autobús escolar" a les 9:00, escric:

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

Això hauria de fer sonar la campana. També podeu provar que no soni en horaris fora de campana.

Pas 5: automatitzeu el funcionament amb Crond

Automatitzeu el funcionament amb Crond
Automatitzeu el funcionament amb Crond

El "dimoni" cron és un planificador que executa tasques repetitives en un sistema Linux. Comprova si la data / hora coincideix amb un patró de la taula cron (crontab) i, a continuació, executa el codi. Podeu editar-lo amb l'ordre "crontab -e":

pi @ schoolbell: ~ $ crontab -e

Això obrirà un editor de fitxers i, a la part inferior d’aquest fitxer, afegirà la línia següent:

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

Aquesta ordre indica a cron que executi python3 executant el vostre script al directori inicial normal (/ home / pi). Els cinc * diuen que hauria de funcionar cada minut (primer *), cada hora (següent * …), tots els dies del mes, cada mes i tots els dies de la setmana.

Ara, cada minut s'executarà l'script schoolbell.py. Durant la majoria de minuts, el codi s’executarà i trobarà que hauria d’abandonar sense sonar, però si resulta que toca el timbre, sonarà.

Tingueu en compte que, com que cron només s’executa cada minut, no podreu fer les campanes més granulars que al minut. Crec que és teòricament possible que, si el vostre sistema s’enfonsa, cron no funcioni durant uns segons després de la part superior del minut, fent que la campana arribi tard. Si d'alguna manera cron no funcionés durant tot el minut, es perdria la campana.

Consell: per a vacances prolongades (per exemple, estiu), podeu afegir un hashtag (#) al primer caràcter d'aquesta línia, que el converteix en un comentari i, per tant, ignora l'execució. Quan l'escola torni a estar en sessió, només cal que traieu el # i començarà a funcionar de nou.

Pas 6: personalitzeu-lo i gaudiu-ne

Ara, hauríeu de tenir un sistema de campanes escolars a casa i el vostre alumne no hauria d’arribar mai a classe.

Podeu personalitzar aquest projecte canviant els tons de la campana.

  • Es podria fer sonar al Big Ben, amb campanades cada quart d’hora i sonant les hores.
  • Podeu tastar l’estil lliure del vostre raper favorit.
  • Podríeu fer missatges subliminals per centrar-vos en l’estudi.

Mantingueu-vos segurs en aquest moment de COVID.

Imatge
Imatge
Imatge
Imatge

Accèssit al concurs familiar "No puc tocar això"

Recomanat: