Hiện thực chương trình

Một phần của tài liệu [GiaoTrinh]-MicrobitSmartHome (Trang 76 - 82)

Trong bài này, chúng ta sẽ đảo trạng thái của bóng đèn mỗi khi có tiếng vỗ tay (cường độ âm thanh lớn hơn 1 ngưỡng định nghĩa trước). Do đó, chúng ta cần tạo ra 1 biến để lưu giữ trạng thái của quạt (fan_status). Nếu biến này đang là 0, chúng ta xem như là quạt đang tắt. Khi có tiếng vỗ tay, quạt sẽ được kích hoạt cho quay và biến này có giá trị là 1. Kĩ thuật xử lý biến fan_status đã được trình bày trong bài liên quan đến nút nhấn, chúng ta sẽ lấy 1 trừ đi chính nó. Giá trị của biến fan_status cần được khởi tạo là 0 trong khốion start.

Đối với mạch động cơ DRV, chân P8 sẽ dùng để điều khiển chiều. Do nó chỉ có 2 giá trị là 0 hay 1, nên câu lệnhdigital writesẽ được dùng để quy định chiều quay của quạt. Do trong bài hướng dẫn này, chúng ta không cần đảo chiều quạt, chân P8 có thể được cài đặt cố định trong khốion start. Trong khi đó, chân P9 sẽ được dùng

để điều khiển tốc độ quay của động cơ. Do đó, chúng ta sẽ xài câu lệnh analog writeđể có thể tùy chỉnh được tốc độ của quạt. Nếu dùng câu lệnhdigital write

cho chân P9, quạt chỉ có 2 trạng thái là dừng hoặc quay với tốc độ tối đa.

Cũng như những bài trước, chúng ta sẽ hiện thực chương trình trong khốiforever.

Câu lệnh đọc dữ liệu từ cảm biến âm thanh, được hỗ trợ trong thư viện NPNBitKit. Các câu lệnh tương tác với chân P8 và P9 được lấy trong mụcPins. Chương trình

Hình 9.5:Điều khiển quạt bằng âm thanh

Chương trình được chia sẻ ở đường dẫn sau đây:

https://makecode.microbit.org/_i0ubsTappY9x

Việc lựa chọn ngưỡng âm thanh cũng cần phải thống kê như bài điều khiển máy bơm dựa vào độ ẩm đất. Ở đây, giá trị ngưỡng 30 được chọn. Khi tiếng ồn lớn hơn 30 đơn vị chúng ta mới bắt đầu xử lý. Tùy vào trạng thái hiện tại của quạt, mà chương trình sẽ quyết định là quay hay tắt.

Cũng như các bài hướng dẫn trước, phần xử lý liên quan đến cảm biến âm thanh và máy quạt sẽ được tách ra thành một hàm riêng. Trình tự thực hiện cũng như các bài trước, một hàm có tên làSOUND_AND_FANsẽ được tạo ra. Hàm này sẽ được gọi trongforevernhư các bài trước. Hình ảnh của chương trình lúc này sẽ như sau:

Hình 9.6:Hàm xử lý cho cảm biến âm thanh và quạt

Chương trình trên được chia sẻ ở đường dẫn sau đây:

https://makecode.microbit.org/_5VoV61LEiDHE

Một hướng khả dĩ để nâng cao tính thông minh của ứng dụng này là điều khiển thêm tốc độ của quạt bằng tiếng vỗ tay: Trạng thái của quạt sẽ xoay vòng theo thứ tự: Đang tắt - Quay chậm - Quay nhanh - Tắt. Việc chuyển trạng thái này sẽ dựa vào tiếng vỗ tay. Trình tự giải quyết cho một yêu cầu mới, là tạo thêm 1 biến số và sử dụng câu lệnhifmột cách hiệu quả. Với cách tổ chức chương trình của chúng ta hiện tại, bạn đọc chỉ cần phải sửa lại hàmSOUND_AND_FAN. Chỉ cần không sử

4 Câu hỏi ôn tập

1. Cảm biến âm thanh trong bài có đầu ra là dạng tín hiệu gì? A. digital

B. analog C. uart

D. Tất cả đều đúng

2. Tầm giá trị nhận được từ cảm biến âm thanh là bao nhiêu? A. 0 - 1

B. 0 - 1023 C. 0 - 1024 D. Tất cả đều sai

3. Câu lệnh dùng để đọc giá trị từ cảm biến âm thanh là gì? A. Âm thanh

B. analog read

C. Cả 2 câu trên đều đúng D. Tất cả đều sai

4. Bao nhiêu chân sẽ được dùng để điều khiển mạch motor DRV? A. 1

B. 2 3

C. Tất cả đều sai

5. Chân điều khiển chiều của mạch DRV nên sử dụng câu lệnh nào? A. digital write

B. analog write C. pin write

D. Tất cả đều đúng

6. Chân điều khiển tốc độ của mạch DRV nên sử dụng câu lệnh nào? A. digital write (adsbygoogle = window.adsbygoogle || []).push({});

B. analog write C. pin write

D. Tất cả đều đúng

7. Có bao nhiêu giá trị khác nhau để điều khiển mạch DRV motor? A. 2

B. 1023 C. 1024

D. Tùy vào thiết kế của người lập trình

Đáp án 1. B 2. B 3. C 4. B 5. A 6. B 7. C

CHƯƠNG 10

1 Giới thiệu

Trong chuỗi hướng dẫn các chủ đề liên quan đến cảm biến, bạn đọc có thể nhận thấy rất nhiều cảm biến thuộc hệ thống ChiPi đang có cùng 1 chuẩn kết nối, với 3 chân được sử dụng và một chân không kết nối (3V-GND-SIG-NC). Thêm nữa, giá trị đọc về từ cảm biến luôn có tầm giá trị từ 0 đến 1023. Từ những đặc điểm này, bạn đọc có thể nhận ra là các cảm biến như độ ẩm đất, cảm biến ánh sáng và cảm biến âm thanh có cùng 1 giao thức giao tiếp. Mặc dù trong thư viện NPNBitKit, chúng tôi đưa ra 3 khối lệnh khác nhau liên quan đến chúng, bạn đọc có thể dùng bất cứ câu lệnh nào, miễn là chọn chân kết nối cho đúng là được.

Trong bài hướng dẫn này, chúng ta sẽ làm việc với một cảm biến mới, cảm biến đo khí gas MQ2. Đây cũng là một cảm biến có giao thức tương tự như các cảm biến đã trình bày, gọi làcảm biến analog. Tuy nhiên lần này, chúng ta sẽ không

dùng câu lệnh từ NPNBitKit nữa, mà sẽ sử dụng trực tiếp câu lệnh từ hệ thống, câu lệnhanalog read. Thực ra, bản chất của 3 câu lệnh thuộc nhóm AnalogInput trong

NPNBitKit vẫn đang sử dụng từ analog read mà thôi.

Một đèn giao thông sẽ được sử dụng để làm thiết bị cảnh báo. Chúng ta có thể phân ra 3 mức độ cảnh báo tương ứng với đèn xanh, vàng và đỏ. Các thiết bị sẽ sử dụng trong bài hướng dẫn này được trình bày như hình bên dưới:

Các mục tiêu trong bài hướng dẫn này như sau:

• Hiểu nguyên lý kết nối của cảm biến analog.

• Kết nối được cảm biến khí gas và đèn báo hiệu.

• Hiện thực được ứng dụng cảnh báo khí gas.

• Sử dụng được chương trình cũ và tích hợp chức năng mới.

Một phần của tài liệu [GiaoTrinh]-MicrobitSmartHome (Trang 76 - 82)