Bài 10: Đàn Piano trái cây - MakerEdu Inventor Kit for Micro:bit
Jump to navigation
Jump to search
Mô tả dự án
Trong bài này bạn sẽ sử dụng lá cây để làm các phím đàn, kết hợp với "còi báo" tích hợp sẵn trên mạch Micro:bit để là một chiếc đàn piano mini.
... hình thumnail
Các bước thực hiện
Danh sách thiết bị
- 1x Cáp MicroUSB.
- 1x Bo mạch Micro:Bit.
- 4x Dây kẹp cá sấu
Chuẩn bị trước dự án
- Tham khảo: Cách kết nối và nạp chương trình cho mạch Micro:bit trên máy tính với phần mềm MakeCode - MakerLab Wiki.
Các bước thực hiện
- Tạo một dự án mới trong phần mềm MakeCode.
- Bạn có thể lập trình kéo thả từng mã khối theo hình dưới trong mục [Blocks] hoặc copy đoạn code dưới và paste vào mục [JavaScript] để tiến hành nhanh hơn.
- Nạp chương trình vào Micro:Bit.
Blocks
Javascript
// Khối "Button 0" - do người dùng tạo function Button_0() { if (input.pinIsPressed(TouchPin.P0)) { line0 = 0 } else { line0 = 1 } } // Khối "Button 1" - do người dùng tạo function Button_1() { if (input.pinIsPressed(TouchPin.P1)) { line1 = 0 } else { line1 = 1 } } // Khối "Button 2" - do người dùng tạo function Button_2() { if (input.pinIsPressed(TouchPin.P2)) { line2 = 0 } else { line2 = 1 } } // Khối "play music notes" - do người dùng tạo function play_music_notes() { if (line2 && (line1 && !(line0))) { music.ringTone(262) } else if (line2 && (!(line1) && line0)) { music.ringTone(294) } else if (line2 && (!(line1) && !(line0))) { music.ringTone(330) } else if (!(line2) && (line1 && line0)) { music.ringTone(349) } else if (!(line2) && (line1 && !(line0))) { music.ringTone(392) } else if (!(line2) && (!(line1) && line0)) { music.ringTone(440) } else if (!(line2) && (!(line1) && !(line0))) { music.ringTone(494) } else { music.stopAllSounds() } } // Khai báo các biến let line2 = 0 let line1 = 0 let line0 = 0 // Khối "on start" - thực hiện 1 lần khi khởi động music.setVolume(255) basic.showIcon(IconNames.EighthNote) // Khối "forever" - vòng lặp chính của chương trình basic.forever(function () { Button_0() Button_1() Button_2() play_music_notes() })
Giải thích code
Chương trình hoạt động:
Trong khối [ on start ].
- Đầu tiên bo mạch sẽ bật âm lượng còi lên mức cao nhất qua khối [ set volume "255" ].
- Và cho hiển thị kí hiệu 🎼.
Phần khởi động này để chúng ta biết chương trình đã sẵn sàng.
Trong khối [ forever ].
- Thực hiện lệnh gọi tuần tự các khối do người dùng tạo.
- Đầu tiên là khối "Button_0", đến "Button_1", "Button_2".
- Cuối cùng là khối "play_music_notes" và cứ thế lặp lại.
Vai trò của nhóm các khối [ function "Button_..." ]:
Trong khối "Button_0".
- Đọc giá trị Digital từ chân
P0
. - Nếu phát hiện chân đang được nhấn, hay chạm → biến "line0" được đặt thành
0
. - Ngược lại, biến "line0" đặt thành
1
.
Chức năng này cũng tương tự với các khối "Button_1" cho chân P1
và "Button_2" cho chân P2
.
Chân | Biến | Đang nhấn | Không nhấn |
---|---|---|---|
P0
|
line0 | 0 | 1 |
P1
|
line1 | 0 | 1 |
P2
|
line2 | 0 | 1 |
Vai trò của khối [ function "play_music_notes" ]:
Dựa theo giá trị hiện tại của các biến "line0", "line1", "line2" chương trình sẽ ra quyết định.
- Phát ra note nhạc nào bằng khối [ ring tone (Hz)... ].
- Hoặc dừng phát nhạc bằng khối [ stop all sounds ].
line0 | line1 | line2 | Còi |
---|---|---|---|
nhấn | . | . | Đồ - [ C ] |
. | nhấn | . | Rê - [ D ] |
nhấn | . | . | Mi - [ E ] |
. | nhấn | nhấn | Fa - [ F ] |
nhấn | nhấn | . | Sol - [ G ] |
nhấn | . | nhấn | La - [ A ] |
nhấn | nhấn | nhấn | Si - [ B ] |
. | . | . | Dừng phát nhạc |
Kết quả
...
... hình dự án