資料介紹
描述
介紹
Music and Lights Workbench (MLWB) 旨在通過提供一系列允許構(gòu)建樂譜/曲調(diào)和/或燈光效果。通過使用這些命令及其應(yīng)用程序,用戶將開始深入了解什么是編程,并有望激發(fā)他們的進(jìn)一步興趣。
然而,它同樣適用于那些更有經(jīng)驗的人,他們可能喜歡探索在 Arduino 上編寫音樂和組合燈光效果。
所采用的方法是提供一組簡單易用且邏輯應(yīng)用的命令(功能),通過演奏音符和/或點亮 LED(燈)將計算機(jī)與外界聯(lián)系起來。
MLWB 命令在很大程度上彼此獨立,可用于僅播放音樂、僅點亮燈光或兩者的組合。
MLWB 不需要使用任何其他編程功能、技術(shù)或邏輯,只需要簡單的命令語句。雖然 if/then、do/while、for 循環(huán)等條件結(jié)構(gòu)可以用于更高級的用途,但在適當(dāng)?shù)慕虒W(xué)下,它們并不是從 MLWB 中立即獲得結(jié)果所必需的。
任何試圖掌握一門新學(xué)科的人,這里是基本的計算機(jī)編程,都可以從精通該學(xué)科的人的指導(dǎo)中受益。MLWB 也不例外,它的使用和應(yīng)用最好是通過導(dǎo)師對學(xué)生的指導(dǎo)和指導(dǎo)來實現(xiàn)。
動機(jī)
MLWB 是為作者的孫輩設(shè)計的,旨在為他們提供一些機(jī)會來了解如何輕松創(chuàng)建計算機(jī)程序以在現(xiàn)實世界中產(chǎn)生效果。希望通過思考播放簡單音樂和/或打開和關(guān)閉燈 (LED) 所需的邏輯步驟,這將達(dá)到頂峰并激發(fā)他們更深入探索編程潛力的愿望。
好的,在這一點上,一些引述:
告訴我,我會忘記;教我,我可能會記得;讓我參與,我就會學(xué)習(xí)。- 本杰明·富蘭克林
教育不是灌滿鍋,而是點燃火。— WB 葉芝
教育是通向未來的通行證,因為明天屬于今天為之做好準(zhǔn)備的人。– 馬爾科姆 X
高尚的智慧,當(dāng)然,但它們確實說明了我試圖很好地表達(dá)的觀點。
先決條件
“讓鴨子排好隊”,或者讓事情井然有序和移動所需的東西:
目標(biāo)受眾——愿意探索計算機(jī)程序如何快速、輕松和有趣地做某事的學(xué)生,無論年齡大小,
主管 -導(dǎo)師,擔(dān)任 MLWB 的教育者 - 導(dǎo)師和老師。導(dǎo)師應(yīng)該有一定的Arduino和IDE及其編程經(jīng)驗,但這可以是初級水平,
如果要探索/使用 MLWB 的音樂元素,那么對導(dǎo)師和學(xué)生都有一些音樂知識是有幫助的,但是,同樣,這可能處于初級水平——了解音符名稱、音階、音符間隔將非常有益,
硬件配置如下,
安裝在 Windows PC 上的 ARDUINO IDE,
在學(xué)生使用之前,導(dǎo)師通過探索其命令和內(nèi)置示例來徹底熟悉 MLWB。下載嬰兒床單作為指南和回憶錄以備不時之需,
最后,針對導(dǎo)師將向?qū)W生介紹的內(nèi)容制定計劃,逐節(jié)進(jìn)行。包含的示例可以構(gòu)成許多練習(xí)的基礎(chǔ)。
關(guān)于索引引用、術(shù)語和數(shù)據(jù)輸入的說明
索引參考和術(shù)語
年輕人和那些剛接觸任何與計算相關(guān)的人通常會發(fā)現(xiàn)很難理解與計算相關(guān)的術(shù)語,并且引用可以從 0(零)開始。因此,為了讓學(xué)生輕松進(jìn)入計算世界,MLWB 的設(shè)計如下:
1. 避免使用技術(shù)計算術(shù)語,例如不使用術(shù)語 LED,而是使用“光”,
2. 引用從 1 開始,而不是 0。例如,在 MLWB 中,將 LED 0 稱為“l(fā)ight1”,將 LED 1 稱為“l(fā)ight2”,依此類推。
數(shù)據(jù)輸入
為了讓學(xué)生盡可能容易地輸入鍵盤數(shù)據(jù),MLWB 使用小寫字母。下載草圖后,可以看到所有命令和音樂音高常數(shù)都大部分以小寫字母定義。通常可用的“pitches.h”文件包含 MLWB 中包含的所有相同音高定義,但這些都是大寫的。因此,每個間距定義都已重新定義,以減少任何大寫要求。例如,'note_C4',而不是'NOTE_C4',等等。這里的例外情況,如將立即發(fā)現(xiàn)的那樣,是保留為大寫以提高閱讀能力的注釋名稱。
MLWB 命令
MLWB 命令集主要分為兩組——執(zhí)行音樂指令的組和執(zhí)行燈光動作的組。然而,有一個命令可以連接兩個“陣營”。這是重載函數(shù)的播放命令。它可以用于:
1. 在給定的持續(xù)時間內(nèi)播放給定的音符,或
2. 與 1. 一樣,但有一個額外的參數(shù)指定在播放音符時要點亮的燈號 (LED)。它是一個重載函數(shù),可以以任何一種方式使用。
音樂指令
play - 將在給定的持續(xù)時間內(nèi)播放給定的音符,例如 play(note_C4, minim), play(note_FS2, crot + quav) 等。
play - 命令的重載版本,該命令允許在給定音符播放時指定燈 (LED) 用于照明,例如 play(note_C4, minim, light5), play(note_FS2, crot + quav, light1),等等
休息- 在給定的持續(xù)時間內(nèi)休息,在此期間保持沉默,例如休息(quav),休息(0.5)等
set_tempo - 以每分鐘節(jié)拍為單位設(shè)置音樂作品的速度(速度),例如 set_tempo(allegro)、set_tempo(144) 等。四分音符的值計算為 60/tempo。然后根據(jù)該計算值確定所有其他音符持續(xù)時間。
燈光指令
light_on - 打開給定的燈 (LED)。例如 light_on(light1)、light_on(7) 等。
light_off - 關(guān)閉給定的燈 (LED),例如 light_off(light1)、light_off(7) 等。
all_lights_on - 打開所有八個燈。例如 all_lights_on()。
all_lights_off - 關(guān)閉所有八盞燈。例如 all_lights_off()。
flash_light - 在給定的閃光間隔內(nèi)閃爍給定的燈,直到燈被另一個命令重新定義,例如 flash_light(light3, 0.5),閃光頻率為 1 秒 - 0.5 秒亮,0.5 秒關(guān)。該命令由微控制器的定時器 1 通過中斷服務(wù)程序 (ISR) 控制。這樣,即使在 flash_light 命令之后可能會執(zhí)行其他命令,閃光序列也會繼續(xù)運行。閃爍一直持續(xù)到對同一燈 (LED) 執(zhí)行另一個命令為止。
strobe_all_lights - 此命令將在給定的周期內(nèi)按給定的方向(向前或向后/向后)頻閃所有八個燈,每個燈在給定的時間內(nèi)點亮。例如 strobe_all_lights(forwards, 10, 0.1)。控制權(quán)由命令保留,直到它完成給定的循環(huán)次數(shù)。
wait - 等待給定的持續(xù)時間(秒)停止除繼續(xù)運行的現(xiàn)有 flash_light 命令之外的任何處理。例如 wait(5.5),等待 5.5 秒。
MLWB布局
MLWB 軟件是用 Arduino C++ 編寫的,包含六個選項卡。這些選項卡是:
music_and_lights_workbench - 此選項卡提供了 MLWB 的概述,與本文的大部分內(nèi)容相呼應(yīng)。
functions_lights - 此選項卡定義支持 MLWB 命令的功能,這些命令處理燈光 (LED) 控制,請參見上文。
functions_tones - 此選項卡定義支持處理音樂/音調(diào)控制的 MLWB 命令的功能。此外,此選項卡還定義了 setup() 函數(shù),請參見上文。
main_work_area - 這是應(yīng)該插入學(xué)生編碼的地方,是教學(xué)、探索和鞏固思想的中心焦點。
xample_lights - MLWB 開箱即用 (OOTB),帶有幾個現(xiàn)成的示例,演示了如何使用控制燈 (LED) 的命令。這些可以用作導(dǎo)師和學(xué)生之間的教學(xué)示例,見下文。
xample_tunes - MLWB 還提供了 OOTB 以及其他幾個現(xiàn)成的示例,演示了在連接的揚聲器/蜂鳴器上播放音調(diào)(音樂)的命令的使用。同樣,這些可以用作導(dǎo)師和學(xué)生之間的教學(xué)示例,見下文。
收縮包裝示例
首先,包含兩個選項卡,提供音樂旋律/曲調(diào)和照明序列的示例。使用這些來查看每個本機(jī)命令(函數(shù))如何單獨和一起使用。事實上,這些也可以用作導(dǎo)師和學(xué)生之間的教學(xué)指南。
音樂示例選項卡稱為“xample_tunes”,包含以下教學(xué)示例:
middle_C - 演奏 C 大調(diào)音階,先是向上,然后再向下。作為建議,為什么不讓學(xué)生將其他音階和琶音提交到 MLWB 中?
twinkle_twinkle - 播放非常著名的兒歌 Twinkle, Twinkle, Little Star。
jingle_bells - 線索就在名字里!
happy_birthday - 生日慶祝活動!
ditty_1 - 播放它,您一定能認(rèn)出它。除了播放旋律外,該示例還會在播放時點亮前七個燈。
door_bell_1 & door_bell_2 - 叮,當(dāng)!兩個門鈴示例在播放時也會點亮燈光。
ode_to_joy - 貝多芬第 9 交響曲(合唱),最后的樂章。
(還有一個額外的音樂示例。我想提供一些標(biāo)志性的、流行的和我真正喜歡的曲調(diào) - Penny Lane、Lennon 和 McCartney。我確實完成了將這首音樂的 G Major 樂譜提交到MLWB(在我女兒的幫助下)運行得很漂亮。然而,我決定不發(fā)表它,因為我不想侵犯版權(quán)。這對我來說不是白費力氣,雖然,因為我從閱讀中學(xué)到了很多東西一個分?jǐn)?shù))。
燈光示例選項卡稱為“xample_lights”,包含以下說明示例:
sweep_lights - 八盞燈從每一端掃到中心,然后再掃回來。
chasing_lights - 燈光從一端到另一端遵循追逐效果。
marching_lights - 燈光在所有八盞燈中形成行進(jìn)模式。
flash_all_lights - 以不同的頻率閃爍八盞燈中的每盞燈。請注意,閃爍會一直持續(xù)到執(zhí)行另一個發(fā)光命令為止。
sos_morse_code - 在一個 sos 周期內(nèi)閃爍所有八個燈,即破折號、破折號、破折號、點、點、點。為什么不在燈光和音樂音調(diào)方面進(jìn)一步探索摩爾斯電碼呢?
traffic_lights - 執(zhí)行兩條道路從紅/綠到綠/紅的照明轉(zhuǎn)換(一個周期)。這是一個有用的練習(xí),可以讓學(xué)生擴(kuò)展到相反的(原始)狀態(tài)設(shè)置(綠色/紅色到紅色/綠色)。請注意,邏輯可能會有點混亂,使用過渡狀態(tài)表來規(guī)劃燈的順序及其時間會很有幫助。
電路設(shè)計與布局
該項目的組件不復(fù)雜,隨時可用并以簡單直接的方式配置 - 請參見下面的原理圖。(警告:不要將揚聲器/蜂鳴器輸出引腳直接連接到音頻輸入,因為這可能會損壞您的微控制器。)
雖然可以使用任何顏色的燈 (LED),但如果配置多個不同顏色的燈,對于學(xué)生來說可能會帶來更豐富多彩的體驗。如果要使用交通燈示例,則將您的燈安排為
燈 1 - 紅色,燈 2 - 琥珀色,燈 3 - 綠色,燈 4 - 任何(道路 1)
燈 5 - 紅色,燈 6 - 琥珀色,燈 7 - 綠色,燈 8 - 任何(道路 2)。
床單
嬰兒床表記錄了可供 MLWB 使用的所有預(yù)設(shè)值和命令。 下載此作為助手回憶錄,并隨身攜帶以備參考。
最后
我覺得我需要聲明我的音樂知識、技能和實力幾乎為零——我認(rèn)為郵箱更有音樂天賦!
我在所有音樂方面的方法都是機(jī)械化的,大量使用互聯(lián)網(wǎng)來構(gòu)建這個工作臺的音樂元素,所以我向任何可能因不恰當(dāng)?shù)臈l款或?qū)嵤┒艿矫胺傅娜说狼浮?/font>我的辯護(hù)是它似乎按我的預(yù)期工作,我的孫子們似乎很開心,其中一個比我更了解音樂。
我希望你喜歡你的經(jīng)歷。
進(jìn)一步閱讀
您可能還會發(fā)現(xiàn)同一作者的這些貢獻(xiàn)有趣且有用:
- 為您的草圖添加一個心跳 -包括一個可見的方式來查看您的代碼正在您的微控制器上運行,而無需任何額外的組件或布線!
- 草圖中的無限計時器- 易于實現(xiàn)非阻塞計時器
- 一個靈活、可擴(kuò)展的庫 (ez_SIPO8_lib),支持多個串行輸入/串行輸出 IC、74HC595 的實現(xiàn),無論是單獨還是級聯(lián)組,最多 255 個 IC(2040 個輸出引腳)
- 通用開關(guān)庫( ez_switch_lib) ,適用于大多數(shù)開關(guān)類型和布線方案,并具有新穎的功能
- 了解和使用按鈕開關(guān),基礎(chǔ)知識 - 按鈕開關(guān),一個簡單但經(jīng)常棘手的套件。本教程提供了實現(xiàn)簡單按鈕開關(guān)的詳細(xì)信息,可以靈活地探索電路設(shè)計、不同讀取方法和去抖動方面的差異。
- 中斷驅(qū)動按鈕開關(guān) -將按鈕開關(guān)綁定到外部中斷的方法和示例。
- 撥動開關(guān) -如何可靠地讀取撥動式開關(guān)。
- 按鈕和燈游戲 -使用按鈕開關(guān)和 LED 的樂趣。
- 外部中斷,支持并發(fā)異步多中斷的通用框架。配置多個具有不同特性的外部中斷并添加代碼以提供中斷后異步處理。
- Programmatic Timed Reminder Alerting,用于過去和實時異步警報的程序框架。定義任意數(shù)量的提醒警報(亞秒級到數(shù)小時)并異步處理。
- matlab vsFortran混合編程工具 0次下載
- 單片機(jī)C語言和匯編語言混合編程實例詳解 227次下載
- 51單片機(jī)asm與C混合編程資料下載
- LabVIEW和MATLAB混合編程的資料合集免費下載 36次下載
- 如何實現(xiàn)VisualC++與MATLAB接口進(jìn)行混合編程詳細(xì)方法說明 20次下載
- ARM Bootloader 的實現(xiàn)C 和 ASM 混合編程 15次下載
- 基于Matlab和VC混合編程的DSP數(shù)據(jù)采集系統(tǒng) 4次下載
- Qt與Matlab混合編程 0次下載
- OpenCV和MFC結(jié)合編程例子 0次下載
- DSP6748與FPGA混合編程-StarterWare 27次下載
- Matlab與C混合編程匯總 0次下載
- 基于python的GTK與VTL混合編程及應(yīng)用
- Vb與LabVIEW混合編程的實現(xiàn)
- 基于flash MX和authorware的混合編程軟件小助
- TMS320F24x 的混合編程方法
- 在IAR Embedded Workbench中計算多個地址區(qū)間的Checksum 1606次閱讀
- 如何在IAR Embedded Workbench中配置生成對應(yīng)代碼區(qū)域的CRC校驗碼 1735次閱讀
- 分享24個三菱PLC編程案例 9395次閱讀
- 適合新手的Java項目 750次閱讀
- 可用于Teridian單相和多相電能測量IC的各種開發(fā)和編程工具 1532次閱讀
- C與C++混合編程是什么 1745次閱讀
- 混合編程中的模塊命名與管理 993次閱讀
- 使用EWPtool將源文件導(dǎo)入到IAR Embedded Workbench 2738次閱讀
- C語言編程十大經(jīng)典例題 3816次閱讀
- 新手學(xué)習(xí)單片機(jī)如何選擇開發(fā)板 8990次閱讀
- 盤點LabVIEW新手5大容易犯的錯誤 4822次閱讀
- 什么樣的編程方式才適合產(chǎn)品生產(chǎn)? 589次閱讀
- arduino用什么語言編程 6.9w次閱讀
- 基于LabVIEW和Matlab混合編程的小波去噪方法 3160次閱讀
- 基于LabVIEW和Matlab混合編程的小波降噪方法 1w次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 5AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費
- 6模擬電路仿真實現(xiàn)
- 2.94MB | 2次下載 | 免費
- 724l01寄存器列表指南免費下載
- 0.03 MB | 1次下載 | 5 積分
- 8電子線路板及仿真實現(xiàn)
- 1.54MB | 1次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 139次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 133次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 8PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多