Mục lục:

Kết nối Xử lý và Arduino và Tạo 7 Phân đoạn và Bộ điều khiển Servo GUI: 4 bước
Kết nối Xử lý và Arduino và Tạo 7 Phân đoạn và Bộ điều khiển Servo GUI: 4 bước

Video: Kết nối Xử lý và Arduino và Tạo 7 Phân đoạn và Bộ điều khiển Servo GUI: 4 bước

Video: Kết nối Xử lý và Arduino và Tạo 7 Phân đoạn và Bộ điều khiển Servo GUI: 4 bước
Video: Điều khiển động cơ Servo với Arduino - Tự học lập trình Arduino Tập 32 2024, Tháng mười một
Anonim
Kết nối Xử lý và Arduino và Tạo 7 Phân đoạn và Bộ điều khiển GUI Servo
Kết nối Xử lý và Arduino và Tạo 7 Phân đoạn và Bộ điều khiển GUI Servo

Đối với một số dự án bạn thực hiện cần sử dụng Arduino vì nó cung cấp một nền tảng tạo mẫu dễ dàng nhưng hiển thị đồ họa trong màn hình nối tiếp của Arduino có thể mất khá nhiều thời gian và thậm chí rất khó thực hiện. Bạn có thể hiển thị đồ thị trên Arduino Serial Monitor nhưng đồ thị không phải là thứ duy nhất bạn có thể cần hiển thị. Tất cả các đối tượng tương tác như thanh trượt, nút, chương trình có đầu ra 2D, 3D, PDF hoặc SVG và bạn cũng có thể tạo hoạt ảnh dễ dàng. Chế độ lập trình mặc định để xử lý là Java nhưng bạn có thể chuyển nó sang Android, p5.js, REPL, CoffeeScript và JavaScript. Tuy nhiên, trong Có thể hướng dẫn này, chúng tôi sẽ sử dụng chế độ lập trình Java.

Tất cả nội dung và mã cũng có sẵn trên github của tôi ở đây.

Bước 1: Sử dụng Processing.serial

Mã xử lý

Hai dòng mã đầu tiên sẽ là

nhập xử lý.serial. *; Nối tiếp myPort;

Ở dòng đầu tiên, chúng ta đang nhập thư viện - đang xử lý và ở dòng thứ hai, chúng ta đang tạo một đối tượng của lớp Serial có tên là myPort, bạn có thể đặt tên nó bất cứ thứ gì bạn thích theo các quy tắc đặt tên định danh.

Trong quá trình xử lý, chúng tôi có void setup () và void draw () trong đó void là kiểu trả về của hàm, bạn cũng có thể thay đổi nó thành int setup () và int draw () hoặc kiểu dữ liệu khác mà bạn thích nhưng bạn sẽ cần trả về giá trị có cùng kiểu dữ liệu với kiểu dữ liệu bạn sử dụng trước các hàm.

trong setup (), chúng tôi viết các câu lệnh cần thực hiện một lần trong khi trong draw (), chúng tôi viết các câu lệnh cần thực hiện nhiều lần. Hai dòng mã được đề cập ở trên nên được viết ở trên void setup () vì chúng cần có quyền truy cập toàn cục.

Trong void setup (), chúng ta sẽ khởi tạo đối tượng myPort.

void setup () {

kích thước (800, 800);

myPort = new Serial (this, "COM18", 9600);

}

Kích thước dòng (800, 800); xác định kích thước của màn hình là 800 pixel x 800 pixel.

Từ khóa new ở dòng thứ hai được sử dụng để dành không gian cho đối tượng trong bộ nhớ, đối số đây là một biến tham chiếu tham chiếu đến đối tượng hiện tại. Đối số COM18 là cổng kết nối Arduino, chúng ta cần điều này vì chúng ta sẽ vận chuyển dữ liệu qua giao diện nối tiếp. Số 18 có thể khác trong trường hợp của bạn, bạn có thể tìm thấy nó trong Công cụ> Cổng trong Arduino IDE và 9600 là tốc độ truyền bạn có thể thay đổi điều này trong cả Arduino và Xử lý.

Bước 2: Hiểu Lớp nối tiếp

Hàm tạo cho Sê-ri

Serial (cha, portName, baudRate, parity, dataBits, stopBits)

Tranh luận:

cha mẹ: thường sử dụng "this"

baudRate (int): 9600 là mặc định

portName (String): tên của cổng (COM1 là mặc định)

