1:27 PM
0
1. Arduino là gì?
Tại trang web chính thức arduino.cc, Arduino được định nghĩa “là một nền tảng thiết bị điện tử mã nguồn mở dựa trên sự giản tiện của phần cứng và phần mềm. Nó phục vụ cho những người xây dựng các dự án tương tác.”
Arduino_001.jpg
Hình 1. Bo mạch Arduino Uno – một trong các bo mạch Arduino phổ biến(ảnh: arduino.cc)
Nền tảng Arduino bao gồm bo mạch phần cứng và phần mềm xử lý chạy trên máy tính dùng để lập trình mã nguồn cho bo mạch.
Để phát triển dự án, người kỹ sư nối các linh kiện ngoại vi với bo mạch Arduino rồi lập trình trên máy tính, sau đó kết nối bo mạch Arduino với máy tính để chuyển đoạn mã đã lập trình vào chip vi xử lý trên bo mạch Arduino.
Về phần cứng, Ardunio là một bo mạch in mà trên đó có sẵn chip vi xử lý (thường là vi xử lý họ AVR của hãng Atmel) được liên kết đầy đủ với một số linh kiện thường dùng như giắc cắm nguồn, liên kết cổng COM với máy tính qua chuẩn RS232, các chân Digital (tín hiệu số), Analog (tín hiệu tương tự) và PWM (tín hiệu xung) cùng các linh kiện để giữ ổn định tín hiệu.
Về phần mềm, Arduino tích hợp cả môi trường lập trình, trình biên dịch và nạp mã cho chip vi xử lý Arduino cũng như truyền-nhận dữ liệu từ bo mạch Arduino qua cổng COM.

