Índice:
- Etapa 1: Vídeo de interação
- Etapa 2: Declaração do Problema
- Etapa 3: Visão geral de como funciona
- Etapa 4: Lista de materiais e ferramentas
- Etapa 5: comece a construir com a placa de ensaio
- Etapa 6: Iniciando o Código
- Etapa 7: toques finais
Vídeo: Temporizador da sala de estudo: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Instruções sobre como criar um cronômetro para uma sala de estudo.
Etapa 1: Vídeo de interação
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Etapa 2: Declaração do Problema
Na maioria das vezes, as salas de estudo estão sempre ocupadas. Isso acontece porque as pessoas gostam de ficar na sala por muito mais tempo do que precisam. Projetamos um cronômetro que permite a cada pessoa um total de 2 horas e às pessoas em espera a possibilidade de solicitar a sala para ser o próximo grupo. O uso de RGB em Neopixels expressará o tempo restante.
Etapa 3: Visão geral de como funciona
O cronômetro é composto por peças cortadas pelo cortador a laser, 3 botões, 1 LED, 1 potenciômetro.
O Neopixels e o potenciômetro são conectados ao NodeMCU. O NodeMCU é programado para regonizar até que ponto o potenciômetro é girado para alterar a quantidade de LEDs que são acesos na faixa circular de Neopixel. O botão Solicitar interrompe a função das funções Iniciar, Parar e Definir hora. A cor dos LEDs do cronômetro dentro da sala é a mesma cor do LED aceso na lateral da caixa. O neopixel na lateral da caixa representa o display no saguão do prédio para saber qual sala está ocupada e quanto tempo resta. São prescritos 2 LEDs para cada divisão, um LED representa se a divisão está ocupada e o outro LED espelha a cor dos LEDs do temporizador (verde é mais tempo, depois amarelo e vermelho para menos tempo).
Etapa 4: Lista de materiais e ferramentas
- Acrílico claro
- Cabo MicroUSB
www.digikey.com/product-detail/en/stewart-…
-Breadboard
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potenciômetro
www.alliedelec.com/honeywell-380c32500/701…
-3 botões
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 tiras de neopixel
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Resistores
www.digikey.com/product-detail/en/te-conne…
- Fios
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Pistola de cola quente
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
- Tiras de velcro fixas
www.amazon.com/VELCRO-Brand-90076-Fastener…
Etapa 5: comece a construir com a placa de ensaio
A0 para pino do meio no potenciômetro
Vin para ligar o anel de Neopixel
3v3 para um lado do potenciômetro
Todos os fundamentos para aterrar no NodeMCU
D1 para solicitar o botão
D2 para solicitar LED
D3 para botão Iniciar
Botão D4 para parar
D5 para resistor para entrada de Neopixel no anel
D6 para resistor para faixa de entrada de Neopixel
Etapa 6: Iniciando o Código
Este é o código para garantir que seu projeto esteja funcionando até agora. O cronômetro deve ser de apenas alguns segundos por LED no anel de Neopixel. Depois de saber que está funcionando até este ponto, tudo o que você precisa fazer é alterar as instruções de tempo if abaixo para o intervalo especificado. Colocarei '#Change time' em cada uma das declarações de tempo que você precisa alterar para sua alocação de tempo.
Experimentando o código:
import utime
tempo de importação
da máquina de importação ADC
máquina de importação
importar neopixel
adc = ADC (0)
pin = machine. Pin (14, machine. Pin. OUT)
np = neopixel. NeoPixel (pino, 12)
pin2 = machine. Pin (12, machine. Pin. OUT)
np2 = neopixel. NeoPixel (pin2, 8)
l1 = machine. Pin (4, machine. Pin. OUT)
b1 = machine. Pin (5, machine. Pin. IN, machine. Pin. PULL_UP)
b3 = machine. Pin (2, machine. Pin. IN, machine. Pin. PULL_UP)
b2 = máquina. Pin (0, máquina. Pin. IN, máquina. Pin. PULL_UP)
l1.valor (0)
def tglled (): # alternar a função de LED de 'solicitação'
se l1.value () == 0:
l1.valor (1)
outro:
l1.valor (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
enquanto verdadeiro:
# Este é o botão que alterna o LED de 'solicitação'
b1temp2 = b1.value ()
se b1temp1 e não b1temp2:
tglled ()
tempo.sono (0,05)
b1temp1 = b1temp2
# Esta é a grade
np2 [0] = np [11]
se l1.value () == 1:
np2 [1] = (30, 0, 0)
outro:
np2 [1] = (0, 0, 30)
np2.write ()
# Aqui é onde selecionamos quanto tempo precisamos
se t == 0:
para i no intervalo (-1, 12):
if (l1.value () == 0):
if (adc.read ()> = (85,34 * (i + 1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
outro:
np = (0, 0, 30)
np.write ()
outro:
np = (0, 0, 0)
np.write ()
# Este é o botão para iniciar o cronômetro
if (l1.value () == 0) e (t == 0):
b2temp2 = b2.value ()
se b2temp1 e não b2temp2:
x + = 1
t + = (s * 100)
tempo.sono (0,05)
b2temp1 = b2temp2
# Este botão encerra o cronômetro
if (l1.value () == 0):
b3temp2 = b3.value ()
se b3temp1 e não b3temp2:
x = 0
t = 0
tempo.sono (0,05)
b3temp1 = b3temp2
# Este é o cronômetro
se x> 0:
t + = 1
if (t> 0) e (t <= 100): # Alterar o tempo
np [0] = (5, 30, 0)
np [1] = (5, 30, 0)
np [2] = (5, 30, 0)
np [3] = (5, 30, 0)
np [4] = (5, 30, 0)
np [5] = (5, 30, 0)
np [6] = (5, 30, 0)
np [7] = (5, 30, 0)
np [8] = (5, 30, 0)
np [9] = (5, 30, 0)
np [10] = (5, 30, 0)
np [11] = (5, 30, 0)
np.write ()
if (t> 100) e (t <= 200): # Alterar o tempo
np [0] = (0, 0, 0)
np [1] = (10, 30, 0)
np [2] = (10, 30, 0)
np [3] = (10, 30, 0)
np [4] = (10, 30, 0)
np [5] = (10, 30, 0)
np [6] = (10, 30, 0)
np [7] = (10, 30, 0)
np [8] = (10, 30, 0)
np [9] = (10, 30, 0)
np [10] = (10, 30, 0)
np [11] = (10, 30, 0)
np.write ()
if (t> 200) e (t <= 300): #Mudar hora
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (15, 30, 0)
np [3] = (15, 30, 0)
np [4] = (15, 30, 0)
np [5] = (15, 30, 0)
np [6] = (15, 30, 0)
np [7] = (15, 30, 0)
np [8] = (15, 30, 0)
np [9] = (15, 30, 0)
np [10] = (15, 30, 0)
np [11] = (15, 30, 0)
np.write ()
if (t> 300) e (t <= 400): #Mudar tempo
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (20, 30, 0)
np [4] = (20, 30, 0)
np [5] = (20, 30, 0)
np [6] = (20, 30, 0)
np [7] = (20, 30, 0)
np [8] = (20, 30, 0)
np [9] = (20, 30, 0)
np [10] = (20, 30, 0)
np [11] = (20, 30, 0)
np.write ()
if (t> 400) e (t <= 500): #Mudar tempo
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (25, 30, 0)
np [5] = (25, 30, 0)
np [6] = (25, 30, 0)
np [7] = (25, 30, 0)
np [8] = (25, 30, 0)
np [9] = (25, 30, 0)
np [10] = (25, 30, 0)
np [11] = (25, 30, 0)
np.write ()
if (t> 500) e (t <= 600): # Alterar o tempo
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (30, 30, 0)
np [6] = (30, 30, 0)
np [7] = (30, 30, 0)
np [8] = (30, 30, 0)
np [9] = (30, 30, 0)
np [10] = (30, 30, 0)
np [11] = (30, 30, 0)
np.write ()
if (t> 600) e (t <= 700): # Alterar o tempo
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (30, 25, 0)
np [7] = (30, 25, 0)
np [8] = (30, 25, 0)
np [9] = (30, 25, 0)
np [10] = (30, 25, 0)
np [11] = (30, 25, 0)
np.write ()
if (t> 700) e (t <= 800): #Mudar hora
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (30, 20, 0)
np [8] = (30, 20, 0)
np [9] = (30, 20, 0)
np [10] = (30, 20, 0)
np [11] = (30, 20, 0)
np.write ()
if (t> 800) e (t <= 900): # Alterar o tempo
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (30, 15, 0)
np [9] = (30, 15, 0)
np [10] = (30, 15, 0)
np [11] = (30, 15, 0)
np.write ()
if (t> 900) e (t <= 1000): # Alterar o tempo
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (0, 0, 0)
np [9] = (30, 10, 0)
np [10] = (30, 10, 0)
np [11] = (30, 10, 0)
np.write ()
if (t> 1000) e (t <= 1100): #Mudar hora
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (0, 0, 0)
np [9] = (0, 0, 0)
np [10] = (30, 5, 0)
np [11] = (30, 5, 0)
np.write ()
if (t> 1100) e (t <= 1200): # Alterar hora
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (0, 0, 0)
np [9] = (0, 0, 0)
np [10] = (0, 0, 0)
np [11] = (30, 0, 0)
np.write ()
se t> = 1300: # Alterar hora
t = 0
x = 0
Etapa 7: toques finais
Agora, uma vez que você está tão longe, você deve ter o código de trabalho carregado para o NodeMCU e todas as partes conectadas à placa de ensaio. Depois de tentar o código e cortar todas as peças que você tem para o exterior, ou seja, revestimento de corte a laser, agora você pode soldar os fios ao NodeMCU. A solda é opcional, mas pode torná-la mais segura e menor para o seu gabinete. Aqui estão algumas das peças cortadas a laser que fizemos.
Recomendado:
Amigo de estudo: 10 etapas
Companheiro de estudo: Este manual explica como fazer um companheiro de estudo. A função deste companheiro de estudo é ajudar adolescentes com idades entre 14 e 18 anos a aprender como planejar e estudar. O objetivo é que o robô possa aprender com os alunos. A capa é pintada em um
Estudo de simulação: 9 etapas
Estudo de simulação: Neste instrutível, usei o fusion 360 do Autodesk. Este instrutível é para o estudo de simulação. Neste, usei o modelo e o espaço de trabalho de simulação do auto desk fusion 360. Estudei a simulação para forças longitudinais de magnitude 10 N
Estudo da orientação com Raspberry Pi e MXC6226XU usando Python: 6 etapas
Estudo da orientação com Raspberry Pi e MXC6226XU usando Python: Os ruídos são simplesmente uma parte do funcionamento de um veículo. O zumbido de um motor de veículo muito afinado é um som magnífico. As marcas dos pneus murmuram contra a estrada, o vento assobia ao contornar espelhos, pedaços de plástico e peças no painel de instrumentos
Indicador da área de estudo (SAI): 8 etapas
Indicador de área de estudo (SAI): Quer tornar mais fácil encontrar um local de estudo durante a semana das provas finais? Considere a construção de indicadores de área de estudo! Na sua forma mais simples, o sistema é uma coleção de Indicadores de Área de Estudo (SAIs) conectados a uma fonte principal de energia que indica a disponibilidade de
Estudo Experimental de Movimento Harmônico Simples: 5 Etapas
Estudo Experimental de Movimento Harmônico Simples: Na sala de aula, costumamos usar um cronômetro para conduzir o experimento do pêndulo, ou experimento de movimento harmônico simples. Aqui está um desafio, podemos produzir um gráfico real de seu movimento e ver qual é a posição angular e velocidade instantâneas