Arduino là gì?

Arduino là nền tảng mã nguồn mở về phần cứng và phần mềm được xây dựng với mục đích giúp cho người yêu thích điện tử, học sinh sinh viên hoặc giới chuyên nghiệp có thể tạo ra thiết bị có khả năng tương tác với môi trường thông qua các cảm biến.

Bạn đang xem: Kết nối arduino với máy tính

Trong bài viết này, Nghĩa sẽ hướng dẫn các bạn cách cài đặt kết nối Unity với Arduino qua cổng USB và thực hành một bài test demo cơ bản với cảm biến siêu âm đo khoảng cách nhé.

Phần cứng bao gồm 1 board mạch được thiết kế trên nền tảng AVR Atmel 8bit, hoặc ARM Atmel 32-bit, những model hiện tại được trang bị 1 cổng USB, 6 chân đầu vào analog, 14 chân I/O digital.

*

Phần mềm là một môi trường phát triển IDE có thể chạy được trên Windows, Mac, Linux cho phép người dùng viết chương trình cho Arduino bằng C/C++

Bài viết dưới đây hướng dẫn kết nối Arduino với Unity, cách lấy giá trị của cảm biến được nối vào board Arduino. Khi kết nối được với Unity có thể mở rộng ra rất nhiều ứng dụng. Ví dụ sử dụng Hololens kết nối với Arduino thông qua BLE (Bluetooth Low Energy) để điều khiển các thiết bị xung quanh.

Bài viết dưới đây sử dụng:


*

Arduino-UNO-R3-và-Cảm-biến-siêu-âm-HC-SR04


Ngoài board Arduino R3 các bạn cũng có thể sử dụng ESP8266 hoặc ESP32 được tích hợp sẵn bluetooth và wifi. Hoặc module tích hợp như M5Stack có sẵn bluetooth, wifi, cảm biến gia tốc, pin, màn hình TFT. Tất cả đều sử dụng C++ và Arduino
IDE để lập trình hoặc Visual Studio Code nhưng phải cài thêm plugin Platform
IO

*

Cách tải và cài đặt

1. Cài đặt Arduino IDE

Từ link phía dưới hãy chọn phiên bản phù hợp với OS của bạn để tải về cài đặt

https://www.arduino.cc/en/Main/Software

2. Cài đặt Java

Từ link phía dưới hãy chọn phiên bản Java phù hợp với hệ điều hành, ở trong hình hiện đang sử dụng Windows-x64

https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

 

3. Khởi tạo

Sau khi cài đặt Arduino
IDE tiến hành cấu hình ban đầu
Hãy chọn loại board đang sử dụngTools」→「Board」→「Arduino Uno」

*

Sau đó chọn cổng kết nối USBTools」→「Serial Port」→「COM3」

*

Cuối cùng chọn Tools」→「Programmer」→「AVR ISP」

*

4. Thiết lập cảm biến siêu âm đo khoảng cách

Hãy gắn như hình bên dưới

Chân  ↔ Chân  ↔ Chân  ↔ port)>Chân  ↔ port)>

Tín hiệu xung rất ngắn (5 micro giây-cực đại) được phát ra từ cảm biến để đo khoảng cách. Sau đó, cảm biến sẽ tạo ra xung HIGH trên cảm biến cho đến khi nhận được tín hiệu phản xạ từ mã PIN. Độ rộng xung tương ứng với thời gian sóng siêu âm được truyền từ cảm biến và trở lại.

Tốc độ của âm thanh trong không khí là 340 m / s (hằng số vật lý), tương đương 29.412 micro giây / cm (106 / (340 * 100)). Sau khi tính thời gian, chia cho 29,412 để tính khoảng cách.

5. Code trên Arduino
IDE

const int trig = 12; const int echo = 11;void setup(){​Serial.begin(9600); ​pin
Mode(trig,OUTPUT);
​pin
Mode(echo,INPUT);
}void loop(){​unsigned long duration; int distance; digital
Write(trig,0); 
​delay
Microseconds(2);
​digital
Write(trig,1); 
​delay
Microseconds(5); 
​digital
Write(trig,0); 
​duration = pulse
In(echo,HIGH);
​distance = int(duration/2/29.412);​Serial.print(distance);​Serial.println("cm");​delay(200);}

6. Kiểm tra kết quả tại Serial monitor

7. Kết nối Arduino và Unity

Khởi động UnityChọnFile」→「Build Settings…」→「Player Settings」→「Api Compatibility Level」、Tại thuộc tínhApi Compatibility Level」 Để thay đổi.NET2.0」 sang「.NET4.0」

