PHYS 2P32 Project: MIDI for Arduino/ 8 Note Keyboard



Similar documents
Arduino ADK Back. For information on using the board with the Android OS, see Google's ADK documentation.

Arduino Due Back. Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum. Overview

Your Multimeter. The Arduino Uno 10/1/2012. Using Your Arduino, Breadboard and Multimeter. EAS 199A Fall Work in teams of two!

Programming PIC Microcontrollers in PicBasic Pro Lesson 1 Cornerstone Electronics Technology and Robotics II

INTRODUCTION TO SERIAL ARM

User s Manual of Board Microcontroller ET-MEGA2560-ADK ET-MEGA2560-ADK

Android Controlled Based Interface

Controlling a Dot Matrix LED Display with a Microcontroller

Arduino Lesson 13. DC Motors. Created by Simon Monk

Eric Mitchell April 2, 2012 Application Note: Control of a 180 Servo Motor with Arduino UNO Development Board

ARDUINO SEVERINO SERIAL SINGLE SIDED VERSION 3 S3v3 (REVISION 2) USER MANUAL

ezsystem elab16m Project 1F: Alarm System (Full Project description)

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs

Arduino Lab 1 - The Voltage Divider

Digital I/O: OUTPUT: Basic, Count, Count+, Smart+

A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware

Switch board datasheet EB

Arduino project. Arduino board. Serial transmission

TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT

Bluetooth + USB 16 Servo Controller [RKI-1005 & RKI-1205]

Features, Benefits, and Operation

ROCK BAND 3 WIRELESS KEYBOARD:

RGB for ZX Spectrum 128, +2, +2A, +3

Workshop Intel Galileo Board

PolyBot Board. User's Guide V1.11 9/20/08

revolution Contents: Introduction Power 28-pin Project Board with input/output cables

Current Loop Application Note 1495

DMX512 TO 0-10 VOLT ANALOG CONVERTER OWNERS MANUAL

2.0 Command and Data Handling Subsystem

Intro to Intel Galileo - IoT Apps GERARDO CARMONA

Mini Effect Gizmo. User s Manual. RJM Music Technology, Inc.

Glolab Talking Phone Dial Monitor

GLOLAB Universal Telephone Hold

Using Arduino Microcontrollers to Sense DC Motor Speed and Position

AC-PG-USBASP USBASP AVR Programmer

Zeros, Ones, and the Morse Code

Arduino Lesson 1. Blink

8-Bit Microcontroller with Flash. Application Note. Using a Personal Computer to Program the AT89C51/C52/LV51/LV52/C1051/C2051

Tiny Arduino Music Visualizer

Smarthome SELECT Bluetooth Wireless Stereo Audio Receiver and Amplifier INTRODUCTION

Electronics 5: Arduino, PWM, Mosfetts and Motors

Cornerstone Electronics Technology and Robotics I Week 15 Voltage Comparators Tutorial

SainSmart UNO R3 Starter Kit

Alcatel-Lucent OmniPCX Enterprise Communication Server TA-MMK (MMK V2)

The basic set up for your K2 to run PSK31 By Glenn Maclean WA7SPY

CHAPTER 11: Flip Flops

KTA-223 Arduino Compatible Relay Controller

BIULA AUDIO TRIGGER for Canon Digic II DSLR


[F/T] [5] [KHz] [AMP] [3] [V] 4 ) To set DC offset to -2.5V press the following keys [OFS] [+/-] [2] [.] [5] [V]

Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide

Surveillance System Using Wireless Sensor Networks

Adafruit MCP9808 Precision I2C Temperature Sensor Guide

QUICK START GUIDE FOR DEMONSTRATION CIRCUIT BIT DIFFERENTIAL ADC WITH I2C LTC2485 DESCRIPTION

