Índice:
- Suprimentos
- Etapa 1: Configurar seu Raspberry Pi
- Etapa 2: coloque seu sistema de som para funcionar
- Etapa 3: teste a reprodução de sons de campainha e / ou faça novos sons
- Etapa 4: instale o código e defina sua programação
- Etapa 5: Automatize a execução com Crond
- Etapa 6: personalizar e aproveitar
Vídeo: Sino da escola para alunos à distância: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Com a pandemia COVID-19, muitas escolas infantis passaram a fazer entregas à distância. Este sino da escola em casa é uma maneira divertida de cumprir a programação que usa um Raspberry Pi e um alto-falante USB. Você pode fazer isso com seus filhos e eles podem aprender sobre programação e podem "tocar a campainha". Eu construí isso para minha filha que está indo para a 7ª série (atualmente por meio de entrega à distância), e está funcionando bem para nos manter no tempo.
Suprimentos
Para este projeto, você precisará de:
- Um computador Raspberry Pi - Funciona melhor se você tiver WiFi, usei um RPi 3B de um kit Kano
- Um alto-falante - usei um alto-falante USB
O código pode ser executado facilmente no computador Linux de seu aluno ou até mesmo em um microcontrolador executando micropython, desde que o microcontrolador tenha algum mecanismo para obter a data / hora atual. Além disso, qualquer alto-falante amplificado, ou até mesmo um relé / campainha analógica, pode ser usado.
Etapa 1: Configurar seu Raspberry Pi
Há um grande número de recursos para configurar um computador Raspberry Pi, portanto, indico um que o Google encontrou. O importante é que seu computador tenha uma maneira de obter a data e a hora corretas. A maioria dos computadores Raspberry Pi com Wi-Fi moderno usa o protocolo NTP para definir a hora da Internet, que é a maneira como obtive a hora correta. Eu configurei meu RPi para ser "sem cabeça", o que significa que ele não tem teclado ou monitor, mas pode ser acessado por Secure Shell (SSH) pela Internet. Se você é bom com RPi, pode fazer essa configuração sem um teclado / vídeo / mouse, mas é mais fácil apenas configurar o pi com esses acessórios.
Observe que não precisei usar a interface gráfica, então acabei de baixar o "Raspberry Pi OS (32-bit) Lite", que é menor e mais rápido de baixar e inicializa mais rápido.
Configure a rede do Raspberry Pi e as opções de interface
$ sudo raspi-config
Na configuração, faça o seguinte:
- Altere a senha - faça isso primeiro, de preferência antes de ficar online!
-
Em "Opções de rede",
- Altere o nome do host. Eu usei o nome do host: "schoolbell".
- Conecte-se à sua LAN sem fio (se você não tiver feito isso na configuração)
- Em "Opções de interface", ative o acesso SSH
- É sempre bom executar a opção "Atualizar"
Depois de fazer isso e reiniciar, você poderá se conectar ao Raspberry Pi de outro computador na mesma rede local usando um cliente SSH. Conecte-se a ele usando as seguintes credenciais:
hostname: schoolbell.local
usuário: senha pi: qualquer que seja a sua senha
Em uma máquina Linux, isso é tão simples quanto digitar esta linha de comando no prompt $:
$ ssh [email protected]
… Digite a senha no prompt
Isso fará o seu login e você poderá verificar se a hora no Raspberry Pi está correta. Na linha de comando, digite o comando date e verifique a resposta:
pi @ schoolbell: ~ $ date
Qui, 3 de setembro 20:44:34 AKDT 2020
Esperançosamente, esta é a hora atual. Se não estiver correto, pesquise no Google sobre a configuração de NTP no Raspberry Pi.
Etapa 2: coloque seu sistema de som para funcionar
Vamos tocar arquivos MP3 para os sinos, então precisamos baixar um software para decodificar esses arquivos de áudio. Peguei o pacote mpg321 digitando este comando:
pi @ schoolbell: ~ $ sudo apt-get install mpg321
Siga as instruções para instalar este software.
Usei um alto-falante USB antigo, que tinha um driver estranho e não foi totalmente configurado automaticamente como a placa de som padrão, então descobri que poderia "hackear" o alto-falante para funcionar usando seu endereço de hardware. Depois de conectar o alto-falante, usei o comando 'aplay -l' para listar os dispositivos de áudio:
pi @ schoolbell: ~ $ aplay -l
**** Lista de PLAYBACK Hardware Devices **** card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones] Subdispositivos: 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], dispositivo 0: Áudio USB [Áudio USB] Subdispositivos: Subdispositivo nº 0: subdispositivo nº 0
O dispositivo que desejo é o inferior, cartão 1, dispositivo 0.
Testei o alto-falante com "teste de alto-falante", usando o dispositivo "hw: 1, 0", significando placa de hardware 1, dispositivo 0
pi @ schoolbell: ~ $ speaker-test -D hw: 1, 0
Este programa emite ruído dos alto-falantes. Aproveite o ruído e digite control-C quando ficar irritado. Se você não ouvir nenhum ruído, tente o Google.
Agora você tem som!
Etapa 3: teste a reprodução de sons de campainha e / ou faça novos sons
Para o meu sino, baixei o som "bing-bong" do "freesound.org". Agradecimentos à Benboncan por disponibilizar este som:
freesound.org/people/Benboncan/sounds/93646/
Você pode tocar o som diretamente. Eu poderia baixar diretamente uma versão mp3 deste arquivo digitando este comando no computador Raspberry Pi (supondo que esteja em WiFi):
pi @ schoolbell: ~ $ wget
Em seguida, renomeei este arquivo:
pi @ schoolbell: ~ $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3
Em seguida, testei se poderia tocar a campainha com este comando (mostrando a saída):
pi @ schoolbell: ~ $ mpg321 -a hw: 1, 0 bing-bong-chime-hq.mp3
Reprodutor de áudio MPEG 1.0 / 2.0 / 2.5 de alto desempenho para as camadas 1, 2 e 3. Versão 0.3.2-1 (2012-03-25). Escrito e copyrights por Joe Drew, agora mantido por Nanakos Chrysostomos e outros. Usa código de várias pessoas. Veja 'README' para mais! ESTE SOFTWARE NÃO VEM ABSOLUTAMENTE NENHUMA GARANTIA! USE POR SUA CONTA E RISCO! Reproduzindo fluxo MPEG de bing-bong-chime-hq.mp3… MPEG 1.0 camada III, 128 kbit / s, 44100 Hz mono [0:02] Decodificação de bing-bong-chime-hq.mp3 concluída.
Parabéns! Você tem áudio.
Usando o código de edição de som "audacity" no meu laptop, divido o arquivo em "bing" e "bong" para mais diversão. Você pode usar qualquer arquivo de som mp3 ou talvez outro formato (não testei outros).
Etapa 4: instale o código e defina sua programação
O código é um script python que obtém a data / hora atual e, se a data for um dia da semana e não um feriado, ele verifica se a hora corresponde à hora do sino, soando se for o caso.
Primeiro, você fará com que ele funcione e, em seguida, irá automatizá-lo para ser executado a cada minuto.
Baixe o código do Github:
gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618
Acho fácil fazer isso salvando o arquivo em um computador local e usando uma cópia segura (scp) para colocá-lo no Raspberry pi.
Em sua máquina local, copie o código do navegador, cole em um arquivo de texto e salve-o com o nome de arquivo "schoolbell.py". Em seguida, copie o arquivo:
máquina local: ~ $ scp schoolbell.py [email protected]: ~ /
Será solicitado que você insira a senha do usuário pi em schoolbell.local - insira a senha e o arquivo será copiado com segurança. Este comando deve ser executado no mesmo diretório em que o script python foi salvo e copiá-lo para o diretório inicial do usuário pi. Você pode ssh para schoolbell.local e o código deve estar lá:
máquina-local: ~ $ ssh [email protected]
Então, em schoolbell.local, liste os arquivos (você pode ver mais arquivos):
pi @ schoolbell: ~ $ ls
bing-bong-chime-hq.mp3 schoolbell.py
Agora edite o código para que ele tenha sua programação de sino usando um editor como o pico:
pi @ schoolbell: ~ $ pico schoolbell.py
O código tem três "dicionários" que definem os tons de sino a tocar, os horários para tocá-los e os feriados a serem evitados. Os sinos nos finais de semana são automaticamente ignorados.
Por exemplo, o dicionário belltones é:
belltones = {
'warn': 'bing-bong-chime-hq.mp3', 'start': 'bing-bong-chime-hq.mp3', 'end': 'bing-bong-chime-hq.mp3'}
Isso define três tipos de sinos, um sino de advertência, um início de aula e um fim. Como temos apenas um tom de campainha, todos apontam para o mesmo arquivo, mas se você fizer tons diferentes, poderá alterá-los. Você pode até adicionar outros tipos de tons de sinos. Também brinquei com o uso de um sintetizador de voz para falar os sinos, mas isso não foi visto com bons olhos pelos outros na casa.
O dicionário da programação do sino é semelhante, mas a "chave" agora é a hora do sino. você precisa usar o formato HH: MM com zeros à esquerda e horário de 24 horas (horário militar).
bellschedule = {
'09: 00 ':' start ', # Campainha do' ônibus 'se preparando '09: 28': 'warn',….. '13: 58 ':' warn ', # para o período 4 '14: 00 ':' início ', '15: 00': 'fim'}
O valor neste par chave: valor é o tipo de tom de campainha a ser usado e precisa corresponder a um dos tons de campainha definidos acima.
Por último, o dicionário de feriados lista as datas dos feriados. O formato é AAAA-mm-dd, com zeros à esquerda, conforme mostrado.
feriados = {
'2020-09-07', …. '2021-03-11', '2021-03-12' }
Quando terminar de editar, salve o arquivo saindo do editor e digitando ctrl-X se estiver usando pico.
Torne o código Python executável por:
pi @ schoolbell: ~ $ chmod a + x schoolbell.py
Isso permite que todos os usuários executem o código, "a" para todos, "+" para adicionar permissão e "x" para executar.
Agora teste a execução do código e observe a saída. Observe que você pode executar o arquivo digitando o nome do arquivo, mas precisa especificar que ele está no diretório atual digitando um "./" antes do nome do arquivo:
pi @ schoolbell: ~ $./schoolbell.py
É um dia de escola, verificando o horário 21:35
O código dirá se é um dia de escola (por exemplo, não é feriado ou fim de semana) e verifica se a hora corresponde à hora do sino. Neste caso, não era a hora do sino, então apenas saiu limpo. Se fosse a hora do sino, teria tocado.
Para testar se seu código pode tocar sinos, use a opção de linha de comando de um arquivo a ser reproduzido. Usaremos nosso arquivo bing-bong:
pi @ schoolbell: ~ / schoolbell $./schoolbell.py bing-bong-chime-hq.mp3
É um dia de escola, verificando o tempo 21:38 Reprodutor de áudio MPEG 1.0 / 2.0 / 2.5 de alto desempenho para as camadas 1, 2 e 3. Versão 0.3.2-1 (2012/03/25). Escrito e copyrights por Joe Drew, agora mantido por Nanakos Chrysostomos e outros. … mais saída….
Você deveria ter ouvido a campainha.
Agora teste o código usando um tempo como argumento. Lembre-se de inserir a hora com zeros à esquerda. Por exemplo, para testar o sino do meu "ônibus escolar" às 9h, eu digito:
pi @ schoolbell: ~ $./schoolbell.py 09:00
Isso deve fazer com que sua campainha toque! Você também pode testar se ele não toca em horários diferentes do sino.
Etapa 5: Automatize a execução com Crond
O cron 'daemon' é um planejador que executa tarefas repetitivas em um sistema Linux. Ele verifica se a data / hora corresponde a um padrão na tabela cron (crontab) e, em seguida, executa o código se corresponder. Você pode editá-lo usando o comando "crontab -e":
pi @ schoolbell: ~ $ crontab -e
Isso abrirá um editor de arquivo e, na parte inferior desse arquivo, você adicionará a seguinte linha:
* * * * * python3 /home/pi/schoolbell.py
Este comando diz ao cron para executar o python3 executando seu script no diretório inicial normal (/ home / pi). Os cinco * dizem que deve ser executado a cada minuto (primeiro *), a cada hora (próximo * …), todos os dias do mês, todos os meses e todos os dias da semana.
Agora, a cada minuto, o script schoolbell.py será executado. Durante a maioria dos minutos, o código será executado e descobrirá que deveria apenas encerrar sem fazer barulho, mas se acontecer de bater a hora do sino, ele tocará.
Observe que, como o cron só roda a cada minuto, você não pode tornar os sinos mais granulares do que ao minuto. Eu acho que é teoricamente possível que se o seu sistema ficar preso, o cron pode não ser executado por alguns segundos após o início do minuto, tornando o sino atrasado. Se de alguma forma o cron não funcionasse por um minuto inteiro, o sino faria falta.
Dica: para feriados prolongados (por exemplo, verão), você pode adicionar uma hashtag (#) ao primeiro caractere desta linha, o que o transforma em um comentário e, portanto, ignora sua execução. Quando as aulas estiverem de volta, apenas remova o # e ele começará a funcionar novamente.
Etapa 6: personalizar e aproveitar
Agora, você deve ter um sistema de sinos da escola em casa funcionando e seu aluno nunca deve se atrasar para a aula.
Você pode personalizar este projeto alterando os tons de sino.
- Você poderia fazer soar o Big Ben, com sinos de um quarto de hora e soando as horas.
- Você pode experimentar o estilo livre do seu rapper favorito.
- Você pode fazer mensagens subliminares para se concentrar no estudo.
Fique seguro nesta época de COVID.
Vice-campeão no Concurso da Família "Can't Touch This"
Recomendado:
Somos um grupo de alunos do tutorial 6 UQD10801 (Robocon1) da Universiti Tun Hussein Onn Malaysia (UTHM): Teclado 4x4 e LCD Arduino: 3 etapas
Somos um grupo de alunos do tutorial 6 UQD10801 (Robocon1) da Universiti Tun Hussein Onn Malaysia (UTHM): Teclado 4x4 e LCD Arduino: Os teclados são uma ótima maneira de permitir que os usuários interajam com seu projeto. Você pode usá-los para navegar em menus, inserir senhas e controlar jogos e robôs. Neste tutorial, mostrarei como configurar um teclado no Arduino. Primeiro vou explicar como o Ardu
Carro RC para a escola: 5 etapas
Carro RC para a escola: Materiais necessários: 1) 2 conectores T de tubo de PVC2) 1 pedaço de tubo de PVC de 3 polegadas3) 2 motores (certifique-se de que cabem dentro do tubo) 4) 4-5 pés de fio5) 4 rodas6) 2 pregos pequenos (serão usados como eixos para suas rodas) 7) 2 interruptores (os botões funcionarão
Introdução à robótica para alunos do ensino fundamental com controladores Hummingbird: 18 etapas
Introdução à robótica para alunos do ensino fundamental com controladores Hummingbird: A maioria das ferramentas de robótica no mercado atualmente exige que o usuário baixe um software específico em seu disco rígido. A beleza do Hummingbird Robotic Controller é que ele pode ser executado em um computador baseado na web, como um Chromebook. Também foi
Formatar registros da velha escola para MP3: 4 etapas
Formatar registros da velha escola para MP3: bem, recentemente eu estava limpando meu anexo e me deparei com os discos da velha escola do meu pai. Ele tinha muitos nomes que eu escuto como CCR, Beatles, Moody Blues e The Doors. Também tenho um amigo que quer gravá-los em um CD para ouvi-los
Trabalhando com vários computadores (para alunos): 6 etapas
Trabalhar com vários computadores (para alunos): trabalhar com vários computadores pode ser muito difícil. Você nunca sabe quais arquivos estão em qual computador, você pode ter problemas com várias versões do mesmo arquivo e, como resultado, você pode perder todos os seus arquivos ou pelo menos ter o seu