Project in progress

Making Sound Effects with Arduino © Apache-2.0

Using an Arduino Nano on an expansion board with push-buttons, one to play a sound and the other to select a sound effect from a WT588D.

  • 748 views
  • 2 comments
  • 7 respects

Components and supplies

About this project

Sound and Voice Effects

Sound plays an important role in the user experience by adding another layer of depth; making for a more realistic experience.  http://www.robotoid.com/sound/soundingoff-sounds.html

  • Arduino and piezo ~ dual purpose can make sound or be used as a vibration sensor
  • Low-cost option – WT588D ~ $5
  • Other options include the Adafruit Audio sound board $20 and mini computer systems on a board, such as Raspberry Pi or similar $30+.  These devices also need an SD card to provide memory space, more sensitive to vibrations and use more power.

SoundFX Lightshow

Using an Arduino Nano on an expansion board with push-buttons, one to play a sound and the other to select a sound effect from a WT588D through a speaker.

For this project, I’ve selected a low-cost option, internal memory, and reasonable sound quality – WT588D-U, this model includes a built-in mini USB port for power and direct programming.  Sound output is amplified by the module and produced by a standard 0.5w 8-ohm speaker or can be connected to an amplified speaker system. The down-side with this module is that it can be difficult to get the programming software and drivers installed and configured.

Using the WT588D voice module connected to a basic speaker, the project can deliver cellular phone quality sound.

More information and tutorials specific to the WT588D:

There are several options for triggering a sound clip to play.  Examining the documentation for this module including the schematic…The sound module has a few modes to select from when working with it.  If there are only a few sounds that need to be triggered then the direct button mode would work without a microcontroller. However, if there are several sound clips, it takes just as many wires to connect to a microcontroller using the following 3-wire configuration:

I’ve taken the time to download sound clips, modify, and organize a few themes.

  • Games – sound effects for the mechanics and the animation, GLaDoS voices from the Portal video game
  • Spooky – selection of spooky sounds for Halloween projects.
  • LCARS – Star Trek computer phrases and sounds.
  • Zelda: Link To The Past – sounds from the video game.

Other themes online:

Parts:

  • Arduino Nano
  • Expansion Board
  • USB to mini USB ~ 5ft. cord
  • AC/DC Outlet Power Adapter
  • Project Box
  • WT588D Sound Module
  • 8 x 7-segment Display module
  • (1-4) strips of 10 RGB 12mm LEDs.
  • (2) push-buttons
  • photocell
  • microphone
  • PIR sensor

Steps:

Prepare the following for wiring and connect to the expansion board:

  • WT588D with wiring harness and speaker
  • (1-4) strips of 10 RGB 12mm LEDs.
  • 8 x 7-segment Display Module
  • (2) push-buttons
  • photocell
  • microphone
  • PIR sensor

Connect the push-buttons to the expansion board and upload test code.

Connect strips of 10 RGB 12mm LEDs to the expansion board and upload test code.

Connect the 8×7 segment display module to the expansion board and upload test code.

Connect the WT588D with wiring harness and speaker and upload test code.

Any sensor can be used to trigger specific or random sounds and going even further, a basic neural network could make decisions using multiple sensor inputs.

Connect the photocell to the expansion board and upload test code.

Connect the Microphone to the expansion board and upload test code.

Connect the PIR sensor to the expansion board and upload test code.

Insert Arduino Nano into Expansion Board and plan to provide power using USB to mini USB cord.  Optionally, AC/DC Outlet Power Adapter

Enclosing the project

Drill 7/16” – 1/2” holes into the project box:

  • HOLE 1: side
  • USB to mini USB ~ 5ft. cord
  • Optionally, AC/DC Outlet Power Adapter
  • HOLE 2:  cover push-button
  • HOLE 3:  cover push-button
  • top front side
  • HOLE 4:  (1-4) strips of 10 RGB 12mm LEDs
  • HOLE 5:  speaker connector
  • HOLE 6:  side
  • microphone, PIR sensor

It takes time to learn how to use tools and equipment successfully, let alone, have the time to actually make the project meet your expectations.  Time used for the project is time that could be spent with family, friends, learning something more important, etc.

You can purchase a completed SoundFXLight directly from me as a functioning example.

Learn much more at http://www.hydroMazing.com

Code