Arduino_002.png
Hình 2. Màn hình giao diện lập trình IDE của Arduino
2. Arduino được sử dụng ở đâu?
Như ta đã biết, cốt lõi của hệ thống điều khiển điện tử hoặc cơ điện tử là việc nhận các tín hiệu điện tử, xử lý tín hiệu rồi xuất các tín hiệu điện tử theo kịch bản được thiết lập.
Ví dụ ta cần điều khiển cửa tự mở mỗi khi có người đi qua. Ta cần nhận tín hiệu từ một đầu thu (đầu thu hồng ngoại, cảm biến vật cản hoặc cảm biến chuyển động). Sau đó, vi xử lý kiểm tra xem tín hiệu đó có đúng là do người phát ra không. Tiếp đến, gửi tín hiệu ra bộ phận điều khiển mở cửa, và cuối cùng nếu không còn tín hiệu đầu vào, sẽ gửi tín hiệu để bộ phận điều khiển đóng cửa. Trong trường hợp này, ta chỉ cần nối các chân đầu thu và các chân điều khiển mở-đóng cửa với các chân của bo mạch vi điều khiển, rồi lập trình cho chip vi điều khiển xử lý theo đúng kịch bản đề ra.
Bo mạch Arduino là một trong các bo mạch được dùng để thực hiện các công việc xử lý tín hiệu kiểu như vậy.
3. Sư khác biệt của Arduino với các bộ kit phát triển khác
Theo cách làm việc thông thường, để xây dựng một bo mạch vi xử lý dùng để điều khiển Cơ điện tử, người kỹ sư sẽ gắn chip vi xử lý vào một bo mạch được thiết kế. Bo mạch phải có đầy đủ bộ nguồn cấp điện cho vi xử lý, thạch anh tạo dao động, các tụ điện để giữ ổn định cho tín hiệu. Sau đó, sẽ lập trình mã nguồn bằng ngôn ngữ C hoặc Assembly rồi biên dịch ra một file nhị phân, chuyển mã code này vào trong vi xử lý để hoạt động.
Với cách làm này, mỗi khi có sự thay đổi trong bài toán về xử lý tín hiệu, người kỹ sư phải điều chỉnh mã nguồn trên máy tính, biên dịch lại. Tháo chip vi xử lý để nạp lại mã, rồi gắn lại và cho chạy tiếp. Việc tháo lắp chip vi xử lý sẽ làm cho toàn bộ vi mạch kém ổn định.
Những người phát triển các dự án tương tác đã có cải tiến hơn, họ thường xây dựng sẵn các bộ kit phát triển, trong đó các chip vi xử lý được gắn cố định lên mạch, mạch nạp vi xử lý cũng được tích hợp sẵn vào bộ kit này. Mỗi khi thay đổi mã nguồn, sẽ không cần phải tháo chip vi xử lý ra khỏi bo mạch. Tuy nhiên, vẫn cần nhiều bước mới có thể thay đổi mã nguồn của một chip vi xử lý. Đầu tiên, người kỹ sư phải thay đổi mã nguồn trên môi trường lập trình (ví dụ Keil C cho 8051 hay Code Vision cho AVR), sau đó biên dịch ra thành file hex, rồi phải sử dụng trình nạp riêng (ví dụ Progisp) để nạp file hex cho chip. Sau khi chương trình chạy trên chip vi điều khiển, nếu người dùng muốn debug (gỡ rối), họ cần phải xuất các dữ liệu qua cổng COM và sử dụng tiếp một phần mềm khác trên máy tính để đọc dữ liệu này (ví dụ gCOM). Như vậy họ phải sử dụng đến 3 phần mềm khác nhau để thực hiện công việc thay đổi mã nguồn cho chip vi xử lý.
Với nền tảng Arduino, người sử chỉ cần sử dụng một phần mềm duy nhất là phần mềm Arduino và một bo mạch phần cứng duy nhất là bo mạch Arduino để làm các việc trên.
Người kỹ sư lập trình trên môi trường Arduino, biên dịch bằng Arduino, nạp cũng bằng Arduino và có thể sử dụng tính năng Serial Monitor của Arduino để debug (gỡ rối).
Nền tảng Arduino còn giúp giảm đáng kể khối lượng lập trình bởi nó có sẵn các thư viện về giao tiếp với máy tính, điều khiển động cơ, hiển thị, truy xuất thẻ nhớ,... Chỉ cần khai báo và sử dụng một vài dòng lệnh là có thể điều khiển được các thiết bị cơ điện tử.
4. Ứng dụng Arduino trong Cơ điện tử
Arduino ra đời nhằm phục vụ mục đích cho điều khiển điện tử nói chung, trong đó mảng điều khiển Cơ điện tử cũng khá thông dụng với Arduino.
Để điều khiển phần Cơ trong Cơ điện tử, phần quan trọng nhất là xuất tín hiệu để đóng ngắt relay hoặc để làm ngõ vào cho transistor khuếch đại phục vụ cho điều khiển các dòng điện cường độ lớn. Nó cho phép điều khiển thiết bị cũng như động cơ có công suất lớn.
Việc điều khiển động cơ khá phức tạp khi sử dụng các nền tảng khác do người sử dụng phải am hiểu sâu sắc về các mạch khuếch đại cũng như về bản chất của các xung PWM – là mấu chốt để có thể tạo ra được điện áp hiệu dụng bất kỳ.
Việc sử dụng nền tảng Arduino với đầy đủ thư viện sẽ làm cho việc điều khiển các thiết bị nói chung và điều khiển động cơ nói riêng được giản tiện, tiết kiệm nhiều thời gian và công sức. Khi ta muốn điều khiển tốc độ động cơ một chiều, góc quay của động cơ bước hoặc trạng thái của động cơ servo, ta chỉ cần khai bao và sử dụng thư viện có sẵn.
Để sử dụng Arduino điều khiển động cơ bước, chỉ cần thiết lập một mạch đơn giản và viết một vài dòng lệnh ngôn ngữ C cho Arduino. Chẳng hạn, ta cần đọc tín hiệu từ một chiết áp và cho động cơ quay một góc tương ứng, ta làm như sau.
Các linh kiện cần chuẩn bị gồm: 1 - Bo mạch Arduino, 2 - Chiết áp, 3 - Động cơ bước, 4 - Darlington transistor ULN2004A, 5 - nguồn tương ứng cho động cơ, 6 - bảng mạch cắm thử và dây.

