Giới thiệu về các Example

Giới thiệu về các Example

Example là các ví dụ cơ bản về lập trình trên nền tảng CloverBlock và CloverBoard. Với những người mới tiếp cận có thể dễ dàng sử dụng các example này làm ví dụ để học các vấn đề cơ bản nhất từ đó tiếp tục tìm hiểu, nghiên cứu để phát triển các dự án của cá nhân. Hệ thống example này sẽ liên tục được cập nhật theo thời gian theo cấp độ từ dễ đến khó.

Để mở một example, người dùng chọn vào mục Example trên Toolbar sau đó chọn example muốn thử nghiệm sau đó phần mềm sẽ mở ví dụ đó ra để người lập trình có thể quan sát hoặc đưa ra những hiệu chỉnh mong muốn.

1.Blinkly (Nháy LED)

Chương trình Blink là chương trình thực hiện nhấp nháy một bóng đèn liên tục (Luân phiên giữa việc sáng với tối). Đây là ví dụ cơ bản về điều khiển module đèn LED theo ý muốn.

Ví dụ như sau:

Ví dụ Blinkly mặc định sử dụng LED_ON_BOARD (LED tích hợp sẵn trên CloverBoard) để thử nghiệm điều khiển LED vì thế không cần kết nối bất cứ ngoại vi nào để tiến hành thử nghiệm ví dụ này.

Hiện tượng xảy ra: Bóng đèn trên Board sẽ nhấp nháy với tần số 0.5Hz (1 giây sáng và 1s tắt) liên tục.

Phân tích:

Cụm Block 1: Điều khiển LED_ON_BOARD sáng

Cụm Block 2: Dừng chương trình 1000ms (1s)

Cụm Block 3: Điều khiển LED_ON_BOARD tắt

Cụm Block 4: Dừng chương trình 1000ms (1s)

Chương trình sẽ tiến hành chạy lần lượt thì Block 1 – Block 2- Block 3- Block 4 – Block 1-…… lần lượt như vậy gây ra hiệu ứng đèn LED nhấp nháy liên tục.

Tùy chỉnh:

Thay đổi thời gian ở 2 Block 2 và 4 và nạp lại và quan sát hiện tượng thay đổi.

Thay đổi lựa chọn LED_ON_BOARD bằng lựa chọn khác và thay đổi phần cứng lắp ráp Module để có thể vẫn thấy được hiện tượng nhấp nháy đèn LED.

Tham khảo hình sau:

2.Input Output (Vào ra cơ bản)

Sau khi đã điều khiển được đầu ra, ví dụ Input Output để phục vụ thử nghiệm đọc dữ liệu đầu vào, ở đây là nút nhấn. Ví dụ này sử dụng LED_ON_BOARD và BUTTON_ON_BOARD để thử nghiệm vì thế không cần kết nối bất cứ ngoại vi nào để tiến hành thử nghiệm ví dụ này.

Hiện tượng: Khi nhấn nút trên Board thì đèn LED trên Board sáng, khi nhả ra thì đèn LED tắt.

Phân tích:

Block 1: button from BUTTON_ON_BOARD (Đọc dữ liệu đầu vào của nút nhấn trên Board và trả về giá trị là 1(5V) hoặc 0(0V)). Khi nút nhấn không được nhấn thì điện áp đưa vào chân BUTTON là 5V vì thề Block 1 trả về giá trị là 1, ngược lại khi nhấn nút điện ấp đưa vào chân BUTTON là 0V vì thế Block 1 trả về giá trị là 0.

Block 2: control LED (Xem ví dụ 1). Dữ liệu đầu vào từ Block 1 được đưa vào Block 2 làm tín hiệu điều khiển. Từ đó gây ra hiện tượng nhấn nút thì LED sáng, nhả ra thì LED tắt.

Tùy chỉnh:

Thay đổi lựa chọn nút nhấn, lựa chọn LED và thay đổi phần cứng (Kết hợp Module) tương ứng và thử nghiệm lại chương trình. (Tham khảo kết nối của ví dụ  Button Press)

3.Button Press (Nút nhấn)

Ví dụ này là chương trình về nhận diện sự kiện nút nhấn được nhấn từ đó thay đổi trạng thái đèn sau mỗi lần nút nhấn được nhấn rồi nhả ra (Giống như hiện tượng bấm nút ở các thiết bị sử dụng trong nhà, bấm nút Power trên điều khiển từ xa thì TV bật lên, bấm nút đó lần nữa thì TV tắt đi).