Dưới nhãn Hierarchy bấm nút Create -> UI -> Image để tạo background cho UI

 

 Khi mới tạo thì image nhỏ nên sẽ Anchor lại phủ màn hìnhChọn Object Image vừa tạo bên cửa sổ Inspector chọn ký hiệu Anchor như hình

Giữ phím Alt và chọn như hình

Sau đó tạo text để hiện kết quả của cảm biến siêu âmGiống như cách tạo Image phía trên, tạo Text như hình dưới

 

 

Sau đó setting text như hình để text phóng to và nằm chính giữa

Tạo script C#Thực hiện code C# như phía dưới

public class Arduino
Controller : Mono
Behaviour

{

private Text m_Distance
Text;
//距離の表示するテキスト

private Serial
Port m_Serial
Port; 
//USBポート

 

void Start()

{

m_Distance
Text = Find
Object
Of
Type(); 
//シンでのテキストを探す

m_Serial
Port = new Serial
Port(“COM5”
, 9600); //ポートを指定する

m_Serial
Port.Open(); 
//ポートを開く

}

 

void Update()

{

if (m_Serial
Port.Is
Open)
// Arduinoと接続することを確認

{

string data = m_Serial
Port.Read
Line(); 
// Arduinoからのデータを取得する

float dis = 0;

if (float.Try
Parse(data, out dis))
//Arduinoからのデータは数かどうか確認する

{

m_Distance
Text.text = dis + “cm”
; //画面に表示する

}

}

}

 

private void On
Application
Quit()

{

m_Serial
Port.Close();
//アプリを閉める時ポートを閉める

}

}

Cuối cùng gắn script vừa code vào object canvasChọn object Canvas trên cửa sổ Hierarchy, cửa sổ Inspector bên phải bấm nút Add Component trên thanh tìm kiếm nhập tên script vừa tạo và chọn

Sau cùng bấm nút play sẽ thấy được kết quả

Video demo

Demo với Arduino UNO R3 và HC SR04:

Dưới đây là Video demo kết quả đọc dữ liệu khoảng cách từ cảm biến siêu âm rồi hiện lên Unity realtime. Có thể sử dụng thêm Module HC-05 hoặc HC-10 cho chuẩn BLE để truyền dữ liệu mà không cần dây cáp nhưng bù lại phải có thêm module battery làm nguồn cho mạch nên mình ưu tiên sử dụng M5Stack hơn. (xem video bên dưới)

Arduino Demo mạch cảm biến đo khoảng cách với Unity với Arduino UNO R3 và Cảm biến siêu âm HC SR04

Test trên M5Stack:

Với M5Stack thì có sẵn màn hình TFT để hiện kết quả nên không cần Unity nữa. Giao diện có thể tùy biến linh động, trong video sử dụng thư viện M5Avatar để hiện kết quả. Hơn nữa M5Stack sử dụng board ESP32 nên có sẵn wifi và bluetooth có thể mở rộng ra truyền qua ứng dụng Android/i
OS code bằng Unity hoặc bất kỳ ngôn ngữ nào khác.

Trong bài viết này, bạn sẽ được hướng dẫn cách nạp chương trình đơn giản kiểu "Hello world" (điều khiển đèn LED nhấp nháy theo chu kì 1 giây) cho Arduino Uno R3.Bạn đang xem: Kết nối arduino với máy tính

Hãy đảm bảo rằng bạn đã cài đặt Arduino IDE và Arduino driver lên máy của mình. Nếu chưa thực hiện điều này, bạn hãy xem hướng dẫn tại bài viết Cài đặt driver và Arduino IDE.

Bạn sẽ cần 3 thứ sau:

Arduino IDE Mạch Arduino UNO R3Dây cáp USB 2 đầu Type A-B

Hãy tuần tự thực hiện theo từng bước theo hướng dẫn sau

Bước 1: Kết nối Arduino UNO R3 vào máy tính

Bước 2: Tìm cổng kết nối của Arduino Uno R3 với máy tính

Khi Arduino Uno R3 kết nối với máy tính, nó sẽ sử dụng một cổng COM (Communication port - cổng dữ liệu ảo) để máy tính và bo mạch có thể truyền tải dữ liệu qua lại thông qua cổng này. Windows có thể quản lí đến 256 cổng COM. Để tìm được cổng COM đang được sử dụng để máy tính và mạch Arduino UNO R3 giao tiếp với nhau, bạn phải mở chức năng Device Manager của Windows.

Bạn mở cửa sổ Run và gõ lệnh mmc devmgmt.msc.

