İçindekiler:
- Adım 1: Malzemeler
- 2. Adım: Programlama
- Adım 3: 4. Escoger Canciones Para Programarla
- Adım 4: Unir Programları
- Adım 5: Convertirlo En Físico
- Adım 6: Máquinas Utilizadas
- 7. Adım: Öneriler
Video: Rocola Luis Hernández E Ignacio Casado: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Harry Potter ve Luis Fonsi'nin En İyi Yaşamı
Adım 1: Malzemeler
1 Protokol
1 Arduino UNO
kablolar jumper maço-hembra y maço-maço
1 pantalla LCD 16x2
2 Buzzer pasif
2 Buton
Arduino için 1 kablo USB
1 fuente de poder externa
2. Adım: Programlama
Primero, saman que, la biblioteca del LCD en el programa y configurarlo con los pines a los que esta conectado dahil. Luego, hay que instanciar las değişkenleri que determinaran la cancion, los pines de los 2 botones, değişken "anti-derrames" ve el pin para el buzzer.
#Dahil etmek
// librería para manejar pantallas LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Indica que pines se estan utilizando
int aday = 0;
const int botonI = 10; const int botonD = 9; int antiderrames=0; //esta değişken va bir sunucu para evitar que el LCD muestre 3 cosas al mismo tiempo int buzzer_pin = 6;
Después de eso, hay que nombrar a las funciones que van a:
- El tono a tocar'ı tanımlayın (según el pin del buzzer, la nota y la duración de la misma).
- Definir las notas (en letras), dándoles un valor único de Hz.
- Tanımlama la estructura de las notas (nota, yarı nota, vb.).
Y por ultimo, milisegundos'ta tanımlı el tempo
void setTone(int pin, int not, int süre) { ton(pin, not, süre); gecikme(süre); noTone(pin); } yapı MusicStruct { int A = 550; int As = 582; int B = 617; int C = 654; int Cs = 693; int D = 734; int Ds = 777; int E = 824; int F = 873; int Fs = 925; int G = 980; int Gs = 1003; int A2 = 1100; int A2s = 1165; int B2 = 1234; int C3 = 1308; int C3s = 1385; int D3 = 1555; }Müzik; struct LengthStruct { kayan yarı = 0,5; yüzer bir = 1.0; float one_half = 1.5; iki yüzer = 2.0; float iki_half = 2.5; }Uzunluk;
int tempo = 400; //velocidad de la kompozisyon
Yapılacak işlerin tanımı, yapılması gerekenler, ön hazırlıklar.
Primero, hay que:
- Seri izle
- Definir los modos de los pines de los botones ve zil sesi
- Encender el LCD y poner el imleç en la posición ilk
geçersiz kurulum() { Serial.begin(9600); pinMode(botonI, INPUT_PULLUP); pinMode(botonD, INPUT_PULLUP);
//Sección de pantalla LCD
lcd.başla(16, 2); //Enciende lcd lcd.clear(); lcd.setCursor(0, 0);//El proximo mensaje apracecera en la cordenada 0, 0 pinMode(buzzer_pin, OUTPUT);
}
Luego, gerekli olan las funciones de las funciones, que van a dar el orden, tono, tiempo de las 2 canciones que vamos a tener en este proyecto (Harry Potter'ın ana teması).
Usaremos 2 formas de tocar canciones en este proyecto:
- Usando la función setTone, que definimos antes (Harry Potter)
- Usando la función tone del buzzer del Arduino (Despacito)
Nota del autor: La función para despacito solo toca los primeros 12 segundos de la canción, orijinalmente el código dönemi 856 satır
void jarri(){setTone(buzzer_pin, Music. B, tempo * Length.one); setTone(buzzer_pin, Music. E, tempo * Length.one_half); setTone(buzzer_pin, Music. G, tempo * Uzunluk.half); setTone(buzzer_pin, Music. F, tempo * Uzunluk.one); setTone(buzzer_pin, Music. E, tempo * Uzunluk.iki); setTone(buzzer_pin, Music. B2, tempo * Length.one); setTone(buzzer_pin, Music. A2, tempo * Uzunluk.two_half); setTone(buzzer_pin, Music. Fs, tempo * Length.two_half); setTone(buzzer_pin, Music. E, tempo * Length.one_half); setTone(buzzer_pin, Music. G, tempo * Uzunluk.half); setTone(buzzer_pin, Music. F, tempo * Uzunluk.one); setTone(buzzer_pin, Music. Ds, tempo * Length.two); setTone(buzzer_pin, Music. F, tempo * Uzunluk.one); setTone(buzzer_pin, Music. B, tempo * Length.two_half);} void Despacito() { tone(buzzer_pin, 587, 709.720327982); gecikme(788.578142202); gecikme (10.3082110092); ton(buzzer_pin, 554, 709.720327982); gecikme(788.578142202); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 391, 412.843850917); gecikme (458.715389908); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 391, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 554, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 440, 412.843850917); gecikme (458.715389908); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 440, 41.7482545872); gecikme(46.3869495413); gecikme(36.0787385321); ton(buzzer_pin, 440, 37.109559633); gecikme(41.2328440367); gecikme(30.9246330275); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 587, 46.3869495413); gecikme(51.5410550459); gecikme(30.9246330275); ton(buzzer_pin, 587, 46.3869495413); gecikme(51.5410550459); gecikme(20.6164220183); ton(buzzer_pin, 587, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 659, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 659, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 554, 691.165548165); gecikme(767.961720183); gecikme (314.40043578); ton(buzzer_pin, 587, 552.004699541); gecikme(613.338555046); gecikme(5.15410550459); ton(buzzer_pin, 554, 552.004699541); gecikme(613.338555046); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 369, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 46.3869495413); gecikme(51.5410550459); gecikme(30.9246330275); ton(buzzer_pin, 493, 46.3869495413); gecikme(51.5410550459); gecikme(20.6164220183); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); ton(buzzer_pin, 440, 134.52215367); gecikme(149.469059633); gecikme(5.15410550459); ton(buzzer_pin, 493, 273.683002294); gecikme(304.092224771); gecikme(5.15410550459); }
Arduino'nun en önemli programlarından biri…el Loop()
Primero, llamado leibel (muhteşem isim, lo sé), para que lleve al inicio del loop() cuando termine cada canción'un tanımını yapar. Después, hay que darle valor a la değişken anti-derrames que instanciamos anteriormente, para evitar que el LCD muestre çoklu letras en el mismo lugar y deniz anlaşılmaz.
Luego, hay que poner que cada vez que se oprima un botón se cambie el valor que tanımla la canción que se toca.
void loop() { leibel: if ((antiderrames==0)&&(digitalRead(botonI)==1)&&(digitalRead(botonD)==1)){ lcd.setCursor(0, 0); lcd.print("Elegir cancion");//CAMBIA el icono lcd.setCursor(0, 1); lcd.print("1 veya 2"); }else{ if(digitalRead(botonI)==0){ gecikme(400); lcd.clear(); if (cantidad == 0){ cantidad = 1; } antiderrameler++; } if(digitalRead(botonD)==0){ gecikme(400); lcd.clear(); if (cantidad == 1){ cantidad = 0; } antiderrameler++; } if (cantidad == 0){ lcd.setCursor(0, 0); lcd.print("Harry Potter");//CAMBIA el ikono lcd.setCursor(0, 1); lcd.print("Tema"); jarri(); antiderramlar=0; lcd.clear(); leibel'e git; //volvemos al inicio
}
else if (cantidad == 1);{
lcd.setCursor(0, 0); lcd.print("Despacito");//CAMBIA el icono lcd.setCursor(0, 1); lcd.print("Luis Fonsi"); Despacito(); antiderrameler=0; lcd.clear(); leibel'e git; //volvemos al inicio } }}
Junto con la programación, también se probó la funcionalidad de la pantalla LCD 16x2, para después guardar el programa ve así unirlo ve los demás para el programa final.
Adım 3: 4. Escoger Canciones Para Programarla
Buscaron 2 canciones para programarlas ve así incluirlas para la rocola. Harry Potter'ın "Despacito" ve Luis Fonsi'nin en özel temaları.
Adım 4: Unir Programları
Después de tener la programacion de los botones, la pantalla ve las canciones; se unieron para así probar si eran uyumluluğu y si hayır, modificarlos en tinkercad.
Adım 5: Convertirlo En Físico
En iyi işlevler için karşılaştırmalar, en la página de tinkercad, se, donanımla ilgili tüm sonuçları kopyalayın. Günah ambargosu, uygunsuz bir şekilde, elverişsiz bir şekilde, elverişsiz bir şekilde kullanılmaz. En esto en esto en la sunum son solo, los botones ve el buzzer dahil.
Adım 6: Máquinas Utilizadas
Maker-Space'i en iyi şekilde kullanabilirsiniz.
Se utilizó la cortadora de vinilo para hacer sticker y decorar la carcasa
Arduino için utilizo el taladro de pedestal del Maker-space para hacer los agujeros para el buzzer ve el kablosu del Arduino
7. Adım: Öneriler
Algunas, aşağıdaki sonuçların alınmasını tavsiye eder:
- Tinkercad para ver cómo funciona en la página de página de probar previamente el programa. Así como doğrulayıcı los kabloados ve conexiones giriş protoboard ve el arduino.
- Al soldar, doğrulayıcı que ningún entre los estaños se toquen, así se podrá evitar que se queme algún componente.
- Tinkercad'in donanım ve donanımını çoğaltmak, yapılacak işler için hiçbir şey yapmamak ve doğrulamak için hiçbir şey yapmamak.
- En büyük boyutlar para la caja, así se podrá evitar quede demasiado grande o muy pequeña.
Önerilen:
Rocola Dijital: 4 Adım
Rocola Digital: Müzik üretmiyor. Canciones videolarının yeniden üretilmesi için temel bir temel oluşturur. En este caso se creo un rocola que funciona de forma kılavuzu, lütuf ve tres botones.
Rocola (Müzik Kutusu) Manufactura Digital: 7 Adım
Rocola (Müzik Kutusu) Manufactura Dijital: Rocola programada con arduino. Contiene tres canciones: Starwars, Game of Thrones ve Tabut dansı
ARDUINO ile Rocola: 6 Adım
ARDUINO ile Rocola: Arduino ve Buzzer activo ile birlikte *ROCKOLA* en estet structable encontrarás como crear tu propia. Primero se van ve "Listado de Materiales" için gerekli olan en iyi malzemelerden en la sección de "Listado de Materiales"; para crear la rocola. Konuyla ilgili
Arduino Jukebox/Rocola: 3 Adım
Arduino Jukebox/Rocola: El siguiente proyecto es uno que nos, Arduino plataforma'da yumuşak sesli uyarıdan yararlanmaya izin veren yeniden üretmeye izin verir. Reproduciendo için çeşitli bileşenlerin kullanımı. Tiene como función alternar giriş ç
Giriş: Rocola; Fernando Lavarreda; Diego Hernández: 5 Adım
Giriş: Rocola; Fernando Lavarreda; Diego Hernández: Arduino ve Arduino'yu en iyi şekilde kullanmak için en iyi talimatlar. Como ya es bien sabido, Arduino es una comunidad de Creadores que kanıtlamak mikro kontrolör