Giao tiếp arduino với máy tính

*
Đăng nhập

Bạn đang xem: Giao tiếp arduino với máy tính

*

*
MẠCH ĐIỆN
Arduino

Xem thêm: Cách Chọn Quà Tặng Noel Tặng Gì Cho Bạn Trai Để Món Quà Có Ý Nghĩa?

Màn hình LCD

Ở bài xích đầu về Processing, chúng ta đã tìm tòi việc máy tính xách tay nhận được biểu thị của arduino. Vậy làm sao máy tính rất có thể làm được? tiếp xúc giữa máy vi tính và Arduino là giao thức UART (qua Serial). Từ bây giờ chúng ta cùng nhau mày mò về nó nhé !

UARTvà giao tiếp Serial

Bất cứ máy tính xách tay hay vi tinh chỉnh và điều khiển (không chỉ gồm Arduino) đều giao tiếp với nhau trải qua UART. Khi bạn kết nối arduino với laptop bằng dây USB lúc đó bạn cũng có thể bật Serial Motion lên để rất có thể gửi cũng giống như nhận từ bỏ Arduino. Vậy gồm phải UART chỉ truyền qua USB? chưa phải đâu, UART chỉ là 1 trong phương thức giao tiếp giữa 2 thiết bị, còn cách truyền UART có tương đối nhiều cách như dây cáp, các loại sóng…

Chúng ta hoàn toàn có thể sử dụng 2 Arduino để tiếp xúc với nhau bằng 3 chân GND, TX cùng RX. Thếthì Arduino giao tiếp với máy tính xách tay thì sao? Ở mức thực hiện dây dẫn, các bạn sẽ chia có tác dụng 2 dạng:

Nếu ban sử dụng những arduino đã tất cả chip hoặc module vẫn builtin sẵn bài toán sử dụng chuyển đổi UART lớn SERIAL như Arduino UNO R3, Mega… thì chúng ta chỉ việc cắm dây vào cổng USB.Với hồ hết Arduino Promini không tồn tại Builtin sẵn thì các bạn phải sẵn sàng một mạch UART to lớn SERIAL riêng và sử dụng 3 gai (có thể 4 gai thêm VCC cấp cho nguồn cho Arduino) để tiếp xúc với sản phẩm tính

Các bạn đã từng sử dụng Serial nhằm Debug rồi thì đó là do Arduino truyền biểu thị qua trang bị tính. Vào trường phù hợp này, các nội dung truyền sẽ được lưu trong output buffer của arduino truyền qua máy tính và lưu đầu vào buffer. Máy tính sẽ đọc các dữ liệu đó và quy ra Serial Command. Tương tự thì Arduino cũng rất có thể được truyền ngược lại theo phương thức ấy theo quy mô sau:

Về phần Serial Command thì mình sẽ hướng dẫn các bạn trong bài bác kế tiếp, bài này chúng ta sẽ thường xuyên với 2 vấn đề: làm sao để biết tất cả bao nhiêu kết nối Serial hiện nay có? Và điều khiển và tinh chỉnh đèn LED bởi chuột trang bị tính. Chúng ta sẽ sử dụng gửi thừa nhận tín hiệu đơn giản dễ dàng nên không yêu cầu dùng mang đến Serial Command

Làm sao để hiểu bao nhiêu kết nối Serial hiện nay có?

Nếu như các bạn có kỹ năng java thì câu hỏi trên chưa phải là vụ việc lớn. Nhưng so với Processing, thì mọi thứ rất đơn giản để giải quyết thắc mắc trên

Chỉ phải chạy đoạn code sau trong Processing thì đã hiển thị cho bạn các Serial hiện tại kết nối.

*

Như các chúng ta có thể thấy ở màn hình hiển thị Serial phía dưới xuất ra “COM1 COM11” có 2 cổng COM đang rất được kết nối. Kết quả trả về có thể sẽ bao gồm dạng danh sách những cổng COM xuất xắc cổng /dev/tty,...

Vậy khi các bạn tìm phát âm tới đây, các bạn đã có thể phát âm được vì sao vì sao bài 1 ta cần yếu chạy khi vẫn mở Serial Monitor. ể thực hiện được cổng Serial, chương trình phải gồm quyền đọc văn bản trong cổng đó. Nhưng Processing tốt Arduino đều rất cần phải mở cổng trước thì mới làm việc tiếp được. Nghĩa là còn nếu không mở cổng được (vì cổng đã có được mở) thì Processing hay Arudino sẽ báo lỗi: Cổng Serial sẽ bận!

Điều khiển LED bởi chuột bằng Processing

Bài 1 bọn họ đã hoàn toàn có thể truyền thông tin từ Arduino cho máy tính, vậy ở bài này bọn họ hãy thử truyền trái lại xem sao !

Chuẩn bị

Tương từ bỏ như bài xích 1

Phần mềm: Arduino IDE, Processing

Phần cứng: Arduino Board (Board như Arduino UNO R3, Mega 2560 phần đa được) hoặc các bạn có thể lắp mạch tinh chỉnh LED.

Ở trên đây mình thực hiện Arduino UNO R3 với mạch LED nhằm các bạn cũng có thể nhìn rõ hơn. Các bạn cũng có thể sử dụng LED_BUILTIN trực tiếp từ Arduino (Ví dụ Chân 13 của Arduino Uno)

Lập trình

Code Arduino:

Code Processing:

Tại sao trong mã nguồn của Processing ta lại nên kiểm tra “mousePressed”? Nếu không tồn tại nó thì sao ? Các chúng ta cũng có thể thử nghiệm coi chuyện gì sẽ xảy ra nhé! chúng ta sử dụng Arduino Uno quan gần cạnh kỹ đèn TX RX khi thử nghiệm là đã hiểu thôi :D