Custom WT588D LibraryC/C++
Custom WT588D Library
/*
* @file WayTronics.h
*  hydroMazing  Copyright (C) 2014 Cory J. Potter - All Rights Reserved
*  please write to: <coreconduitconsulting@gmail.com>
*
*   Licensed under the Apache License, Version 2.0 (the "License");
*   you may not use this file except in compliance with the License.
*   You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
*   Unless required by applicable law or agreed to in writing, software
*   distributed under the License is distributed on an "AS IS" BASIS,
*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*   See the License for the specific language governing permissions and
*   limitations under the License.
*/

/**
* @file WayTronics.h
* This program cycles through the first eight files loaded onto a WT588D-XX Sound Module
*
* The pins labeled on the data sheet as CLK, DI, DO, CS, REST are for programming
* the module via the external USB programmer.
*
* In the Waytronic VoiceChip beta software, the settings are configured as "Control Mode: Three Line Mode, and Busy Mode: LOW"
*
*
*/

#ifndef __WAYTRONICS_H__
#define __WAYTRONICS_H__

#ifdef ARDUINO

#include "WT588D.h"

#define WT588D_RST  3 //Module pin "REST" or pin # 1
#define WT588D_CS   5 //Module pin "P02" or pin # 11
#define WT588D_SCL  6 //Module pin "P03" or pin # 10
#define WT588D_SDA  4 //Module pin "P01" or pin # 9
#define WT588D_BUSY 2 //Module pin "LED/BUSY" or pin # 15

WT588D myWT588D(WT588D_RST, WT588D_CS, WT588D_SCL, WT588D_SDA, WT588D_BUSY);

// #define ALIEN_LOCUSTS_LOOP									                 1
// #define ALIEN_WIERDNESS_DESCENDING                          2
// #define ALIEN_WIERDNESS                                     3
// #define ALIEN_WOOSH_01                                      4
// #define ALIEN_WOOSH_03                                      5
// #define BOILING_WATER                                       6
// #define BOMB_EXPLODING                                      7
// #define BUZZER                                              8
// #define CHICKEN_LONG                                        9
// #define CHICKEN_QUICK                                       10
// #define CLUCKINGHEN                                         11
// #define COMPRESSOR                                          12
// #define COUGAR                                              13
// #define CRACKING_DOOR                                       14
// #define CRUSHING_TINCAN                                     15
// #define CRYING_BABY                                         16
// #define CUCKOO_CLOCK                                        17
// #define DANCE_ACCORDION                                     18
// #define DENTISTS_DRILL                                      19
// #define EXCELLENT_WORK_1                                    20
// #define EXCELLENT_WORK_2                                    21
// #define FEMALE_SCREAM                                       22
// #define FEMALE_YAWN                                         23
// #define FINGERNAILS_ON_BLACKBOARD                           24
// #define FIREALARM                                           25
// #define GAME_OVER                                           26
// #define GIBBERISH01                                         27
// #define GIBBERISH05                                         28
// #define GOOD                                                29
// #define GROWLINGDOG                                         30
// #define HANDLE_PULL                                         31
// #define HELICOPTER                                          32
// #define HELLO_AGAIN_AND_WELCOME                             33
// #define HELLO                                               34
// #define HORSE_HOOVES                                        35
// #define INSERT_COIN1                                        37
// #define INSERT_COIN2                                        38
// #define JACKHAMMER                                          39
// #define MICROWAVEOVEN                                       40
// #define OLDSTYLE_COIN                                       41
// #define OLDSTYLE_PULL                                       42
// #define OLDSTYLE_REEL                                       43
// #define PAYOUT                                              44
// #define PAYOUT_BIG                                          45
// #define PAYOUT_COINS                                        46
// #define PLEASE_DONOT_ADDRESS_UNIT                           47
// #define PORTALRADIO                                         48
// #define ROARING_TIGER                                       49
// #define SCRATCHING_STYROFOAM                                50
// #define SFX_POWERUP_02                                      51
// #define SFX_POWERUP_03                                      52
// #define SFX_POWERUP_04                                      53
// #define SFX_POWERUP_05                                      54
// #define SFX_POWERUP_06                                      55
// #define SFX_POWERUP_07                                      56
// #define SFX_POWERUP_08                                      57
// #define SFX_POWERUP_09                                      58
// #define SFX_POWERUP_10                                      59
// #define SFX_POWERUP_11                                      60
// #define SFX_POWERUP_12                                      61
// #define SFX_POWERUP_13                                      62
// #define SFX_POWERUP_14                                      63
// #define SFX_POWERUP_15                                      64
// #define SFX_POWERUP_16                                      65
// #define SFX_POWERUP_17                                      66
// #define SFX_POWERUP_18                                      67
// #define SFX_POWERUP_19                                      68
// #define SFX_POWERUP_20                                      69
// #define SFX_POWERUP_25                                      70
// #define SFX_POWERUP_26                                      71
// #define SFX_POWERUP_27                                      72
// #define SFX_POWERUP_28                                      73
// #define SFX_POWERUP_29                                      74
// #define SFX_POWERUP_30                                      75
// #define SFX_POWERUP_31                                      76
// #define SFX_POWERUP_32                                      77
// #define SFX_POWERUP_33                                      78
// #define SFX_POWERUP_34                                      79
// #define SFX_POWERUP_35                                      80
// #define SFX_POWERUP_36                                      81
// #define SFX_POWERUP_37                                      82
// #define SFX_POWERUP_38                                      83
// #define SFX_POWERUP_39                                      84
// #define SFX_POWERUP_40                                      85
// #define SFX_POWERUP_41                                      86
// #define SFX_POWERUP_42                                      87
// #define SFX_POWERUP_43                                      88
// #define SFX_POWERUP_50                                      89
// #define SPACE_GUN                                           91
// #define SPACE_NOISE                                         92
// #define SPACE_TAKEOFF                                       93
// #define STOP_REEL                                           94
// #define THE_PRICE_IS_RIGHT_LOSING_HORN                      96
// #define TOILET_FLUSH                                        98
// #define TYPEWRITER                                          99
// #define WASPS												101
// #define WHAMMY												102
// #define WHAT_ARE_YOU_DOING									103
// #define WOMP_WOMP_WOMP										104


