Công cụ vẽ đồ thị trên arduino IDE - Serial Plotter

Sử dụng Serial Plotter chúng ta có thể vẽ đồ thị đầu ra của các dự án Arduino trong thời gian thực.  Việc vẽ đồ thị 1 cách nối tiếp theo thời gian thực là một phần mềm tiện ích có giá trị, và nó được sử dụng thông qua kết nối USB. Đồ thị gồm 2 trục X và Y . Trục dọc Y sẽ tự động điều chỉnh khi giá trị của thông số cần vẽ tăng hoặc giảm. Trục X không phải là trục thời gian, nhưng mỗi khi có thêm 1 lệnh println() nó sẽ được vẽ nối tiếp luôn vào đồ thị.

 Nói cách đơn giản, mỗi lần một lệnh Serial.println được thực hiện một điểm mới được thêm vào trong đồ thị. Tuy nhiên cho đến thời điểm hiện tại chúng ta sẽ có thể có tối đa là 500 điểm trên đồ thị và sẽ hi vọng trong các bản nâng cấp tiếp theo sẽ có nhiều điểm hơn.

Chúng ta hãy cùng đi vào ví dụ đầu tiên nhé

I. ĐỒ THỊ TRÊN SERIAL 

Lưu ý

Việc sử dụng serial plotter chỉ có hiệu lực trên Arduino IDE từ 1.6.6 trở đi nhé

Hãy nạp 1 đoạn code vào arduino của bạn

byte b=0;
void setup()
{
    Serial.begin(9600);
}
void loop()
{
    Serial.println(b++);
}

 

Để mở Plotter Serial, chọn Tools-> Serial Plotter trong menu chính (hoặc bấm Ctrl + Shift + L trong Windows). Giả sử có một Arduino kết nối, cửa sổ vẽ đồ thị sẽ mở ra. Ở phía dưới bên trái, bạn có thể chọn tốc độ truyền - giống như bạn sử dụng serial Monitor. Điều khác duy nhất là bạn không thể làm gì khác với cái đồ thị này ngoài việc nhìn nó thay đổi.

Đây chính là đồ thị hiển thị giá trị của biến b thay đổi từ 0 đến 255. Các bạn thấy thú vị không?

Ta cùng nạp 1 đoạn code khác để có được 1 hình ảnh đồ thị mềm mại hơn nhé

void setup() {
  Serial.begin(9600);
}

void loop() {
  for (int j = 0; j < 360; j++) {
   Serial.println(sin(j * (PI / 180)));
  }
}

Đồ thị hình sin được vẽ từ tín hiệu thông qua serial println.

Trục X của đồ thị là cố định, và nó chỉ đại diện cho giá trị của tín hiệu, từ trái sang phải. Bạn có thể kéo dãn cửa sổ vẽ đồ thị, nhưng đồ thị sẽ luôn hiển thị 500 số. Khi số lượng nhiều hơn đồ thị sẽ cuộn đi và bạn sẽ không có cách nào để kéo nó quay lại để nhìn nó 1 lần nữa.

Vậy thì để làm gì? Tôi cần nó để làm gì?

Khi các bạn sử dụng đến các cảm biến như nhiệt độ, độ ẩm, Plotter hoàn toàn có thể vẽ cho bạn 1 đồ thị mô tả về thông số do cảm biến đo đạc được, nó hoàn toàn trực quan so với cách các bạn xem nó bằng các dãy số chạy ầm ầm trên serial monitor. Từ bản 1.6.7 trở đi các bạn có thể vẽ được nhiều đồ thị từ nhiều dữ liệu hơn so với việc vẽ từ 1 dữ liệu.

II. KẾT LUẬN

Các tính năng đồ họa của Plotter cho phép bạn nhanh chóng xem những thay đổi tương đối trong dữ liệu của bạn mà không cần nhìn vào một dòng của các giá trị số chạy rối lắm hoặc phải sao chép và dán dữ liệu vào Excel hoặc Google Sheets để quan sát sự thay đổi. Để làm được như vậy chúng ta chỉ cần nhập Serial.printlnvà mở Plotter Serial.

Trong trường hợp bạn làm việc với cảm biến nhiệt độ, độ ẩm (DHT11) thì trên màn hình sẽ hiển thị 2 đồ thị của nhiệt độ và độ ẩm, rất tiện để các bạn quan sát và đánh giá.

Chúc các bạn thành công!

lên
15 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

LCD Graphic 128x64 dòng KS0108 VÀ ST7920 - Viết, vẽ và làm mọi thứ với LCD

Graphic LCD (gọi tắt là GLCD) loại chấm không màu là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ, số hoặc hình ảnh. Khác với Text LCD, GLCD không được chia thành các ô để hiển thị các mã ASCII vì GLCD không có bộ nhớ CGRAM (Character Generation RAM). GLCD 128x64 có 128 cột và 64 hàng tương ứng có 128x64=8192 chấm (dot). Mỗi chấm tương ứng với 1 bit dữ liệu, và như thế cần 8192 bits hay 1024 bytes RAM để chứa dữ liệu hiển thị đầy mỗi 128x64 GLCD. Tùy theo loại chip điều khiển, nguyên lý hoạt động của GLCD có thể khác nhau, trong bài này tôi giới thiệu loại GLCD được điều khiển bởi chip KS0108 của Samsung, có thể nói GLCD với KS0108 là phổ biến nhất trong các loại GLCD loại này (chấm, không màu). Hình 1 là hình ảnh thật của 1 GLCD 128x64 điều khiển bởi KS0108.

lên
26 thành viên đã đánh giá bài viết này hữu ích.

Giao tiếp giữa 2 boad Arduino ở cự li xa 1000m bằng chuẩn giao tiếp RS-485

Mình đã có 1 bài viết hướng dẫn về cách giao tiếp giữa 2 arduino bằng i2c, 1 câu hỏi đặt ra "Đối với trường hợp 2 arduino cách xa nhau 50-100m thì sẽ thế nào?", Tất nhiên đối với cự ly như vậy, giao tiếp i2c vẫn có thể thực hiện được nhưng với yêu cầu sử dụng cáp kết nối và nhiều vấn đề phức tạp khác để đối phó với vấn đề sụt giảm điện áp trên đường truyền tải tín hiệu.

Bài viết này mình xin đề cập đến chuẩn giao tiếp RS-485,giúp giao tiếp 2 boad arduino ở cự ly 1000m thậm chí có thể lên tới 1200m (4000feet)

lên
23 thành viên đã đánh giá bài viết này hữu ích.