电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>基于传感器让我的植物在需要浇水时尖叫

基于传感器让我的植物在需要浇水时尖叫

2023-02-09 | zip | 0.18 MB | 次下载 | 免费

资料介绍

描述

使用一些传感器,我从植物中获取实时读数,通过 SonicPi 触发声音文件。

接收来自传感器的实时读数并进行比较,以检查它们是否低于临界水平,如果是,Arduino 会发出一个 MIDI 音符:一个 F# 音符用于亚临界水平(当植物需要浇水时)和一个Bb 注意水分含量突然上升时(给植物浇水时)。

然后 MIDI 音符通过虚拟端口和串行桥接。

SonicPi 在虚拟端口上监听传入的音符,并比较传入的音符是 F# 还是 Bb。

如果是前者,它会触发一个声音文件,如果是后者,它会触发另一个声音文件。

总而言之,该植物正在演奏只有两个音符的音乐表演。

pYYBAGPjUYKAVAPfAAGG0iSaabo079.png
项目的控制流程。
 

-Arduino代码

int sensor_pin = A0;
int output_value_new ;
int output_value_old = 0;
int satisfied_note = 0x6A;
int scream_note = 0x66;
int threshold_moisture = 80;
void setup() {
 Serial.begin(9600);
 Serial.println("Reading From the Sensor ...");
 delay(2000);
 }
void loop() {
 output_value_new= analogRead(sensor_pin);
 output_value_new = map(output_value_new,550,0,0,100);
 if (output_value_old ==0){
 output_value_old = output_value_new;
 }
 if (output_value_new <= threshold_moisture) {
  //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
  noteOn(0x90, scream_note, 0x7F);
  delay(100);
 }
 int output_difference = output_value_new - output_value_old;
 if (output_difference >=30){
 //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
 noteOn(0x90, satisfied_note, 0x7F);
 delay(100);
 }
 Serial.print("Mositure : ");
 Serial.print(output_value_new);
 Serial.println("%");
 delay(1000);
 output_value_old = output_value_new;
}
void noteOn(int cmd, int pitch, int velocity) {
Serial.write(cmd);
Serial.write(pitch);
Serial.write(velocity);
}

-SonicPi代码

screams = "YOUR_SMAPLE_FOLDER_HERE"
satisfied = "YOUR_SMAPLE_FOLDER_HERE"
live_loop :midi_piano do
use_real_time
note, velocity = sync "/midi:loopmidi_port_0:1/note_on"  
if note == 102 #Fsharp7
 sample screams, rrand_i(1,7)
 sleep(rrand_i(1,5))
end
if note == 106 #Bb7
 sample satisfied, rrand_i(1,3)
 sleep(rrand_i(1,4))
end
end
in_thread do
use_real_time
use_real_time
note, velocity = sync "/midi:loopmidi_port_0:1/note_on"
if note == 106 #Fsharp7
 sample screams, rrand_i(1,7)
 sleep(rrand_i(2,6))
end
if note == 102 #Bb7
 sample satisfied, rrand_i(1,3)
 sleep(rrand_i(1,4))
end
end

NOTE: I have made the demonstration video along the lines of those sleazy TV infomercial ads we used to see on cable.

 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费