- Weihang Liang
- weihang2
- ECE110
- Yuechen Wang
- yuechen6
- ECE110
Project Proposal
Eric Liang & Yuechen Wang
- Introduction:
- Statement of Purpose: The purpose of this project is to integrate hand detection using camera sensor with a real instrument, xylophone. By tapping above the imaginary keyboard created by camera vision, the note corresponding to the hand position will be played.
- Background Research: Solenoids are used to play the xylophone by linear motion. Leap Motion sensor is used to detect the position of the hand. A Python program is used to implement the Leap Motion API and send the data to the microcontroller through serial communication. NPN transistors have the function to switch the solenoids on and off and can be controlled by a small current from the Arduino digital pins. “A transistor can act as a digital switch, enabling the Arduino to control loads with higher electrical requirements… Transistors have three pins. For Bipolar Junction Transistors (BJT), like the one used in this example, the pins are called base, collector, and emitter. A small amount of current on the base pin closes a circuit between the collector and emitter pins. BJTs come in two different types, NPN and PNP.” (“Transistor Motor Control,” Arduino.cc)
- Design:
- Block Diagram (Draw.io): See Page 3
- System Overview: The Python program on the ARM/x64 based computer reads the frame from the Leap Motion camera and outputs the hand position if there is a tapping. The hand position is sent through USB Serial/ Wireless Serial to the Arduino based microcontroller. The microcontroller processes the hand position data from the serial and outputs HIGH to the NPN transistors correspondingly. The transistors switch on the solenoids, which play the xylophone.
- Parts:
- DC Boarduino (Arduino compatible) Kit (w/ATmega328) - v1.0
- FTDI Serial TTL-232 USB Cable
- General Purpose NPN transistors *13
- Mini Push-Pull Solenoid - 5V *13
- D'Luca 13 Notes Children Xylophone Glockenspiels with Music Cards
- Raspberry Pi 3 (ARM) or LattePanda 64GB (x64)
- Challenges:
- Using binary number output instead of letting the microcontroller handle the logic
- Writing our own serial protocol
- Transistor Control
- Citation:
- Arduino - TransistorMotorControl, www.arduino.cc/en/Tutorial/TransistorMotorControl. Accessed 22 Sept. 2017.
- Arduino - TransistorMotorControl, www.arduino.cc/en/Tutorial/TransistorMotorControl. Accessed 22 Sept. 2017.
Attachments:
Eric Liang & Yuechen Wang's ECE 110 Honor Project Proposal.pdf (application/pdf)