BAssist (Banjo Assist Robot) Fatemeh Gholizadeh David Hatch Shiva Khanal Gavin Philips

Similar documents
Crazy Alarm Clock. Abstract

Lock Cracker S. Lust, E. Skjel, R. LeBlanc, C. Kim

ECE 511: FINAL PROJECT REPORT GROUP 7 MSP430 TANK

EE 314 Spring 2003 Microprocessor Systems

EMG Sensor Shirt. Senior Project Written Hardware Description April 28, 2015 ETEC 474. By: Dylan Kleist Joshua Goertz

Hardware Platforms and Sensors

DC-Motor Driver circuits

Using Magnetic Sensors for Absolute Position Detection and Feedback. Kevin Claycomb University of Evansville

Training Schedule. Robotic System Design using Arduino Platform

BV4112. Serial Micro stepping Motor Controller. Product specification. Dec V0.a. ByVac Page 1 of 18

Experiment#6: Speaker Control

The Guitar Chord Learning System

Embedded Robotics. Software Development & Education Center

International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering. (An ISO 3297: 2007 Certified Organization)

Figure 1. C805193x/92x Capacitive Touch Sense Development Platform

Mapping Peripheral Capabilities When Migrating From 8-bit to 16-bit PIC MCUs

Rory Garforth Guitar Handouts - 1

JUMA-TRX2 DDS / Control Board description OH2NLT

Controlling DC Brush Motor using MD10B or MD30B. Version 1.2. Aug Cytron Technologies Sdn. Bhd.

POLOLU DUAL MC33926 MOTOR DRIVER FOR RASPBERRY PI (ASSEMBLED) USER S GUIDE

Brian Hanna Meteor IP 2007 Microcontroller

νµθωερτψυιοπασδφγηϕκλζξχϖβνµθωερτ ψυιοπασδφγηϕκλζξχϖβνµθωερτψυιοπα σδφγηϕκλζξχϖβνµθωερτψυιοπασδφγηϕκ χϖβνµθωερτψυιοπασδφγηϕκλζξχϖβνµθ

Basic Microprocessor Interfacing Trainer Lab Manual

DESIGN OF AN EMBEDDED BATTERY MANAGEMENT SYSTEM WITH PASSIVE BALANCING

Project Final Report: Directional Remote Control