Sau đó bấm Enter, cửa sổ Device Manager sẽ hiện lên.

Mở mục Ports (COM & LPT), bạn sẽ thấy cổng COM Arduino Uno R3 đang kết nối

Cổng kết nối ở đây là COM3.

Thông thường, trong những lần kết nối tiếp theo, Windows sẽ sử dụng lại cổng COM3 để kết nối nên bạn không cần thực hiện thêm thao tác tìm cổng COM này nữa.

Bước 3: Khởi động Arduino IDE

Bước 4: Cấu hình phiên làm việc cho Arduino IDE

Vào menu Tools -> Board -> chọn Arduino Uno

Vào menu Tools -> Serial Port -> chọn cổng Arduino đang kết nối với máy tính. Ở máy của mình là COM3.

Xác nhận cổng COM của Arduino IDE ở góc dưới cùng bên phải cửa sổ làm việc

Vào menu Tools -> Programmer -> chọn AVR ISP

Bước 5: Mở và nạp mã nguồn chương trình mẫu

Nạp một chương trình mẫu bằng cách vào menu File -> Examples -> 01.Basics -> chọn Blink. 

Bạn sẽ thấy Arduino IDE mở một cửa sổ mới chứa mã nguồn Blink. Mã này có chức năng là điều khiển đèn LED màu cam trên mạch Arduino Uno R3 nhấp nháy với chu kì 1 giây.

Cùng xem kết quả nào.

Phần khích chưa nào, bạn muốn lập trình Arduino "trên mây" trên chính trình duyệt của bạn không? Tham khảo bài viết Code Arduino trên MÂY, bạn có muốn thử hay không?.


Arduino là gì?

Arduino là nền tảng mã nguồn mở về phần cứng và phần mềm được xây dựng với mục đích giúp cho người yêu thích điện tử, học sinh sinh viên hoặc giới chuyên nghiệp có thể tạo ra thiết bị có khả năng tương tác với môi trường thông qua các cảm biến.

Trong bài viết này, Nghĩa sẽ hướng dẫn các bạn cách cài đặt kết nối Unity với Arduino qua cổng USB và thực hành một bài test demo cơ bản với cảm biến siêu âm đo khoảng cách nhé.

Phần cứng bao gồm 1 board mạch được thiết kế trên nền tảng AVR Atmel 8bit, hoặc ARM Atmel 32-bit, những model hiện tại được trang bị 1 cổng USB, 6 chân đầu vào analog, 14 chân I/O digital.


*

Phần mềm là một môi trường phát triển IDE có thể chạy được trên Windows, Mac, Linux cho phép người dùng viết chương trình cho Arduino bằng C/C++

Bài viết dưới đây hướng dẫn kết nối Arduino với Unity, cách lấy giá trị của cảm biến được nối vào board Arduino. Khi kết nối được với Unity có thể mở rộng ra rất nhiều ứng dụng. Ví dụ sử dụng Hololens kết nối với Arduino thông qua BLE (Bluetooth Low Energy) để điều khiển các thiết bị xung quanh.

Bài viết dưới đây sử dụng:


*

Arduino-UNO-R3-và-Cảm-biến-siêu-âm-HC-SR04

Ngoài board Arduino R3 các bạn cũng có thể sử dụng ESP8266 hoặc ESP32 được tích hợp sẵn bluetooth và wifi. Hoặc module tích hợp như M5Stack có sẵn bluetooth, wifi, cảm biến gia tốc, pin, màn hình TFT. Tất cả đều sử dụng C++ và Arduino
IDE để lập trình hoặc Visual Studio Code nhưng phải cài thêm plugin Platform
IO


*

Cách tải và cài đặt

1. Cài đặt Arduino IDE

Từ link phía dưới hãy chọn phiên bản phù hợp với OS của bạn để tải về cài đặt

https://www.arduino.cc/en/Main/Software

2. Cài đặt Java

Từ link phía dưới hãy chọn phiên bản Java phù hợp với hệ điều hành, ở trong hình hiện đang sử dụng Windows-x64

https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

 

3. Khởi tạo

Sau khi cài đặt Arduino
IDE tiến hành cấu hình ban đầu
Hãy chọn loại board đang sử dụngTools」→「Board」→「Arduino Uno」


*

*

4. Thiết lập cảm biến siêu âm đo khoảng cách

Hãy gắn như hình bên dưới

Chân  ↔ Chân  ↔ Chân  ↔ Chân  ↔

