acSequencer - UCF Department of EECS...Google Firebase. SQL vs Firebase. Firebase Firebase layout...

Post on 07-Jun-2020

47 views 0 download

Transcript of acSequencer - UCF Department of EECS...Google Firebase. SQL vs Firebase. Firebase Firebase layout...

acSequencerAudio Sequencer unit partially controlled via a mobile application.

Group 10: Brandon Marcoux (CpE) Giani Francis (Cpe)

Miguel Chavez (Cpe) Alexis San Javier (Cpe)

What is an Audio Sequencer?Project Description

Audio Sequencers

● Programmed music, sounds over time.● Implemented in many different ways for

many different platforms.● Sounds assigned to channels, dynamically or

statically.● Output can be a trigger signal or audio.● Basic components: Start/Stop button,

sequencing button array, Tempo and Volume controls.

What do we aim to change?● Update the sequencing workflow for the modern day.

○ Phones in place of computers.○ Bluetooth sound transfer in place of wired connection or transferable storage medium.

● Improve portability while maintaining appeal of physical unit.● Share your sounds with your friends.● Add new sounds easily.● Low price point

Goals and Objectives● Main Goal: Create a professional grade product that musicians will prefer to use over other

commercially available options.● Maintain well formatted documentation in order to ensure the project is scaleable and

maintainable.● Design a product that will durable and easily replicated and built.

System Design

Requirements● MCU -> Smartphone wirelessly for sound transfer● 8 channels x 16 steps.● MCU can store at least 8 10-second sound files.● Physical unit with at least two output options.● Mobile application allows user to select sets of sound samples from an existing library as

well as access their own for uploading to the MCU.● Unit weight of less than 5 pounds.● Unit can run on battery power or from a power supply (provided with the unit).● Users can alter tempo and volume from the unit.

System component Diagram

Hardware Design andImplementation

Multiplexing overview● Necessary due to limited number of pins on MCU.● Handle outputting signal for LEDs, input signal for buttons.● Utilizing bicolor LEDs, 8x16 array, makes for 256 effective LEDs.

○ Secondary color will be lit per row (16 rows) to show tempo cycle, so we don’t need control of individual LEDs.

○ Reduces effective LED number to 144.

● 8x16 buttons = 128 buttons.● The MCU does not have 272 GPIO pins.

Button Multiplexing● The best way we could find to multiplex the buttons was to connect them in rows and

columns. That way, when we read which button is pressed, we can detect the row and column and figure out which button has been pressed. All buttons are momentary push buttons.

● With the SN74LS148 one can utilize multiple units and cascade them with a multi NAND gate in order to implement a 16:4 encoder.

● Utilizing one SN74LS148 (8:3 encoding) for the columns and two in a 16:4 configuration will accommodate reading all buttons using only 7 GPIO pins.

LED Multiplexing● Shift Register implementation (74HC595) vs Decade counter implementation (CD4017B)

vs LED Display Driver (MAX7219).● Based on the number needed and efficiency the MAX7219 was the obvious option.

MCUThe microcontroller selection was the most important decision to make in the design of our project. We chose the ATmega328 for the following reasons -

● high performance

● low power

● large online community for support during development

● 5V operating voltage

● 32KB flash memory

● processing speeds of 16MHz.

● cost effective

Bluetooth Module● The SH-HC-08 is a Bluetooth 4.0 BLE module is required for our wireless design. ● The Bluetooth module will allow us to send instructions, sound files, and sound set

outputs wirelessly. ● Permits the transfer of serial data from our mobile application to hardware

Bluetooth Unit Operating Voltage (V)

Pins Required Version Price ($)

Bluefruit LE 3.3-5 6 4.0 BLE 17

HC-06 RS232 TTL 3.3 2 2.0 7

SH-HC-08 3.3-5 2 4.0 BLE 8

Bluetooth Data Transfer Data transfer for our project will be done using serial communication. Below is a prototype of the steps taken to control the sequencer from the mobile application.

● Mobile Application will send sounds associated with each row in the LED matrix to the bluetooth peripheral.

● Bluetooth module will read in serial data● Microcontroller will store value of that data in some

variable● The values stored on the MCU will correspond with a

sound and row

SD Card Module● We will be using the Adafruit SD Card Breakout Board● Playing audio files from the SD card is a key function of this project. ● If the SD Card breakout board is configured correctly on the board, the hardware has the

capability to read and write files to the MicroSD card using simple code.● If we are able to read wav files to the SD card, this can lead to several potential features.

Playing Multiple SoundsRequirements needed to test and play multiple sounds are:

● ATmega328 microcontroller● Adafruit SD Card Breakout Board● MicroSD card● Speaker (at least 8 ohm)● TMRcpm WAV library for arduino. ● Summing Solutions

