Haz un juego Buzz Wire con un Arduino

Haz un juego Buzz Wire con un Arduino / Bricolaje

En este divertido proyecto, aprenderemos cómo hacer un juego de buzz wire con el Arduino. Muchas de las piezas necesarias se pueden encontrar en un kit de inicio (¿qué hay en un kit de inicio? ¿Qué está incluido en un kit de inicio de Arduino? [MakeUseOf Explica] ¿Qué está incluido en un kit de inicio de Arduino? [MakeUseOf Explica] He presentado previamente el Arduino open- fuente de hardware aquí en MakeUseOf, pero va a necesitar algo más que el Arduino real para construir algo a partir de él y comenzar realmente. Los "kits de inicio" de Arduino son ... ¿Leer más?) y alrededor de la casa. Este proyecto utiliza un Arduino, aunque puede usar casi cualquier microcontrolador que tenga alrededor (vea esta comparación entre microcontroladores de $ 5 Microcontroladores de $ 5: Arduino, Raspberry Pi Zero o NodeMCU? $ 5 Microcontroladores: Arduino, Raspberry Pi Zero o NodeMCU? Solía ​​ser el caso de que si quería comprar una computadora, tendría que volver a equipar su casa para pagarla. Ahora, puede obtener una para un Abraham Lincoln. Lea más para inspirarse..

Echa un vistazo al resultado final, incluso reproduce música:

Que necesitas

Aquí están las partes principales que necesitará para completar este proyecto:

  • 1 x Arduino UNO o similar.
  • 1 x percha de metal.
  • 2 x 220 ohmios de resistencia.
  • 1 x Breadboard.
  • 1 x zumbador piezoeléctrico.
  • 2 x clips de cocodrilo.
  • Tubos termorretráctiles surtidos.
  • Cables de conexión macho a macho.

Elenco TL-6 Juego de cables de cocodrilo, 10 piezas, 14 pulgadas Elenco TL-6 Juego de cables de cocodrilo, 10 piezas, 14 pulgadas Compre Ahora En Amazon $ 5.59

Aquí hay algunas partes opcionales para mejorar la construcción:

  • 1 x zumbador piezo adicional.
  • 1 x varilla de pasador.
  • 1 x Quad siete segmentos de visualización.
  • 1 x resistencia de 220 ohmios.
  • 1 x botón momentáneo.
  • Cables de conexión macho a hembra.
  • Tablón de madera (para el caso).
  • Tornillos de madera surtidos.

Casi cualquier Arduino funcionará, siempre que tenga suficientes pines. Eche un vistazo a esta guía de compras Guía de compras de Arduino: ¿Qué tabla debería obtener? Guía de compra de Arduino: ¿Qué tabla debería obtener? Hay tantos tipos diferentes de tableros de Arduino por ahí que se te perdonará por estar confundido. ¿Qué debes comprar para tu proyecto? Déjanos ayudarte, con esta guía de compras de Arduino! Lea más si no está seguro de lo que necesita.

El plan de construcción

Si bien esto puede parecer complejo, en realidad es un proyecto bastante simple. Comenzaré con el juego básico y luego agregaré componentes adicionales para aumentar la complejidad. Usted puede “escoge y elige” Como quieras dependiendo de los componentes que tengas disponibles..

El núcleo mecánico consiste en una forma de alambre y un bucle en un mango. El jugador tiene que guiar el bucle alrededor del curso sin que los dos se toquen. Si los dos tocan, el circuito se completa y suena el zumbador. Por supuesto, es posible construir este circuito sin microcontrolador, pero ¿dónde está la diversión en eso (y de qué otra forma podrías escuchar el Monty Python's “Circo volador” tema musical)?

El curso

Esta es la forma que tendrá el jugador para guiar su ronda de bucle. Es la base de todo el juego, ¡así que hazlo bien! Elegí tener una pequeña caída, seguida de una gran subida. Dobla una percha de metal en la forma que necesites. El alambre de latón o el tubo de cobre funcionarán igual de bien, aunque un perchero puede ser el más barato.

Es posible que necesite usar guantes y alicates o un martillo para obtener las cosas perfectas. Cortar cualquier exceso con cortadores de pernos. Deja dos montantes verticales para empujar a través de la base. Usted quiere archivar los extremos cortados por seguridad. Finalmente, corte dos piezas de tubos termocontraíbles y colóquelos sobre los extremos de la siguiente manera:

Esto aislará el bucle del curso, proporcionando una zona de inicio / final o de seguridad. Alternativamente, la cinta o incluso una pajita servirán si no tiene ningún tubo termorretráctil..

Ahora conecte un cable a un final del curso. Aquí tiene dos opciones: puede soldar o usar un clip de cocodrilo. Un clip de cocodrilo es la opción más fácil, pero la soldadura es una opción más confiable y a largo plazo. Asegurate que “despeinar” La superficie del perchero primero con papel de lija, y use mucho flujo. (¿Nunca soldó antes? Aprenda cómo aquí Aprenda a soldar, con estos sencillos consejos y proyectos Aprenda a soldar, con estos sencillos consejos y proyectos ¿Está un poco intimidado por la idea de un hierro caliente y metal fundido? Si desea para comenzar a trabajar con electrónica, necesitarás aprender a soldar. Déjanos ayudarte. Lee más.)

Dependiendo del tamaño del agujero que taladre en la base en el siguiente paso, es posible que deba pasar el cable a través del agujero de montaje primero. Usar dos cables torcidos aumentará la durabilidad:


Usar un ejercicio para hacer esto ayuda mucho:

La base

Es hora de crear la base. Esto sirve para mantener el rumbo en una posición vertical, así como proporcionar un lugar para anclar la electrónica a. Utilicé algunos recortes de pino, aunque podría usar lo que tenga en la casa, incluso una caja de cartón..

Cortar tres piezas para formar un “norte” forma. Simplemente atornille (o pegue) estas tres piezas juntas. Recuerde perforar primero un agujero piloto en las piezas laterales para evitar que se partan. Es posible que desee avellanar los tornillos (especialmente si va a llenar y luego pintar), y le recomiendo una broca para avellanar. Si no tiene una herramienta avellanadora o taladro, una broca de diámetro más grande hará el truco.

Perfore dos agujeros lo suficientemente separados para que los extremos del recorrido se puedan sentar. Avellanar el lado inferior listo para pegar..

El mango


Ahora es el momento de hacer el bucle / controlador. Gire una pequeña pieza del perchero en un extremo para crear un lazo con un pequeño mango de metal. Asegúrese de limar el borde cortado y luego cúbralo con cinta / espuma si es necesario.


Esto formará la otra mitad del circuito: cuando este bucle toque el rumbo, completará el circuito (exactamente como un interruptor). Suelde (o use un clip de cocodrilo) otro cable al final de este, exactamente el mismo que hizo anteriormente para el curso.

Cortar una pequeña longitud de pasador para el mango real. Este bucle de metal se encajará en este mango. Si no tiene una clavija, puede redondear un trozo de madera blanda cuadrada con una lijadora de banda o de disco (también puede usar papel de lija, pero llevaría mucho tiempo).

Perfore un agujero a través de este mango. Esto debe ser lo suficientemente grande para que quepa el bucle de metal y el cable a través de:


Esto es posible hacerlo en un taladro de pilar, aunque es complicado. Un torno hará el trabajo perfectamente:

Sí, soy bastante consciente de que es un torno de metal (para cualquier persona interesada, es un torno de relojería de Boley de la década de 1930. Creo que es un 3C, pero me encantaría saber de ti si sabes algo más).

También puede utilizar un bolígrafo con el centro eliminado.

Finalmente, use pegamento caliente para asegurar el cable y el bucle en el mango. El pegamento caliente proporcionará un accesorio fuerte (pero no permanente), por lo que es perfecto para esto.

Terminando

Inserte el curso de alambre en los agujeros en la base. No te olvides de agregar el bucle / controlador primero. Use pegamento caliente nuevamente para asegurar el recorrido a la base rellenando los orificios avellanados en la parte inferior de la base de la siguiente manera:

El circuito

Aquí está el circuito completo. No tiene que hacer que el suyo sea tan complejo como este: siga leyendo a medida que desglosamos cada parte.


Primero, conecte los dos elementos piezo a los pines digitales 10 y 11. La polaridad no importa:


No tiene que usar dos piezos, la única razón por la que lo he hecho es que suena un zumbido mucho más fuerte cuando se tocan los cables. Conecte un lado al pin digital y el otro a tierra.

Ahora enchufa el curso de metal y maneja:


Nuevamente, no importa en qué dirección están cableados estos dos. Esta parte del circuito es exactamente como un botón o interruptor: el jugador completa el circuito cuando el bucle toca el curso. Asegúrate de incluir ambas resistencias.

Una resistencia ata el circuito a tierra (llamada resistencia de bajada), asegurando que no esté “flotante” (Esto permite que Arduino detecte el cambio de circuito). La otra resistencia protege al Arduino. Cuando las dos partes se tocan, + 5V entra en el pin digital. Si esta resistencia no estuviera presente, se produciría un cortocircuito: su computadora desconectaría la toma USB para dibujar demasiada corriente si tienes suerte.

Conecte el cable de señal (púrpura, en el diagrama) al pin digital 9.

A continuación, conecte un botón pulsador al pin digital 2:

Finalmente, conecte la pantalla LED de siete segmentos:


Este modelo en particular es de Seeed. Esto utiliza un TM1637 para controlar cuatro pantallas, lo que significa que solo se necesitan dos pines digitales. Conectar GND a tierra de Arduino y VCC a Arduino + 5V. Conectar D10 a Arduino pin digital 13 y CLK al pin 12 digital.

El código

Para que este proyecto funcione, necesitarás dos archivos adicionales. El primero se llama pitches.h. Este archivo simplemente asigna nombres de notas a su valor piezoeléctrico. Esto hace que sea mucho más fácil escribir una melodía, como puede decir simplemente “NOTA_C3” más bien que “31”, por ejemplo. Esto está en el dominio público, y está disponible en el sitio web de Arduino aquí. Siga las instrucciones para crear un nuevo archivo llamado pitches.h (como alternativa, pegue el código en su script existente).

A continuación, necesita un método para reproducir realmente notas / melodías en el piezo. Esta idea de Anthony DiGirolamo en Github contiene el código que necesita. Copia todo entre “zumbido del vacío” y “” y péguelo en su archivo principal. Para referencia, aquí está:

void buzz (int targetPin, long frequency, long length) / * Función de ejemplo de zumbador por Rob Faludi http://www.faludi.com https://gist.github.com/AnthonyDiGirolamo/1405180 * / long delayValue = 1000000 / frecuencia / 2; // calcule el valor de retardo entre transiciones //// el valor de 1 segundo de microsegundos, dividido por la frecuencia, luego se divide por la mitad ya que //// hay dos fases en cada ciclo. // calcule el número de ciclos para la sincronización adecuada //// multiplique la frecuencia, que es realmente ciclos por segundo, por el número de segundos para //// obtener el número total de ciclos para producir (long i = 0; i < numCycles; i++) // for the calculated length of time… digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphragm delayMicroseconds(delayValue); // wait for the calculated delay value digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphragm delayMicroseconds(delayValue); // wait again for the calculated delay value  

La última biblioteca que necesita es controlar la pantalla de siete segmentos: puede omitir este paso si no está utilizando uno. Esta biblioteca se llama TM1637 y fue creado por Seeed, la misma compañía que creó la placa del conductor.

En el IDE de Arduino, ir a “Gestionar bibliotecas” (Bosquejo > Incluir biblioteca > Gestionar bibliotecas). Esto abrirá el administrador de la biblioteca. Espere unos segundos para actualizar y luego busque en el cuadro de búsqueda de arriba a la derecha “TM1637”. Se encontrarán dos bibliotecas - tu quieres “TM1637” y no “TM1637Display”. Seleccione y luego haga clic “instalar”.

Una última tarea con esta biblioteca - ¡no está completa! Tal como está, la biblioteca solo puede mostrar los números 0-9 y las letras A-F. Si esto cubre todo lo que desea mostrar, puede omitir este paso. Si no, necesitarás modificar el código. ¡Relajarse! Esto no es tan difícil como parece, y si puede escribir código utilizando el IDE de Arduino, puede hacerlo.

Primero, abre la carpeta de tu biblioteca. Esto estará en su carpeta Arduino. En Mac OS X, esto está en / Usuarios / Joe / Documentos / Arduino / Bibliotecas. Abra la carpeta llamada TM1637. Tendrá que editar el archivo llamado TM1637.cpp - Puede ignorar con seguridad el otro archivo con la extensión .h. Abra este archivo en su editor de texto favorito (para mí, eso es Sublime Text 3), Bloc de notas o el IDE de Arduino.

Modifica la tercera línea de código a partir de esto:

static int8_t TubeTab [] = 0x3f, 0x06,0x5b, 0x4f, 0x66,0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77,0x7c, 0x39,0x5e, 0x79,0x71; // 0 ~ 9, A, b, C, d, E, F

A esto:

static int8_t TubeTab [] = / * valores predeterminados * / 0x3f, // 0 0x06, // 1 0x5b, // 2 0x4f, // 3 0x66, // 4 0x6d, // 5 0x7d, // 6 0x07, / / 7 0x7f, // 8 0x6f, // 9 0x77, // A - 10 0x7c, // b - 11 0x39, // C - 12 0x5e, // d - 13 0x79, // E - - 14 0x71, // F - 15 / * adicional * / 0x174, // h - 16 0x176, // H - 17 0x138, // L - 18 0x15, // M - 19 0x137, / / n - 20 0x73, // P - 21 0x67, // q - 22 0x131, // r - 23 0x78, // t - 24 0x240 // - 25;

Ahora puede guardar y cerrar este archivo. Después de cada elemento, el comentario describe qué carácter es este. La siguiente parte del comentario es el índice del elemento..

Es hora de que el código real. Primero, incluye las dos bibliotecas mencionadas anteriormente:

#incluir  #incluir 

Ahora crea el objeto de visualización:

TM1637 * _display = new TM1637 (12, 13);

No se preocupe si no entiende la sintaxis: esta línea le dice a Arduino que los pines 12 y 13 están conectados a una pantalla de siete segmentos, y que la configuren adecuadamente.

La canción está almacenada en. melodía y tempo. Estos contienen todas las notas y la duración de la nota para la música. Si desea cambiar la música, modifique estos arreglos (aunque no es tan simple como pegar los valores de las notas, el tiempo es una parte muy importante de la música). los estado de la canción La variable simplemente almacena la posición de la última nota tocada. Esto garantiza que la melodía se reproduzca de principio a fin, en lugar de saltar inconsistentemente:

int songState = 0; int melodía [] = NOTE_F4,… int tempo [] = 8,…

Tenga en cuenta que he eliminado el contenido de las matrices, consulte a continuación el código completo..

Este código no está bloqueando, lo que significa que Arduino puede realizar múltiples tareas simultáneamente. Eche un vistazo a esta explicación: la función de retraso de Arduino y por qué no debe usarla. La función de retraso de Arduino y por qué no debe usarla. Si bien demora () es útil para demostraciones básicas de cómo funciona Arduino, no debería hacerlo. usándolo en el mundo real. He aquí por qué, y qué deberías usar en su lugar. Leer más para más información. Así es como se configuran los temporizadores:

unsigned long previous minis1 = 0; const intervalo largo 1 = 1500;

La variable anteriorMillis1 se actualizará en una etapa posterior para almacenar la hora actual. los intervalo1 la variable almacena cuánto tiempo se debe esperar entre la ejecución del código, en este caso, 1,5 segundos. Se define como const, lo que significa que es constante y nunca cambiará; esto permite que Arduino optimice aún más el código.

Dentro de preparar() función hay algunas cosas que suceden Primero, se configuran las entradas y salidas. Esto se debe hacer, para que Arduino sepa lo que está conectado a cada uno de sus pines:

pinMode (9, ENTRADA); // circuito de instalación pinMode (10, SALIDA); // configuración buzzer 1 pinMode (11, SALIDA); // configuración buzzer 2 pinMode (2, INPUT); // botón de configuración

Ahora la pantalla necesita configurarse:

_display-> set (5); // ajustar el brillo _display-> point (false); // eliminar el colon _display-> init (); // iniciar pantalla

Los métodos conjunto, punto, y en eso están todos contenidos dentro de la _monitor objeto. En lugar de un punto, un puntero (“->”) se utiliza para acceder a estos. De nuevo, no se preocupe por la sintaxis (aunque, si desea obtener más información, consulte los punteros de C ++).

El bucle principal tiene dos modos de juego: desafío y juego libre. El juego libre le permite al jugador jugar una cantidad ilimitada de veces. El modo Desafío establece un temporizador durante 20 segundos usando el showCountdown método. Utiliza el botón para iniciar y detener el temporizador. Actualmente, la única forma de cambiar los modos de juego es editar manualmente la variable llamada modo. Vea si puede agregar otro botón para hacer esto y modificar el código apropiadamente.

los zumbido El método reproduce las notas que se le dan. Esto se utiliza junto con canta. El método de canto pasa por cada nota y lo reproduce. Este método se llama regularmente, aunque solo tocará la siguiente nota cuando haya transcurrido el tiempo suficiente desde la última reproducción. Una vez que la canción ha llegado al final, la canción se reinicia en el versículo 1 (songState = 14). Puede poner esto a cero para comenzar la canción al principio, sin embargo, la razón para hacerlo es para omitir la introducción. La introducción se reproduce una vez después de que Arduino se haya encendido, y luego no se vuelve a reproducir..

los showFree y showPlay métodos simplemente escriben las palabras “Gratis” y “JUGAR” a la pantalla. Observe cómo “r” en libre es minúscula, cuando todos los demás caracteres están en mayúscula. Esta es una de las limitaciones de las pantallas de siete segmentos. No pueden mostrar todas las letras del alfabeto, y algunos de los caracteres que pueden mostrar deben estar en mayúsculas y minúsculas.

los toggleFreePlay método parpadea la pantalla entre “GRATIS” y “JUGAR”. De nuevo, lo hace de forma no bloqueante..

Otro método útil es mostrar numero. Esto escribe un número a los dos caracteres centrales de la pantalla de la siguiente manera:

La pantalla no es lo suficientemente inteligente como para saber cómo mostrar números grandes, se debe decir explícitamente qué hacer. Este método utiliza una lógica simple para mostrar el número apropiado en cada carácter.

El último método utilizado se llama. showCountdown. Esto inicia un contador a 20, y lo reduce en uno por segundo. Si esto llega a cero, suena tres veces, para indicar que el tiempo se ha agotado.

Aquí está todo ese código reunido:

#incluir  // incluir biblioteca de visualización #include  // incluir tonos TM1637 * _display = new TM1637 (12, 13); // crear objeto de visualización, 12 = CLK (reloj), 13 = D10 (datos) // música int songState = 0; int melodía [] = NOTE_F4, NOTE_E4, NOTE_D4, NOTE_CS4, NOTE_C4, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_A3, NOTE_A3pa de la persona de la que le gusta el estado de la vida. NOTE_C4, NOTE_C4, NOTE_A3, NOTE_AS3, NOTE_AS3, NOTE_AS3, NOTE_C4, NOTE_D4, 0, NOTE_AS3, NOTE_G3, NOTE_G3 ,Payas de los demás. NOTE_C4, NOTE_A3, NOTE_A3, NOTE_A3, NOTE_GS3, NOTE_A3, NOTE_A4, NOTE_F4, NOTE_F4, NOTE_B3, NOTE_G4, Título de la clase por lo que corresponda. NOTE_FS4, NOTE_G4, NOTE_C4, NOTE_B3, NOTE_C4, NOTE_B3, NOTE_C4, 0; int tempo [] = 8, 16, 8, 16, 8, 16, 8, 16, 16, 16, 8, 16, 8, 3, 12, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 12, 12, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 12, 12, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 16, 12, 17, 17, 17, 8, 12, 17, 17, 17, 8, 16, 8, 16, 8, 16, 8, 1; // no bloqueo de la configuración // juego libre sin firmar long previous millis1 = 0; // tiempo de las últimas palabras cambiadas const largo intervalo1 = 1500; // intervalo entre cambiar // música sin firmar long previous millis2 = 0; // último tiempo cambiado const largo intervalo2 = 100; // intervalo entre notas int displayStatus = 0; // realizar un seguimiento de lo que se muestra int mode = 0; // realizar un seguimiento del modo de juego: cambiar a 0 o 1 para diferentes modos bool countdown = false; unsigned long previous previoMillis3 = 0; // último tiempo cambiado const largo intervalo3 = 1000; // intervalo entre cuenta regresiva int cuenta = 20; // modo de desafío timer void setup () // ponga aquí su código de configuración, para ejecutarlo una vez: pinMode (9, INPUT); // circuito de instalación pinMode (10, SALIDA); // configuración buzzer 1 pinMode (11, SALIDA); // configuración buzzer 2 pinMode (2, INPUT); // botón de configuración _display-> set (5); // ajustar el brillo _display-> point (false); // eliminar el colon _display-> init (); // pantalla de inicio void loop () // ponga aquí su código principal, para que se ejecute repetidamente: if (modo == 0) // modo de desafío if (digitalRead (2) == HIGH) delay (25); if (digitalRead (2) == HIGH) countdown = true; // detiene la cuenta regresiva else countdown = false; // detiene la cuenta regresiva si (cuenta regresiva) showCountdown (); // avance de la cuenta regresiva else // juego libre toggleFreePlay ();  if (digitalRead (10) == HIGH) delay (25); if (digitalRead (10) == HIGH) while (digitalRead (10) == HIGH) buzz (11, NOTE_B0, 1000/24);  else else ();  void showCountdown () // cuenta atrás el tiempo restante sin firmar en curso currentMillis = millis (); // hora actual if (currentMillis - previousMillis3> = interval3) previousMillis3 = currentMillis; --contar; showNumber (cuenta); if (count == 0) // game over countdown = false; cuenta = 20; // reiniciar la cuenta atrás // buzz 3 veces buzz (11, NOTE_B0, 1000/24); retraso (100); zumbido (11, NOTE_B0, 1000/24); retraso (100); zumbido (11, NOTE_B0, 1000/24);  void showNumber (número int) // muestra los números (máximo 99) en la pantalla _display-> display (0, 25); // write - to segment 1 _display-> display (3, 25); // write - to segment 4 // write number to mid of display si (número == 10) _display-> display (1,1); _display-> display (2,0);  else if (número> 9) _display-> display (1,1); int newVal = number - 10; _display-> display (2, newVal);  else _display-> display (1,0); _pantalla-> pantalla (2, número);  void toggleFreePlay () // desplazarse entre las palabras sin bloquear la corriente larga sin firmar Millis = millis (); // hora actual if (currentMillis - previousMillis1> = interval1) previousMillis1 = currentMillis; if (displayStatus == 1) showPlay (); else showFree ();  void showPlay () // escribe "PLAY" en la pantalla _display-> display (0, 21); // escribe P en el segmento 1 _pantalla-> pantalla (1, 18); // escribe L en el segmento 2 _display-> display (2, 10); // escribe A en el segmento 3 _display-> display (3, 4); // escribe Y en el segmento 4 displayStatus = 2;  void showFree () // escribe "Free" en la pantalla _display-> display (0, 15); // escribe F en el segmento 1 _display-> display (1, 23); // escribe r en el segmento 2 _display-> display (2, 14); // escribe E en el segmento 3 _display-> display (3, 14); // escribe E en el segmento 4 displayStatus = 1;  buzón vacío (int targetPin, frecuencia larga, longitud larga) / * Función de ejemplo de timbre por Rob Faludi http://www.faludi.com https://gist.github.com/AnthonyDiGirolamo/1405180 * / long delayValue = 1000000 / frecuencia / 2; // calcule el valor de retardo entre transiciones //// el valor de 1 segundo de microsegundos, dividido por la frecuencia, luego se divide por la mitad ya que //// hay dos fases en cada ciclo. // calcule el número de ciclos para la sincronización adecuada //// multiplique la frecuencia, que es realmente ciclos por segundo, por el número de segundos para //// obtener el número total de ciclos para producir (long i = 0; i < numCycles; i++) // for the calculated length of time… digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphragm delayMicroseconds(delayValue); // wait for the calculated delay value digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphragm delayMicroseconds(delayValue); // wait again for the calculated delay value   void sing()  // play the song in a non blocking way unsigned long currentMillis = millis(); if (currentMillis - previousMillis2 >= intervalo2) previousMillis2 = currentMillis; int noteDuration = 1000 / tempo [songState]; buzz (10, melodía [songState], noteDuration); int pauseBetweenNotes = noteDuration; retraso (pauseBetweenNotes); // Detener la reproducción del tono: buzz (10, 0, noteDuration); ++ songState; // volver a comenzar la canción si finaliza si (songState> 79) songState = 14; // presiona Intro   

Guardar este archivo como “zumbido” (Archivo> Guardar como) y luego subirlo a su tablero (Archivo> Subir). Si no está seguro de cómo cargar el Arduino, o si el código parece un poco temible, eche un vistazo a nuestra Guía para principiantes de Arduino Introducción a Arduino: Guía para principiantes Introducción a Arduino: Guía para principiantes Arduino es una fuente abierta Plataforma de creación de prototipos electrónicos basada en hardware y software flexibles y fáciles de usar. Está dirigido a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Lee mas . Todo bien, ahora deberías tener tu propio juego de buzz wire - genial!

Si hiciste algo genial después de leer esto, me encantaría verlo, avísame en los comentarios a continuación.!

Explorar más sobre: ​​Arduino, Electrónica..