5 Đồ án này trình bày những kiến thức cơ bản về phần mềm labview, board mạch arduino uno r3, thiết bị cảm biến cử chỉ 3D Leap Motion Controller như là cấu tạo, nguyên lý hoạt động, khai
Trang 1TRƯỜNG ĐẠI HỌC VINH
KHOA ĐIỆN TỬ VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Đề tài:
NGHIÊN CỨU ỨNG DỤNG LEAP MOTION ĐIỀU KHIỂN CÁNH TAY ROBOT BẰNG CỬ CHỈ
NGHỆ AN - 2016
Trang 2MỤC LỤC
DANH MỤC HÌNH ẢNH VÀ BẢNG BIỂU 2
MỞ ĐẦU 3 TÓM TẮT 5
Đồ án này trình bày những kiến thức cơ bản về phần mềm labview, board mạch arduino uno r3, thiết bị cảm biến cử chỉ 3D (Leap Motion Controller) như là cấu tạo, nguyên lý hoạt động, khai thác một số cử chỉ mà bộ điều khiển Leap Motion hỗ trợ như là vị trí và tốc độ của bàn tay, trình bày về cách viết lệnh để điều khiển arduino hay cách kết nối với leap motion Một số hiểu biết về động cơ một chiều và động cơ servo 5
Trang 3DANH MỤC HÌNH ẢNH VÀ BẢNG BIỂU
Trang 4MỞ ĐẦU
Cùng với sự phát triển của khoa học kỹ thuật thì việc điều khiển các thiết bị,máy móc từ xa cũng trở nên phổ biến hơn Cách thức điều khiển từ xa phổ biến bâygiờ vẫn là dùng điện thoại thông minh, laptop kết nối qua bluetooth hay wifi để điềukhiển, và việc này đòi hỏi người kỹ sư phải biết và hiểu rõ về lập trình truyền thống(gõ từng dòng lệnh) điều này gây khó khăn cho hầu hết các kỹ sư Điện tử Viễn thông
là những người không chuyên về lập trình
Labview ra đời đã giải quyết được khó khăn trên, việc lập trình trên phầnmềm labview đơn giản hơn rất nhiều, đối với labview việc lập trình đơn giản chỉ làkéo và thả các khối chức năng rồi kết nối chúng lại với nhau như việc chúng ta vẽmạch điện tử Khả năng viết code dễ dàng là vậy nhưng việc cứ ngồi trước màn hìnhmáy tính và điều khiển thiết bị bằng việc click chuột cũng gây nhàm chán cho người
sử dụng nên việc thay thế cách điều khiển mới là cần thiết
Từ khi bộ điều khiển Leap Motion được giới thiệu vào năm 2013, rất nhiềuứng dụng đã được các kỹ sư, lập trình viên phát triển để khai thác khả năng của thiết
bị này, trong đó có ứng dụng hữu ích là thay thế chuột máy tính
Việc kết hợp Labview và Leap Motion để điều khiển thiết bị đang còn khámới mẻ ở việt nam nên tôi chọn đề tài “Nghiên cứu ứng dụng leap motion điều khiển cánh tay robot bằng cử chỉ” làm đồ án tốt nghiệp
Mục đích của đề tài:
- Thứ nhất, tìm hiểu tổng quan về phần mềm labview và ứng dụng của nó trongđiều khiển tự động
- Thứ hai, tìm hiểu về board mạch arduino
- Thứ ba, tìm hiểu về bộ điều khiển leap motion và cách kết nối với labview đểđiều khiển thiết bị
- Và cuối cùng là tổng hợp những hiểu biết trên để thiết kế một mô hình điềukhiển thiết bị bằng cử chỉ kết hợp giữa labview và leap motion
Trang 5Đề tài được thực hiện bằng các phương pháp: tìm hiểu qua internet, các diễnđàn và sự hướng dẫn của giáo viên.
Cấu trúc của đồ án, ngoài phần mở đầu, kết luận, danh mục bảng biểu, tài liệutham khảo, nội dung của đồ án được trình bày trong 2 chương:
Chương 1: Cơ sở lý thuyết
Chương này trình bày các kiến thức cơ bản về board mạch arduino unor3, kiến thức cơ bản về phần mềm labview và tìm hiểu về bộ điều khiển leap motion
Chương 2: Phân tích, thiết kế hệ thống
Chương này đi vào phân tích yêu cầu của đồ án và tiến hành xây dựng cáckhối lệnh để điều khiển động cơ
Chương 3: Mô phỏng và thi công
Trên cơ sở lý thuyết ở chương 1 cũng như các phân tích yêu cầu vàthuật toán ở chương 2, chương này đi vào mô phỏng code trên phần mềm và tiếnhành thi công mô hình điều khiển động cơ bằng sự kết hợp giữa labview và leapmotion đảm bảo đúng mục đích yêu cầu đặt ra
Nghệ an, ngày tháng năm 2016
Sinh viên thực hiện Nguyễn Khắc Thành
Trang 6TÓM TẮT
Đồ án này trình bày những kiến thức cơ bản về phần mềm labview, board mạch arduino uno r3, thiết bị cảm biến cử chỉ 3D (Leap Motion Controller) như là cấu tạo, nguyên lý hoạt động, khai thác một số cử chỉ mà bộ điều khiển Leap Motion
hỗ trợ như là vị trí và tốc độ của bàn tay, trình bày về cách viết lệnh để điều khiển arduino hay cách kết nối với leap motion Một số hiểu biết về động cơ một chiều và động cơ servo
Tập trung chủ yếu vào thiết kế mô hình leap motion , labview và arduino đểđiều khiến cánh tay robot, phân tích và xây dựng code điều khiển động cơ này trênphần mềm labview kết hợp với bộ điều khiển leap motion
Phân tích ưu, nhược điểm và xu thế phát triển của việc sử dụng labview vàleap motion trong lĩnh vực tự động hóa
ABSTRACT
This project present the basics about software labview, board arduino uno r3,sensors 3D Leap motion as structure, operation principles exploiting some gesturesthat controllers Leap Motion support as position and speed of the hand, presentation
on how to write commands to control Arduino or how to connect Leap Motion someknowledge of DC motors and servo motors
Focus mainly on design model Leap Motion, Labview and Arduino to controlrobot arm, analyze and develop motor control code on software labview combinedwith the Leap Motion controller
Analyze strengths and weaknesses and the development trend of usingLabVIEW and Leap Motion in the field of automation
Trang 7CHƯƠNG 1
CƠ SỞ LÝ THUYẾT.
1.1 Giới thiệu đề tài.
Cùng với sự phát triển của khoa học kỹ thuật thì việc điều khiển các thiết bị,máy móc từ xa cũng trở nên phổ biến hơn Cách thức điều khiển từ xa phổ biến bâygiờ vẫn là dùng điện thoại thông minh, laptop kết nối qua bluetooth hay wifi để điềukhiển, và việc này đòi hỏi người kỹ sư phải biết và hiểu rõ về lập trình truyền thống(gõ từng dòng lệnh) điều này gây khó khăn cho hầu hết các kỹ sư Điện tử Viễn thông
là những người không chuyên về lập trình
Labview ra đời đã giải quyết được khó khăn trên, việc lập trình trên phầnmềm labview đơn giản hơn rất nhiều, đối với labview việc lập trình đơn giản chỉ làkéo và thả các khối chức năng rồi kết nối chúng lại với nhau như việc chúng ta vẽmạch điện tử Khả năng viết code dễ dàng là vậy nhưng việc cứ ngồi trước màn hìnhmáy tính và điều khiển thiết bị bằng việc click chuột cũng gây nhàm chán cho người
sử dụng nên việc thay thế cách điều khiển mới là cần thiết
Từ khi bộ điều khiển Leap Motion được giới thiệu vào năm 2013, rấtnhiều ứng dụng đã được các kỹ sư, lập trình viên phát triển để khai thác khả năngcủa thiết bị này, trong đó có ứng dụng hữu ích là thay thế chuột máy tính
Trong đề tài này tôi sử dụng thiết bị Leap Motion để điều khiển cánh tay robotthông qua phần mềm lập trình LabVIEW để điều khiển
1.1 LabVIEW và ứng dụng.
1.1.1 Giới thiệu về phần mềm LabVIEW.
Labview (Laboratory Virtual Instrument Engineering Workbench) là một nềntảng thiết kế hệ thống và là môi trường phát triển cho ngôn ngữ lập trình đồ họa.Labview hỗ trợ tạo các ứng dụng với giao diện người dùng chuyên nghiệp một cáchnhanh chóng và hiệu quả, labview được sử dụng để phát triển các ứng dụng đolường, kiểm thử, và điều khiển tinh vi bằng cách sử dụng các khối lệnh trực quan và
Trang 8dây nối tín hiệu Ngoài ra, labview còn có thể được mở rộng cho nhiều nền tảngphần cứng và hệ điều hành khác nhau.
Vì labview là chương trình mô phỏng giao diện và hoạt động của các thiết bịthực, nên chương trình labview được gọi là VI (virtual instrument) Một chươngtrình VI gồm có front panel và block diagram Front panel là giao diện người dùngnơi mà sẽ hiển thị các hình ảnh trực quan để người dùng dễ thao tác còn blockdiagram là nơi mà chúng ta viết lệnh cho chương trình
Chức năng chính của labview có thể tóm tắt như sau:
• Thu thập tín hiệu từ các thiết bị bên ngoài như cảm biến nhiệt độ, hìnhảnh từ webcam, vận tốc của động cơ,
• Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp nhưRS232, USB, Ethernet,
• Mô phỏng và xử lý các tín hiệu thu nhận được để phục vụ các mục đíchnghiên cứu hay mục đích của hệ thống mà người lập trình mong muốn
• Xây dựng các giao diện người dùng một cách nhanh chóng
• Cho phép thực hiện các thuật toán điều khiển như PID một cách nhanhchóng thông qua các chức năng tích hợp sẵn trong labview
• Cho phép kết hợp với các ngôn ngữ lập trình truyền thống như C++,Java…
1.2.2 Các khối lệnh cơ bản cho Arduino.
Để lập trình được cho arduino trên phần mềm labview thì từ ứng dụng VIPackage Manager (được cài đặt sẵn khi cài đặt labview) chúng ta phải cài đặt góilabview interface for arduino Đây là bộ công cụ hỗ trợ giao tiếp giữa labview và nềntảng vi điều khiển arduino
Sau khi cài đặt xong, trên phần mềm labview bây giờ đã có thêm hàm arduino
hỗ trợ cho chúng ta lập trình
Đây là cửa sổ tích hợp các khối từ gói arduino:
Trang 9Hình 1.1 Các khối cơ bản của Arduino.
Một khối được chia làm hai dãy chân dữ liệu, dãy chân đưa dữ liệu vào hoặc
là các thiết lập ban đầu của tín hiệu và dãy chân đưa dữ liệu ra
Khối Init: Khối này có chức năng sẽ khởi tạo một kết nối tới Arduino Hìnhsau sẽ mô tả các cổng kết nối chính của khối Init:
Hình 1.2 Khối Init.
Khối init có nhiều chân song để thiết lập cho việc kết nối ta chỉ cần quan tâm:
Trang 10Chân VISA resource: sẽ lựa chọn cổng COM khi kết nối arduino với máy tính,tùy vào các máy tính khác nhau mà cổng COM này cũng khác nhau Chân này sẽthiết lập cổng COM để giao tiếp giữa Labview và Arduino.
Chân Baud Rate: chân này cho phép lựa chọn tốc độ baud cho arduino Tùyvào các ứng dụng khác nhau mà ta lựa chọn tốc độ này cho phù hợp, arduino hỗ trợnhiều tốc độ baud khác nhau nhưng giá trị mặc định khi khởi tạo khối là 115200
Chân Board Type cho phép chúng ta lựa chọn kiểu module arduino, ở đây hỗtrợ 3 kiểu là: uno, atmega 328 và mega 2560
Chân Connection Type cho phép chọn kiểu kết nối, có 3 chuẩn là: usb/serial,xbee và bluetooth
Chân Arduino Resource để kết nối với các khối khác
Để thiết lập bất kỳ chân nào của một khối ta di chuyển con trỏ chuột tới châncần thiết lập rồi click chuột phải sau đó chọn create, ở đây sẽ có ba kiểu thiết lập là:constant (hằng số), control (điều khiển) và indicator (hiển thị), tùy vào mục đích mà
Trang 11Hình 1.4 Các khối cơ bản của khối low level.
Khối sensors bao gồm các khối VI sensor thường dùng như: cảm biến nhiệt
độ, cảm biến ánh sáng, LCD, led 7 thanh,
Hình 1.5 Các khối cơ bản của khối sensor.
Các khối lệnh cơ bản cho Leap Motion
Trang 12Để lập trình cho leap motion trên phần mềm labview, chúng ta phải cài đặt góiMakerHub Interface for Leap Motion từ ứng dụng VI Package Manager.
Sau khi cài đặt xong, trong cửa sổ làm việc Block Diagram, click chuột phảichúng ta sẽ có các khối cơ bản giao tiếp với Leap Motion như sau:
Hình 1.6 Các khối cơ bản của Leap.
Tương tự như arduino thì leap cũng có các khối open và close để phục vụ choviệc khởi tạo và kết thúc một kết nối của leap với labview
Khối open của leap chỉ gồm vài chân cơ bản như sau:
Hình 1.7 Khối open của Leap.
Với chân Enable Gestures khi được thiết lập giá trị true (T) thì leap sẽ bật các
Trang 13Hình 1.8 Khối read all data
Khối read hand position velocity có chức năng đọc vị trí và tốc độ của bàn tay,hình dạng khối này như sau:
Hình 1.9 Khối read hand position velocity
Ngoài ra còn có một số khối các để đọc các cử chỉ khác mà bộ điều khiển leap
hỗ trợ như: ngón tay vẽ vòng tròn, chỉ ngón tay,
Một số khối lệnh khác sử dụng trong chương trình
- Các khối lệnh boolean
Trang 14Phụ thuộc vào giá trị của s là 0 hay 1 mà đầu ra của khố select sẽ nhân giá trị t hay f.
Cụ thể, nếu s có giá trị TRUE thì đầu ra của khối nhận giá trị là t và nếu s có giá trịFALSE thì đầu ra nhận giá trị là f
1.2.3 Ứng dụng của Labview.
Từ các dự án đơn giản, hàng ngày…:
Trang 15• Phát triển nhanh với công nghệ Express: sử dụng Express VIs và I/O nhanh chóng tạo ra các ứng dụng đo lường phổ biến mà không cần lập trình.
• Hàng nghìn chương trình minh họa
• Kiểu module và phân cấp
• Trợ giúp tích hợp
• Thư viện giao diện người sử dụng kéo và thả
• Hàng nghìn chức năng lập sẵn
• Ngôn ngữ được biên dịch để thực hiện nhanh hơn
Đến phát triển lớn , theo hướng nhóm (team-oriented):
• Ngôn ngữ mở
• Gỡ rối bằng đồ họa tích hợp
• Phân phối ứng dụng đơn giản
• Nhiều công cụ phát triển cấp cao
• Công cụ phát triển nhóm
• Điều khiển mã nguồn
• Quản lí đích
1.3 Arduino và giao tiếp với máy tính qua Labview.
1.3.1 Giới thiệu về Arduino.
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tácvới nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một boardmạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARMAtmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộngkhác nhau
Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mangđến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên
và giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với môi trườngthông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho nhữngngười yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và pháthiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy
Trang 16trên các máy tính cá nhân thông thường và cho phép người dùng viết các chươngtrình cho Arduino bằng ngôn ngữ C hoặc C++.
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổsung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnhquan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kếtnối với CPU của board với các module thêm vào có thể dễ dàng chuyển đổi, được
gọi là shield Vài shield truyền thông với board Arduino trực tiếp thông qua các chân
khách nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiềushield có thể được xếp chồng và sử dụng dưới dạng song song Arduino chính thứcthường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168,ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử lý khác cũngđược sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch gồm một bộ điềuchỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởngceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại
8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị Một
vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phépđơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khácthường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduinođược trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạpchương trình
Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các boardđược lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùythuộc vào đời phần cứng Các board Serial Arduino có chứa một mạch chuyển đổigiữa RS232 sang TTL Các board Arduino hiện tại được lập trình thông qua cổngUSB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232 Vàibiến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một boardadapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương
Trang 17thức khác (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vìArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)
Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụngcho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chânI/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6chân input analog, có thể được sử dụng như là 6 chân I/O số Những chân này đượcthiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm).Nhiều shield ứng dụng plug-in cũng được thương mại hóa Các board Arduino Nano,
và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chânheader được ở mặt trên của board dùng để cắm vào các breadboard
Có nhiều biến thể như Arduino-compatible và Arduino-derived Một vài trong
số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại.Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm vào các driver đầu ra,thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp'
và các robot nhỏ Những board khác thường tương đương về điện nhưng có thay đổi
về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không Vàibiến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khácnhau
Arduino board có nhiều phiên bản với hiệu năng và mục đích sử dụng khácnhau như: Arduino Mega, Arduino LyliPad, Trong số đó, Arduino Uno R3 là mộttrong những phiên bản được sử dụng rộng rãi nhất bởi chi phí rẻ và tính linh độngcủa nó
1.3.2 Arduino giao tiếp với máy tính qua Labview.
Trước tiên chúng ta cần tìm hiểu vi sao máy tính to lớn cồng kềnh lại dùng đểđiều khiển Arduino Bởi vì giữa máy tính và bất kỳ vi điều khiển (không chỉArduino) đều có giao tiếp với nhau công qua giao thức UART hay hiểu một cáchnôm na là Serial Bạn có thể xem, máy tính và vi điều khiển là 2 hòn đảo nhiệt đới
Trang 18nằm giữa biển khơi, cái hay của máy tính là nó có rất nhiều "cây cầu" để bắt đếnvùng đất hứa như "internet", "thiết bị ngoại vi phức tạp như Leap Motion,Kinect, ", ; cái hay của Arduino là bạn có thể xây dựng nên một hệ thống điện tử -phần cứng - tin học của riêng mình Nhưng nếu nó chỉ bó hẹp trong phạm vi 1 sảnphẩm hay một nhóm các sản phẩm của bạn thì có vẻ là hơi phí.
Vì vậy, nhiệm vụ của chúng ta là trở thành một kĩ sư cầu đường để xây dựngmột cây cầu bắt giữa 2 hòn đảo trên Như vậy, những thứ tốt đẹp mà ta xây dựng cóthể "giao tiếp" với thế giới bên ngoài, từ đó mang đến sự phát triển phồn thịnh (nếu
có định hướng đúng đán và ý chí phát triển) Như mình đã nói ở trên, chúng ta sẽ sửdụng cổng Serial để xây dựng cầu
Nhưng cổng Serial vẫn phải dùng dây mà? KHÔNG Có vẻ cái từ "cổng" đã
bó hẹp ý nghĩa bao quát của nó Từ "cổng" trong từ "cổng Serial" có ý nghĩa rộnghơn, từ "cổng" ở đây có nghĩa giống như là một "con đường" (như ở trên), nhưng
"con đường" này lại không chỉ nằm trên "cạn" (dây dẫn), mà nó còn ám chỉ nhữngloại "con đường" khác, chẳng hạn như "đường không" (không gian - dùng các loạisóng để tạo cổng Serial) Như vậy "cổng Serial" có ý nhắc chúng ta rằng, đó chỉ đơnthuần là tên gọi của một phương thức giúp chúng ta giao tiếp giữa 2 thiết bị CònCÁCH NÓ TRUYỀN như thế nào thì tùy vào ý định của bạn (bạn muốn nó như thếnào thì bạn sẽ làm nó như thế)
1.4 Tổng quan về Leap Motion.
Leap Motion là một thiết bị nhỏ, cỡ một chiếc USB Nó tạo ra không giantương tác 3 chiều giúp bạn tương tác và sử dụng các phần mềm trên máy tính (laptop
và desktop) một cách trực quan và chính xác Để dễ hình dung, thiết bị giúp chúng tathao tác với các đối tượng trên màn hình như thể chúng tồn tại ngoài đời thật vậy.Leap Motion cảm biến được sự chuyển độ của bàn tay và những ngón tay một cáchđộc lập, thậm chí cả bút hay những vật dụng khác nữa Thực tế, Leap Motion đượckiểm chứng là nhạy hơn 200 lần so với các công nghệ cảm ứng không chạm khác
Trang 19Có 1 sự khác biệt lớn giữa việc chỉ nhận ra chuyển động của cả một cánh tay trongkhông trung với việc thu nhận chuyển động của 1 ngón tay hay đầu cây bút vàchuyển thành tín hiệu số.
Leap Motion sử dụng camera kèm theo cảm biến hồng ngoại Khi được cấpnguồn, bên trong sẽ có 3 đèn màu đỏ mờ, đèn LED màu xanh ở cạnh bên cũng sánglên Leap Motion có thể cảm nhận được 10 ngón tay cùng lúc, với độ chính xác của
là 1/100 (mm) theo như thông tin từ nhà sản xuất, và tất cả chỉ dừng ở đó, không nhưKinect, có thể cảm nhận được các bộ phận trên cơ thể Leap Motion không xài riêng
lẽ được với TV hoặc màn hình máy tính, nó phải được xài với 1 máy tính
Hình 1.13 Hình ảnh nhiều chiều của thiết bị Leap Motion.
Ấn tượng đầu tiên về cái Leap Motion này là rất đẹp, nhỏ gọn và nhẹ (giốngnhư 1 cái USB 3G) Thiết kế kín, chắc chắn, có viền nhôm bo tròn bao quanh, mặttrên làm bằng kính, bên trong là các sensor, mặt dưới làm bằng cao su dẻo giúp bám
dễ dàng lên các bề mặt Đi kèm theo đó là 2 sợi dây: một ngắn, một dài, tùy theo nhucầu sử dụng Qua quá trình sử dụng, viền nhôm có xước nhẹ, tuy nhiên, mặt kínhvẫn không hề trầy xước
Trang 20Leap motion là một thiết bị ngoại vi, dùng để hỗ trợ người dùng tương tác vớimáy tính tương tự như chuột và bàn phím thông qua các cử chỉ tay như: chỉ, cầm,nắm, chạm Hình ảnh minh họa :
Hình 1.14 Leap Motion trong quá trình hoạt động thực tế như sau.
Cách thức Leap Motion hoạt động vẫn chưa thực sự rõ ràng Chỉ biết rằng mộtthuật toán toán học mới đã biến tính năng tưởng chừng là không tưởng này trở nênkhả thi Leap Motion sử dụng 2 cảm biến ảnh CCD và 3 đèn LED hồng ngoại để thuđược tín hiệu 3 chiều Thông tin được truyền qua cổng USB với tốc độ 290fps Thiết
bị được cấp điện qua cổng USB Với các camera này thiết bị có thể quan sát trongmột vùng hình cầu với bán kính khoảng 0.6m mỗi camera sẽ tạo khoảng 290 khunghình mỗi giây cho các dữ liệu phản chiếu, sau đó các dữ liệu được gửi qua cổng usbđến máy chủ
Hiện tại, tính năng của leap motion gồm có: điều hướng bằng việc nhận dạng
cử chỉ chạm, chỉ, tương tác với các dữ liệu 3D ảo bằng các cử chỉ của tay như cầm,nắm, hỗ trợ các thao tác vẽ trên màn hình
Không gian tương tác mà Leap Motion tạo ra không gian tương tác 3 chiều
có thể tích khoảng 226 lít Tưởng tượng dung tích này là 1 quả bóng (dĩ nhiên làkhoảng không này không có hình dạng 1 quả bóng đâu) bay ngay trên thiết bị và mọi
Trang 21cử động và đối tượng trong đó đều được nhận biết Khoảng cách xa nhất mà thiết bị
có thể "nhìn" được vào khoảng 1 mét
Mặc dù nhận dạng được cử chỉ tay với độ chính xác cao, tuy nhiên leapmotion có độ nhạy chưa cao, sử dụng trong thời gian dài sản phẩm nóng lên rấtnhiều Bên cạnh đó với các máy chủ có cấu hình thấp, việc xử lý các dữ liệu phảnánh do leap motion truyền tải cho máy chủ gặp khó khăn, dễ xảy ra hiện tượng treomáy
Leap Motion có thể đặt theo cách bạn muốn Nếu đặt nằm nghiêng, đối diệnvới bạn, thì mặt bàn của bạn sẽ trở thành một mặt phẳng cảm ứng đa điểm (để vẽ,thiết kế 2D chẳng hạn) Gắn Leap Motion lên đỉnh của màn hình, úp mặt xuống(hoặc đặt ở đáy và ngửa lên theo hướng thông thường) bạn sẽ có một chiếc màn hìnhcảm ứng đúng nghĩa
Leap Motion nhận diện cùng lúc được 2 bàn tay và cả 10 ngón tay Thiết bịcũng có thể nhận ra các dụng cụ khác như bút viết, bút lông, và các dụng cụ khác
Leap Motion kết nối với máy tính theo kiểu thiết bị có một cổng microUSB đểkết nối với máy tính Phiên bản dùng kết nối không dây đang được lên kế hoạch pháttriển
Tuy nhiên, tương lai của thiết bị này rất rộng mở, có thể phát triển các ứngdụng cho các ngành công nghiệp thiết kết sử dụng leap motion như hình sau minhhọa việc thiết kế trên autodesk sử dụng leap motion:
Trang 22Hình 1.15 Thiết kế trên autodesk sử dụng leap motion.
Đặc biệt trong lĩnh vực điện tử, tự động hóa Leap motion ứng dụng vào điềukhiển các thiết bị như robot, máy in 3D,
Nói chung, bất cứ phần mềm nào có thể dùng chuột và bàn phím thì đều cóthể dùng với Leap Motion Leap Motion và các lập trình viên luôn nỗ lực để tích hợpthiết bị vào các phần mềm sâu nhất có thể Đến nay, các phần mềm tạo hình 3D, hoạthọa, điêu khắc đang được ưu tiên Họ cũng hứng thú với việc dùng Leap Motion đểthiết kế kiến trúc, chơi DJ, đồ họa 2D, ứng dụng y tế,
Leap Motion tương thích với Windows 7, Windows 8 (32&64bit), Mac OSX10.6 trở lên, Ubuntu Linux 12.04 LTS và Ubuntu 13.04 Raring Ringtail LeapMotion cũng lên kế hoạch tích hợp vào một số thiết bị như điện thoại thông minh,laptop,
Bạn có thể vào Airspace Store để tải các game cho Leap Motion, trong đó cócác game nổi tiếng như Cut the Rope, Fruit Ninja,… Mình rất mê Cut the Rope và
đã vượt qua tất cả các màn Cut the Rope phiên bản iOS, đang rất hào hứng với cảmgiác dựa người trên ghế, nghe nhạc và di chuyển ngón tay qua lại trong… không khí
để chơi cái game cực hay này Tuy nhiên, sau khi chơi thử Cut the Rope, LeapMotion hoạt động không tốt, ví dụ như có những lúc sau khi quẹt ngang sợi dây, sợi
Trang 23dây sáng lên nhưng lại không đứt Phải quẹt lại nhiều lần, mất hết cả hứng, vì nhưbạn biết, chơi Cut the Rope có những màn phải canh thời gian để cắt dây.
Ngoài games ra, trên Airspace Store vẫn còn rất nhiều ứng dụng mang tínhgiáo dục, ví dụ như Molecules hay Cyber Science 3D Motion Bạn có thể tương tácvới các cấu trúc tinh thể, cũng như xoay qua xoay lại bộ xương cơ thể trong khônggian 3 chiều với ghi chú từng bộ phận rõ ràng
Quá trình cài đặt cũng rất đơn giản, sau khi cài đặt, chỉ cần đăng nhập vàoAirspace Store để tải các ứng dụng về và xài Ứng dụng free cũng khá nhiều, có mộtvài ứng dụng kiểu tutorials cho các bạn làm quen với Leap Motion
Các bạn đơn giản chỉ cần đặt trên mặt bàn bình thường là dùng được được(ban đầu mình nghĩ là phải đặt nghiêng để xoay mặt trên Leap Motion song song vớilòng bàn tay để điều khiển) Tốt nhất là đặt tại vị trí nào mà cả 2 tay bạn cảm thấythao tác dễ dàng, đối với máy tính để bàn, có thể đặt ở giữa màn hình và bàn phím.Còn đối với laptop, có thể đặt nó phía cạnh dưới của laptop hoặc cạnh dưới của mànhình Khi mình đặt 2 bàn tay phía trước Leap Motion, đây là hình ảnh mà chươngtrình thu được
Hình 1.16 Giao diện khi cảm biến nhận tay.
1.5 Tổng kết chương
Trang 24Trong chương 1 chúng ta đã tìm hiểu vể khái niệm cấu tạo chức năng cáchthức hoạt động của phần mềm LabVIEW, board mạch Arduino, thiết bị LeapMotion Đây là những thành phần cần thiết để thiết kế và điều khiển đề tài Phần tiếptheo chúng ta sẽ đi đến tìm hiều về cánh tay máy ( Robot arm).
Trang 25CHƯƠNG 2.
ROBOT CÔNG NGHIỆP.
2.1 Tổng quan về robot công nghiệp.
Lĩnh vực nghiên cứu về Robot hiện nay rất đa dạng và phong phú Trong tài liệu này, chúng ta chỉ trình bày các kiến thức chủ yếu trên các loại Robot công
nghiệp, tức là các cánh tay máy Các bài toán cân bằng lực, các phương trình động học và động lực học là những nền tảng cơ bản để các bạn học viên có thể tiếp cận với chuyên nghành kỹ thuật Robot
2.1.1 Định nghĩa về Robot công nghiệp.
Tuỳ thuộc mỗi quốc gia, tổ chức và mục đích sử dụng, chúng ta có nhiều địnhnghĩa về robot công nghiệp Vì vậy trong nhiều tài liệu khác nhau, định nghĩa vềrobot công nghiệp cũng khác nhau Theo từ điển Webster định nghĩa robot là máy tựđộng thực hiện một số chức năng của con người Theo ISO ( International StandardsOrganization ) thì : Robot công nghiệp là tay máy đa mục tiêu, có một số bậc tự do,
dễ dàng lập trình và điều khiển trợ động, dùng để tháo lắp phôi, dụng cụ hoặc cácvật dụng khác Do chương trình thao tác có thể thay đổi nên thực hiện nhiều nhiệm
vụ đa dạng Tuy nhiên Robot công nghiệp được định nghĩa như vậy chưa hoàn toànthoả đáng
Theo tiêu chuẩn của Mỹ RIA ( Robot Institute of America ) định nghĩarobot là loại tay máy vạn năng có thể lặp lại các chương trình đã được thiết kế để
di chuyển vật liệu, chi tiết, dụng cụ hay các thiết bị chuyên dùng, thông qua cácchương trình chuyển động có thể thay đổi để hoàn thành các nhiệm vụ khác nhau
Trang 26Hình 2.1 Biểu diễn không gian của cánh tay máy.
2.1.1 Các thành phần cơ bản của Robot công nghiệp.
2.1.1.1 Cánh tay Robot ( Robot Arm)
Là bộ phận cơ khí gồm các khâu liên kết với nhau bởi các khớp nối, các bộtruyền động như: Bộ truyền bánh răng, bộ truyền đai, bộ truyền trục vít- bánh