Hiện tượng: Nhấn nút thì LED được kết nối sẽ thay đổi trạng thái từ sáng sang tối sau đó chờ cho người dùng nhả ra, nếu người dùng nhấn nút thì LED sẽ được chuyển từ tối sang sáng. Và cứ lần lượt như thế LED được đảo trạng thái sau mỗi lần người dùng nhấn nút như chúng ta điều khiển bật tắt TV bằng điều khiển từ xa.

Phân tích:

Biến ButtonStatus là biến lưu trạng thái của trạng thái LED.

Nếu có sự kiện nút trấn trên Port 1 thì các Bock bên trong Block If được thực hiện: Đầu tiền là phủ định giá trị biến ButtonStatus (Button bằng đảo của chính nó). Nếu biến ButtonStatus đang mang giá trị True thì biến thành False hoặc đang từ False thì biến thành True. Sau đó, chuyển giá trị đó ra LED ở Port 2.

Giá trị biến ButtonStatus được coi là đầu vào cho Block Control LED nên trạng thái LED được cập nhật theo biến ButtonStatus nên trạng thái LED cũng liên tục biến đổi khi có sự kiến nhấn rồi nhả nút.

 

Kết nối phần cứng: Theo như hướng dẫn kết nối của CloverBlock, phần cứng cần có kết nối theo sơ đồ sau:

Thay đổi:

Thay đổi vị trí của BUTTON và LED tại các Port khác nhau và thử nghiệm lại chương trình.

4.7 Segment LED (Điều khiển LED 7 thanh)

LED 7 thanh là công cụ thường được dùng hiển thị số, thông tin trên một số thiết bị thực tế như hiển thị: Thời gian, Chế độ chạy, Nhiệt độ… Ví dụ này hướng dẫn cách sử dụng LED 7 thanh để hiển thị số một cách đơn giản.

Hiện tượng: LED 7 thanh hiển thị các số từ 1 đến 1000 tăng dần theo mỗi chu kỳ 0,5s.

Phân tích:

Block 1: Vòng lặp biến Count đếm từ 1 đến 1000 và mỗi lần tăng 1 đơn vị (Sau mỗi lần hoàn thành biến Count sẽ được tăng lên 1 giá trị)

Block 2: Ghi giá trị ra LED 7 thanh với đầu vào là biến Count đã được điều khiển tăng sau mỗi lần hoàn thành ở Block 1

Block 3: Dừng chương trình 1 thời gian là 500ms (0.5s) để người quan sát có thời gian để quan sát

Block 2 và 3 nằm trong Block 1 được coi là Block phụ thuộc của Block 1. Mỗi lần biến Count được tăng lên Block 2 và 3 được sử dụng 1 lần vì thế giá trị của biến Count cũng lần lượt được đưa ra màn hình LED 7 thanh.

Biến Count được tăng lên một đơn vị sau đó được truyền vào hàm hiển thị ra LED 7 thanh thực hiện hiển thị số đó lên LED 7 thanh. Sau đó chương trình dừng lại 0.5s. Sau 0.5s biến Count lại được tăng một đơn vị và gửi đến LED. Khi Count đạt đến giá trị 1000 thì Count sẽ được đưa về 1. Và vòng lặp đến chạy lặp lại theo chu kỳ như trên.

Kết nối phần cứng của ví dụ:

Thay đổi:

Thay đổi giá trị khởi động và giá trị kết thúc của vòng lặp (Loop), thay đổi thời gian chờ và theo dõi hiện tượng.

5.Temperature Sensor (Cảm biến nhiệt độ)

Ví dụ cảm biến nhiệt độ thực hiện tận dụng kết quả của ví dụ điều khiển LED 7 thanh thành công, sử dụng LED 7 thanh làm công cụ hiển thị nhiệt độ đo được từ cảm biến nhiệt độ (Đơn vị đo là độ C).

Hiện tượng: Trên LED 7 thanh hiển thị nhiệt độ hiện tại của môi trường.

Giải thích:

Block 1: Read temperature P1. Thực hiện đọc giá trị nhiệt độ của cảm biến nhiệt độ được gắn ở Port 1.

Block 2: Hiển thị giá trị nhận được của Block phụ thuộc lên LED 7 thanh ở Port 4. Ở đây Block 1 là Block phụ thuộc của Block 2. Vì thế giá trị nhiệt độ đọc được ở Block 1 sẽ là thông số được Block 2 ghi ra LED 7 thanh.

Block 3: Dừng 0.5s trước khi thực hiện cập nhật giá trị nhiệt độ lần tiếp theo.