HB-25 Motor Controller (#29144)

DNT2400. Low Cost 2.4 GHz FHSS Transceiver Module with I/O

TRF7960TB HF RFID Reader Module

RAPID CONTROL PROTOTYPING FOR ELECTRIC DRIVES

uc Crash Course Whats is covered in this lecture Joshua Childs Joshua Hartman A. A. Arroyo 9/7/10

Green Electronics Library Documentation

DC Motor-Driver H-Bridge Circuit

Combinational logic: Breadboard adders

ZX Distance and Gesture Sensor Hookup Guide

ZKit-51-RD2, 8051 Development Kit

E85: Digital Design and Computer Architecture

EXPERIMENT 12: DIGITAL LOGIC CIRCUITS

Lab 1.2 Joystick Interface

High Current DC Motor Driver Manual

Conventional transistor overview and special transistors

Activity 4: Due before the lab during the week of Feb

Digital-to-Analog Converter. Lab 3 Final Report

EEL4914 Senior Design. Final Design Report

Hello, and welcome to this presentation of the STM32 Infrared Timer. Features of this interface allowing the generation of various IR remote control

ME 461 Laboratory #5 Characterization and Control of PMDC Motors

Analog/Digital Guitar Synthesizer. Erin Browning Matthew Mohn Michael Senejoa

Final Report MAL-9000

UNIVERSITY OF VICTORIA FACULTY OF ENGINEERING. SENG 466 Software for Embedded and Mechatronic Systems. Project 1 Report. May 25, 2006.

PreLab 6 PWM Design for H-bridge Driver (due Oct 23)

Mechatronics Laboratory Assignment 3 Introduction to I/O with the F28335 Motor Control Processor

TLE9879 EvalKit V1.2 Users Manual

The Datasheet and Interfacing EE3376

ECE 511: MICROPROCESSORS

High Voltage Waveform Sensor

DNT900. Low Cost 900 MHz FHSS Transceiver Module with I/O

Knight Light. LED Chess. Nick DeSantis Alex Haas Bryan Salicco. Senior Design Group 16 Spring 2013

Lazy Clock Electronics and Software

Single Board Computer System Undergraduate Education: Design and Fabrication of a mixed signal automated Guitar tuning system

USER S GUIDE POLOLU DRV8838 SINGLE BRUSHED DC MOTOR DRIVER CARRIER USING THE MOTOR DRIVER

DUAL STEPPER MOTOR DRIVER

Atmel U6032B. Automotive Toggle Switch IC DATASHEET. Features. Description

EE445L Fall 2012 Final Version B Page 1 of 7

PIC Functionality. General I/O Dedicated Interrupt Change State Interrupt Input Capture Output Compare PWM ADC RS232

Frequently Asked Questions DAT & ZX76 Series Digital Step Attenuators

Web-Enabled Speaker and Equalizer Final Project Report December 9, 2016 E155 Josh Lam and Tommy Berrueta

Standard single-purpose processors: Peripherals

JamDroid - The Automated Guitar

Electric Bike BLDC Hub Motor Control Using the Z8FMC1600 MCU

OBSOLETE. Bus Compatible Digital PWM Controller, IXDP 610 IXDP 610

Design Of Low-Power Wireless Communication System Based On MSP430 Introduction:

Portland State University MICROCONTROLLERS

AN3252 Application note

ELCT 912: Advanced Embedded Systems

3a Switching Regulator Circuit Diagram Using Lm317

muse Capstone Course: Wireless Sensor Networks

Figure 1: Motor model

Integration Guide. Force Sensing Potentiometer. To be used in conjunction with current FSP series data-sheets available at

Hello, and welcome to this presentation of the STM32L4 comparators. It covers the main features of the ultra-lowpower comparators and some

University of Florida Department of Electrical and Computer Engineering EEL 5666 Intelligent Machines Design Laboratory GetMAD Final Report

Preliminary Design Report. Project Title: Search and Destroy

Exercise 5: PWM and Control Theory

EVDP610 IXDP610 Digital PWM Controller IC Evaluation Board

System Board 6219 MAXREFDES89#: MAX14871 Full-Bridge DC Motor Driver MBED Shield

EE 308 Lab Spring 2009

µchameleon 2 User s Manual

International Journal of Advance Engineering and Research Development AUTOMATIC METER READING FOR ELECTRIC BOARD USING RF (RADIO FREQUENCY)

Application Note 100% modulation (On-Off Keying)

Capacitive Sensing Interface of QN908x

ECET 211 Electric Machines & Controls Lecture 7 Relays. Lecture 7 Relays

eguitar G R O U P 7 B R A N D O N B E R K C O M P U T E R E N G I N E E R W I L L I A M R E M I N G T O N E L E C T R I C A L E N G I N E E R

Design and Implementation of AT Mega 328 microcontroller based firing control for a tri-phase thyristor control rectifier

List of Items Available in the Laboratory the Lab

International Journal of Advance Engineering and Research Development. Wireless Control of Dc Motor Using RF Communication

Roland Kammerer. 13. October 2010

Rapid Array Scanning with the MS2000 Stage

INF8574 GENERAL DESCRIPTION

In this lab, you ll build and program a meter that measures voltage, current, power, and energy at DC and AC.

3.3V regulator. JA H-bridge. Doc: page 1 of 7

LED controllers. Voltage-switch drivers, constant-current drivers, and Flash LED drivers

EMBEDDED SYSTEM DESIGN FOR A DIGITAL MULTIMETER USING MOTOROLA HCS12 MICROCONTROLLER

Transcription:

BAssist (Banjo Assist Robot) Fatemeh Gholizadeh David Hatch Shiva Khanal Gavin Philips Abstract Playing musical instruments is a specialized skill requiring years of practice and dedication to master. For some people, this commitment is not an easy one. For those with medical conditions affecting use of their hands, it may be impossible. The Banjo is one such instrument. The Banjo is played with two hands, one hand to finger the frets of the desired string, the other to pluck the string sounding the note. For those not capable (or willing) to operate with both hands simultaneously, the Banjo Assist (BAssist) Robot will handle plucking the strings in preprogrammed patterns, allowing the user to play banjo only by fretting the desired notes. The BAssist uses a TI MSP430F5529 and five solenoids to pluck each string, assisting in the playing on the banjo in the Scruggs style, which is defined by a rolling pattern of picking alternate strings, typically in a pattern of eight which is used as the length of the pre-programmed patterns. In addition, BAssist allows the user to control tempos via push buttons and review information about the patterns on an LCD character display peripheral. This system will hopefully give those who were previously incapable of playing any two-handed instrument the ability to play the banjo. 1

Table of contents Contents Motivation... 3 Solution... 3 Block Diagram... 3 Components... 4 Solenoids... 4 LCD... 4 Switches... 5 Results... 6 Bibliography... 7 Appendix... 8 2

Motivation Music is enjoyed by many people around the world, but the joy of creating music is experienced by a much smaller number. Playing a musical instrument can be difficult for many people, and for some, it may be impossible to play certain instruments the way they were intended. One such instrument is the Banjo. With many styles of playing, each requiring the synchronous use of two hands, this instrument can be tricky to learn or almost impossible to play without full use of both hands. One style of playing is the Scruggs style. This style is characterized by a rolling pattern of alternating string plucks, most commonly patterns of eight. These patterns are played with the plucking hand while the other hand frets the desired chord. Solution BAssist aims to simplify the playing of the banjo in the Scruggs style by allowing the user to perform using only one hand to fret the desired chords. BAssist, which is implemented on a TI MSP430F5529 microcontroller, will pluck out pre-programmed patterns of 8. The patterns are set to some of the most common patterns beginners in the style learn, and BAssist will play the patterns at a tempo set by the user via the tempo control system. The implementation of this system will open up the possibility for those to perform on the banjo without needing to worry about controlling two hands simultaneously, which may also allow those who may not have full control of two hands to experience the joy of playing a musical instrument. Block Diagram Fig. 1: Block Diagram 3

Components Solenoids Fig. 2: 5V Mini push pull Solenoid Fig. 3: Interface connection Description: Solenoids are electromagnets they are made of a big coil of copper wire with an armature (a slug of metal) in the middle as shown in Figure 2. When the coil is energized, the slug is pulled into the center of the coil. This allows the solenoid to push and pull via the application and removal of power. Hardware interface: Solenoid actuators connected to GPIO pins through TIP120 Darlington power transistors as shown in Figure 2. Note that a 1.5 kohm resistor is placed in series with the base of the transistor to limit current between the MCU s output pin and the transistor. Software interface: The software interface for the solenoids is simple. Upon board initialization, five GPIOs (one for each banjo string) are configured as output pins. Because the solenoid can only move between two states, each solenoid can be completely controlled with one digital general-purpose I/O pin. When the application needs to move the solenoid, it toggles the line. LCD Character Display Fig. 4: Newhaven Display LCD Character Display NHD-0216K1Z-FL-YBW Description: As its name would suggest, the LCD character display is used for displaying numbers and characters. In BAssist, the application sends pattern names to the screen to inform the user what pattern he has selected. 4

Hardware interface: Hardware interfacing for BAssist s LCD character display is relatively complicated. The LCD character display uses 5V logic, but the MSP430F5529 utilizes 3.3V logic. Unfortunately the MCU s logic high is below the threshold for a logic high on the LCD character display, which is V IH = (0.7)*V CC, where V CC is 5V. This corresponds to V IH = 3.5V. The two data sheets provided for the LCD character display apparently contradicted each other. One suggested that the display had to be operated at 5V, but the other suggested that V CC could range from 2.7V to 5V. Only 5V was tested. Consequently, there are logic level converters for each of the control and data lines shared between the MCU and the LCD character display. The logic level converters step up the logic highs from 3.3V to 5V. To reduce the number of MCU GPIO pins, the MCU and LCD character display share only 4 of 8 possible data lines. Though it does not directly interface with the microcontroller, the LCD character display requires an additional supply voltage at ~1.3V for character contrast. A voltage divider consisting of a 3 kohm and a trimmed 1 kohm resistor between 5V supply and ground provide the appropriate voltage to the display. Software interface: While the hardware interfacing with the LCD character display was less than ideal, the software interfacing was even hackier. The datasheet for the NHD-0216K1Z-FL-YBW specifies a list of commands used for controlling the display. The MCU sends initialization commands to inform the LCD character display that only 4 data lines will be used. After the initialization commands, the application firmware can write up to 32 characters to the display. The LCD character display does not use a standardized form of serial communications such as UART, SPI, or I2C. Instead, the firmware implements a custom driver that manipulates GPIO lines. The display manufacturer provided pseudo-code driver functions, which were implemented in the firmware. The various lines have to meet timing requirements for the commands and data to be correctly processed by the character display, so a 1 khz timer was implemented in the firmware to ensure consistency in timing the line changes. Switches Description: A switch allows the user to interface with the system manually. Switches on BAssist control tempos, pattern selection, and whether the system is playing. BAssist uses both onboard and offboard switches. Broadly, switches encode two possible states opened and closed. Hardware interface: Each switch is connected to one GPIO on the MCU. The other end of each switch is tied to ground, and current limiting resistors are included to prevent shorting the MCU pin to ground. Fig. 5: switch Fig. 6: internal connection. Software interface: Though the hardware interface for the switches is very simple, the software is a bit more complicated. Because the user controls the switch state, the application firmware must configure the GPIOs as inputs. Additionally, the application firmware does not know when the user will change the switch state. Polling the switch is inefficient, as users do not frequently manipulate the switches relative to the speed of the MCU. Therefore the GPIOs associated with the switches are associated with interrupts, which change the selected pattern, the tempo, and the play state. 5

There are also issues associated with the electrical connection when the user depresses the switch. Because the contacts may connect and disconnect several times in a very short interval, there may be multiple edges triggering multiple interrupts. To avoid unintended interrupts, the application firmware uses the 1 khz timer to ignore edges for a short time after hitting the interrupt. Results Overall, BAssist is a success. The user can cycle through the different patterns, enable and disable play, and control the tempo at which each pattern is performed. The user sees the pattern name on the LCD as he cycles through the different patterns as well. BAssist does have some limitations. Solenoids draw a tremendous amount of power, and much of that power dissipates as heat. If a user accidentally touches the solenoid after using BAssist for a long time, he may find himself exclaiming yowch! and searching for the nearest ice water. Additionally, fast tempos cannot be played reliably on the BAssist. Finally, the hardware encasement was not reliable and robust to banjo movement. 6

Bibliography Solenoid datasheet and information on hardware interfacing: https://www.adafruit.com/product/412 http://playground.arduino.cc/uploads/learning/solenoid_driver.pdf Newhaven Display Datasheets: http://www.newhavendisplay.com/specs/nhd-0216k1z-fl-ybw.pdf http://www.newhavendisplay.com/app_notes/st7066u.pdf 7

Appendix Team Members/Task Division Fatemeh Gholizadeh: LCD hardware interfacing and firmware development David Hatch: solenoid-banjo interfacing, component selection, firmware development for solenoid control Shiva Khanal: switch interrupts and logic Gavin Philips: LCD hardware interfacing and firmware development, firmware integration with MSP libraries Application Firmware Flowchart 8

Schematic 9