Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Olá pessoal! Happy Holloween !! Construímos uma lanterna de abóbora que toca música e cospe doces quando alguém se aproxima dela.
Etapa 1: Coisas usadas neste projeto
Componentes de hardware
- Arduino UNO / Seeeduino V4.2
- Escudo de Base V2
- Grove - Sensor de movimento PIR
- Grove - MP3 v2.0
- Grove - Faixa LED WS2813 RGB à prova d'água - 60 LED / m - 1m
- Servo de alta sensibilidade EMax 12g ES08MD
Aplicativos de software e serviços online
IDE Arduino
Etapa 2: História
O Halloween está chegando, lanternas de abóbora são essenciais. Usamos o Seeeduino e o PIR Motion Senser construímos uma lanterna de abóbora, quando alguém vier até ela vai tocar música e cuspir balas.
Estrutura mecânica
** Passo 1: ** Compre alguns doces e uma abóbora, cave um buraco atrás da abóbora para que possamos colocar Seeeduino nela.
** Passo 2: ** Corte uma caixa como esta e fixe-a na boca da abóbora.
** Setp 3: ** Monte um braço no servo motor. Para fixar um servo motor dentro da abóbora, usamos uma lata como suporte.
** Passo 4: ** Certifique-se de que quando o braço do servo motor virar para cima, os doces na caixa serão cuspidos da boca da abóbora.
Etapa 3: Conexão de Hardware
** Passo 1: ** Faça uma pasta chamada MP3 em um pedaço de cartão SD, copie um arquivo mp3 para ela, nomeie-o 0001.mp3. Conecte um alto-falante ao MP3 Grove através da porta de 3,5 mm e conecte o MP3 Grove à porta D2 na Base Shield.
** Passo 2: ** Conecte o PIR Motion Sensor Grove à porta D4 da Base Shield e conecte a tira NeoPixel à porta D5 da Base Shield.
** Etapa 3: ** Conecte o Servo Grove ao pino 9 digital da Base Shield, para que possamos usar as linhas DuPont.
** Etapa 4: ** conecte a blindagem da base ao Seeeduino.
** Passo 5: ** Para baixar o programa para Seeeduino, usamos um cabo USB para conectar com o computador. Depois de baixado, só podemos usar um cabo de alimentação dentro da abóbora.
Etapa 4: Programação de software
** Etapa 1: ** instalar bibliotecas
Para melhor efeito, usamos um sistema operacional chamado FreeRTOS, que pode ser baixado aqui.
Além disso, este projeto necessita das seguintes bibliotecas, baixe e instale-as:
- Grove - MP3 v2.0
- Adafruit NeoPixel
- Adafruit TicoServo
Ou você pode simplesmente incluir MP3.h na pasta do projeto para usar o MP3 Grove.
** Etapa 2: ** Crie e faça upload do programa
* AVISO: Marco MAX_BRIGHTNESS controla o brilho máximo do NeoPixel, reduz o brilho dele para reduzir o consumo de energia. *
Pode ser difícil entender o programa se você não usou o sistema operacional no Seeeduino antes, o artigo a seguir o tornará simples.
No método setup (), inicializamos Serial, MP3 Grove e Servo Motor normalmente, e criamos uma variável que chamamos de semáforo, você pode considerá-la como uma variável flag que costumava indicar se é alguém que vem ou não.
vSemaphoreCreateBinary (xPIRBinarySemaphore);
Então criamos 3 tarefas, elas podem ser executadas juntas. Mas as prioridades de então podem não ser as mesmas.
s1 = xTaskCreate (vFadingLEDsTask, NULL, configMINIMAL_STACK_SIZE, NULL, 1, NULL);
s2 = xTaskCreate (vScaningPIRTask, NULL, configMINIMAL_STACK_SIZE, NULL, 1, NULL); s3 = xTaskCreate (vHandlePIRTask, NULL, configMINIMAL_STACK_SIZE, NULL, 2, NULL);
Depois de verificar o semáforo e as tarefas serem inicializadas corretamente, o método vTaskSetartScheduler () inicia todo o FreeRTOS.
if (xPIRBinarySemaphore == NULL || s1! = pdPASS || s2! = pdPASS || s3! = pdPASS)
{ para (;;); } vTaskStartScheduler ();
O nerver do método loop () usado no FreeRTOS. Agora o resto é simples, vFadingLEDsTask com desvanecimento da tarefa Variable Color LED e vScanPIRTask que verifica o pino do PIR Motion Sensor o tempo todo. Quando o PIR Motion Sensor detecta que alguém está chegando, ele define o sinalizador e a tarefa vHandlePIRTask começa a ser executada. Como a prioridade da tarefa vHandlePIRTask é 2, quando ela estiver em execução, outras duas tarefas restantes serão suspensas.
As chamadas a seguir são usadas para definir ou redefinir um sinalizador.
xSemaphoreGive (xPIRBinarySemaphore);
xSemaphoreTake (xPIRBinarySemaphore, portMAX_DELAY);
Etapa 5: Operação
Coloque o alto-falante Seeeduino e Groves dentro da lanterna de abóbora e ligue-o. Agora você pode esperar que alguém chegue até ele, Trick or Treat:-).
Confira o vídeo clicando em Luz de abóbora de Halloween. (https://www.youtube.com/embed/CFjuWXOIUN4)