Enclosure● Material Property Considerations:

○ Weight○ Durability○ Ease of construction

● Materials considered:○ Wood○ Plastic (3d printed)

Power Constraints● All chosen components run on 9, 5, or 3.3 volts.● A system requirement specifies that we must be able to supply the system from a battery or

a wall outlet.

Voltage Regulator Selection● Decided on L78xx series based on:

○ Price point○ Consistency○ We will be able to source all regulators we require from this one series.

SchematicAdd alexis full schematic

SchematicAdd alexis full schematic Main LED Array

SchematicAdd alexis full schematic Secondary LED Array

SchematicAdd alexis full schematic MCU

SchematicAdd alexis full schematicButton Array

PCBMaterials

- Single Layer Copper Clad Board- Muriatic Acid and Hydrogen Peroxide- Drill- Soldering Gun

Process

- Print PCB design on paper and Iron onto Copper Board- Melt Copper using acid mixture - Clean board and drill holes- Solder Components

Software Design andImplementation

System Software Architecture 4 Main Software Components

- Website- Database- Mobile Application- MCU

DatabaseGoogle Firebase

SQL vs Firebase

Firebase

●●●

■■■■

Firebase layout

● ●

Firebase layout cont.

● Sounds ● Users

Mobile Application

Class Diagram

●○○○

●○○

UML Diagram

●○

●●●●

Native vs Hybrid vs Xamarin

iOS Application Design

●○

●○

●○

●○

■■

○■

○■■■

iOS Application UI● Menu

○ 4 Sections■ Sound Sets■ Upload■ Settings■ Log Off

● Sound Sets○ Search through Sound Sets

■ UISearchController○ Add new Sound Sets○ Select a Sound Set to Edit

■ UICollectionView

iOS Application UI● Edit Sound Set

○ Delete Sound set○ Add /Delete Channels○ Play sound on Channel ○ Edit Title○ Select a Sound to Edit

■ UICollectionView

● Select Sound for Channel○ Search through sounds

■ UISearchController○ Add new Sound Sets

Website

Website Functionality

- Create Account- Edit Profile Information

- Username - Password- etc..

- Upload Sounds- Edit Sound Sets

- Create- Delete- Rename

Website UI

Administrative

MilestonesFall 2017

Description Duration Dates

Purchase Remaining Parts and Test Components

1 week August 28th -September 4th

Build Prototype 8 weeks September 4th -October 9th

Test sound files pushing to database using Bluetooth Communication from device to app

1 week September 4th-September 11th

Test LED responsive using Bluetooth Communication from mobile app to device

1 week September 11th-September 18th

Test Playing audio files using Bluetooth Communication from mobile app to device

1 week September 18th-September 25th

Test Playing multiple sounds on the device from the software

1 week September 25th-October 2nd

Test playing files on website once sound set is pushed to database

1 week October 2nd -October 9th

Integrate Software 2 weeks October 9th-October 23rd

Build the housing for the sequencer

1 week October 16th -October 23rd

Debug and Optimize Software 1 week October 16th -October 23rd

Test Prototype 2 weeks October 23rd-November 6th

Finalize Project 2 weeks November 6th-November 20th

Practice Presentation 1 week November 20th-November 27th

Progress

BudgetItem Cost

5Pcs MAX7219 DIP-24 8-Bit LED Drivers Chips for LED display/ Instrument $10.90

20PCS SN74HC00N SN74HC00 74HC00N 74HC00 DIP14 IC#20236 $6.99

2 of Chanzon 100 pcs 5mm Red & Yellow-Green LED Diode Lights $6.47

Adafruit MicroSD card breakout board+ [ADA254] $8.38

DSD TECH SH-HC-08 Bluetooth 4.0 BLE Transceiver for Arduino Compatible with iO $7.99

Major Brands 74LS148 ICs and Semiconductors, 8 to 3 Line Priority Encoder (Pack of 4) $11.11

2 of 100 Pcs GZFY 6x6x4.5mm Panel PCB Momentary Tactile Tact Push Button Switch 4 Pin DIP $5.99

3M 9000NA-20-CC Sandpaper Aluminum Obyide, 9-Inch by 11-Inch, Very Fine $5.07

Hydrogen Peroxide Antiseptic Solution 16 Oz $5.88

Super Nail Pure Acetone Polish Remover, 8 oz $6.42

Single Sided Copper Clad Laminate PCB Circuit Board 4X3 (10pcs) $10.99

Green Envy Muriatic Acid $10.99

Total $91.18

Work Distribution

Mobile App Web Application Bluetooth Communication/Data Transfer

System Design/Hardware

Miguel Chavez Primary Secondary

Giani Francis Secondary Primary Secondary

Brandon Marcoux Primary

Alexis San Javier Primary Secondary

Questions?