資料介紹
描述
介紹
Music and Lights Workbench (MLWB) 旨在通過提供一系列允許構建樂譜/曲調和/或燈光效果。通過使用這些命令及其應用程序,用戶將開始深入了解什么是編程,并有望激發他們的進一步興趣。
然而,它同樣適用于那些更有經驗的人,他們可能喜歡探索在 Arduino 上編寫音樂和組合燈光效果。
所采用的方法是提供一組簡單易用且邏輯應用的命令(功能),通過演奏音符和/或點亮 LED(燈)將計算機與外界聯系起來。
MLWB 命令在很大程度上彼此獨立,可用于僅播放音樂、僅點亮燈光或兩者的組合。
MLWB 不需要使用任何其他編程功能、技術或邏輯,只需要簡單的命令語句。雖然 if/then、do/while、for 循環等條件結構可以用于更高級的用途,但在適當的教學下,它們并不是從 MLWB 中立即獲得結果所必需的。
任何試圖掌握一門新學科的人,這里是基本的計算機編程,都可以從精通該學科的人的指導中受益。MLWB 也不例外,它的使用和應用最好是通過導師對學生的指導和指導來實現。
動機
MLWB 是為作者的孫輩設計的,旨在為他們提供一些機會來了解如何輕松創建計算機程序以在現實世界中產生效果。希望通過思考播放簡單音樂和/或打開和關閉燈 (LED) 所需的邏輯步驟,這將達到頂峰并激發他們更深入探索編程潛力的愿望。
好的,在這一點上,一些引述:
告訴我,我會忘記;教我,我可能會記得;讓我參與,我就會學習。- 本杰明·富蘭克林
教育不是灌滿鍋,而是點燃火。— WB 葉芝
教育是通向未來的通行證,因為明天屬于今天為之做好準備的人。– 馬爾科姆 X
高尚的智慧,當然,但它們確實說明了我試圖很好地表達的觀點。
先決條件
“讓鴨子排好隊”,或者讓事情井然有序和移動所需的東西:
目標受眾——愿意探索計算機程序如何快速、輕松和有趣地做某事的學生,無論年齡大小,
主管 -導師,擔任 MLWB 的教育者 - 導師和老師。導師應該有一定的Arduino和IDE及其編程經驗,但這可以是初級水平,
如果要探索/使用 MLWB 的音樂元素,那么對導師和學生都有一些音樂知識是有幫助的,但是,同樣,這可能處于初級水平——了解音符名稱、音階、音符間隔將非常有益,
硬件配置如下,
安裝在 Windows PC 上的 ARDUINO IDE,
在學生使用之前,導師通過探索其命令和內置示例來徹底熟悉 MLWB。下載嬰兒床單作為指南和回憶錄以備不時之需,
最后,針對導師將向學生介紹的內容制定計劃,逐節進行。包含的示例可以構成許多練習的基礎。
關于索引引用、術語和數據輸入的說明
索引參考和術語
年輕人和那些剛接觸任何與計算相關的人通常會發現很難理解與計算相關的術語,并且引用可以從 0(零)開始。因此,為了讓學生輕松進入計算世界,MLWB 的設計如下:
1. 避免使用技術計算術語,例如不使用術語 LED,而是使用“光”,
2. 引用從 1 開始,而不是 0。例如,在 MLWB 中,將 LED 0 稱為“light1”,將 LED 1 稱為“light2”,依此類推。
數據輸入
為了讓學生盡可能容易地輸入鍵盤數據,MLWB 使用小寫字母。下載草圖后,可以看到所有命令和音樂音高常數都大部分以小寫字母定義。通常可用的“pitches.h”文件包含 MLWB 中包含的所有相同音高定義,但這些都是大寫的。因此,每個間距定義都已重新定義,以減少任何大寫要求。例如,'note_C4',而不是'NOTE_C4',等等。這里的例外情況,如將立即發現的那樣,是保留為大寫以提高閱讀能力的注釋名稱。
MLWB 命令
MLWB 命令集主要分為兩組——執行音樂指令的組和執行燈光動作的組。然而,有一個命令可以連接兩個“陣營”。這是重載函數的播放命令。它可以用于:
1. 在給定的持續時間內播放給定的音符,或
2. 與 1. 一樣,但有一個額外的參數指定在播放音符時要點亮的燈號 (LED)。它是一個重載函數,可以以任何一種方式使用。
音樂指令
play - 將在給定的持續時間內播放給定的音符,例如 play(note_C4, minim), play(note_FS2, crot + quav) 等。
play - 命令的重載版本,該命令允許在給定音符播放時指定燈 (LED) 用于照明,例如 play(note_C4, minim, light5), play(note_FS2, crot + quav, light1),等等
休息- 在給定的持續時間內休息,在此期間保持沉默,例如休息(quav),休息(0.5)等
set_tempo - 以每分鐘節拍為單位設置音樂作品的速度(速度),例如 set_tempo(allegro)、set_tempo(144) 等。四分音符的值計算為 60/tempo。然后根據該計算值確定所有其他音符持續時間。
燈光指令
light_on - 打開給定的燈 (LED)。例如 light_on(light1)、light_on(7) 等。
light_off - 關閉給定的燈 (LED),例如 light_off(light1)、light_off(7) 等。
all_lights_on - 打開所有八個燈。例如 all_lights_on()。
all_lights_off - 關閉所有八盞燈。例如 all_lights_off()。
flash_light - 在給定的閃光間隔內閃爍給定的燈,直到燈被另一個命令重新定義,例如 flash_light(light3, 0.5),閃光頻率為 1 秒 - 0.5 秒亮,0.5 秒關。該命令由微控制器的定時器 1 通過中斷服務程序 (ISR) 控制。這樣,即使在 flash_light 命令之后可能會執行其他命令,閃光序列也會繼續運行。閃爍一直持續到對同一燈 (LED) 執行另一個命令為止。
strobe_all_lights - 此命令將在給定的周期內按給定的方向(向前或向后/向后)頻閃所有八個燈,每個燈在給定的時間內點亮。例如 strobe_all_lights(forwards, 10, 0.1)。控制權由命令保留,直到它完成給定的循環次數。
wait - 等待給定的持續時間(秒)停止除繼續運行的現有 flash_light 命令之外的任何處理。例如 wait(5.5),等待 5.5 秒。
MLWB布局
MLWB 軟件是用 Arduino C++ 編寫的,包含六個選項卡。這些選項卡是:
music_and_lights_workbench - 此選項卡提供了 MLWB 的概述,與本文的大部分內容相呼應。
functions_lights - 此選項卡定義支持 MLWB 命令的功能,這些命令處理燈光 (LED) 控制,請參見上文。
functions_tones - 此選項卡定義支持處理音樂/音調控制的 MLWB 命令的功能。此外,此選項卡還定義了 setup() 函數,請參見上文。
main_work_area - 這是應該插入學生編碼的地方,是教學、探索和鞏固思想的中心焦點。
xample_lights - MLWB 開箱即用 (OOTB),帶有幾個現成的示例,演示了如何使用控制燈 (LED) 的命令。這些可以用作導師和學生之間的教學示例,見下文。
xample_tunes - MLWB 還提供了 OOTB 以及其他幾個現成的示例,演示了在連接的揚聲器/蜂鳴器上播放音調(音樂)的命令的使用。同樣,這些可以用作導師和學生之間的教學示例,見下文。
收縮包裝示例
首先,包含兩個選項卡,提供音樂旋律/曲調和照明序列的示例。使用這些來查看每個本機命令(函數)如何單獨和一起使用。事實上,這些也可以用作導師和學生之間的教學指南。
音樂示例選項卡稱為“xample_tunes”,包含以下教學示例:
middle_C - 演奏 C 大調音階,先是向上,然后再向下。作為建議,為什么不讓學生將其他音階和琶音提交到 MLWB 中?
twinkle_twinkle - 播放非常著名的兒歌 Twinkle, Twinkle, Little Star。
jingle_bells - 線索就在名字里!
happy_birthday - 生日慶祝活動!
ditty_1 - 播放它,您一定能認出它。除了播放旋律外,該示例還會在播放時點亮前七個燈。
door_bell_1 & door_bell_2 - 叮,當!兩個門鈴示例在播放時也會點亮燈光。
ode_to_joy - 貝多芬第 9 交響曲(合唱),最后的樂章。
(還有一個額外的音樂示例。我想提供一些標志性的、流行的和我真正喜歡的曲調 - Penny Lane、Lennon 和 McCartney。我確實完成了將這首音樂的 G Major 樂譜提交到MLWB(在我女兒的幫助下)運行得很漂亮。然而,我決定不發表它,因為我不想侵犯版權。這對我來說不是白費力氣,雖然,因為我從閱讀中學到了很多東西一個分數)。
燈光示例選項卡稱為“xample_lights”,包含以下說明示例:
sweep_lights - 八盞燈從每一端掃到中心,然后再掃回來。
chasing_lights - 燈光從一端到另一端遵循追逐效果。
marching_lights - 燈光在所有八盞燈中形成行進模式。
flash_all_lights - 以不同的頻率閃爍八盞燈中的每盞燈。請注意,閃爍會一直持續到執行另一個發光命令為止。
sos_morse_code - 在一個 sos 周期內閃爍所有八個燈,即破折號、破折號、破折號、點、點、點。為什么不在燈光和音樂音調方面進一步探索摩爾斯電碼呢?
traffic_lights - 執行兩條道路從紅/綠到綠/紅的照明轉換(一個周期)。這是一個有用的練習,可以讓學生擴展到相反的(原始)狀態設置(綠色/紅色到紅色/綠色)。請注意,邏輯可能會有點混亂,使用過渡狀態表來規劃燈的順序及其時間會很有幫助。
電路設計與布局
該項目的組件不復雜,隨時可用并以簡單直接的方式配置 - 請參見下面的原理圖。(警告:不要將揚聲器/蜂鳴器輸出引腳直接連接到音頻輸入,因為這可能會損壞您的微控制器。)
雖然可以使用任何顏色的燈 (LED),但如果配置多個不同顏色的燈,對于學生來說可能會帶來更豐富多彩的體驗。如果要使用交通燈示例,則將您的燈安排為
燈 1 - 紅色,燈 2 - 琥珀色,燈 3 - 綠色,燈 4 - 任何(道路 1)
燈 5 - 紅色,燈 6 - 琥珀色,燈 7 - 綠色,燈 8 - 任何(道路 2)。
床單
嬰兒床表記錄了可供 MLWB 使用的所有預設值和命令。 下載此作為助手回憶錄,并隨身攜帶以備參考。
最后
我覺得我需要聲明我的音樂知識、技能和實力幾乎為零——我認為郵箱更有音樂天賦!
我在所有音樂方面的方法都是機械化的,大量使用互聯網來構建這個工作臺的音樂元素,所以我向任何可能因不恰當的條款或實施而受到冒犯的人道歉。我的辯護是它似乎按我的預期工作,我的孫子們似乎很開心,其中一個比我更了解音樂。
我希望你喜歡你的經歷。
進一步閱讀
您可能還會發現同一作者的這些貢獻有趣且有用:
- 為您的草圖添加一個心跳 -包括一個可見的方式來查看您的代碼正在您的微控制器上運行,而無需任何額外的組件或布線!
- 草圖中的無限計時器- 易于實現非阻塞計時器
- 一個靈活、可擴展的庫 (ez_SIPO8_lib),支持多個串行輸入/串行輸出 IC、74HC595 的實現,無論是單獨還是級聯組,最多 255 個 IC(2040 個輸出引腳)
- 通用開關庫( ez_switch_lib) ,適用于大多數開關類型和布線方案,并具有新穎的功能
- 了解和使用按鈕開關,基礎知識 - 按鈕開關,一個簡單但經常棘手的套件。本教程提供了實現簡單按鈕開關的詳細信息,可以靈活地探索電路設計、不同讀取方法和去抖動方面的差異。
- 中斷驅動按鈕開關 -將按鈕開關綁定到外部中斷的方法和示例。
- 撥動開關 -如何可靠地讀取撥動式開關。
- 按鈕和燈游戲 -使用按鈕開關和 LED 的樂趣。
- 外部中斷,支持并發異步多中斷的通用框架。配置多個具有不同特性的外部中斷并添加代碼以提供中斷后異步處理。
- Programmatic Timed Reminder Alerting,用于過去和實時異步警報的程序框架。定義任意數量的提醒警報(亞秒級到數小時)并異步處理。
- matlab vsFortran混合編程工具 0次下載
- 單片機C語言和匯編語言混合編程實例詳解 224次下載
- 51單片機asm與C混合編程資料下載
- LabVIEW和MATLAB混合編程的資料合集免費下載 32次下載
- 如何實現VisualC++與MATLAB接口進行混合編程詳細方法說明 20次下載
- ARM Bootloader 的實現C 和 ASM 混合編程 15次下載
- 基于Matlab和VC混合編程的DSP數據采集系統 4次下載
- Qt與Matlab混合編程 0次下載
- OpenCV和MFC結合編程例子 0次下載
- DSP6748與FPGA混合編程-StarterWare 27次下載
- Matlab與C混合編程匯總 0次下載
- 基于python的GTK與VTL混合編程及應用
- Vb與LabVIEW混合編程的實現
- 基于flash MX和authorware的混合編程軟件小助
- TMS320F24x 的混合編程方法
- 在IAR Embedded Workbench中計算多個地址區間的Checksum 1202次閱讀
- 如何在IAR Embedded Workbench中配置生成對應代碼區域的CRC校驗碼 1265次閱讀
- 分享24個三菱PLC編程案例 7161次閱讀
- 適合新手的Java項目 656次閱讀
- C與C++混合編程是什么 1309次閱讀
- 基于Ansys Workbench和Speos的準直全反射透鏡優化設計案例 1248次閱讀
- 混合編程中的模塊命名與管理 835次閱讀
- 使用EWPtool將源文件導入到IAR Embedded Workbench 1945次閱讀
- C語言編程十大經典例題 3554次閱讀
- 新手學習單片機如何選擇開發板 8639次閱讀
- 盤點LabVIEW新手5大容易犯的錯誤 4658次閱讀
- 什么樣的編程方式才適合產品生產? 533次閱讀
- arduino用什么語言編程 6.9w次閱讀
- 基于LabVIEW和Matlab混合編程的小波去噪方法 2910次閱讀
- 基于LabVIEW和Matlab混合編程的小波降噪方法 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多