How To Program A Microcontroller Board (Eb064) With A Psp Microcontroller (B064-74) With An Ios 2.5V (Power) And A Ppt (Power Control) (Power Supply) (

Hands On ECG. Sean Hubber and Crystal Lu

Y-Not. User s Manual. RJM Music Technology, Inc.

AXE033 SERIAL/I2C LCD

Introduction. Getting familiar with chipkit Pi

Introducing AVR Dragon

Arduino Lesson 14. Servo Motors

BrightSign Expander Hardware Guide

Tutorial. replace them with cell-phone operated module. The advantages of a cell-phone operated bot are:-

Microcontrollers and Sensors. Scott Gilliland - zeroping@gmail

RN-52 Bluetooth Hookup Guide

Arduino Microcontroller Guide W. Durfee, University of Minnesota ver. oct-2011 Available on-line at

ABACOM - netpio.

DEPARTMENT OF ELECTRONICS ENGINEERING

RS232 Board datasheet

In-System Programmer USER MANUAL RN-ISP-UM RN-WIFLYCR-UM

Data Sheet. Adaptive Design ltd. Arduino Dual L6470 Stepper Motor Shield V th November L6470 Stepper Motor Shield

AVR Butterfly Training. Atmel Norway, AVR Applications Group

IR Communication a learn.sparkfun.com tutorial

8-Sensor Gas Detection System

MN1010 Evaluation Kit v3 User Guide

1 Coffee cooling : Part B : automated data acquisition

Final Project Example

Programming Device Manual Booklet AVR Prog USB v2

The $25 Son of a cheap timer This is not suitable for a beginner. You must have soldering skills in order to build this kit.

Vibration Measurement of Wireless Sensor Nodes for Structural Health Monitoring

Ethernet. Customer Provided Equipment Configuring the Ethernet port.

USER GUIDE Programming Adapter Cable for Fujitsu Flash Microcontroller- F²MC-16LX/FR Family Fujitsu Microelectronics America, Inc.

GCX. Guitar Audio Switcher OWNER S MANUAL

EARTH PEOPLE TECHNOLOGY SERIAL GRAPH TOOL FOR THE ARDUINO UNO USER MANUAL

Part 1. MAX BIT DAC with an Arduino Board. MIDI to Voltage Converter Part1

UPDATING THE DM 24 FIRMWARE VIA MIDI

PIKA Technical Bulletin #41. V-12 RAN Trunk Interface Implementation

MIDECO 64-outputs MIDI note decoder USER MANUAL. Roman Sowa 2012

MN3310 Evaluation Kit v1 User Guide

Fubarino TM SD Reference Manual

Objectives: Part 1: Build a simple power supply. CS99S Laboratory 1

Arduino Lesson 16. Stepper Motors

TESTER MMS FG-220 OPERATING INSTRUCTIONS. valid from 2/2015. Machine Monitoring Systems

SB-2000 USB Radio Interface Operating Manual CG Antenna Co. Ltd.

1. SAFETY INFORMATION

User Manual. AS-Interface Programmer

ECD 2 High Performance Balanced DAC. 24 Bit /192kHz. Owner's Manual

Six-servo Robot Arm. DAGU Hi-Tech Electronic Co., LTD Six-servo Robot Arm

LAB4: Audio Synthesizer

Manufactures of: All. Dallas Delta Corporation Pty.Ltd. Pty.Ltd. 102 Albert St. East Brunswick, 3057 Vic. Tel: Fax:

Transcription:

PHYS 2P32 Project: MIDI for Arduino/ 8 Note Keyboard University April 13, 2016

About Arduino: The Board Variety of models of Arduino Board (I am using Arduino Uno) Microcontroller constructd similarly to ATmega 328P chip (shown in figure)

The Board Cont d Parts:16 MHz crystal, 14 input/output pins, 6 analog inputs, reset button, USB port, power jack Can be powered by USB connection, AC-to-DC adapter or battery can function with external supply of 6-20 volts (less= unstable, more= overheating)

The Board Cont d 32 KB of flash memory (for storing code), 2 KB or SRAM (static random access memory) and 1 KB of EEPROM (electrically erasable programmable read-only memory) Schematic of Arduino Uno Board:

About Arduino: The Software Arduino 1.6.8 is the open source (IDE) software used for this board Software runs on Mac, Windows and Linux Software connects to Arduino board to communicate and upload programs There is a verify button for checking codes for any errors and an upload button to upload the code to the board Option to open a serial monitor that displays serial data sent from board

About Arduino: Coding on Arduino Main Functions: Setup(): used at beginning of code, can be used to initialize variables, pin modes, etc. and will only run once loop(): straight forward function, allows program to respond and loop/ repeat a code // used to comment out sections, useful for explaining sections of a code

Part 1: Keyboard With 8 Keys Parts: Arduino Uno board 8 buttons (for each key) 8 resistors (220 ohms used for the buttons to connect to positive voltage) jumper wires and a bread board Piezo: an electrical device that detects vibrations and creates noise (frequency produced are typically 2000 to 4000 Hz)

Keyboard With 8 Keys Cont d The Circuit: One end of each button connected to positive end of breadboard Other end of each button connected (through 220 hms resistor) to negative end of breadboard, as well as connected to output 2 through 9 on digital end of arduino board Positive end of piezo connected to output 13 on Arduino board Negative end of piezo connected to negative end of breadboard Ground output on Arduino connected to negative on breadboard 5V on Arduino connected to positive on breadboard

Keyboard With 8 Keys Cont d

Keyboard With 8 Keys Cont d

Keyboard With 8 Keys Cont d The Code: Code I developed was rather straight forward in its commands 1. Declared each button and outputs from arduino circuit 2. Assigned each button certain tone frequency 3. Created if statement to detect if button is pressed and send signal to piezo to sound specific frequency

Keyboard With 8 Keys Cont d Block Diagram: Start Label Each Button Assign Tone Frequencies If: Button Pressed Yes Signal Piezo to Play Frequency No Piezo Remain Soundless

Keyboard With 8 Keys Cont d Modifications Encountered number of challenged for which had to adapt and accommodate for: 1. Capacitive sensing: had to dowlnoad new software, learn coading techniques, develop code to activate arduino 2. Setting each not to play a specific frequency: some buttons/ keys did not preform as desired (could be because of the limited range of the piezo)

Part 2: MIDI for the Arduino About MIDI: MIDI: abbreviation for Musical Instrument Digital Interface Come in many shapes and sizes Allows one to explore musical world in many different ways Not a sound or audio, but rather a system that allows computers and electronic musical instruments to send instructions and communicate with each other Devices communicate through instructions and signals, and are connected through MIDI cables

MIDI for the Arduino Cont d Parts: Arduino Uno Board Breadboard and jumper wires 5-pin MIDI jack four resistors (three 220 ohms, one 4.6 k ohms) 6n138 Optocoupler:contains light-emitting and light-sensitive components used to couple isolated circuits (i.e. interconnects 2 separate electrical circuits through a light sensitive optical interface)

MIDI for the Arduino Cont d 6n138 Optocoupler datasheet:

MIDI for the Arduino Cont d The Circuit: Ground output on Arduino connected to negative on breadboard 5V on Arduino connected to positive on breadboard Placed 6n138 Optocoupler chip on breadboard Connected pin 8 on optocoupler to positive end of breadboard, and pin 5 to negative part 4.7 k ohms resistor from pin 7 to negative on breadboard

MIDI for the Arduino Cont d 220 ohms resistor between pin 2 and 8 on optocoupler Diode with negative end on pin 2 and postive on pin 3 Pin 4 on MIDI jack connected to pin 3 on optocoupler (through 220 oms resistor) Pin 5 on MIDI jack connected to pin 3 optocoupler RX pin on Arduino to pin 6 on optocoupler

MIDI for the Arduino Cont d Circuit:

MIDI for the Arduino Cont d Circuit:

MIDI for the Arduino Cont d The Code: 1. Download MIDI library onto Arduino software and declare in code to ensure Arduino can read MIDI outputs 2. Define LED on arduino to be connected to pin 13 3. Set up () part, set Arduino pin 13 to output and then initialized MIDI library for board to respond when a note is played 4. sethandlenoteon function added to instruct MIDI librarywhich function to call when note is played

MIDI for the Arduino Cont d 1. sethandlenoteoff comman added after this to then instruct library to turn off when note is not played 2. In Looped part of code: added MIDI.read to constantly check if any notes played (i.e. any MIDI data received) 3. Instructed LED on Arduino to turn on when detects note being played and off when no note played

MIDI for the Arduino Cont d Code with explanation:

MIDI for the Arduino Cont d Block Diagram: Start Call MIDI Library Define Pin 13 to turn on LED If: Note played Yes Turn on LED No Turn of LED

Conclusion Through this project, I acquired valuable skills and knowledge in circuits and coding Became acquainted with Arduino Uno and structure/ purpose of it Learned components of the board that will help me in future as I further my exploration into the board/ its properties Challenges faced helped me gain insight into developing functional circuit and how to code certain functions

Conclusion Codding for Arduino generally stright forward, however took a while to become comfortable with schematics and specific function properties Gained understandign of MIDI s and functionality of them Project allowed me to gain deeper understanding of course content and experience content hands on