Hướng dẫn lập trình Micro:bit nâng cao cho học sinh

47 69 0
Hướng dẫn lập trình Micro:bit nâng cao cho học sinh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hướng dẫn lập trình Micro:bit nâng cao cho học sinh MỤC LỤC Giới thiệu 02 Bài 1: Chương trình với ChiPi 03 Bài 2: Điều khiển loa Buzzer 10 Bài 3: Nhận liệu từ nút nhấn 14 Bài 4: Cảm biến cường độ ánh sáng 17 Bài 5: Giới thiệu thư viện mở rộng cho MicroBit 21 (Bài tham khảo) Bài 6: Phát triển dự án Đèn giao thông 28 Bài 7: Tái cấu trúc chương trình đèn giao thơng 31 Bài 8: Hiện thực trụ đèn phụ 36 Bài 9: Hiện thực trụ đèn phụ thứ 40 Bài 10: Tích hợp thêm dịch vụ cho dự án Đèn Giao Thông 43 (Bài tham khảo) Giáo trình Micro:bit nâng cao GIỚI THIỆU Tổng quan Khố học nâng cao ngơn ngữ lập trình MicroBit tổ chức, tập huấn triển khai Tổ chức The Dariu Foundation, phối hợp với đối tác tài trợ Toàn tài liệu học tập, tư liệu âm hình ảnh, giáo trình giảng dạy biên soạn Tiến sĩ Lê Trọng Nhân – giảng viên trường Đại học Bách Khoa thành phố Hồ Chí Minh Với mong muốn đem lại học thú vị, kích thích tư sáng tạo cho em học sinh, Quỹ Dariu kính mong quý thầy cô triển khai đầy đủ tiết học Lập trình MicroBit nâng cao đến với em học sinh dựa theo giảng phần Mục Lục - ✓ Phân bổ tiết học thời gian: Tiết (45 phút) – Bài 1: Chương trình với ChiPi Tiết (45 phút) – Bài 2: Điều khiển loa Buzzer Tiết (45 phút) – Bài 3: Nhận liệu từ nút nhấn Tiết (45 phút) – Bài 4: Điều khiển nút nhấn MicroBit (Bài tham khảo) – Bài 5: Giới thiệu thư viện mở rộng cho MicroBit Tiết (45 phút) – Bài 6: Phát triển dự án Đèn giao thông Tiết (45 phút) – Bài 7: Tái cấu trúc chương trình đèn giao thông Tiết (45 phút) – Bài 8: Hiện thực trụ đèn phụ Tiết (45 phút) – Bài 9: Hiện thực trụ đèn phụ thứ + Kiểm tra Online trắc nghiệm (Bài tham khảo) – Bài 10: Tích hợp thêm dịch vụ cho dự án Đèn Giao Thông Hai tham khảo (bài 10) tiết mở rộng, dành cho học sinh giỏi có nhu cầu tham khảo thêm kiến thức nằm ngồi chương trình dạy Lưu ý: Chương trình dùng để lập trình MicroBit Website Onine nên cần đảm bảo mạng Internet cho thiết bị học tập học sinh Hiện có Microbit Offline, thầy cô nên cài đặt sẵn máy để tiện cho việc học tập học sinh tham gia khóa học Tài liệu học tập Sách, Giáo trình tài liệu tham khảo chính: [1] Trang tải phiên Microbit Offline: http://bit.ly/makecodeoffline Hoặc thầy cô vào Microsoft Store → Search Make Code Microbit tải Offline [2] Trang lập trình Online, cộng đồng chia sẻ ứng dụng, nơi tổng hợp tài liệu tham khảo: https://makecode.microbit.org/ Mục tiêu ❖ Học sinh hiểu, nắm bắt nguyên lý tương tác việc thiết lập bo mạch linh kiện hỗ trợ thông dụng lập trình MicroBit, qua phát triển tư sáng tạo ❖ Học sinh ứng dụng cách tương tác phần mềm lập trình phần cứng bo mạch, bước đầu tiến đến kỷ nguyên Công nghệ 4.0 Mọi thắc mắc, vui lòng liên hệ: - prt.ho01@dariu.org – Trần Thanh Hải (Giám đốc dự án) - haphan@dariu.org – Trần Hà Phan (trợ lý dự án) Giáo trình Micro:bit nâng cao Bài 1: Chương trình với ChiPi • MỤC TIÊU Giới thiệu hệ thống ChiPi Học sinh sẽ: • • • • • Làm quen với hệ thống cảm biến ChiPi Kết nối MicroBit mạch ChiPi LED Hiện thực chương trình với mạch ChiPi LED Có thể lưu mở lại chương trình cũ Chipi Series hệ thống mô-đun điện tử, sẵn sàng dễ dàng cho việc sử dụng Tương tự việc lắp ghép mơ hình, mơ-đun ChiPi mảnh ghép hệ thống điện tử bạn So với cách truyền thống, sử dụng breadboard linh kiện điện tử để lắp ráp tạo nên dự án điện tử, hệ thống ChiPi giúp đơn giản hóa tiết kiệm thời gian đáng kể cho trình học tập, tiếp cận sử dụng PHÂN BỔ THỜI LƯỢNG Giới thiệu hệ thống ChiPi (05 phút) Mơ trường lập trình cho MicroBit (15 phút) Chương trình (10 phút) Bài tập (15 phút) Hình 1: MicroBit ChiPi Base Shield: Kết nối mô-đun khác với mạch MicroBit Hệ thống Chipi bao gồm MicroBit ChiPi Base Shield (Hình 1) nhiều mơ-đun cảm biến Base Shield đóng vài trị mạch trung gian, giúp kết nối mô-đun Chipi với MicroBit Trong mô-đun Chipi giải chức nhất, chẳng hạn nút nhấn đơn giản cảm biến nhịp tim phức tạp Các mô-đun thiết kế hướng tới chuẩn kết nối đồng nhất, giúp cho người dùng cảm thấy dễ dàng việc kết nối nhiều mô-đun khác ứng dụng, thay phải kết nối nhiều dây với tiêu chuẩn khác Hình Lưu ý quan trọng: Màn hình mạch MicroBit quay phía chân kết nối Giáo trình Micro:bit nâng cao Hình 2: Hệ thống kết nối MicroBit thông thường với breadboard Cuối cùng, nguyên nhân để hệ thống ChiPi cho MicroBit xây dựng việc kết nối với chân mở rộng mạch MicroBit khó để kết nối Thơng thường, người dùng kết nối với chân P0, P1 P2 mà Mặc dù cộng đồng có nhiều dự án ấn tượng, nhiên việc mở rộng thêm chức khó khăn Bên cạnh ChiPi Base Shield, nhiều mô-đun cảm biến Các mô-đun Chipi cảm biến trang bị cho hệ thống điện tử bạn "giác quan" Chúng giúp bạn đo đạc, phát yếu tố trường ngày nhiệt độ, ánh sáng, độ ẩm giúp bạn biểu đồ hóa, phân tích, đánh điều khiển thiết bị liên quan cách mềm dẻo phù hợp với điều kiện Trong giáo trình này, chúng tơi hướng dẫn sử dụng mơ-đun sau • LED: Đây mô-đun hệ thống Mô-đun điều khiển để thị màu: Đỏ Xanh Vàng • Buzzer: Loa báo động, dùng để phát âm cảnh báo • Button: Nút nhấn, mô-đun nhận tương tác từ người dùng • Light Sensor: Cảm biến ánh sáng Khác với cảm biến nội bên MicroBit, cảm biến hoạt động dựa nguyên lý quang trở, nên xác Bằng cách kết hợp mô-đun này, lập trình để minh họa hệ thống đèn giao thông thông minh Trong hướng dẫn chia làm phần Phần đầu hướng dẫn để sử dụng mô-đun Ở phần 2, mô-đun kết hợp để làm nên ứng dụng giao thông thông minh Trong hướng dẫn này, làm việc với module đơn giản nhất, có tên LED ChiPi Mơ trường lập trình cho MicroBit Đầu tiên, phải kể đến chương trình lập trình trực tuyến MakeCode máy tính, cách truy cập vào đường dẫn https://makecode.microbit.org/ Một lợi lớn mà MakeCode có việc mơ chương trình trước nạp trực tiếp vào mạch MicroBit Chức tiết kiệm nhiều thời gian cho việc kiểm tra chương trình Hình 3: Mơi trường lập trình trực tuyến máy tính Giáo trình Micro:bit nâng cao Chọn vào mục New Project Hình 3, giao diện sau để bắt đầu lập trình Hình 4: Giao diện lập trình Ưu điểm thứ việc lập trình máy tính việc nạp chương trình cho mạch MicroBit thực đơn giản Chúng ta cần chép file hex vào mạch MicroBit chép liệu vào USB bình thường chương trình chạy trực tiếp mạch MicroBit Chúng ta có mơi trường lập trình ngoại tuyến máy tính hỗ trợ sẵn Windows 10 Từ nút Start Windows, vào kho ứng dụng Microsoft Store (xem Hình 5) Hình 5: Kho ứng dụng Microsoft Store Windows 10 Bước tiếp theo, gõ vào tìm kiếm (Search) góc bên phải từ khóa “MakeCode” để tìm cài đặt ứng dụng (nhấn vào nút Get) hình bên Hình 6: Tìm kiếm cài đặt ứng dụng MakeCode Giáo trình Micro:bit nâng cao Sau cài đặt xong, có giao diện lập trình quen thuộc bên Hình 7: Giao diện lập trình ngoại tuyển máy tính hệ điều hành Windows 10 Trong thời gian gần đây, sử dụng điện thoại máy tính bảng để lập trình cho MicroBit trở nên phổ biến tính tiện dụng Tuy nhiên giáo trình này, chúng tơi tập trung sử dụng mơi trường lập trình MakeCode máy tính mà thơi Chương trình Trong hướng dẫn này, lập trình điều khiển mơ-đun ChiPi LED Đây mơ-đun đèn tích hợp có màu đỏ xanh Tuy nhiên đèn sáng, có màu vàng Chúng ta lưu ý vị trí chân LED1 LED2 (xem Hình 8), chân tín hiệu dùng để điều khiển đèn sáng hay tắt Hình 8: Mô-đun ChiPi LED Tiếp theo, kết nối module với mơ-đun Base Shield Trong ví dụ này, kết nối mô-đun LED với chân P1-P0-GND-VCC, minh họa hình bên Dựa vào màu dây kết nối, dễ dàng nhận LED0 nối với P0 LED1 nối với chân P1 Hình 9: Kết nối mạch Base Shield mạch ChiPi LED Chúng ta thực chương trình nhỏ, điều khiển chân P0 (được nối với LED0) để xem kết thực thi chương trình Một chương trình gợi ý sau: Giáo trình Micro:bit nâng cao Hình 10: Chương trình MicroBit với mạch mở rộng ChiPi Trong chương trình trên, sử dụng câu lệnh digital write để xuất tín hiệu chân P0, nối với chân LED0 mô-đun LED ChiPi Câu lệnh nằm mục Advance, Pins, trình bày Hình 11 Hình 11: Câu lệnh digital wite, nằm trung mục Advance/Pins Sau thực xong chương trình máy tính, cần tải chương trình xuống board mạch MicroBit để xem kết Chúng ta thấy rằng, với chương trình trên, LED chớp tắt giây với màu đỏ Với câu lệnh digital write sử dụng trên, có tùy chọn sau: • Chọn chân: Bằng cách nhấn vào phím mũi tên, có nhiều chân để kết nối với thiết bị bên ngồi, trình bày Hình 12 Giáo trình Micro:bit nâng cao Hình 12: Lựa chọn chân xuất tín hiệu câu lệnh digital write • Chọn liệu: Ở tùy chọn thứ này, có trạng thái Khi xuất giá trị 0, tương đương với điện áp 0V tương đương với mức điện áp 3.3V Do đó, chân P0 nối với bóng đèn, xuất giá trị đèn sáng giá trị đèn tắt Bài tập Hiệu chỉnh lại chương trình, để LED chớp tắt giây với màu xanh Gợi ý: Thay đổi chân P0 thành P1 Hình 13: Chương trình điều khiển LED xanh Viết chương trình chuyển màu LED sau giây theo trình tự: Đỏ - Xanh – Vàng Gợi ý: Xuất kết hợp đồng thời chân P0 P1 để điều khiển màu cho LED Ví dụ để có màu đỏ: P0 = P1 = 0, để có màu vàng P0 = P1 = Giáo trình Micro:bit nâng cao Hình 14: Chương trình điều khiển màu LED Giáo viên cho học sinh thay đổi chân kết nối với mạch MicroBit sửa lại chương trình cho phù hợp Trong yêu cầu này, số chân khơng hoạt động với chức lập trình Lý chân liên quan đến việc điều khiển 25 bóng đèn có sẵn mạch MicroBit Trong trường hợp này, khắc phục cách dùng câu lệnh , để tắt chức 25 bóng đèn sử dụng tồn tài nguyên MicroBit để điều khiển thiết bị Câu lệnh nằm mục Led, chọn tiếp vào mục more, minh họa Hình 15 Chúng ta đặt câu lệnh khối lệnh on start đầu chương trình Hình 15: Tắt chức 25 bóng đèn Giáo trình Micro:bit nâng cao Với yêu cầu trên, chương trình có cấu trúc ban đầu sau: Hình 38: Cấu trúc chương trình Bài tập lớp: Hãy thực lại chức đèn đỏ, không sử dụng câu lệnh while câu lệnh pause Gợi ý: Chúng ta tạo thêm biến counter để đếm, biến có giá trị 10, tức qua 10 lần 100ms, nghĩa giây Dưới chương trình để điều khiển đèn màu đỏ không sử dụng câu lệnh đợi (pause) lệnh nhóm lặp (while) Hình 39: Chương trình cho đèn màu đỏ Như vậy, để tạo hiệu ứng thời gian chương trình, phải khai báo thêm biến khéo léo kiểm tra điều kiện Ví dụ, câu lệnh if đầu tiên, xét điều kiện counter_timer = 10, để thiết lập hiệu ứng đợi giây Ở câu lệnh if thứ 2, hết chu kì đèn đỏ Do muốn giá trị 1s, nên điều kiện counter_red = -1 Cuối cùng, đóng gói chương trình điều khiển đèn đỏ hàm, đặt tên hàm RED_LIGHT, hình bên dưới: Giáo trình Micro:bit nâng cao 32 Hình 40: Chương trình cho đèn đỏ rút gọn hàm RED_LIGHT Lưu ý: Thông thường điều kiện if đúng, thực số tác vụ gán lại giá trị cho biến đếm, để bắt đầu lại chu kì Hiện thực đèn xanh đèn đỏ Chúng ta làm tương tự với trường hợp đèn xanh, tạo biến số counter_green thực hàm GREEN_LIGHT sau: Hình 41: Chương trình cho đèn xanh Tuy nhiên, đơn giản gọi chương trình điều khiển đèn màu xanh khối forever Vì chương trình khơng có khả đợi câu lệnh while học trước Nên để chương trình màu đỏ chạy trước, tới chương trình đèn màu xanh, phải tạo thêm biến số nữa, gọi status Biến chương trình màu chạy, cịn 1, chương trình màu xanh phép chạy Chương trình sau: Giáo trình Micro:bit nâng cao 33 Hình 42: Chương trình cho màu đèn phân chia giá trị biến status Hãy lưu ý việc gán giá trị biến status phía cuối hàm RED_LIGHT GREEN_LIGHT Chương trình chuyển sang trạng thái trạng thái cũ thực xong chức Bài tập lớp: Hãy thử thay đổi giá trị status khối on start giải thích kết chương trình Đáp án: Đèn màu xanh chạy trước, tới đèn đỏ sau chương trình lặp lại Với ví dụ này, nói status điểm bắt đầu trạng thái Tùy vào trạng thái mà chương trình tương ứng chạy Việc chuyển sang trạng thái khác, tùy thuộc vào ứng dụng Hoàn toàn tương tự, thực đầy đủ chương trình với đèn màu vàng, sau: Hình 43: Chương trình đèn giao thơng đầy đủ với trạng thái Giáo trình Micro:bit nâng cao 34 Hình 44: Chương trình đèn giao thơng đầy đủ với trạng thái Gửi tín hiệu cho trụ đèn khác Với tính này, đơn giản gửi trạng thái status hệ thống hàm forever Các trụ đèn nhận giá trị này, điều chỉnh màu đèn tương ứng Đây lợi lớn việc thiết kế chương trình theo trạng thái Việc quản lý chương trình giao tiếp thuận lợi nhiều Chúng ta cần lưu ý chỉnh nhóm khối on start Chương trình hiệu khối on start forever sau: Hình 45: Hồn thiện chương trình với tính giao tiếp khơng dây Giáo trình Micro:bit nâng cao 35 Bài 8: Hiện thực trụ đèn phụ • MỤC TIÊU Học sinh sẽ: • Nắm nhược điểm kiến trúc cũ • Tái cấu trúc chương trình tối ưu • Hiểu luồng thực thi chương trình • Tích hợp khả gửi liệu khơng dây trụ đèn • Sơ lược chương trình mạch chủ Đầu tiên, xem lại câu lệnh quan trọng chương trình mạch chủ Chương trình mạch chủ sau: PHÂN BỔ THỜI LƯỢNG Sơ lược chương trình mạch chủ (10 phút) Hiện thực trụ đèn phụ thứ (10 phút) Chuyển trạng thái trụ đèn phụ (10 phút) Xử lý lỗi đồng trụ đèn (10 phút) Bài tập nhà Giáo trình Micro:bit nâng cao 36 Hình 46: Chương trình trụ đèn chủ Hãy lưu ý rằng, chương trình chạy dựa vào trạng thái, hay nói cách khác giá trị biến status Các câu lệnh gán giá trị cho biến nằm khối lệnh quan trọng sau đây: • on start: Gán giá trị khởi động cho biết status, 0, tức chạy đèn đỏ Nếu gán 1, chương trình chạy đèn xanh đầu tiên, chạy đèn vàng Vì lý đó, gán cho giá trị khác, chẳng hạn chương trình khơng chạy • Hàm RED_LIGHT: chạy xong chu kì đèn đó, biến gán lại giá trị 1, để chuyển sang chu kì đèn xanh • Hàm GREEN_LIGHT: Tương tự đèn đó, sau chạy xong chu kì đèn xanh, gán 2, để bắt đầu chu kì đèn vàng • Hàm YELLOW_LIGHT: Cuối cùng, xong đèn vàng, gán trở lại 0, để quay lại đèn đỏ Bây giờ, thực trụ đèn phụ, đặt đối diện trụ đèn ngã tư Tức là, trụ đèn cần hiển thị trạng thái giống hệt trụ đèn chủ Hiện thực trụ đèn phụ thứ Trước tiên, trụ đèn phụ, nên bật nguồn lên, khơng cần phải sáng đèn Chúng ta sửa lại câu lệnh hàm on start, để đặt giá trị ban đầu 4, với quy ước trụ đèn khơng cần phải làm trạng thái Tiếp theo, đèn phụ sáng hết thời gian cho đèn màu đỏ, khơng cần phải chuyển trạng thái sang đèn xanh, phải đồng hiển thị thời gian với trụ đèn chủ Chúng ta sửa lại câu lệnh làm RED_LIGHT, GREEN_LIGHT YELLOW_LIGHT lại Chương trình sau: Giáo trình Micro:bit nâng cao 37 Hình 47: Thay đổi câu lệnh chuyển trạng thái cho đèn phụ thứ Lưu ý: Đèn phụ nhận lệnh từ đèn chủ, nên phải có nhóm Radio với đèn Thêm nữa, câu lệnh gửi liệu không dây khối forever đèn phụ cần phải bỏ đi, hoạt động chế độ nhận liệu mà Chuyển trạng thái trụ đèn phụ Với chương trình trên, nạp vào đèn phụ khơng có tượng cả, gán trạng thái ban đầu 4, không gọi thực thi hàm với giá trị trạng thái Việc chuyển trạng thái trụ đèn phụ thực hàm nhận liệu, sau: Hình 48: Chuyển trạng thái đèn phụ Với khối lệnh thêm này, thử bật đèn phụ trước Chúng ta thấy đèn phụ khơng thị Cho đến bật đèn chủ lên, đèn phụ nhận trạng thái từ đèn chạy theo trạng thái với đèn Xử lý lỗi đồng trụ đèn Lỗi đồng xảy việc gửi liệu không dây từ đèn chủ qua đèn phụ không thành công Và vậy, phải 100ms sau đèn phụ nhận liệu Mặc dù 100ms nhỏ, nhiên việc hiển thị 25 đèn tới nửa giây, nên đồng dễ nhận Do đó, cần phải đồng lại tồn hệ thống, chuyển sang trạng thái mới, tức giá trị receiveNumber khác với giá trị status Chúng ta thực thi lại câu lệnh khối lệnh on start Lúc này, chương trình khối nhận liệu khơng dây sau: Giáo trình Micro:bit nâng cao 38 Hình 49: Chương trình hồn chỉnh, với câu lệnh để đồng Hãy lưu ý câu lệnh khối lệnh nhận liệu không dây Chúng ta kiểm tra giá trị vừa nhận (chứa biến receivedNumber), liệu có thay đổi so với trạng thái hay không (lưu biến status) Nếu hai giá trị khác nhau, đồng lại toàn trạng thái hệ thống cách đặt lại giá trị biến ban đầu Cuối cùng, gán giá trị nhận cho biến trạng thái Đến bước này, bật nguồn hay mạch điện để xem việc thực thi chương trình bên Với cải tiến trên, chương trình bên thực chạy giống mặt hiển thị Bài tập nhà Học sinh thực chức cho trụ đèn đối diện: Trạng thái đèn ngược lại với trụ đèn này: Khi trụ đèn chủ đỏ, đèn phụ xanh, tự chuyển sang vàng, trụ đèn chủ vàng, đèn phụ khơng đổi Khi đèn chủ xanh, đèn phụ đỏ Giáo trình Micro:bit nâng cao 39 Bài 9: Hiện thực trụ đèn phụ thứ • MỤC TIÊU Sơ lược chương trình mạch phụ trước Học sinh sẽ: • Nắm nhược điểm kiến trúc cũ • Tái cấu trúc chương trình tối ưu • Hiểu luồng thực thi chương trình • Tích hợp khả gửi liệu không dây trụ đèn • PHÂN BỔ THỜI LƯỢNG Sơ lược chương trình mạch phụ trước (15 phút) Hiện thực trụ đèn phụ thứ hai Ở trụ phụ thứ nhất, vấn đề đơn giản hơn, hiển thị giống với trụ chủ Còn trụ phụ thứ thứ 3, hiển thị gần ngược lại với trụ Chúng ta thống kê lại chức trụ sau: • Khi trạng thái (Trụ đỏ): Trụ phụ hiển thị đèn xanh • Khi trạng thái (Trụ xanh): Trụ phụ hiển thị đèn đỏ • Khi trạng thái (trụ vàng): Trụ phụ khơng làm cả, lúc trụ phụ chu kì đèn màu đỏ, tiếp tục hiển thị màu đỏ • Trụ phụ hoạt động hết chu kì xanh, tự động chuyển sang vàng mà không chờ lệnh từ trụ Với chức kể trên, chức đầu thực khối lệnh forever, chức cuối cùng, thay đổi câu lệnh chuyển trạng thái hàm GREEN_LIGHT Dưới chương trình trụ phụ, đặt đối diện với trụ chính: (15 phút) Chuyển trạng thái từ xanh sang vàng (15 phút) Giáo trình Micro:bit nâng cao 40 Hình 50: Chương trình trụ đèn chủ Hiện thực trụ đèn phụ thứ hai Như mô tả trên, cần gọi hàm cho với giá trị trạng thái khối lệnh forever Chương trình cho trụ đèn phụ sau: Hình 51: Chương trình xử lý trạng thái cho trụ đèn phụ Lưu ý rằng, khơng xử lý cho trường hợp nhận giá trị 2, ví lúc hiển thị màu đỏ Tuy nhiên, trụ đèn phụ phải hiển thị màu vàng Do đó, định nghĩa thêm trạng thái cho nó, trạng thái số để hiển thị màu vàng Khi hiển thị xong màu xanh, hệ thống tự động chuyển sang trạng thái 3, để hiển thị màu vàng Giáo trình Micro:bit nâng cao 41 Chuyển trạng thái từ xanh sang vàng Như mô tả trên, khác với trụ phụ thứ nhất, sau kết thúc màu xanh đợi tín hiệu từ trụ chủ, trụ thứ tự động chuyển sang màu vàng Do đó, cuối hàm GREEN_LIGHT, có câu lệnh để thay đổi status thành 3, giá trị để hệ thống chuyển sang vàng Hình ảnh tồn chương trình cho trụ đèn phụ sau: Hình 52: Tự chuyển sang đèn vàng sau hết đèn xanh Lợi việc tổ chức chương trình theo kiến trúc việc thay đổi nhanh: cần thay đổi trạng thái biến status vị trí thích hợp Hình 53: Tồn chương trình cho trụ đèn phụ Giáo trình Micro:bit nâng cao 42 Bài 10: Tích hợp thêm dịch vụ cho dự án Đèn Giao Thông • MỤC TIÊU (Bài tham khảo) Học sinh sẽ: • Hiểu luồng thực thi chương trình • Kết nối phần cứng với với dự án có • Tích hợp thêm chức • Hiểu khái niệm “Lập trình độc lập” • PHÂN BỔ THỜI LƯỢNG Nguyên lý (20 phút) Hiện thực tính xin qua đường Nguyên lý Với hướng dẫn trước, cần phải tuân thủ nguyên tắc lập trình phần cứng, sau: • Khơng sử dụng câu lệnh lặp, sử dụng thêm biến để tạo ứng đợi • Khơng sử dụng câu lệnh pause, trừ câu lệnh khối lệnh forever Sau tuân thủ nguyên tắc này, dễ dàng tích hợp tính mới, hồn tồn khơng ảnh hưởng đến tính thực Chúng ta cần thực thêm câu lệnh vịng forever Chúng ta thử kết nối nút nhấn vào chân P2 loa báo động vào chân P8, hình bên Hãy lưu ý vị trí kết nối thiết bị, mơ đun LED sử dụng hết chân P0 P1, nên phần cứng mới, phải nối vào chân phần cứng khác, không đụng độ với phần cứng xài (25 phút) Hình 54: Kết nối thêm nút nhấn loa báo động Chúng ta thực chương trình nhỏ để kiểm tra việc kết nối thiết bị mới: Khi nhấn nút loa kêu, khơng nhấn loa khơng kêu Lưu ý rằng, để chân nhận tín hiệu, phải cấu hình pull up on start Chúng ta thực chương trình khối forever, sau: Giáo trình Micro:bit nâng cao 43 Hình 55: Chương trình kiểm tra nút nhấn loa báo động Với chương trình trên, đơi nhấn nút thấy loa không kêu thả nút nhấn, loa kêu Lý khơng cịn sử dụng câu lệnh lặp nào, việc xuất liệu hình 25 LED bị trễ khoảng nửa giây Chúng ta thấy, câu lệnh phải đợi ảnh hưởng nhiều đến hệ thống có tương tác từ bên ngồi Độ trễ chương trình làm giảm nhiều hiệu suất hệ thống Để khắc phục điều này, cách nhanh nhất, tạo thêm luồng xử lý song song, cách sử dụng kết hợp khối lệnh run in background vịng lặp vơ tận, hình bên dưới: Hình 56: Hiệu chỉnh chương trình: Thêm luồng thực thi song song Giáo trình Micro:bit nâng cao 44 Hiện thực tính xin qua đường Sau kiểm tra liệu đầu vào đầu ra, thực dịch vụ mới, dịch vụ xin qua đường người với chức sau: Khi người dùng nhấn nút, đến đèn đỏ, loa bắt đầu báo hiệu, hết đèn đỏ, loa dừng kêu Hướng dẫn: Tạo biến số, tên isBeep, có giá trị ban đầu Khi nhấn nút nhấn gán lên Điều chỉnh lại hàm RED_LIGHT để thêm tính xuất liệu loa Hình 57: Chương trình tích hợp thêm loa báo động cho người Chúng ta bắt đầu báo hiệu nhóm lệnh cuối khối RED_LIGHT Khi hết chu kì đèn đỏ, gán lại giá trị isBeep tắt chân tín hiệu P8 Hãy lưu ý biến isBeep gán nhấn nút, khối lệnh forever Việc làm cho ứng dụng trở nên thân thiện địi hỏi phân tích thực, chủ yếu nằm đoạn chương trình cuối hàm RED_LIGHT Ví dụ, xuất tiếng beep 300ms, lặp lại điều sau giây, thay kêu liên tục suốt thời gian đèn đỏ Chúng ta tận dụng biến counter_timer để thực chức Chương trình với yêu cầu sau: Giáo trình Micro:bit nâng cao 45 Hình 58: Loa kêu giây lần, lần 300ms Rất nhiều tính thực, với độ phức tạp tăng dần: • Khi đèn đỏ, mà người dùng nhấn nút xin qua đường, loa khơng kêu • Khi loa kêu giây 01 lần, 02 giây hết đèn đỏ, kêu với tốc độ nhanh kêu liên tục khơng ngừng Giáo viên chủ động đặt thêm yêu cầu khác xem tập mở rộng cho học sinh ☺ Hết ☺ Chúc khỏe thành cơng Giáo trình Micro:bit nâng cao 46

Ngày đăng: 21/06/2021, 01:17

Tài liệu cùng người dùng

Tài liệu liên quan