2016-9-22 11:03:53 [显示全部楼层]
10050浏览
查看: 10050|回复: 7

[项目] 打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)

[复制链接]
我想制作一款仿泰勒明、特雷门电子琴,根据距离传感器的距离长短,产生不同的音律,然后来演奏
外壳将使用3D打印的盒子制作

我是比较懒的人,虽然东西早就做好了,但是看见其他人还没交作业,我就一直也没整理材料,要不是Ash催我,我估计还得等很长一段时间,首先感谢Ash赠送的Arduino编程积木套件 和红外测距传感器

简单介绍下泰勒明、特雷门电子琴
打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图1

当然我们这次制作的特雷门琴和这个原理并不一样,但是也是通过手在空中位置来演奏音乐。
下面我将制作过程分析给大家@Ash



制作材料
1、Arduino编程积木套件
打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图2

我们需要用到里面的UNO主控板、  IO传感器扩展板 V7.1和数字蜂鸣器模块

2、红外测距传感器SHARP GP2Y0A41SKOF 红外距离传感器 (4-30cm)
打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图3

二、连线方式:
将IO传感器扩展板 插在DFRduino UNO R3    上
将SHARP GPY2D120X红外距离传感器的杜邦3PIN线接
IO传感器扩展板 的A1引脚上
将数字蜂鸣器模块的杜邦3PIN线接在 IO传感器扩展板 的9引脚上

三、代码



  1. /connect gp2d120x to A1
  2. #define pin A1
  3. #define NTD1 294
  4. #define NTD2 330
  5. #define NTD3 350
  6. #define NTD4 393
  7. #define NTD5 441
  8. #define NTD6 495
  9. #define NTD7 556
  10. int tonepin=9;
  11. void setup () {
  12.         Serial.begin (9600);
  13.         pinMode(pin, INPUT);
  14.         pinMode(tonepin,OUTPUT);
  15. }
  16. void loop () {
  17.         uint16_t value = analogRead (pin);
  18.         double distance = get_IR (value); //Convert the analog voltage to the distance
  19.         if(distance>5&&distance<8){
  20.         tone(tonepin,NTD1);
  21.         }
  22.         if(distance>8&&distance<11){
  23.         tone(tonepin,NTD2);
  24.         }
  25.         if(distance>11&&distance<14){
  26.         tone(tonepin,NTD3);
  27.         }
  28.         if(distance>14&&distance<17){
  29.         tone(tonepin,NTD4);
  30.         }
  31.         if(distance>17&&distance<20){
  32.         tone(tonepin,NTD5);
  33.         }
  34.         if(distance>20&&distance<23){
  35.         tone(tonepin,NTD6);
  36.         }
  37.         if(distance>23&&distance<26){
  38.         tone(tonepin,NTD7);
  39.         }
  40.         //Serial.println (value);                 //Print the data to the Arduino serial monitor
  41.         Serial.print (distance);
  42.         Serial.println (" cm");
  43.         Serial.println ();
  44.         delay (500);                            //Delay 0.5s
  45.         noTone(tonepin);
  46. }
  47. //return distance (cm)
  48. double get_IR (uint16_t value) {
  49.         if (value < 16)  value = 16;
  50.         return 2076.0 / (value - 11.0);
  51. }
  52. /******** end code ********/
复制代码





制作过程的照片
打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图4打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图5打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图6

打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图7打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图8打破常规 我要挑战+ (仿)泰勒明、特雷门电子琴(作业)图9

hnyzcj  版主

发表于 2016-9-22 12:49:45

你都做好了呀,我还在打外壳,速度好快呀
回复

使用道具 举报

dsweiliang  初级技神

发表于 2016-9-22 14:14:14

教程呢?
回复

使用道具 举报

kaka  高级技师
 楼主|

发表于 2016-9-22 15:00:12


正在写,不急哦
回复

使用道具 举报

kaka  高级技师
 楼主|

发表于 2016-9-22 15:00:53

hnyzcj 发表于 2016-9-22 12:49
你都做好了呀,我还在打外壳,速度好快呀

早做好了,一直没整理,Ash催了,不然我的懒癌症又要犯了
回复

使用道具 举报

Ash  管理员

发表于 2016-9-22 15:09:07

kaka 发表于 2016-9-22 15:00
早做好了,一直没整理,Ash催了,不然我的懒癌症又要犯了



你就演一下劳模嘛,干嘛说出来
回复

使用道具 举报

hnyzcj  版主

发表于 2016-9-22 17:28:35

Ash 发表于 2016-9-22 15:09
你就演一下劳模嘛,干嘛说出来

ASH老板别着急,料今天才发过来
回复

使用道具 举报

hnyzcj  版主

发表于 2016-9-22 17:28:36

Ash 发表于 2016-9-22 15:09
你就演一下劳模嘛,干嘛说出来

ASH老板别着急,料今天才发过来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail