Trong trình mô phỏng Tinkercad Circuits, Serial Monitor nằm ở cuối bảng Code và được dùng để vẽ biểu đồ các biến (khi chúng thay đổi). Ta sử dụng Serial Monitor để “giao tiếp” với máy tính như là một cách để kiểm tra xem code Arduino có đang thực hiện đúng như những gì ta mong muốn không. Việc này có thể rất hữu ích khi cần giải quyết các vấn đề liên quan đến code (thường được gọi là ‘serial debugging’).
Hai mạch trong bài viết này sử dụng các cấu hình tương tự như hai bài viết trước là: Digital input với nút nhấn và Analog input với biến trở. Sự khác biệt duy nhất là các mạch này không có breadboard và không có đèn LED rời.
Bước 1: Hiện kết quả ra Serial Monitor
Link mạch mô phỏng: Arduino Serial Monitor trên Tinkercad
Ta sẽ sử dụng trình chỉnh sửa code để thu tín hiệu từ một chân đầu vào của Arduino, sau đó xuất ra giá trị (analog hoặc digital) đó vào cửa sổ Serial Monitor.
Đầu tiên, ta nhấp vào nút “Code” để mở bảng code. Nhấp vào Serial Monitor ở cuối bảng code.
Nhấp vào “Start Simulation” để chạy code Arduino mẫu và quan sát các số trên màn hình serial khi bạn tương tác với biến trở. Bạn có thể nhấp qua lại giữa hai Arduino khi mô phỏng đang chạy, tuy nhiên chỉ có mạch analog mới hiển thị trong module nhúng bên trên.
Sau khi tạo một bản sao mạch mẫu vào tài khoản Tinkercad cá nhân, bạn sẽ có thể chỉnh sửa code theo như mong muốn.
Ta di chuột đến danh mục code Output, kéo ra một khối “print to serial monitor” và đặt nó ngay trước khối serial đã có trong chương trình.
Thay đổi văn bản mặc định (default text) để dán nhãn dữ liệu Serial của bạn (ví dụ như “sensor: “) và điều chỉnh từ menu để dữ liệu in mà không xuống dòng mới.
Bắt đầu mô phỏng và quan sát sự thay đổi trong Serial monitor. Bạn có thể đặt các khối serial như thế này để tạo các thông báo phản hồi giúp ích trong quá trình xây dựng code của bất kỳ dự án nào.
Bước 2: Giải thích code Arduino Serial Monitor
Trên Tinkercad Circuits, khi trình chỉnh sửa code mở, bạn có thể nhấp vào menu bên trái và chọn “Block + Text” để hiển thị code Arduino được tạo bởi các khối. Code này sẽ gửi dữ liệu từ Arduino đến Serial monitor.
Trước setup() là một đoạn nhận xét nhiều dòng, bắt đầu bằng /* và kết thúc bằng */.
Lúc bắt đầu chương trình, ta sẽ tạo một biến để giữ trạng thái của đầu vào (input).
Bên trong hàm setup, tương tự như các bài viết về analog input và digital input trước đó, chân nối với công tắc hoặc cảm biến được định cấu hình để trở thành đầu vào, bằng cách sử dụng pinMode(). Để có thể gửi thông điệp tín hiệu, Arduino cần mở một kênh giao tiếp mới bằng hàm Serial.begin(). Kể từ lúc gọi hàm, bạn sẽ mở ra một đường truyền thông tin. Đối số bên trong sẽ thiết lập tốc độ giao tiếp của Arduino, ở ví dụ bên trên là 9600 bit mỗi giây (hay còn gọi là baud).
Code bên trong vòng lặp sẽ đọc trạng thái của đầu vào bằng digitalRead () và lưu trữ nó trong biến buttonState. Sau đó, Serial.println() sẽ gửi dữ liệu đến màn hình (thông qua cáp USB nếu ta thực hành trên board Arduino thực tế). Nếu như bạn đã thay đổi các khối code trong chương trình (ở bước trước), thì bạn cũng sẽ thấy dòng code Serial.print().
Lưu ý rằng lệnh println sẽ ngắt dòng mới sau mỗi thông điệp và lệnh print thì không ngắt dòng. Đồng thời ta phải sử dụng dấu ngoặc kép xung quanh các text, ví dụ: Serial.print(“sensor: “);.
Nếu kết quả của serial debugging nằm trên cùng một dòng, bạn có thể sử dụng nhiều lệnh Serial.print() theo sau bởi một lệnh Serial.println().
Bước 3: Code Debugger (Gỡ lỗi code)
Tinkercad Circuit có một tính năng đặc biệt gọi là Trình gỡ lỗi (debugger). Tính năng này sẽ xem xét từng dòng code và cho phép bạn xem các biến của mình.
Khi mở trình chỉnh sửa code, hãy tìm Trình gỡ lỗi bằng cách nhấp vào nút có biểu tượng bug.
Ở chế độ “Block + Text” (hoặc “ Text-only”), hãy nhấp vào số dòng để thêm điểm ngắt. Đây sẽ là nơi trình gỡ lỗi dừng lại mỗi khi vòng lặp thực hiện.
Ta bấm Start Simulation. Sau đó di chuột qua các biến (khi chương trình tạm dừng) để xem giá trị của chúng nhé.
Bước 4: Khởi động Serial Circuit
Các mạch này cũng có sẵn trong mục Starters. Bạn có thể sử dụng chúng khi muốn đọc một digital input hoặc analog input nào đó, và xuất trạng thái của nó lên serial monitor.
Mạch có thể được lấy từ bảng components (menu -> Starters -> Arduino).
Bước 5: Biểu đồ dữ liệu serial
Tinkercad Circuits cũng tích hợp sẵn đồ thị dữ liệu serial. Tính năng này rất hữu ích cho việc xem xét các thay đổi trong lúc đọc tín hiệu cảm biến và input, cũng như để theo dõi các biến trong chương trình.
Khi Màn hình serial mở, hãy nhấp vào nút biểu đồ để mở bảng biểu đồ. Xóa khối nhãn sensor mà bạn đã thêm trước đó.
Sau đó, nhấp Start Simulation và tương tác với đầu vào để xem các giá trị trên đồ thị thay đổi nhé.
Bước 6: Thực hành với board Arduino
Bạn có thể tuỳ ý xây dựng một board Arduino, sau đó sử dụng phần mềm Arduino của máy tính để xem dữ liệu serial qua cáp USB.
Đầu tiên, ta nối dây mạch Arduino Uno bằng cách cắm các linh kiện và dây sao cho khớp với Mạch mẫu trên Tinkercad Circuits. Sao chép code từ cửa sổ code và dán vào một bản thảo trống trong phần mềm Arduino (hoặc nhấp tải xuống và mở file bằng Arduino). Ngoài ra, bạn cũng có thể tìm thấy ví dụ này trong phần mềm, ở mục Tệp -> Ví dụ -> 03.Analog -> AnalogInOutSerial hoặc Tệp -> Ví dụ -> 02.Digital -> DigitalInputPullup.
Sau đó, cắm cáp USB, chọn bo mạch và cổng trong menu Tools của phần mềm.
Tải code lên, nhấp vào biểu tượng kính lúp ở góc trên bên phải để mở màn hình serial. Nhớ kiểm tra kỹ xem tốc độ truyền có khớp với tốc độ được thiết lập không nhé, ở ví dụ này là Serial.begin(9600).
Cuối cùng, ta nhấn nút hoặc xoay núm (tuỳ theo mạch mà bạn thực hiện) và xem các thông số thay đổi trong cửa sổ Serial Monitor.
Nguồn: instructables.com
Lượt dịch: Fuvitech.vn