1. Mở đầu
Trong phần này tác giả sẽ đi sâu nghiên cứu vào bộ điều khiển cánh tay robot 3 bậc tự do. Bộ điều khiển robot thường cấu thành từ các bộ phận cơ bản tương tự như máy tính, gồm bộ vi xử lý, bộ nhớ và bộ xuất nhập, kết hợp với máy tính để thể hiện các lệnh khi lập trình và đồng thời theo dõi sự thay đổi tọa độ trong dịch chuyển của các khâu, được sắp xếp theo từng mô-đun gồm các bo mạch điện tử. Bên cạnh đó, để lập trình một cách thuận tiện cho robot, tác giả sử dụng phần mềm LabVIEW để có thể thay đổi vị trí gắp và nhả vật kết hợp với bộ mô phỏng 3D để tiện quan sát cánh tay robot. Bộ điều khiển là bộ phận thể hiện những đặc điểm kỹ thuật ưu việt của robot, vì vậy ở đây sẽ trình bày cụ thể hơn về từng bộ phận trong hệ thống điều khiển robot.
Chủ động thiết kế được bộ điều khiển do vậy có thể hoàn toàn chủ động trong lĩnh vực công nghệ. Bộ điều khiển có thể kết nối được với máy tính thông qua cổng USB. Tạo sự linh động trong quá trình thao tác cũng như vận hành và có thể dễ dàng cài đặt lại các thông số cho robot. Sau đây ta đi tìm hiểu về các đối tượng trong bộ điều khiển.
2. Mạch điều khiển
+ Vi điều khiển
Khối vi điều khiển được viết trên dòng vi điều khiển ATmega (ATmega 16 ). Dòng vi điều khiển này là loại 40 chân. Dòng vi điều khiển này thuộc họ vi điều khiển AVR. Đặc điểm của họ vi điều khiển AVR như sau:
AVR do hãng Atmel chế tạo ra, là họ vi điều khiển 8bit theo công nghệ mới với những tính năng rất mạnh được tích hợp trong trong chip.
AVR ổn định hơn rất nhiều so với dòng vi điều khiển 8051
Tính năng mới của họ AVR
– Giao diện SPI đồng bộ, giao tiếp I2C, USART.
– Các lối vào ra lập trình được.
– Tích hợp bộ biến đổi ADC 10bit.
– Có sẵn các kênh băm xung PWM.
– Bộ Timer/Counter 8bit và 16bit rất mạnh.
– Bộ định thời Watchdog.
– Bộ nhớ EEPROM.
+ Sơ đồ FT232:
– Mạch đầu vào là cổng USB được nối với các 4,15,16,17,20 các chân là đầu vào của FT232. Trong đó có 2 chân tín hiệu DM và DP là 2 chân truyền dữ liệu từ USB.
– Mạch đầu ra theo chuẩn RS232 bao gồm 2 chân TXD, RXD
– Sau khi cài đặt thì máy tính sẽ hiểu đây là một COM ảo
+ SƠ ĐỒ NGUYÊN LÝ:
+ Diver DC:
Đây là mạch L298 dùng cho việc điều khiển động cơ DC, với cánh tay robot ta sử dụng 2 mạch này. L298 với dòng làm việc là 2A dùng để điều khiển cho 2 động cơ, nhưng với mạch của cánh tay robot thì chỉ dùng cho 1 động cơ DC vì khả năng chịu dòng làm việc của L298 là 2A vậy nên nó được đấu song song. Mỗi một mạch điều khiển 1 động cơ DC.
Hoạt động của L298:
Có 3 chân tín hiệu đầu vào là EnA, In1, In2. Hai chân tín hiệu ra là Out1, Out2 được nối với động cơ DC. Muốn động cơ quay thuận thì cho phép tín hiệu In1 (chân In1 được nối với chân của vi điều khiển). Chân EnA cũng được nối với chân của vi điều khiển. Khi có 2 tín hiệu này thì động cơ sẽ quay thuận. Còn muốn quay ngược ta chỉ cần cho tín hiệu In2 (Hình 2.15, Hình 2.16, Hình 2.17).
3. Sử dụng phần mềm LabVIEW để viết giao diện điều khiển
Nguyên cứu về LabVIEW
LabVIEW viết tắt của Laboratory Virtual Instrumentation Engineering Workbench là một môi trường nền và phát triển cho một ngôn ngữ lập trình đồ họa của hãng National Instruments.
LabVIEW được phát triển từ năm 1986, ban đầu LabVIEW được sử dụng rộng rãi để nhận dữ liệu, điều khiển thiết bị và tự động hóa trong công nghiệp chạy trong nhiều nền hệ điều hành khác nhau như Windows, Unix, Linux và Mac OS.
LabVIEW ngày càng được sử dụng rộng rãi trong đo lường công nghiệp, thi nghiệm và giáo dục cũng như trong các ứng dụng tự động hóa dựa trên cơ sở lập trình đồ họa (graphical programming). Khác với lập trình văn bản (textual programming), lập trình đồ họa trực giác hơn. Tuy nhiên LabVIEW vẫn hỗ trợ lập trình văn bản. Trong LabVIEW có rất nhiều hàm dùng để phân tích, thiết kế và biểu diễn dữ liệu bằng đồ thị và các dụng cụ đo lường ảo phong phú.
Ngày nay, LabVIEW có nhiều công cụ và các môđun khác nhau làm cho LabVIEW có chức năng tính toán mạnh trong lập trình phân tích, thiết kế hệ thống điều khiển, xử lý số liệu, nhận dạng hệ thống, toán học, mô phỏng, và nhiều chức năng khác. Ngoài ra, LabVIEW còn hỗ trợ rất nhiều phần cứng như bảng giao diện dữ liệu vào ra (bảng nhận dữ liệu, DAQ, data acquisition), bus truyền thông dữ liệu CAN dùng trong đo lường và tự động hóa; các bộ điều khiển mềm (drivers) và hỗ trợ các tiêu chuẩn giao tiếp như CAN bus, OPC, Modbus, GPIB, … (Hình 2.18)
LabVIEW được sử dụng tại hơn 30.000 ngàn công ty và hàng ngàn phòng thí nghiệm trên thế giới. Hầu hết các phòng thí nghiệm ở các châu lục đặc biệt là tại châu Mỹ, Hàn quốc, Nhật bản, Trung quốc. Các viện nghiên cứu cao cấp như máy giao tốc lớn nhất thế giới, thu thập và truyền nhận dữ liệu tại cơ quan vũ trụ NASA. Các công ty về đo lường, kiểm định, xử lý tín hiệu, và điều khiển công nghiệp ví dụ, các dây truyền kiểm tra lỗi sản phẩm tại Hàn quốc, các hệ thống thu thập và điều khiển công nghiệp trong ngành tàu biển, giao thông vận tải tại Nhật Bản, các công ty, nhà máy kiểm tra điện thoại tại Singapore…
Tại Việt Nam hiện nay, nhiều công ty đã sử dụng phần mềm này để điều khiển các dây chuyền tự động mà hầu hết được nhập khẩu từ nước ngoài. Tuy nhiên, các nghiên cứu về ứng dụng của LabView trong giảng dạy thì chưa nhiều. Nghiên cứu các ứng dụng của phần mềm LabView để đưa vào giảng dạy sẽ giúp sinh viên tiếp cận, nắm bắt được phần mềm mới và sử dụng trong thực tiễn sản xuất khi ra ngoài làm việc.
Bên cạnh đó, LabView là ngôn ngữ lưu đồ họa, diễn đạt cú pháp thông qua các hình ảnh trực quan trong môi trường soạn thảo giúp người lập trình có phương pháp trực quan hơn trong việc tự động hóa các hệ thống đo lường và điều khiển. Điều này giúp giảng viên trình bày cho sinh viên một cách trực quan, sinh động, dễ hiểu.
Ngôn ngữ lưu đồ kết hợp với khối I/O gắn liền và điều khiển giao diện người sử dụng tương tác cùng đèn chỉ báo làm cho LabVIEW trở thành một sự lựa chọn lí tưởng.
Ứng dụng của LabVIEW
LabVIEW được ứng dụng trong các lĩnh vực đo lường, tự động hóa, cơ điện tử, robot, vật lý, toán học, công nghệ sinh học vv…
– LabVIEW giúp kỹ sư kết nối bất kỳ với cảm biến nào, bất kỳ cơ cấu chấp hành nào với máy tính.
– LabVIEW có thể xử lý các dữ liệu như các tín hiệu tương tự (analog), tín hiệu số (digital), âm thanh (audio).
– LabVIEW hỗ trợ các giao thức giao tiếp khác nhau như RS232, RS485, TCP/IP, PCI, PXI.
– Bạn cũng có thể tạo ra các thực thi độc lập và các thư viện chia sẻ (ví dụ như thư viện liên kết động DLL), bởi vì LabVIEW là một trình biên dịch 32bit (Hình 2.19 và Hình 2.20).
Truyền thông trên LabVIEW
– Khối VISA Configure Serial Port (Hình 2.21)
Kết nối với mạch qua chuẩn nối tiếp RS232. Với sơ đồ khối VISA Configure Serial Port, với các tín hiệu như sau (Bảng 2.3).
– Khối VISA Write Function (Hình 2.22)
VISA Write Function: Ghi dữ liệu từ Write Buffer tới thiết bị hay giao diện được chỉ bởi VISA resource name (Bảng 2.4).
Với hai khối hoạt động ở trên, chúng ta sẽ dùng hai khối này cho toàn bộ các bài thí nghiệm còn lại. Cách khai báo hoàn toàn giống nhau.
+ Viết chương trình trên nền LabVIEW
Chương trình của LabVIEW được chia làm 2 phần: Viết trên Font Panel và Block Diagram
Phần Font Panel là phần giao diện thực thi chương trình điều khiển, tạo cách lệnh điều khiển đối tượng của mình, là phần Control để điều khiển cánh tay.
– Control là các đối tượng đặt trên Front Panel để cung cấp dữ liệu cho chương trình. Nó tương tự như đầu vào cung cấp dữ liệu.
– Indicator là đối tượng được đặt trên Front Panel dùng để hiển thị kết quả nó tương tự như một đầu vào của chương trình.
Phần Block Diagram là phần sơ đồ khối, tạo các khối chương trình lõi để điều khiển (Hình 2.23). Block Diagram là phần để viết thuật giải cho robot, các phương trình động học ngược, thuật giải PID cho các động cơ và cách mô phỏng 3D cho cánh tay robot.
– Terminal: là các cổng dữ liệu truyền qua giữa Block Diagram và Front Panel và giữa các Node trong Block Diagram. Các Terminal nằm ở dưới dạng các Icon của các Function.
– Node: là các phần tử thực thi chương trình, chung tương tự các mệnh đề, toán tử hàm và các chương trình con trong các ngôn ngữ lập trình thông thường.
– Wises: là các dây nối dữ liệu giữ các node
+ Giao diện điều khiển bằng máy tính
Các khối được sử dụng trong chương trình
– Các kí hiệu toán học: Functions/Express/Arithmetic & Comparsion/ Numeric (Hình 2.24)
– Khối biểu diễn đồ thị: Controls /Grap Indicators (Hình 2.27).
– Định dạng kiểu dữ liệu cho các biến: Nhấp phải chuột vào biến numeric control/Representation/chọn kiểu dữ liệu (Hình 2.30)
+ Thuật giải và code điều khiển
Dựa vào mạch giao tiếp và mạch công suất để điều khiển động cơ đã được trình bày ở các phần trên, ta thiết kế được code (Block Diagram) như các hình sau đây.
Yêu cầu đặt ra là tạo được phương trình động học ngược để điều khiển cánh tay robot. Dùng các hàm toán học để xây dựng thuật toán để điều khiển vị trí của cánh tay.
– Khối thiết lập tọa độ làm việc cho cánh tay robot
Hình 2.31 (a): Thiết lập tọa độ ban đầu cho cánh tay robot, nó có tọa độ là O(205,0) với cấu trúc Case Structure.
Hình 2.31 (b): Thiết lập tọa độ gắp cho cánh tay robot, nó có tọa độ là A(82,-81) cũng được viết trên cấu trúc Case Structure.
Hình 2.31 (c): Thiết lập tọa độ nhả cho cánh tay robot, nó có tọa độ B(150,82) cũng được viết trên cấu trúc Case Structure.
– Khối Case Structure dùng cho việc viết phương trình động học ngược cho robot (Hình 2.33) theo công thức 2.40 và 2.41 ở Chương 2.
– Khối Case Structure dùng cho việc viết thuật toán PID cho robot (Hình 2.34).
– Khối Case Structure dùng cho việc tạo delay (Hình 2.35)
– Khối Case Structure dùng cho việc tạo khối mô phỏng 3D cho robot (Hình 2.36)
+ Code điều khiển cho vi điều khiển AVR (Hình 2.37)