sử dụng fpga để xây dựng hệ điều khiển cho robot tự...

4
Bùi Tuấn Anh Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 116 (02): 13 - 16 13 SỬ DỤNG FPGA ĐỂ XÂY DỰNG HỆ ĐIỀU KHIỂN CHO ROBOT TỰ HÀNH Bùi Tuấn Anh * , Kim Đình Thái Trường Đại học Công nghệ Thông tin và Truyền thông – ĐH Thái Nguyên TÓM TT Robot thành hay robot di động (mobile robot) đƣợc định nghĩa là mt loi xe có khnăng tự dch chuyn, tvận động (có thlp trình lại đƣợc) dui sđiều khin tđộng hoàn thành mt công việc đƣợc giao. Theo lý thuyết, môi trƣờng hoạt động ca robot thành có thlà mặt đất, nuớc, không khí, không gian vũ trụ hay thp gia chúng. Ða hình bmt mà robot di chuyn trên đó có thể bng phng hoặc thay đổi, li lõm. Ðtài nghiên cứu này đi sâu nghiên cứu ng dụng FPGA để xây dng hđiều khin robot thành. Từ khóa: Ngôn ngữ mô tả phần cứng (VHDL), Field Programmable Gate Array (FPGA), Very high speed Circuit Itergrated (VHSIC), điều chế độ rộng xung (PWM), robot di động (mobile robot) GII THIU * Ở trong bài báo này chúng tôi trình bày việc sử dụng ngôn ngữ VHDL để mô tả phần cứng cho mạch tích hợp tốc độ cao. Ngôn ngữ mô tả phần cứng VHDL đƣợc phát triển dùng cho chƣơng trình VHSIC (Very High Speed Itergrated Circuit) của BQuốc phòng Mỹ. VHDL đƣợc ba công ty Intermetics, IBM và Texas Instruments bắt đầu ngiên cứu phát triển vào tháng 7 năm 1983. Phiên bản đầu tiên đƣợc công bố vào tháng 8-1985. Sau đó nó đƣợc tổ chức IEEE xem xét thành một tiêu chuẩn chung. Năm 1987 đã trở thành tiêu chuẩn (tiêu chuẩn IEEE-1076). Theo lý thuyết, môi trƣờng hoạt động của robot tự hành có thể là đất, nƣớc, không khí không gian vũ trụ hay tổ hợp giữa chúng. Địa hình bề mặt robot mà robot di chuyển có thể bằng phẳng hoặc thay đổi lồi lõm. Theo bộ phận thực hiện chuyển động, ta có thể chia robot tự hành làm hai loại: chuyển động bằng chân (legged) hoặc chuyển động bằng bánh (wheeled). Mặc dù có ứng dụng cao, nhƣng để chế tạo robot tự hành còn vƣớng nhiều hạn chế chƣa giải quyết trọn vẹn nhƣ chi phí chế tạo cao, đã không cho phép chúng đƣợc sử dụng rộng rãi. Một nhƣợc điểm khác của robot tự hành phải kể đến là còn thiếu linh hoạt và thích ứng khi làm việc ở những vị trí khác nhau. Bài toán tìm đƣờng (navigation * Tel: 01692 478758, Email: [email protected] problem) của robot tự hành cũng không phải là loại bài toán đơn giản nhƣ nhiều ngƣời nghĩ ban đầu. Trong bài báo này, bài toán tìm đƣờng cũng nhƣ mô hình điều khiển robot sẽ đƣợc giải quyết mức độ không quá phức tạp bằng ngôn ngữ mô tả phần cứng VHDL, trên công cụ lập trình cho FPGA. Trong một robot phần cơ bản quan trọng nhất trong robot chính là hệ thống cảm biến. Cảm biến đƣợc định nghĩa là các giác quan của robot. Robot cần xác định trạng thái của môi trƣờng bên ngoài (nhƣ là các vạch trắng, màu sắc của các chƣớng ngại vật…) để gửi trạng thái môi trƣờng đến bộ xử lý rồi đƣa ra các phản ứng điều khiển robot để thích ứng với các sự kiện bên ngoài ấy. Các loại cảm biến trong kỹ thuật robot ngƣời ta sử dụng nhiều loại cảm biến nhƣ: LED hồng ngoại, quang điện trở (photorresistance), tế bào quang điện, cảm biến công nghiệp, camera số trong công nghệ xử lý ảnh. Mạch công suất dùng để điều khiển động cơ điện một chiều (DC motor). TẢ PHẦN CỨNG CHO ROBOT DI ĐỘNG Kiến trúc của một robot tự hành cơ bản Mạch điều khiển đƣợc lập trình tạo ra 3 khối. Khối chuyển đổi tín hiệu tƣơng tự thành số (ADC): Có nhiệm vụ xử lý tín hiệu sensor dò đƣờng đƣa vào bộ xử lý xây dựng bằng FPGA. Khối điều khiển chuyển động: Nhận tín hiệu điều khiển từ khối phát hiện tín hiệu đƣờng dẫn và đƣa ra mức điều khiển hợp lý.