#define BOILING_WATER						  1
#define BREATH                                2
#define CHAINS                                3
#define CRACKING_DOOR                         4
#define CREATURE_BREATH_03                    5
#define CREATURE_BREATH_04                    6
#define CREATURE_GROWL_04                     7
#define CREATURE_GROWL_07                     8
#define CREATURE_SNARL_02                     9
#define CREATURE_SNARL_04                     10
#define DENTISTS_DRILL                        11
#define ELECTRIC_SPARK                        12
#define ELECTRIC_SPARKS                       13
#define FEMALE_SCREAM                         14
#define FOOTSTEPS                             15
#define GADGET                                16
#define GAS_LEAK_01                           17
#define GLASS_BREAK                           18
#define GRUNTS_MALE                           19
#define LAUGH_MALE                            20
#define METAL_CLANG                           21
#define METAL_HIT_04                          22
#define METAL_LID_01                          23
#define BONES_BREAKING                        24
#define BUBBLING                              25
#define CREAKS                                26
#define DOG_BARKING                           27
#define DOG_SNARLING                          28
#define GROANING_MAN                          29
#define KOOKABURRA_BIRD                       30
#define POLTERGEIST                           31
#define STRANGLED_MAN                         32
#define SCRATCHING_STYROFOAM                  33
#define SWITCH_08                             34
#define SWITCH_09                             35
#define WASPS                                 36
#define WILD_LAUGHS_MALE                      37
#define WIND_HOWL                             38
#define WINDOW_BREAK                          39
#define WITCH_CACKLE_01                       40
#define WITCH_CACKLE_02                       41
#define WITCH_CACKLE_03                       42
#define WITCH_CACKLE_04                       43
#define WOOD_CRACK                            


#else
#error This code is only for use on Arduino.
#endif // ARDUINO

#endif // __WAYTRONICS_H__
Github
https://github.com/ACDCLabs/WT588D
Github
https://github.com/rydepier/Arduino-talking-clock-with-WT588D---U-32M

Schematics

WT588D Schematics
WT588D Schematics
Dd11738c d149 4625 9b47 4e3414035856 fysq5mtwt3

Comments

Similar projects you might like

Arduino Bluetooth Basic Tutorial

by Mayoogh Girish

  • 455,278 views
  • 42 comments
  • 239 respects

Home Automation Using Raspberry Pi 2 And Windows 10 IoT

Project tutorial by Anurag S. Vasanwala

  • 289,686 views
  • 96 comments
  • 677 respects

Security Access Using RFID Reader

by Aritro Mukherjee

  • 230,759 views
  • 38 comments
  • 240 respects

OpenCat

Project in progress by Team Petoi

  • 197,676 views
  • 154 comments
  • 1,374 respects
Add projectSign up / Login