Tải bản đầy đủ (.doc) (52 trang)

NGHIÊN cứu ỨNG DỤNG LEAP MOTION điều KHIỂN CÁNH TAY ROBOT BẰNG cử CHỈ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 52 trang )

TRƯỜ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Ỉ

Người hướng dẫn
Sinh viên thực hiện
Lớp
Mã số sinh viên

:
:
:
:

ThS. Hồ Sỹ Phương
Nguyễn Khắc Thành
51K - ĐTVT
1051080522

NGHỆ AN - 2016

1


MỤ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

1


DANH MỤC HÌNH ẢNH VÀ BẢNG BIỂU

2


MỞ ĐẦ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ây
giờ vẫn là dùng điện thoại thông minh, laptop kết nối qua bluetooth hay wifi để điều
khiể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ần
mề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ình
má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ều
khiển thiết bị bằng cử chỉ kết hợp giữa labview và leap motion.

3


Đề 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ệu
tham 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 uno
r3, 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ác
khố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ến

hành thi công mô hình điều khiển động cơ bằng sự kết hợp giữa labview và leap
motion đả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

4


TÓ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ên
phầ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 gestures
that 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. some
knowledge of DC motors and servo motors.
Focus mainly on design model Leap Motion, Labview and Arduino to control
robot arm, analyze and develop motor control code on software labview combined

with the Leap Motion controller.
Analyze strengths and weaknesses and the development trend of using
LabVIEW and Leap Motion in the field of automation.

5


CHƯƠ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ây
giờ vẫn là dùng điện thoại thông minh, laptop kết nối qua bluetooth hay wifi để điều
khiể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ần
mề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ình
má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.
Trong đề tài này tôi sử dụng thiết bị Leap Motion để điều khiển cánh tay robot
thô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ền

tả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ách
nhanh chóng và hiệu quả, labview được sử dụng để phát triển các ứng dụng đo
lườ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à

6


dâ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ảng
phầ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ương
trình VI gồm có front panel và block diagram. Front panel là giao diện người dùng
nơi mà sẽ hiển thị các hình ảnh trực quan để người dùng dễ thao tác còn block
diagram 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 đích
nghiê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 nhanh
chó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 VI
Package Manager (được cài đặt sẵn khi cài đặt labview) chúng ta phải cài đặt gói
labview interface for arduino. Đây là bộ công cụ hỗ trợ giao tiếp giữa labview và nền
tả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:

7


Hì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ình
sau 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:

8


Châ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ùy
và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ân
cầ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à
ta lựa chọn cho phù hợp.
Tiếp theo là khối close:

Hình 1.3. Khối close.
Là khối để đóng một chương trình giao tiếp với arduino. Chỉ gồm các chân cơ
bản là arduino resource, error in và error out.
Khối low level chứa nhiều khối quan trọng của arduino bao gồm các khối để
đọc, ghi tín hiệu analog hoặc digital từ board arduino. Ngoài ra còn có các khối phục
vụ việc băm xung, bus, ...

9


Hì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
10


Để lập trình cho leap motion trên phần mềm labview, chúng ta phải cài đặt gói
MakerHub 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ải
chú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ụ cho
việ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
cử chỉ mà nó hỗ trợ để người dùng khai thác.
Chân leap handle sẽ được nối với chân leap handle của khối khác, với chân
error out cũng vậy.
Khối read all data sẽ yêu cầu và phân tích các khung dữ liệu từ bộ điều khiển
leap, tất cả các dữ liệu kết hợp với khung được tổ chức trong một cụm gọi là
Labview cluster để phục vụ cho việc truy cập.
11


Hì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

12


Hình 1.10. Các khối lệnh boolean
Các khối lệnh And, Or, Not, ... thực hiện các phép toán logic tương ứng là
phép And, phép Or hay phép Not.
Khối lệnh Bool to (0,1) thực hiện chuyển đổi giá trị kiểu boolean (true và
false) sang giá trị 0 và 1.
- Các khối lệnh so sánh

Hình 1.11. Các khối lệnh so sánh.
Các khối lệnh so sánh sẽ thực hiện các phép toán so sánh tương ứng như: lớn
hơn, bé hơn, bằng, lớn hơn hoặc bằng, ...
Khối lệnh select:

Hình 1.12. Khối lệnh select.
Phụ 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…:

13





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ác
vớ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 board
mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM
Atmel 32-bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6
châ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ộng
khá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ường
thô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ững
ngườ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át
hiệ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

14


trê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ương
trì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ạnh
quan 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ết
nố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ều
shield có thể được xếp chồng và sử dụng dưới dạng song song. Arduino chính thức

thườ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ều
chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng
ceramic 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ác
thườ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ạp
chươ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ùy
thuộc vào đời phần cứng. Các board Serial Arduino có chứa một mạch chuyển đổi
giữa RS232 sang TTL. Các board Arduino hiện tại được lập trình thông qua cổng
USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232. Vài
biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board
adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương
15


thứ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ụng
cho những mạch ngoài. Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân
I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6
chân input analog, có thể được sử dụng như là 6 chân I/O số. Những chân này được
thiế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ân

header đượ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ài
biế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ác
nhau.
Arduino board có nhiều phiên bản với hiệu năng và mục đích sử dụng khác
nhau như: Arduino Mega, Arduino LyliPad, ... Trong số đó, Arduino Uno R3 là một
trong 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 động
củ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ách
nô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
16


nằ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 đến
vù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ản
phẩ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ựng
mộ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ộng
hơ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ững
loại "con đường" khác, chẳng hạn như "đường không" (không gian - dùng các loại
sóng để tạo cổng Serial). Như vậy "cổng Serial" có ý nhắc chúng ta rằng, đó chỉ đơn
thuầ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òn
CÁ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 gian
tươ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 ta
thao 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 được
kiể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.
17


Có 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 trong
khô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ấp
nguồn, bên trong sẽ có 3 đèn màu đỏ mờ, đèn LED màu xanh ở cạnh bên cũng sáng
lê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ống
như 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ặt
trê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 nhu
cầ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ính
vẫn không hề trầy xước.
18


Leap motion là một thiết bị ngoại vi, dùng để hỗ trợ người dùng tương tác với
má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ột
thuậ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ên
khả 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 trong
mộ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 khung
hì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
19



cử độ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 leap
motion có độ nhạy chưa cao, sử dụng trong thời gian dài sản phẩm nóng lên rất
nhiề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 treo
máy.
Leap Motion có thể đặt theo cách bạn muốn. Nếu đặt nằm nghiêng, đối diện
vớ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ình
cả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át
triể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 ứng
dụng cho các ngành công nghiệp thiết kết sử dụng leap motion như hình sau minh
họa việc thiết kế trên autodesk sử dụng leap motion:

20


Hì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ều
khiể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ợp
thiế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ạt
họ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 OSX
10.6 trở lên, Ubuntu Linux 12.04 LTS và Ubuntu 13.04 Raring Ringtail. Leap
Motion 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ảm
giá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, Leap
Motion 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

21


dâ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ính
giáo dục, ví dụ như Molecules hay Cyber Science 3D Motion. Bạn có thể tương tác
với các cấu trúc tinh thể, cũng như xoay qua xoay lại bộ xương cơ thể trong không
gian 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ào
Airspace Store để tải các ứng dụng về và xài. Ứng dụng free cũng khá nhiều, có một
và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ới
lò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ấy

thao 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àn
hình. Khi mình đặt 2 bàn tay phía trước Leap Motion, đây là hình ảnh mà chương
trì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 .

22


Trong chương 1 chúng ta đã tìm hiểu vể khái niệm cấu tạo chức năng cách
thức hoạt động của phần mềm LabVIEW, board mạch Arduino, thiết bị Leap
Motion. Đâ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ếp
theo chúng ta sẽ đi đến tìm hiều về cánh tay máy ( Robot arm).

23


CHƯƠ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 định
nghĩ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 Standards
Organization ) 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ác
vậ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àn
thoả đáng.
Theo tiêu chuẩn của Mỹ RIA ( Robot Institute of America ) định nghĩa
robot 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ác
chương trình chuyển động có thể thay đổi để hoàn thành các nhiệm vụ khác nhau

24


×