Kết nối phần cứng của ví dụ:

Thử nghiệm: Dùng các cách như thổi hơi, dùng máy sấy đưa đến gần cảm biến nhiệt độ để quan sát sự thay đổi.

6.Humidity Sensor (Cảm biến độ ẩm)

Tương tự như cảm biến nhiệt độ (Đơn vị đo là %)

7.Light Sensor (Cảm biến ánh sáng)

Kết nối của ví dụ: Tương tự bài cảm biến nhiệt độ, độ ẩm. Thay thế cảm biến nhiệt độ, độ ẩm bằng cảm biến ánh sáng ở Port 1.

Tương tự như bài cảm biến nhiệt độ với thông số đo đạc là ánh sáng (Giá trị hiển thị là độ sáng của vùng đặt module cảm biến ánh sáng. Giá trị hiển thị từ 0 đến 100 với 0 là tối nhất, 100 là cường độ ánh sáng cao. Đơn vị đo là %). Thử nghiệm ở các vùng có ánh sáng khác nhau để quan sát hiện tượng.

8.Variable Resistor (Đọc thông tin chiết áp)

Chiết áp là module trả về giá trị thay đổi từ 0 – 1023 khi vị trí núm vặn được thay đổi. Ví dụ này thử nghiệm việc đọc giá trị nhận được từ module chiết áp và hiển thị thông số đó lên LED 7 thanh.

Về chương trình và phân tích tương tự như ví dụ về LED 7 thanh.

Tiến hành thay đổi góc xoay của núm vặn để thấy được sự thay đổi giá trị của giá trị hiển thị trên LED 7 thanh.

Kết nối của ví dụ:

9.Distance Sensor (Cảm biến khoảng cách)

 

Chương trình tương tự như các bài về đọc nhiệt độ, độ ẩm, ánh sáng, giá trị biến trở. Ở bài toán này, cảm biến được sử dụng là cảm biến khoảng cách. Cảm biến trả về giá trị khoảng cách từ cảm biến khoảng cách đến vật cản phía trước cảm biến. Đơn vị đo là cm.

Kết nối của ví dụ:

Tiến hành thử nghiệm đưa một vật cản nào đó đến gần ra xa đầu cảm biến của cảm biến khoảng cách và theo dõi sự thay đổi.

10.Sleep Lamp (Thiết kế đèn ngủ)

Ví dụ này ứng dụng ví dụ đọc thông tin từ cảm biến ánh sáng với ý tưởng thiết bị tự động bật đèn khi trời tối và khi trời sáng tự động tắt đèn để tiết kiệm năng lượng. (Đây là một dạng thiết bị rất phổ biến trong cuộc sống hằng ngày như: Đèn ngủ gia đình, hệ thống điều khiển chiếu sáng đèn đường tự động, có thể phát triển thành hệ thống tự động bật đèn ô tô, xe máy khi trời về tối).

Thiết bị cần có: Cảm biến ánh áng, đèn (LED).

Phân tích chương trình:

Block 1: Đọc cảm biến ánh sáng dưới dạng % (Giá trị trả về từ 0-100%)

Block 2: Block so sánh với 2 Block phụ thuộc là Block 1 và Block X. So sánh giá trị của Block 1 có lớn hơn giá trị 60 (Block X) (60%) không?

Block 3: Block 4 và 5 là Block con của Block 3. Block 2 là Block điều kiện của Block 3. Nếu giá trị từ Block 2 đúng (Tức là ánh sáng hiện tại có cường độ nhỏ hơn 60%) thì thực hiện Block 4, nếu không đúng thì thực hiện Block 5.

Block 4: Thực hiện bật đèn (Nếu ánh sáng nhỏ hơn 60%)

Block 5: Thực hiện tắt đèn (Nếu ánh sáng không nhở hơn 60% (≥60%))

Block 6: Nằm ngoài Block 3 (Không phụ thuộc Block 3). Sau mỗi lần cập nhật và điều khiển dừng lại 1s để chờ lượt cập nhật tiếp theo.

Thử nghiệm:

Thay đổi ánh sáng chiếu vào cảm biến ánh sáng vào theo dõi hiện tượng.

Thay đổi hệ số ổ Block X bằng các giá trị trong khoảng 0-100 (Thử giá trị lớn hơn 100 một lần) và thử nghiệm lại, sau đó đưa ra kết luận.

Khi hệ số của Block X là trên 100 thì hiện tượng gì xảy ra và tại sao?

 

Bài viết liên quan