資料介紹
描述
使用一些傳感器,我從植物中獲取實時讀數,通過 SonicPi 觸發聲音文件。
接收來自傳感器的實時讀數并進行比較,以檢查它們是否低于臨界水平,如果是,Arduino 會發出一個 MIDI 音符:一個 F# 音符用于亞臨界水平(當植物需要澆水時)和一個Bb 注意水分含量突然上升時(給植物澆水時)。
然后 MIDI 音符通過虛擬端口和串行橋接。
SonicPi 在虛擬端口上監聽傳入的音符,并比較傳入的音符是 F# 還是 Bb。
如果是前者,它會觸發一個聲音文件,如果是后者,它會觸發另一個聲音文件。
總而言之,該植物正在演奏只有兩個音符的音樂表演。
-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.
?
- 使用Arduino構建植物澆水系統
- 如何使用Arduino構建植物澆水系統 1次下載
- Arduino城市植物澆水解決方案
- 基于Arduino微控制器的自動植物澆水系統設計 4次下載
- 基于土壤濕度傳感器的自動澆水系統 5次下載
- 使用土壤濕度傳感器的植物澆水和監控系統
- 智能植物澆水系統項目
- WaterSmart植物澆水裝置開源
- 制作自己的自動澆水植物
- 植物澆水自動化開源分享
- 雙植物澆水系統開源分享
- 室內植物澆水系統開源分享
- 智能植物澆水系統開源
- Arduino自動植物澆水系統
- 使用樹莓派2實現的植物澆水系統的資料合集 56次下載
- 利用ESP32制作一個電容式土壤濕度傳感器 9440次閱讀
- 微雪電子土壤濕度傳感器簡介 4958次閱讀
- MEMS偏航傳感器在汽車安全系統中的應用介紹 3058次閱讀
- 安裝測力傳感器時需要注意哪些問題 775次閱讀
- 無源傳感器和有源傳感器的區別 3.2w次閱讀
- 濕度傳感器安裝說明 3706次閱讀
- 傳感器的組成_傳感器原理及應用 1.8w次閱讀
- 為什么需要凈化傳感器數據 700次閱讀
- 溫濕度傳感器在農業上的運用 5529次閱讀
- 溫度傳感器如何選型?選擇溫度傳感器需要注意哪些? 3.8w次閱讀
- 淺談傾角傳感器組成和使用 7165次閱讀
- 地磁傳感器工作原理_地磁傳感器應用_地磁傳感器的作用 4.2w次閱讀
- arduino測量土壤濕度自動澆水提醒 1.3w次閱讀
- 在選擇傳感器時需要關注的六大關鍵點 1542次閱讀
- 工程師DIY智能灌溉器解決植物澆水難題 2405次閱讀
下載排行
本周
- 1AN158 GD32VW553 Wi-Fi開發指南
- 1.51MB | 2次下載 | 免費
- 2嵌入式軟件開發符合ISO 26262 功能安全標準
- 1.61 MB | 1次下載 | 免費
- 3AN095 提高GD32溫度傳感器使用精度的方法
- 631.03KB | 1次下載 | 免費
- 4PZT驅動開關電路
- 0.09 MB | 1次下載 | 免費
- 5模擬電路仿真實現
- 2.94MB | 1次下載 | 免費
- 6PCB繪制基礎知識
- 2.44MB | 1次下載 | 免費
- 7電子線路板及仿真實現
- 1.54MB | 1次下載 | 免費
- 8AN4873-使用PIC單片機的集成運算放大器測量水中的總溶解固體
- 591.02KB | 1次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 139次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 132次下載 | 免費
- 4美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 5如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 6感應筆電路圖
- 0.06 MB | 10次下載 | 免費
- 7LZC3106G高性能諧振控制器中文手冊
- 1.29 MB | 9次下載 | 1 積分
- 8萬用表UT58A原理圖
- 0.09 MB | 9次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多