【2B青年文艺转型】- 激光竖琴
如题,自己每次摸到乐器就会yy弹琴的样子: 如下
实在不济也是
家里妹子不久前告诉我“其实你是酱紫”
当时老子的心里是崩溃的
之前蘑菇云扔了台激光竖琴,卤煮家妹子做的,但带出去文(zhuang)艺(bi)实在是不方便。
所以就心想能不能搞个小的,出去浪也方便啊。
static/image/hrline/5.gif
说搞就搞,身为蘑菇云搞事情一把手 首先是 买买买BOM清单
1> Φ12mm直径10mW532nm绿光激光模组点状定位瞄准绿色激光头发射管 * 7
2> 模拟环境光线传感器(Arduino兼容) DFR0026 * 7
3> DFRduino Mega2560 V3.0控制器DFR0165* 1
别问我为啥用mega,有钱任性(要7个模拟口啊妈蛋,uno只有6个啊mdzz)
4> DFR0165 MEGA传感器扩展板 V2.4 (Arduino兼容) * 1
5> MIDIPLUS miniengine USB MIDI键盘专用硬音源 合成器音源 *1
(这个音源也能当充电宝给arduino供电,好方便哈哈哈哈哈哈)
6> 合成板木片,激光切割板材600mm*600mm*4mm* 6 留了一张备用
7> 3v2a电源适配器 * 1
也别问我为啥用这么奇葩的电源适配器,激光头是3V的,实测电流300mA,7个加起来共2.1A,能买到的功率最大的就3v2a,凑合用了(应该炸不了)。。。
8> midi连接线,USB连接线,等等。
static/image/hrline/5.gif
制作过程 之 切割木板,装配(图纸已上传):
从下到上,共5层,分别为底板,夹层板*3(包括激光头位置,线位,洞洞板的位置),面板(雕刻花纹,logo)
一层一层的叠起来 ↓↓↓
中间是激光头的卡槽 ↓↓↓
激光头装进去,线路焊在洞洞板上,接出正负极两根线,盖上面板,上螺丝。
然后安装传感器在上面,用万能的热胶枪
完了再把mega主控板pia唧到上面,接线。
成品图是酱紫的
static/image/hrline/5.gif
当然身体有了,还缺个聪明的大脑,下面程序奉上
/***************************************************************************
* 激光竖琴 *
* Version: 1.0.0 *
* Date: Apr 06 2017 *
* Name: Richard Lyu *
* Email: <a href="mailto:Richard.lyu@dfrobot.com" target="_blank">Richard.lyu@dfrobot.com</a> *
* *
***************************************************************************/
static const unsigned ledPin = 13; // LED pin on Arduino Uno
static const unsigned Laser[] = {A6,A7,A8,A9,A10,A11,A12}; // Laser on Arduino Uno
static const unsigned LaserThreshold = 500; // 阈值,调整大小以适应外部环境光线条件
static const unsigned note[] = {42,43,44,45,46,47,48}; //修改数组里的数字 调整音高
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(31250);
// play notes from F#-0 (0x1E) to F#-5 (0x5A):
for (int i = 0x1E; i < 0x5A; i++) {
//Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
noteOn(0x90, i, 0x45); // Send a Note (pitch 42, velo 127 on channel 1)
delay(100);
//Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
noteOn(0x90, i, 0x00); // Send a Note (pitch 42, velo 127 on channel 1)
delay(100);
}
}
bool StatePre = {false,false,false,false,false,false,false};
bool StateCur = {false,false,false,false,false,false,false};
//plays a MIDI note.Doesn't check to see that
//cmd is greater than 127, or that data values areless than 127:
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(cmd);
Serial.write(pitch);
Serial.write(velocity);
}
void loop()
{
for(int i = 0;i<7;i++){
/*******Detecting currently if the laser is fired on the sensor**********/
if (analogRead(Laser) > LaserThreshold ){
StateCur = true;
}else{
StateCur = false;
}
/******** Determine if sound should be played *************/
if(StateCur == true && StatePre == false){
noteOn(0x90, note, 0x45);
digitalWrite(ledPin, HIGH);
}else if(StateCur == true && StatePre == false){
noteOn(0x90, note, 0x00);
digitalWrite(ledPin, LOW);
}
/****** shifting in the current state to previous state ***************/
StatePre = StateCur;
}
delay(50);
}
最后放上演奏效果
https://v.youku.com/v_show/id_XMjczMzcxMjI2OA==.html
嗨我就不明白,为啥汉子和妹子差距这么多呢(看下面视频)
https://v.youku.com/v_show/id_XMjczMzQ2OTE5Ng==.html
https://v.youku.com/v_show/id_XMjczMzQ1OTUzNg==.html@nicho
瓦萨,你们搞出来了,66666666 最后两个乱入什么情况{:5_163:} 好吧 = = 这个除了瞅起来不错用起来还是有点蛋疼的 = = {:5_153:} 哈哈哈哈哈哈哈 = = {:5_129:}{:5_125:}哈哈哈哈哈哈哈 https://mc.dfrobot.com.cn/static/image/smiley/chacha/00c.gifhttps://mc.dfrobot.com.cn/static/image/smiley/chacha/00c.gifhttps://mc.dfrobot.com.cn/static/image/smiley/chacha/00c.gifhttps://mc.dfrobot.com.cn/static/image/smiley/chacha/00c.gif
线看不到呀
:)) 哇啊 我真的好喜欢呀 做的真不错呀 非常棒{:5_116:} 那个激光灯是怎么安装的,怎么供电的?还是不太清楚 请教一下,midi这块是怎么连接的?一直想搞midi这块玩一玩,但是一直不知道该用什么设备,怎么连接。感谢感谢。 学习了学习了 {:5_116:},,,, 封子 发表于 2022-3-28 11:04
请教一下,midi这块是怎么连接的?一直想搞midi这块玩一玩,但是一直不知道该用什么设备,怎么连接。感谢感 ...
大佬研究懂了吗
页:
[1]