Tín hiệu xung rất ngắn (5 micro giây-cực đại) được phát ra từ cảm biến để đo khoảng cách. Sau đó, cảm biến sẽ tạo ra xung HIGH trên cảm biến cho đến khi nhận được tín hiệu phản xạ từ mã PIN. Độ rộng xung tương ứng với thời gian sóng siêu âm được truyền từ cảm biến và trở lại.

Tốc độ của âm thanh trong không khí là 340 m / s (hằng số vật lý), tương đương 29.412 micro giây / cm (106 / (340 * 100)). Sau khi tính thời gian, chia cho 29,412 để tính khoảng cách.

Xem thêm: Danh Sách Các Xe Phương Trang Đi Trà Vinh Đi Sài Gòn Hay Nhất 2022

5. Code trên Arduino
IDE

const int trig = 12; const int echo = 11;void setup(){​Serial.begin(9600); ​pin
Mode(trig,OUTPUT);
​pin
Mode(echo,INPUT);
}void loop(){​unsigned long duration; int distance; digital
Write(trig,0); 
​delay
Microseconds(2);
​digital
Write(trig,1); 
​delay
Microseconds(5); 
​digital
Write(trig,0); 
​duration = pulse
In(echo,HIGH);
​distance = int(duration/2/29.412);​Serial.print(distance);​Serial.println("cm");​delay(200);}

6. Kiểm tra kết quả tại Serial monitor

7. Kết nối Arduino và Unity

Khởi động UnityChọnFile」→「Build Settings…」→「Player Settings」→「Api Compatibility Level」、Tại thuộc tínhApi Compatibility Level」 Để thay đổi.NET2.0」 sang「.NET4.0」

Dưới nhãn Hierarchy bấm nút Create -> UI -> Image để tạo background cho UI

 

 Khi mới tạo thì image nhỏ nên sẽ Anchor lại phủ màn hìnhChọn Object Image vừa tạo bên cửa sổ Inspector chọn ký hiệu Anchor như hình

Giữ phím Alt và chọn như hình

Sau đó tạo text để hiện kết quả của cảm biến siêu âmGiống như cách tạo Image phía trên, tạo Text như hình dưới

 

 

Sau đó setting text như hình để text phóng to và nằm chính giữa

Tạo script C#Thực hiện code C# như phía dưới

public class Arduino
Controller : Mono
Behaviour

{

private Text m_Distance
Text;
//距離の表示するテキスト

private Serial
Port m_Serial
Port; 
//USBポート

 

void Start()

{

m_Distance
Text = Find
Object
Of
Type(); 
//シンでのテキストを探す

m_Serial
Port = new Serial
Port(“COM5”
, 9600); //ポートを指定する

m_Serial
Port.Open(); 
//ポートを開く

}

 

void Update()

{

if (m_Serial
Port.Is
Open)
// Arduinoと接続することを確認

{

string data = m_Serial
Port.Read
Line(); 
// Arduinoからのデータを取得する

float dis = 0;

if (float.Try
Parse(data, out dis))
//Arduinoからのデータは数かどうか確認する

{

m_Distance
Text.text = dis + “cm”
; //画面に表示する

}

}

}

 

private void On
Application
Quit()

{

m_Serial
Port.Close();
//アプリを閉める時ポートを閉める

}

}

Cuối cùng gắn script vừa code vào object canvasChọn object Canvas trên cửa sổ Hierarchy, cửa sổ Inspector bên phải bấm nút Add Component trên thanh tìm kiếm nhập tên script vừa tạo và chọn

Sau cùng bấm nút play sẽ thấy được kết quả

Video demo

Demo với Arduino UNO R3 và HC SR04:

Dưới đây là Video demo kết quả đọc dữ liệu khoảng cách từ cảm biến siêu âm rồi hiện lên Unity realtime. Có thể sử dụng thêm Module HC-05 hoặc HC-10 cho chuẩn BLE để truyền dữ liệu mà không cần dây cáp nhưng bù lại phải có thêm module battery làm nguồn cho mạch nên mình ưu tiên sử dụng M5Stack hơn. (xem video bên dưới)

Arduino Demo mạch cảm biến đo khoảng cách với Unity với Arduino UNO R3 và Cảm biến siêu âm HC SR04

Test trên M5Stack:

Với M5Stack thì có sẵn màn hình TFT để hiện kết quả nên không cần Unity nữa. Giao diện có thể tùy biến linh động, trong video sử dụng thư viện M5Avatar để hiện kết quả. Hơn nữa M5Stack sử dụng board ESP32 nên có sẵn wifi và bluetooth có thể mở rộng ra truyền qua ứng dụng Android/i
OS code bằng Unity hoặc bất kỳ ngôn ngữ nào khác.