Upload: vuongduong

Post on 30-Apr-2018

222 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Sử dụng FPGA để xây dựng hệ điều khiển cho robot tự hànhlrc.tnu.edu.vn/upload/collection/brief/42054_562014153563.pdfSỬ DỤNG FPGA ĐỂ XÂY DỰNG HỆ ĐIỀU

Bùi Tuấn Anh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 116 (02): 13 - 16

13

SỬ DỤNG FPGA ĐỂ XÂY DỰNG HỆ ĐIỀU KHIỂN CHO ROBOT TỰ HÀNH

Bùi Tuấn Anh*, Kim Đình Thái

Trường Đại học Công nghệ Thông tin và Truyền thông – ĐH Thái Nguyên

TÓM TẮT

Robot tự hành hay robot di động (mobile robot) đƣợc định nghĩa là một loại xe có khả năng tự

dịch chuyển, tự vận động (có thể lập trình lại đƣợc) duới sự điều khiển tự động hoàn thành một

công việc đƣợc giao. Theo lý thuyết, môi trƣờng hoạt động của robot tự hành có thể là mặt đất,

nuớc, không khí, không gian vũ trụ hay tổ hợp giữa chúng. Ðịa hình bề mặt mà robot di chuyển

trên đó có thể bằng phẳng hoặc thay đổi, lồi lõm. Ðề tài nghiên cứu này đi sâu nghiên cứu ứng

dụng FPGA để xây dựng hệ điều khiển robot tự hành.

Từ khóa: Ngôn ngữ mô tả phần cứng (VHDL), Field Programmable Gate Array (FPGA), Very high

speed Circuit Itergrated (VHSIC), điều chế độ rộng xung (PWM), robot di động (mobile robot)

GIỚI THIỆU*

Ở trong bài báo này chúng tôi trình bày việc

sử dụng ngôn ngữ VHDL để mô tả phần cứng

cho mạch tích hợp tốc độ cao. Ngôn ngữ mô

tả phần cứng VHDL đƣợc phát triển dùng cho

chƣơng trình VHSIC (Very High Speed

Itergrated Circuit) của Bộ Quốc phòng Mỹ.

VHDL đƣợc ba công ty Intermetics, IBM và

Texas Instruments bắt đầu ngiên cứu phát

triển vào tháng 7 năm 1983. Phiên bản đầu

tiên đƣợc công bố vào tháng 8-1985. Sau đó

nó đƣợc tổ chức IEEE xem xét thành một tiêu

chuẩn chung. Năm 1987 đã trở thành tiêu

chuẩn (tiêu chuẩn IEEE-1076).

Theo lý thuyết, môi trƣờng hoạt động của

robot tự hành có thể là đất, nƣớc, không khí

không gian vũ trụ hay tổ hợp giữa chúng. Địa

hình bề mặt robot mà robot di chuyển có thể

bằng phẳng hoặc thay đổi lồi lõm. Theo bộ

phận thực hiện chuyển động, ta có thể chia

robot tự hành làm hai loại: chuyển động bằng

chân (legged) hoặc chuyển động bằng bánh

(wheeled). Mặc dù có ứng dụng cao, nhƣng

để chế tạo robot tự hành còn vƣớng nhiều hạn

chế chƣa giải quyết trọn vẹn nhƣ chi phí chế

tạo cao, đã không cho phép chúng đƣợc sử

dụng rộng rãi. Một nhƣợc điểm khác của

robot tự hành phải kể đến là còn thiếu linh

hoạt và thích ứng khi làm việc ở những vị trí

khác nhau. Bài toán tìm đƣờng (navigation

* Tel: 01692 478758, Email: [email protected]

problem) của robot tự hành cũng không phải

là loại bài toán đơn giản nhƣ nhiều ngƣời

nghĩ ban đầu. Trong bài báo này, bài toán tìm

đƣờng cũng nhƣ mô hình điều khiển robot sẽ

đƣợc giải quyết mức độ không quá phức tạp

bằng ngôn ngữ mô tả phần cứng VHDL, trên

công cụ lập trình cho FPGA. Trong một robot

phần cơ bản quan trọng nhất trong robot

chính là hệ thống cảm biến. Cảm biến đƣợc

định nghĩa là các giác quan của robot. Robot

cần xác định trạng thái của môi trƣờng bên

ngoài (nhƣ là các vạch trắng, màu sắc của các

chƣớng ngại vật…) để gửi trạng thái môi