Arduino_003.png
Hình 3. Sơ đồ nối dây (ảnh: arduino.cc)
Arduino_004.png
Hình 4. Hình ảnh mô tả (ảnh: arduino.cc)
Đoạn mã để điều khiển trạng thái góc trục động cơ bước theo chiết áp(nguồn: arduino.cc).
#include <Stepper.h>
// Số bước của động cơ
#define STEPS 100
// Tạo một đối tượng điều khiển động cơ
Stepper stepper(STEPS, 8, 9, 10, 11);
// Trạng thái lưu chiết áp
int previous = 0;
void setup()
{
  // Thiết lập tốc độ động cơ là 30 vòng một phút
  stepper.setSpeed(30);
}
void loop()
{
  // Đọc giá trị chiết áp
  int val = analogRead(0);
  // Di chuyển động cơ tương ứng với sự thay đổi giá trị chiết áp
  stepper.step(val - previous);
  // Lưu lại giá trị chiết áp hiện thời
  previous = val;
}
Như vậy là ta đã có được một thiết bị Cơ điện tử đơn giản. Khi thay đổi vòng quay của chiết áp thì góc quay của động cơ cũng thay đổi theo. Khi chiết áp quay nhanh, động cơ sẽ quay nhanh, khi chiết áp quay thuận thì động cơ cũng quay thuận và ngược lại.
5. Ứng dụng nền tảng Arduino trong một số đồ án tốt nghiệp của sinh viên Khoa Công nghệ Cơ khí – ĐH Điện lực
Tại đồ án Máy số hóa sách giấy
Nhóm sinh viên khóa D5 đã sử dụng bo mạch Arduino Mega 2560 như là một thiết bị slave cho phần điều khiển trung tâm. Các tín hiệu từ 5 cảm biến được đọc qua các chân của Arduino và truyền về phần điều khiển trung tâm thông qua cổng COM (theo chuẩn RS232). Các lệnh điều khiển từ phần điều khiển trung tâm được truyền thông qua cổng COM tới bo mạch Arduino để điều khiển động cơ (thông qua kết nối với module L298), điều khiển quạt hút trang, quạt thổi trang và đèn LED chiếu sáng thông qua đóng ngắt (bằng modul relay).
                       Arduino_005.jpg

Hình 5. Sử dụng bo mạch Arduino giao tiếp máy tính và điều khiển thiết bị ngoại vi của sinh viên khoa Công nghệ Cơ khí – ĐH Điện lực

Việc sử dụng nền tảng Arduino trong đồ án này giúp cho các thành viên nhóm đồ án tập trung hơn vào các nội dung điều khiển thông minh cũng như phần mềm trung tâm, không bị sao nhãng bởi các sự cố điện tử thường thấy ở các bo mạch khác.
Tại đồ án Cột đèn năng lượng gió
Nhóm sinh viên sử dụng bo mạch Arduino Mega 2560 để điều khiển toàn bộ phần điện tử. Tín hiệu từ cảm biến ánh sáng được truyền vào bo mạch Arduino. Thông qua thuật toán xử lý chống nhiễu, hệ thống biết được thời điểm nào là phù hợp để quyết định bật đèn và tắt đèn, giúp tiết kiệm năng lượng một cách thông minh. Ngoài ra, bo mạch Arduino còn nhận các tín hiệu điện áp từ Ắc quy, các tín hiệu về vận tốc gió từ encoder gắn trên trục turbine và xuất tín hiệu ra bảng LED 7 thanh để hiện thị tức thời vận tốc gió cũng như điện năng dự trữ còn trong Ắc quy.
                        Arduino_006.jpg
  Hình 6. Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm năng lượng và hiển thị thông tin tốc độ gió, điện năng trong ắc quy – của sinh viên khoa Công nghệ Cơ khí – ĐH Điện lực
Việc sử dụng bo mạch sẵn Arduino trong đồ án này đảm bảo phần vi điều khiển hoạt động ổn định, không bị ảnh hưởng bởi sự chấn động rung lắc cơ học do gió gây nên.
6. Kết luận
Nền tảng Arduino có những lợi thế:
Đầu tiên là rút ngắn đáng kể thời gian phát triển sản phẩm do sử dụng sẵn các linh kiện và các thư viện cũng như dễ dàng debug (gỡ rối) các lỗi xảy ra với lập trình cho vi điều khiển.
Tiếp đó, bo mạch Arduino được thiết kế bởi các chuyên gia hàng đầu về mạch điện tử, tính ổn định của tín hiệu trong bo mạch cao. Trái ngược với tín hiệu kém ổn định thường thấy đối với những người mới bước vào lĩnh vực cơ điện tử.
Và cuối cùng, bo mạch Arduino được sản xuất công nghiệp, vì vậy độ tin cậy (sử dụng ổn định dài lâu) cao, thậm chí trong nhiều máy móc hiện đại như một số máy in 3D sử dụng chính bo mạch Arduino để điều khiển thiết bị của máy.
Với việc ứng dụng bo mạch Arduino trong cơ điện tử hiện nay đang là một xu hướng mới rất phổ biến trên thế giới vì các ưu điểm vượt trội của nó. Việc tiếp cận với nền tảng Arduino sẽ giúp sinh viên cũng như các kỹ sư trẻ tiếp cận với các công nghệ, phương pháp phát triển sản phẩm tiên tiến, bắt kịp với công nghệ mới của thế giới.
Nguyễn Hoành - Khoa Công nghệ Cơ Khí.

(Sưu tầm)

0 comments:

Post a Comment

 

Lập trình

-

Arduino Hải Phòng

,