Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Toque Polifónico do Tema dos Vingadores com Arduino UNO (Biblioteca Playtune)

Componentes e Materiais

ComponenteQuantidade
Arduino UNO1
Protoboard Meio Tamanho1
Altavoz 3W 4Ω1
Resistor 220 Ω3
Resistor 10k Ω1
Resistor 4.75k Ω1
Resistor 56 Ω1
LED (genérico, opcional para visualização)3

Sobre o Projeto

Projeto simples e interessante: tocar o tema dos Vingadores (The Avengers) de forma polifónica (várias notas simultâneas).

A função nativa tone(pino, frequência, duração) só toca uma nota de cada vez. Para polifonia, usamos a biblioteca Playtune de Len Shustek, capaz de até 6 tons simultâneos (3 no Uno, 6 no Mega).

Baixe a biblioteca: GitHub Playtune ou link direto.

Esquemático

Ligue os pinos digitais 10, 11 e 12 a resistores de 220Ω, una as outras pontas dos resistores a um terminal do altavoz. O outro terminal do altavoz vai a GND. Opcional: ligue um LED a cada pino (em série com o resistor) para visualizar atividade do canal.

Montagem em Protoboard

Fácil de montar. Recomenda-se altavoz (buzzers piezoelétricos comuns têm volume baixo). Uma caixa de som pequena (mesmo sem amplificação) melhora muito o resultado.

Programação

Importe a biblioteca Playtune e carregue o código abaixo. A melodia está codificada em array PROGMEM com dados compactados.

Código Principal

// Toca música polifónica usando 3 interrupções
// Biblioteca Playtune necessária: https://github.com/LenShustek/arduino-playtune
// 2019 - Marcelo Maximiano - Maxblitz.com
#include <Playtune.h>

const byte PROGMEM avengers[] = {
  // Dados da música compactados (extenso - ver código original completo)
  0x90,0x3E,0x00,0x7A,0x80,0x00,0x02, /* ... centenas de bytes ... */ 0x0F,0x9D,0x82,0x81,0x80,0xF0
};

Playtune p;

void setup() {
  p.tune_initchan(10);
  p.tune_initchan(11);
  p.tune_initchan(12);
}

void loop() {
  p.tune_playscore(avengers); // inicia reprodução
  while (p.tune_playing);     // espera terminar
  p.tune_delay(3000);         // pausa 3s (não usar delay() do Arduino)
}

Nota: O array avengers[] completo é muito extenso; consulte o código fonte original nos recursos do projeto.

Recursos Adicionais

Processo de manufatura

  1. Alerta Inteligente de Sede para Plantas – Sensor DIY para Hidratação Ideal
  2. Relógio de Palavras em Italiano com Arduino Nano, NeoPixel, LCD e RTC
  3. Economize Pinos do Arduino: Conecte Teclado 4x3 com Apenas Três Conexões
  4. Medidor kWh Confiável com Sigfox e Arduino MKR Fox 1200
  5. Monitor de Temperatura com Bluetooth usando Arduino Nano
  6. Medidor de Capacitância Autoranging DIY (10 pF–10 µF) – Montagem Fácil com Arduino
  7. Fechadura por Gestos Sem Toque: Acesso Seguro com APDS-9960 e Arduino
  8. Companion IC: Relógio, Ohmímetro, Capacímetro e Testador de Diodos com Arduino Nano
  9. Circuito de Entrada Analógica Isolada para Arduino
  10. Teste de Tempo de Reação Preciso com Arduino UNO