trƣờng đến bộ xử lý rồi đƣa ra các phản ứng

điều khiển robot để thích ứng với các sự kiện

bên ngoài ấy. Các loại cảm biến trong kỹ

thuật robot ngƣời ta sử dụng nhiều loại cảm

biến nhƣ: LED hồng ngoại, quang điện trở

(photorresistance), tế bào quang điện, cảm

biến công nghiệp, camera số trong công nghệ

xử lý ảnh. Mạch công suất dùng để điều khiển

động cơ điện một chiều (DC motor).

MÔ TẢ PHẦN CỨNG CHO ROBOT DI ĐỘNG

Kiến trúc của một robot tự hành cơ bản

Mạch điều khiển đƣợc lập trình tạo ra 3 khối.

Khối chuyển đổi tín hiệu tƣơng tự thành số

(ADC): Có nhiệm vụ xử lý tín hiệu sensor dò

đƣờng đƣa vào bộ xử lý xây dựng bằng

FPGA. Khối điều khiển chuyển động: Nhận

tín hiệu điều khiển từ khối phát hiện tín hiệu

đƣờng dẫn và đƣa ra mức điều khiển hợp lý.

Page 2: Sử dụng FPGA để xây dựng hệ điều khiển cho robot tự hànhlrc.tnu.edu.vn/upload/collection/brief/42054_562014153563.pdfSỬ DỤNG FPGA ĐỂ XÂY DỰNG HỆ ĐIỀU

Bùi Tuấn Anh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 116 (02): 13 - 16

14

Khối tạo xung: Phát xung cho hai động cơ

giúp cho động cơ có thể hoạt động linh hoạt

theo phƣơng pháp PWM để bám theo đƣờng

dẫn

Hình 1: Sơ đồ khối của một robot

tự hành sử dụng FPGA

Hệ thống này bao gồm cả hai phần cứng và

phần mềm. Đầu ra của ADC đƣợc nối đến bộ

xử lý trên kit FPGA và nó đã đƣợc sử dụng

nhƣ là đầu vào của các mã nguồn. Ngôn ngữ

sử dụng trong hệ thống này là VHDL.

Bộ chuyển đổi ADC8-bit sử dụng trên

kit FPGA

Hình 2: Sơ đồ khối của bộ chuyển đổi ADC 8-bit

Trong đó Vin là tín hiệu điện áp cần chuyển

đổi (Input). Vref là tín hiệu điện áp so sánh

(Input). Di là 8 bit đầu ra số của bộ ADC

i=0,…,7 (Output). Ta lấy Vref=15 VDC làm

điện áp so sánh. Với ADC 8 bit sẽ có 28=256

trạng thái chạy từ 0000 0000 đến 1111 1111.

Nhƣ vậy mỗi bƣớc tính tƣơng ứng là

N=10/(256-1). Số 8 bits ra của bộ ADC sẽ là

n=Vin/N=Vin(256-1)/15=Vin(255/15)= Vin.17

Điều chế độ rộng xung (PWM)

Điều chế độ rộng xung PWM (Pulse With

Modulation) là một khâu quan trọng trong

thiết kế robot. Sử dụng phƣơng pháp này

chúng ta có thể điều khiển một cách linh hoạt

cho motor DC từ đó có thể dùng các hàm vận

tốc để cho robot bám theo vạch trắng. Module

PWM có các nhiệm vụ nhƣ sau: Hỗ trợ các

thanh ghi lập trình, độ phân giải tối đa là 8

bit, tích hợp timer, hỗ trợ một ngõ ra điều chế.

Sơ đồ chân của PWM nhƣ sau.

Hình 3: Bộ chuyển đổi ADC 8 bit xây dựng trên

phần mềm Quartus II

Hình 4: Sơ đồ chân của bộ chuyển đổi ADC

Hình 5: Sơ đồ khối của module PWM như sau

Hệ thống bao gồm thanh ghi bộ đếm 8 bit,

luôn đếm lên, và hai thanh ghi tham chiếu

period và duty. Các thanh ghi này đƣợc ghi

vào bởi một master. Tại sƣờn lên bộ đếm,

duty match sẽ xảy ra trƣớc period match. Nếu

thanh ghi duty lớn hơn thanh ghi period thì

Page 3: Sử dụng FPGA để xây dựng hệ điều khiển cho robot tự hànhlrc.tnu.edu.vn/upload/collection/brief/42054_562014153563.pdfSỬ DỤNG FPGA ĐỂ XÂY DỰNG HỆ ĐIỀU

Bùi Tuấn Anh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 116 (02): 13 - 16

15

xem nhƣ ngõ ra xung điều chế không đổi. Khi

period match xảy ra, ngõ ra đƣợc đặt lên logic

1, đồng thời thanh ghi counter timer bị xóa.

Khi duty match xảy ra, ngõ ra bị xóa về logic

0 và thanh ghi counter timer tiếp tục đếm đến

period match. Để tránh hiện tƣợng max speed

của bộ điều chế ta cho ngõ ra bằng 0.

Hình 6: Bộ điều chế độ rộng xung ( PWM)

xây dựng trên phần mềm Quartus II

Cách bố trí cảm biến trên robot

Trong mạch này chúng tôi sử dụng 3 cặp thu

phát hồng ngoại dò đƣờng. Khi cặp thu phát ở

giữa chạm vạch trắng mức tín hiệu đƣa vào

kit FPGA tƣơng ứng là R=101. Khi cặp thu

phát bên trái chạm vạch trắng mức tín hiệu

đƣa vào kit FPGA là R=011. Tƣơng tự khi cặp

thu phát bên phải chạm vạch trắng thì tín hiệu

đƣa vào FPGA sẽ là R=110. Sau đây là sơ đồ

biểu diễn trạng thái hoạt động của robot.

Hình 7: Sơ đồ trạng thái hoạt động của robot

KẾT QUẢ ĐẠT ĐƢỢC

Chúng tôi sử dụng ngôn ngữ mô tả phần cứng

VHDL để xây dựng hệ điều khiển cho robot

tự hành trên kit FPGA DE2 của Altera và

thực hiện mô phỏng trên phần mềm Quartus

II. Robot hoạt động ổn định tuy nhiên sự nhạy

cảm với nhiễu còn tƣơng đối lớn. Trong các

nghiên cứu tiếp theo chúng tôi sẽ tâp trung

vào việc giảm ảnh hƣởng của nhiễu, tăng tính

ổn định của hệ thống để có thể áp dụng trong

thực tế.

Hình 8: Mô phỏng Bộ điều chế độ rộng xung

(PWM) xây dựng bằng ngôn ngữ VHDL

Hình 9: Mô phỏng bộ ADC xây dựng

bằng ngôn ngữ VHDL

Hình 10: Mô phỏng của robot tự hành

xây dựng bằng ngôn ngữ VHDL

Page 4: Sử dụng FPGA để xây dựng hệ điều khiển cho robot tự hànhlrc.tnu.edu.vn/upload/collection/brief/42054_562014153563.pdfSỬ DỤNG FPGA ĐỂ XÂY DỰNG HỆ ĐIỀU

Bùi Tuấn Anh và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 116 (02): 13 - 16

16

Hình 11: Hình ảnh robot tự hành xây dựng

trên Board DE2 của ALTERA

TÀI LIỆU THAM KHẢO 1. Nguyễn Linh Giang, (2003)Thiết kế mạch bằng

máy tính. Nxb KH&KT, Hà Nội.

2. Chris Lo. (2006) “Dynamic Reconfiguration

Mechanism ForRobot Control Software”.

Department of Electricaland Computer

Engineering, University of Auckland, Auckland,

New Zealand.

3. K. Sridharan and P. Rajesh Kumar. (2009)

“Design and Development of an FPGA based

Robot”.

4. Volnie A.Pedroni. (2004) “Circuit Design with

VHDL”.MIT Press, Cambridge, Massachusetts,

London, England.

5. Prabhas Chongstitvatana. (1998) “A FPGA-

based Behavioral Control System for a Mobile

Robot”.IEEE Asia-Pacific Conference on Circuits

andSystems, Chiangmai, Thailand,

SUMMARY

USE FPGA TO INTEGRATE SYSTEM CONTROL FOR MOBILE ROBOT

Bui Tuan Anh*, Kim Đinh Thai

College of Information and Communication Technology - TNU

Autonomous robot or mobile robot , defined as a robotic vehicle capability of self-moving, self-

movement (programmable) under automatic control is able to complete assigned work. In theory,

the operating environment of the self-propelled robot may be ground, water, air, space or

combination between them. The surface of terrain on which the robot can move is flat or

changeable, convex and concave. This project has been studied deeply applications FPGA to

control for a Mobile Robot.

Keyword: Very High Speed Intergrated Circuit Hardware Description Language (VHDL), Field

Programmable Gate Array (FPGA), Very high speed Circuit Itergrated (VHSIC), mobile robot,

Pulse-width modulation (PWM)

Ngày nhận bài:25/01/2014; Ngày phản biện:10/02/2014; Ngày duyệt đăng: 26/02/2014

Phản biện khoa học: TS. Phạm Đức Long – Trường ĐH Công nghệ Thông tin & Truyền thông - ĐHTN

* Tel: 01692 478758, Email: [email protected]