parity (char): 'N' cho không, 'E' cho chẵn, "O" cho lẻ, "M" cho dấu, "S" cho khoảng trắng ('N' là mặc định)

dataBits (int): 8 là mặc định

stopBits (float): 1.0, 1.5 hoặc 2.0 (mặc định là 1.0)

Các phương pháp quan trọng:

  1. myPort.available () - trả về số byte có sẵn.
  2. myPort.clear () - làm trống bộ đệm và xóa tất cả dữ liệu được lưu trữ ở đó.
  3. myPort.read () - Trả về một số từ 0 đến 255 cho byte tiếp theo đang đợi trong bộ đệm.
  4. myPort.readString () - Trả về tất cả dữ liệu từ bộ đệm dưới dạng Chuỗi hoặc null nếu không có dữ liệu nào có sẵn.
  5. myPort.write ("test") - Ghi byte, ký tự, int, byte , chuỗi vào cổng nối tiếp.
  6. myPort.stop () - Đặt giao tiếp dữ liệu trên cổng.

Bước 3: Lớp nối tiếp Arduino

Bạn không cần phải nhập Lớp nối tiếp trong Arduino trước khi sử dụng nó.

Trong Arduino có 2 hàm gọi là setup () và loop () thiết lập chỉ chạy một lần nhưng vòng lặp chạy nhiều lần, trong setup () chúng ta cần viết sử dụng phương thức begin () để bắt đầu giao tiếp nối tiếp. Trong Arduino không giống như xử lý, chúng ta không cần phải đề cập đến cổng là đối số của phương thức begin () vì chúng ta đã chỉ định cổng trong khi tải lên bản phác thảo trong Arduino.

Vì vậy, thiết lập () sẽ giống như sau:

void setup () {

Serial.begin (9600); // bắt đầu giao tiếp nối tiếp

}

9600 ở đây chỉ định tốc độ truyền mà chúng tôi cũng đã đề cập đến điều này trong tệp xử lý. Để giao tiếp thích hợp, cả hai tốc độ truyền phải bằng nhau hoặc bạn có thể thấy đầu ra nối tiếp là một cái gì đó vô nghĩa.

Bây giờ chúng ta hãy xem phần loop (). Phần mã này chạy nhiều lần. Nếu chúng ta muốn đọc một số dữ liệu bằng cổng, chúng ta sẽ sử dụng phương thức Serial.read (). Hàm này trả về null nếu không có sẵn dữ liệu, vì vậy chúng ta sẽ chỉ gọi phương thức này khi chúng ta có một số dữ liệu trong dòng Serial có sẵn.

Để kiểm tra xem có sẵn một số dữ liệu hay không, chúng tôi sẽ sử dụng phương thức Serial.available (). Nếu nó trả về giá trị lớn hơn 0 - một số dữ liệu có sẵn.

Vì vậy, phần loop () sẽ giống như sau:

void loop () {

if (Serial.available ()> 0) {// nếu một số dữ liệu có sẵn trong cổng nối tiếp

trạng thái char = Serial.read (); // đọc giá trị

// câu lệnh if hoặc trường hợp chuyển đổi

}

}

Bây giờ chúng ta có thể sử dụng if bậc thang hoặc nếu có nhiều kết quả có thể xảy ra, chúng ta cũng có thể sử dụng trường hợp chuyển đổi cho trạng thái thay đổi.

Bước 4: Xây dựng bộ điều khiển phân đoạn GUI 7

Xây dựng bộ điều khiển phân đoạn GUI 7
Xây dựng bộ điều khiển phân đoạn GUI 7
Xây dựng bộ điều khiển phân đoạn GUI 7
Xây dựng bộ điều khiển phân đoạn GUI 7
Xây dựng bộ điều khiển phân đoạn GUI 7
Xây dựng bộ điều khiển phân đoạn GUI 7

Các tập tin được đính kèm ở đây. Lưu ý: Để xử lý, bạn cũng sẽ cần cài đặt thư viện p5 điều khiển mà tôi đã sử dụng để tạo các nút tương tác GUI.

Ghim số

7 đoạn (theo thứ tự bảng chữ cái) tham khảo hình ảnh

a - chân số 2

b - chân số 3

c - chân số 4

d - chân số 5

e - chân số 6

f - chân số 7

g - chân số 8

dp - chân số 9

Tất cả nội dung và mã cũng có sẵn trên github của tôi ở đây

Đề xuất: