Mục lục
Mục lục 2
Lời nói đầu 3
I. Mục đích đề tài 5
1.1 Tìm hiểu về công cụ mô tả phần cứng VHDL 5
1.2 Tìm hiểu về Công cụ lập trình FPGA 6
1.3.Robot tự hành 7
II.Thiết kế phần cứng 9
2.1 Hệ thống cảm biến 9
2.1.1 Định nghĩa 9
2.1.2 Các loại cảm biến. 10
2.1.3 Led hồng ngoại (Light Emiting Diode ) 10
2.1.5 Mạch in bộ cảm biến : 14
2.2. Mạch công suất điều khiển động cơ. 14
2.2.1. Hoạt động của DC motor 15
2.2.2 Điều khiển Dc motor bằng rơle(RELAY) 16
2.2.3.Điều khiển chiều quay cho DC motor dùng rơle. 17
2.2.4. Điều xung PWM, điều chỉnh vận tốc cho động cơ. 19
III.Lập trình điều khiển 21
3.1.Giới thiệu về kit thử nghiệm CPLD COOLRUNNER – II 256 TQ144 21
3.2.Lập trình trên KIT thử nghiệm 22
3.3.Sơ đồ khối mạch điều khiển 22
3.4 cách bố trí cảm biển trên robot 24
3.5 Bảng trạng thái điều khiển cho động cơ 24
3.6 Trạng thái hoạt động FSM 25
3.7 Code của modul điều khiển robot 25
IV Kết thúc đề tài 28
PHỤ LỤC – ĐỀ CƯƠNG ĐỀ TÀI 29
TÀI LIỆU THAM KHẢO 33
32 trang |
Chia sẻ: oanh_nt | Lượt xem: 3608 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Báo cáo Điều khiển robot nhận biết bằng hồng ngoại sử dụng FPGA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t kế robot đang diễn ra một cách sôi nổi nhất là trong bộ phận sinh viên.Nhiều cuộc thi sáng tạo robocon đã thu hút không ít các bạn sinh viên và các trường đại học lớn,tuy nhiên với điều kiện nghiên cứu và kiến thức có hạn nên các mô hình robot không quá phức tạp.Với yêu cầu như vậy thì chọn 1 vi điều khiển như VDK8051(P89V51RD2),VDK PIC(16F877A),VDK AVR(ETEMEGA 16L) là khá phổ biến….Tuy nhiên việc thiết kế phần cứng trong việc điều khiển robot là khá phức tạp.Vì vậy song song với việc tìm hiểu một số cấu trúc của PLD như : Mảng logic khả trình(PLA).Logic mảng khả trình(PAL),cấu kiện logic khả trình đơn giản (SPLD), và mảng cổng có thể lập trình theo trường (FPGA). Nhóm chúng em đã chọn thiết kế robot tự hành,nhận biết bằng hồng ngoại và thử nghiệm trên KIT CPLD nhằm tăng khả năng thiết kế logic và tận dụng được những ưu điểm của các PLD như đã nói ở trên.
Chúng em xin chân thành cảm ơn sự tận tình hướng dẫn của Thầy Đỗ Mạnh Hà, cùng tất cả các thầy cô trong bộ môn Kĩ thuật điện tử trong suốt thời gian thực hiện đề tài này. Với sự tận tình giúp đỡ đó kết hợp với sự nỗ lực cố gắng của cả nhóm, chúng em đã hoàn thành để tài này. Tuy nhiên, do hạn chế về mặt thời gian cũng như kiến thức chưa sâu, nên đề tài có thể sẽ không tránh khỏi những thiếu xót. Chúng em xin chân thành tiếp thu những ý kiến chỉ bảo đóng góp của thầy cô cùng toàn thể các bạn để đề tài sẽ hoàn thiện tốt hơn và có thể ứng dụng tốt trong thực tế.
Xin chân thành cảm ơn !
Nhóm sinh viên thực hiện đề tài
I. Mục đích đề tài
1.1 Tìm hiểu về công cụ mô tả phần cứng VHDL
Giới thiệu về VHDL
VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độ rất cao, là một loại ngôn ngữ mô tả phần cứng đượ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ỹ.
Mục tiêu của việc phát triển VHDL là có được một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhất cho phép thử nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưa các hệ thống đó vào ứng dụng trong thực tế.
Ngôn ngữ VHDL được ba công ty Intermetics, IBM và Texas Instruments bắtđầu nghiê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 đó VHDL được đề xuất để tổ chức IEEE xem xét thành một tiêu chuẩn chung. Năm 1987 đã đưa ra tiêu chuẩn về VHDL( tiêu chuẩn IEEE-1076 1987).
VHDL được phát triển để giải quyết các khó khăn trong việc phát triển, thay đổi và lập tài liệu cho các hệ thống số. VHDL là một ngôn ngữ độc lập không gắn với bất kỳ một phương pháp thiết kế, một bộ mô tả hay công nghệ phần cứng nào. Người thiết kế có thể tự do lựa chọn công nghệ, phương pháp thiết kế trong khi chỉ sử dụng một ngôn ngữ duy nhất. Và khi đem so sánh với các ngôn ngữ mô phỏng phần cứng khác ta thấy VHDL có một số ưu điểm hơn hẳn là:
- Thứ nhất là tính công cộng:
VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE. VHDL được sự hỗ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống.
- Thứ hai là khả năng được hỗ trợ bởi nhiều công nghệ và nhiều phương
pháp thiết kế:
VHDL cho phép thiết kế bằng nhiều phương pháp ví dụ phương pháp thiết kế từ trên xuống, hay từ dưới lên dựa vào các thư viện sẵn có. VHDL cũng hỗ trợ cho nhiều loại công cụ xây dựng mạch như sử dụng công nghệ đồng bộ hay không đồng bộ, sử dụng ma trận lập trình được hay sử dụng mảng ngẫu nhiên.
- Thứ ba là tính độc lập với công nghệ:
VHDL hoàn toàn độc lập với công nghệ chế tạo phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộc công nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng ngay cho các hệ thống đã thiết kế.
- Thứ tư là khả năng mô tả mở rộng:
VHDL cho phép mô tả hoạt động của phần cứng từ mức hệ thống số cho
đến mức cổng. VHDL có khả năng mô tả hoạt động của hệ thống trên nhiều
mức nhưng chỉ sử dụng một cú pháp chặt chẽ thống nhất cho mọi mức. Như thế
ta có thể mô phỏng một bản thiết kế bao gồm cả các hệ con được mô tả chi tiết.
- Thứ năm là khả năng trao đổi kết quả:
Vì VHDL là một tiêu chuẩn được chấp nhận, nên một mô hình VHDL
có thể chạy trên mọi bộ mô tả đáp ứng được tiêu chuẩn VHDL. Các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết kế sử dụng công cụ thiết kếkhác nhau nhưng cùng tuân theo tiêu chuẩn VHDL. Cũng như một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong một hệ thống lớn (trong đó các hệ con đó được thiết kế độc lập).
- Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các
thiết kế:
VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều người. Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế. Và nó cũng cho phép dùng lại các phần đã có sẵn.
1.2 Tìm hiểu về Công cụ lập trình FPGA
Khai thác, nghiên cứu cơ bản công nghệ mới là bước không thể thiếu trong việc cải tiến, nâng cao cũng như chế tạo mới các trang thiết bị quân sự và dân sự nhằm đáp ứng việc hiện đại hóa công nghiệp hóa đất nước. Cùng với sự phát triển vượt bậc của ngành công nghệ thông tin các công nghệ mới về các mạch tích hợp vi điện tử, các mạch tổ hợp logic lập trình được ra đời đã làm cho các sản phẩm quân sự cũng như dân sự ngày càng hoàn thiện và ưu việt hơn. Để tiến một bước xa hơn trong việc cải tiến các thiết bị điện tử hiện đại đáp ứng nhu cầu ngày càng cao của con người với tốc độ xử lý cực kỳ cao, đòi hỏi phải có công nghệ tiên tiến phù hợp với tình hình chung của thế giới.
Trên cơ sở phát triển các chip PLA hiện nay công nghệ nano đã được đưa vào chế tạo các mạch tích hợp lập trình được FPGA & CPLD, nó đã làm cho mạch tích hợp logic lên tới hàng chục triệu cổng, tốc độ đồng hồ lên đến 500MHz. Ứng dụng công nghệ mới vào trong thiết kế chế tạo các thiết bị điện tử lập trình PLIC là một bước cần thiết cho tương lai với một nước phát triển như Việt Nam. Để đáp ứng được tính bảo mật và nhu cầu chuyên dụng hóa, tối ưu hóa(thời gian, không gian, giá thành), tính chủ động trong công việc….ngày càng đòi hỏi khắt khe. Việc đưa ra công nghệ mới trong lĩnh vực chế tạo mạch điện tử để đáp ứng những nhu cầu trên là hoàn toàn cấp thiết mang tính thực tế cao. Công nghệ FPGA ( Field Programmable Gate Array) và CPLD(Complex Programmable Logic Device) đã được các hãng lớn tập trung nghiên cứu và chế tạo điển hình là Xilinx và Altera. Để làm chủ công nghệ mới và tổ chức thiết kế sản xuất công nghệ FPGA của xilinx cho phép chúng ta tự thiết kế những vi mạch riêng, những bộ xử lí số riêng dành cho ứng dụng của chúng ta.Đặc biệt trong lĩnh vực xử lý tín hiệu số các mạch tích hợp dùng để nhận dạng âm thanh, hình ảnh, cảm biến…. với tính mềm dẻo cao và giá thành thấp.
Măc dù công nghệ FPGA đã xuất hiện từ năm 1985, xong đối với nước ta thì nó vẫn còn rất mới do vậy tìm hiểu, làm chủ công nghệ FPGA là việc làm hoàn toàn cần thiết.
1.3.Robot tự hành
Robot tự hành hay robot di động (mobile robots, thường được gọi tắt là mobots) được định nghĩa là một loại xe robot có khả năng tự dịch chuyển, tự vận động (có thể lập trìnhlại được) dưới sự điền khiển tự động để thực hiện thành công 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à đất, nước, không khí, không gian vũ trụ hay sự 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.
Theo bộ phận thực hiện chuyển động, ta có thể chia robot tự hành làm 2 lớp: chuyển động bằng chân (legged) và bằng bánh (wheeled). Trong lớp đầu tiên, chuyển động có được nhờ các chân cơ khí bắt chước chuyển động của con người và động vật (hình 1.1g,h). Robot loại này có thể di chuyển rất tốt trên các định hình lồi lõm, phức tạp. Tuy nhiên,cách phối hợp các chân cũng như vấn đề giữ vững tư thế là công việc cực kỳ khó khăn.
Lớp còn lại (di chuyển bằng bánh) tỏ ra thực tế hơn, chúng có thể làm việc tốt trên hầu hết các địa hình do con người tạo ra. Điều khiển robot di chuyển bằng bánh cũng đơn giản hơn nhiều, gần như luôn đảm bảo tính ổn định cho robot. Lớp này có thể chia làm 3 loại robot: Loại chuyển động bằng bánh xe (phổ biến) (hình 1.1a, b, c, f, i), loại chuyển động bằng vòng xích (khi cần mô men phát động lớn hay khi cần di chuyển trên vùng đầm lầy, cát và băng tuyết) (hình 1.1d, e), và loại hỗn hợp bánh xe và xích (ít gặp).
Tiềm năng ứng dụng của robot tự hành hết sức rộng lớn. Có thể kể đến robot vận chuyển vật liệu, hàng hóa trong các tòa nhà, nhà máy, cửa hàng, sân bay và thư viện; robot phục vụ quét dọn đường phố, khoang chân không; robot kiểm tra trong môi trường nguy hiểm; robot canh gác, do thám; robot khám phá không gian, di chuyển trên hành tinh; robot hàn, sơn trong nhà máy; robot xe lăn phục vụ người khuyết tật; robot phục vụ sinh hoạt gia đình v.v...
Mặc dù nhu cầu ứng dụng cao, nhưng những hạn chế chưa giải quyết được của robot tự hành, 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 tính 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 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ĩ lúc ban đầu.
Trong đề tài này, bài toán tìm đường cũng như mô hình 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 FPGA
a) b) c)
d) e)
f) h)
g) i)
Hình 1.1. Một số hình ảnh về robot tự hành
a) Robot Nomad 150. b) Sự kết hợp giữa robot tự hành Nomadic XR4000 và cánh tay robot PUMA 560. c) Robot “con rùa”. d) Robot Houdini di chuyển bằng bánh xích. e) Robot bán tự động nghiên cứu ở vùng cực bắc. f) Robot SRR và FIDO của NASAg) Robot tự hành bằng chân Spiderbot di chuyển trên sao Hỏa. h)Robot sáu chân Genghis. i) Robot Meet Timbot dùng test các phần mềm hệ thống nhúng trong phòng thí nghiệm.
II.Thiết kế phần cứng
2.1 Hệ thống cảm biến
2.1.1 Định nghĩa
- Trong một con robot cơ bản. Một trong những phần quan trọng nhất trong robot chính là hệ thống cảm biến. Vậy cảm biến là gì?
+ 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 để đối phó với các sự kiện bên ngoài ấy.
2.1.2 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ư là:
+ Led hồng ngoại (Bộ phát thu hồng ngoại)
+ Quang điện trở (PHOTORESISTANCE) : cds hoặc cdse
+ Tế bào quang điện
+ Cảm biến công nghiệp
+ Camera số trong công nghệ xử lý ảnh
Trong đề tài này chúng tôi xin được giới thiệu một số thiết bị cảm biến thông dụng.
2.1.3 Led hồng ngoại (Light Emiting Diode )
Hình 2.1 Ảnh của một bộ thu phát hồng ngoại
Led hồng ngoại là một loại cảm biến được sử dụng rất nhiều và giá thành rẻ.
1.Cơ chế hoạt động.
Như trên chúng ta thấy hình bên trái : Light Source là một bộ phát hồng ngoại hoặc là một nguồn sang nào đó có tia hồng ngoại.Khi chiếu xuống 1 bề mặt màu đen hoặc bề mặt có màu sẫm, tối thì các ánh sáng sẽ được bề mặt hấp thụ & lượng ánh sáng bị bức xạ trở lại rất ít, nên bộ thu nhận được ánh sáng phản hồi ít.
Ta xét hình bên trái : Khi bề mặt màu trắng hoặc màu sáng thì ánh sáng được phát bởi bộ phát hồng ngoại thì sẽ không bị hấp thụ bởi bề mặt mà bị hất dội ngược lại và khi đó đầu thu sẽ thu một lượng tia hồng ngoại lớn.
=> Do đó Led hồng ngoại có thể phân biệt được bộ cảm biến đang chiếu vào một vật màu sáng hay màu tối để truyền tới bộ xử lý.
2.Cấu tạo bộ phát hồng ngoại :
Hình 2.2 Cấu tạo bộ phát hồng ngoại
Hình trên là cấu tạo của đèn led phát hồng ngoại.Chân anode được nối với cực dương của nguồn điện.Chân cathode được nối đất(cực âm) Thông thường thì chân anode dài hơn chân cathode.
3. Cấu tạo bộ thu hồng ngoại :
Hình 2.3 Cấu tạo bộ thu hồng ngoại
Cấu tạo Quang trở gồm một lớp chất bán dẫn (cadimi sunfua CdS chẳng hạn) phủ trên một tấm nhựa cách điện . Có hai điện cực và gắn vào lớp chất bán dẫn đóNối một nguồn khoảng vài vôn với quang trở thông qua một miliampe kế. Ta thấy khi quang trở được đặt trong tối thì trong mạch không có dòng điện. Khi chiếu quang trở bằng ánh sáng có bước sóng ngắn(ánh sáng hồng ngoại…)hơn giới hạn quang dẫn của quang trở thì sẽ xuất hiện dòng điện trong mạch.
Điện trở của quang trở giảm đi rất mạnh khi bị chiếu sáng bởi ánh sáng nói trên. Đo điện trở của quang trở CdS, người ta thấy: khi không bị chiếu sáng, điện trường của nó vào khoảng 3.10 6 om; khi bị chiếu sáng, điện trở của nó chỉ còn khoảng 20 om .
2.1.4 Sơ đồ nguyên lý của bộ cảm biến :
Hình 2.4 Sơ đồ nguyên lí của bộ cảm biến
+ Led ở đây là bộ phát hồng ngoại còn quang trở là bộ thu.
Nguyên lí hoạt động:
Trong sơ đồ nguyên lý trên ,cặp led thu phát được đặt sát nhau ,một chân
của quang trở được đưa và LM324 .LM324 là IC khuếch đại so sánh ,mục đích
khuyếch đại tín hiệu từ sensor. Khi hoạt động ,led phát chiếu tia hồng ngoại xuống sân thi đấu ,khi chùm tia hồng ngoại chiếu xuống nền đen , quang trở không nhận được chùm phản xạ nên không dẫn ,điện trở bằng vô cùng ,tín hiệu ra LM324 là mức 1 được đưa vào FPGA.Tương tự ,khi robot gặp nền trắng quang trở nhận được chùm phản xạ,điện trở giảm nên dẫn,tín hiệu ra LM323 là mức 0 được đưa vào FPGA.
2.1.5 Mạch in bộ cảm biến :
Hình 2.5 Mạch in bộ cảm biến
Cách bố trí các led trên mạch in:
2.2. Mạch công suất điều khiển động cơ.
Động cơ mà nhóm sử dụng là động cơ một chiểu (DC motor).
Động cơ một chiều có cấu tạo từ hai bộ phận : Bộ phận đứng yên có cấu tạo từ nam châm vĩnh cửu được gọi là Stato và một bộ phận quay được cấu tạo từ một nam châm nhân tạo có cấu tạo từ một cuộn dây đồng có lõi là một thanh kim loại được gọi là Rotor.
Hình 2.7 Hình ảnh về động cơ DC
2.2.1. Hoạt động của DC motor
Hình a
Khi cho dòng điện một chiều đi qua motor sẽ khiến motor quay theo chiều như hình a.
Hình b
Khi ta đảo 2 cực của dòng điện động cơ đảo chiều như hình b
Động cơ DC cho dòng điện một chiều chạy qua và làm quay Roto dẫn đến motor quay, nếu ta đổi chiều dòng điện thì motor sẽ quay theo chiều ngược lại.Do đó có thể điều chỉnh được hướng quay của motor.Đặc tính kỹ thuật của hầu hết động cơ motor là tốc độ quay (Vòng/phút) cao và moment ngẫu lực thấp. Nhưng mà hầu hết Robot cần tốc độ quay chậm và moment ngẫu lực cao. Do đó một hộp số có thể được lắp vào DC motor nhằm giảm tốc độ quay và làm tăng moment ngẫu lực.Trên hộp số thường ghi rõ chỉ số truyền động chỉ trước và sau hộp số.
Ví Dụ: Tốc độ quay của một DC motor là 1000 Vòng/ Phút được gắn vào một hộp số 1000/ 1. Có nghĩa là tốc độ quay của đầu ra hộp số được 1/1000 của tốc độ DC motor khi chưa gắn hộp số -> Vận tốc hộp số bằng vận tốc DC motor chia cho 1000.
2.2.2 Điều khiển Dc motor bằng rơle(RELAY)
Rơle là một IC được cấu tạo bởi một mạch điện có một đoạn mạch nối với một cái bản lề được mở hoặc đóng nhờ một cuộn dây nam châm.
1. Sơ đồ nguyên lí của Rơle:
Hình 2.8 Sơ đồ nguyên lí của rơle
2. Nguyên lí hoạt động
Nguyên lý hoạt động của Rơle là cuộn dây khi có dòng điện sẽ hút các thanh kim loại về phía cuộn dây, lập tức hai thanh kim loại này sẽ rời bỏ hai đầu dây cũ và tiếp xúc với hai đầu dây khác:
Ta xét hình thứ nhất:
+ Lúc này khi chưa có dòng điện đi qua cuộn dây nam châm (2 cực đều là x) các thanh kim loại được nối đầu 1 với đầu a,đầu 2 với đầu c.Do vậy dòng điện chỉ đầu 1 đến đầu a và từ đầu 2 đến đầu c.
Ta xét hình thứ 2:
+ Lúc này đã có dòng điện đi qua cuộn dây nam châm,cuộn dây sẽ hút các thanh kim loại về phía cuộn dây .Do đó lúc này các thanh kim loại sẽ nối đầu 1 đến đầu b,đầu 2 đến đầu d Dòng điện sẽ chỉ đi từ đầu 1 vào đầu b ,đầu 2 đến đầu d.
Vậy nguyên lí của hoạt động của rơle là biến đổi dòng điện thành từ trường thông qua cuộn dây,từ trường tạo thành lực cơ học thông qua lực hút đẻ thực hiện 1 động tác về cơ khí như đóng mở công tắc ,đóng mở hành trình của một thiết bị tự động.
2.2.3.Điều khiển chiều quay cho DC motor dùng rơle.
1.Sơ đồ mạch nguyên lí:
Hình 2.9 Sơ đồ nguyên lí điều khiển chiều quay cho motơ DC
Loại rơle làm việc trong mạch robot tự hành này là loại rơle 8 chân(2 tiếp điểm).Mạch rơle diều khiển động cơ gồm 2 tín hiệu điều khiển.Một tín hiệu lấy ra xung từ FPGA có tác dụng đóng mở con FET(IR540).Ngoài việc giống như 1 công tắc đóng mở mức tín hiệu vào động cơ, FET còn có tác dụng bảo vệ động cơ mỗi khi động cơ đảo chiều,mức chịu áp cao của FET là rất lớn.Một tín hiệu dùng để đảo chiều động cơ.Lưu ý trước khi đảo chiều động cơ bạn phải tắt FET trước ,nếu không sẽ gây chết FET.
2. Sơ đồ mạch in :
Hình 2.10 Sơ đồ mạch in điều khiển chiều quay cho motơ DC
2.2.4. Điều xung PWM, điều chỉnh vận tốc cho động cơ.
Điều xung PWM( Pulse With Moduratinon) là một khâu quan trọng trong thiết kế robot. Qua đó bạn có thể điều khiển tốc độ linh hoạt cho DC motor từ đó có thể dùng các hàm vận tốc để cho robot có thể bám theo vạch trắng.
Điều xung nói chung là cách bật tắt nguồn điện của motor liên tục là motor lúc nhận được điện lúc mất điện.Khi tần số đủ cao motor sẽ quay ổn định ở một tốc độ nhờ moment quay của bánh xe.
Xung vuông là đồ thị biểu hiện trạng thái của nguồn điện. Nguồn được mở thì motor hoạt động lúc này xung vuông đang ở trạng thái cao, nguồn tắt thì motor dừng lại lúc này motor đang ở trạng thái thấp. Tốc độ motor tỉ lệ trung bình với độ dài của xung vuông.Sau đây là 1 số trạng thái hoạt động:
Hình 2.12 Trạng thái hoạt động
Ta xem các xung trên,mỗi xung dù là 20% ,50% hay 80% đều có hai trạng thái là 12V và 0V.12V được gọi là trạng thái cao,ở mức Trong một này motor sẽ quay.Còn 0V là ở trạng thái thấp,ở trạng thái này motor sẽ có điện áp dừng. biểu đồ xung,tổng phần trăm của trạng thái cao và trạng thái thấp sẽ là 100% và con số 20%, 50% hay 80% là xung cao.Cho nên số phần trăm thấp = 100% - % xung cao.Nếu độ dài xung càng rộng thì tốc độ motor càng cao do đó motor đạt được tôc độ cao nhất khi motor được gửi đến xung 100% và motor dừng khi có 0% được gửi tới.
Chúng ta có thể sử dụng kênh điều xung của kit CPLD để tạo ra các mức vận tốc như mong muốn.
III.Lập trình điều khiển
3.1.Giới thiệu về kit thử nghiệm CPLD COOLRUNNER – II 256 TQ144
The CooRunner – II 256 TQ144 là một trong những bộ kit CPLD của xilinx. Bộ kit bao gồm nguồn cung cấp với hiệu quả cao,bộ tạo dao động có thể cấu hình , các cổng giao tiếp I/0,đồng hồ đo thời gian thực và cổng USB cấp nguồn và lập trình cho CPLD .Bộ KIT có 5 cổng mở rộng với 64 tín hiệu giao tiếp từ CPLD ra mạch ngoài giúp mở rộng khả năng kết nối.
Các đặc điểm nổi bật của KIT:
256 khối Coolrunner – II CPLD trong gói TQ 144
Có cổng USB cấp nguồn ,lập trình và chuyển dữ liệu người dung
Bộ dao động có thể thay đổi được (1000/100/10khz) ,them vào đó là có khe nắp bộ dao động thạch anh thứ 2
64 tín hiệu I/0 trên các cổng giao tiếp(32 trên các cổng nối tiếp ,32 trên các cổng song song)
Các miếng đệm cho SPI PROM gắn trong
Hình 3.1 CoolRunner – II 256 TQ144
Hình 3.2 Sơ đồ khối của KIT CPLD CoolRunner – II 256 TQ144
3.2.Lập trình trên KIT thử nghiệm
Modul điều khiển được viết trên VHDL – một ngôn ngữ mô tả phần cứng của Xilinx sử dụng phần mềm Xilinx Integrated Software Environment (ISE) v.10.0 .Việc đầu tiên là soạn thảo văn bản có sẵn trong ISE để viết modul và hệ thống quản lí project ,file cấu hình cho CoolRunner – II 256 TQ144 được tạo ra trong ISE .Nó bao gồm những việc sau (tất cả đều được phần mềm làm tự động ) :
Biên dịch VHDL thành sơ đồ các cổng logic ,thành phần của mạch (thông qua công cụ tổng hợp XST)
Vẽ sơ dựa trên những tài nguyên có sẵn trên FPGA
Sắp xếp các thành phần để đạt sự tối ưu nhất
File cấu hình được nạp vào CPLD qua giao tiếp JTAG .Kết quả của quá trình tối ưu hóa có thể dẫn đến sự thay đổi các file gốc và các chu trình sau đó.
3.3.Sơ đồ khối mạch điều khiển
Hình 3.3 Sơ đồ khối mạch điều khiển
Mạch điều khiển sẽ được lập trình tạo ra 3 khối
Khối phát hiện đường dẫn: Có nhiệm vụ xử lí tín hiệu từ sensor dò đường đưa vào 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 đường dẫn và đưa ra mức điều khiển hợp lí.
Khối tạo xung : Phát xung cho hai động cơ giúp động cơ có thể hoạt động linh hoạt để bám theo đường dẫn.
3.4 cách bố trí cảm biển trên robot
Hình 3.4 Cách bố trí cảm 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 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 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.
3.5 Bảng trạng thái điều khiển cho động cơ
Sau đây là bảng trạng thái điều khiển cho động cơ:
Hình 3.5 Trạng thái điều khiển động cơ
Mức 1 sẽ làm cho động cơ hoạt động.Khi muốn robot đi lùi ta chỉ cần đảo chiều cả hai động cơ.
3.6 Trạng thái hoạt động FSM
Sơ đồ biểu diễn các trạng thái hoạt động của robot:
Hình 3.6 Trạng thái hoạt động
3.7 Code của modul điều khiển robot
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity robot is
Port ( cb : in STD_LOGIC_VECTOR (2 downto 0);
clk : in STD_LOGIC;
dctrai : out STD_LOGIC;
dcphai : out STD_LOGIC;
chieutrai : out STD_LOGIC;
chieuphai : out STD_LOGIC);
end robot;
architecture Behavioral of robot is
--bo dem
signal dem : std_logic_vector (6 downto 0) :="0000000";
signal clk50hz : std_logic :='0';
begin
process(clk,dem)
begin
if(dem = "1100100") then
dem <= "0000000" ;
else
if(clk'event and clk = '1') then
dem <= dem + 1;
end if;
end if;
end process;
process(dem)
begin
if(dem = "1100100") then
clk50hz <= not clk50hz;
end if;
end process;
process(cb)
begin
case cb is
--robot re trai
when "011" => dctrai <= clk50hz;
dcphai <= '1';
chieutrai <= '1';
chieuphai <= '1';
--robot re phai
when "110" => dctrai <= '1';
dcphai <= clk50hz;
chieutrai <= '1';
chieuphai <= '1';
--robot quay vong tron
when "000" => dctrai <= '1';
dcphai <= '1';
chieutrai <= '0';
chieuphai <= '1';
--robot quay tron
when "111" => dctrai <= '1';
dcphai <= '1';
chieutrai <= '0';
chieuphai <= '1';
--robot di thang
when others => dctrai <= '1';
dcphai <= '1';
chieutrai <= '1';
chieuphai <= '1';
end case;
end process;
end Behavioral;
IV Kết thúc đề tài
Nhóm đã thiết kế và chạy thử nghiệm thành công trên KIT CPLD CollRuneer – II 256 TQ144 .Tuy nhiên khó khăn lớn nhất mà nhóm gặp phải chính là khâu thiết kế và làm phần cứng.Do thời gian và số lượng kiến thức có hạn nên chắc chắn đề tài sẽ không tránh khỏi có sai sót.
Xin trân thành cám ơn các thầy cô giáo trong khoa kĩ thuật điện tử đã giúp chúng em trong suốt quá trình học tập và nghiên cứu. Rất mong nhận được những ý kiến đóng góp của các thầy cô để chúng em có thể hoàn thiện hơn kiến thức của mình.
Hà Nội ngày 1 tháng 12 năm 2009
Nhóm sinh viên
PHỤ LỤC – ĐỀ CƯƠNG ĐỀ TÀI
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Khoa Kỹ thuật điện tử 1
===***===
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
==o0o==
Hà Nội, ngày 28 tháng 9 năm 2009
ĐỀ CƯƠNG NGHIÊN CỨU KHOA HỌC SINH VIÊN
1. Tên đề tài:
Điều khiển ROBOT nhận dạng bằng hồng ngoại dùng FPGA.
Mã số:21-SV-DT-2009
2. Thuộc lĩnh vực: Thiết kế logic số
3. Mục tiêu, nội dung và kết quả đề tài
a. Mục tiêu:
Giúp sinh viên làm quen với công tác nghiêu cứu khoa học.
Làm quen với kỹ thiết kế logic số, phát triển các ứng dụng trên nền FPGA.
b. Nội dung:
Xây dựng mô hình ROBOT tự hành.
Thiết kế bộ điều khiển nhận dạng sử dụng hồng ngoại
Thiêt kế mạch điều khiển cho ROBOT tự hành.
c. Kết quả:
Báo cáo kết quả đề tài
Bài báo tham dự hội nghị khoa học SV
Mô hình ROBOT tự hành.
4. Đơn vị chủ trì đề tài:
Khoa Kỹ thuật Điện tử 1, Học viện Công nghệ Bưu chính Viễn thông.
5. Cơ quan phối hợp (nếu có):
6. Chủ trì đề tài:
Nguyễn Tuấn Đông – D07KTĐT1
7. Những người tham gia thực hiện:
Lê Thanh Lâm – D07KTĐT1
Nguyễn Văn Thanh – D07KTĐT1
8. Người hướng dẫn:
- Đỗ Mạnh Hà
9. Sơ lược tình hình nghiên cứu, điều tra trong và ngoài nước:
a. Sơ lược tình hình:
+ Trong nước: Hiện tại đã có một số nghiên cứu về vấn đề này nhưng chưa có kết quả đầy đủ. Chưa ứng dụng vào điều kiện cụ thể Việt Nam.
+ Ngoài nước: Đã có nghiên cứu thành công nhất là trong sinh viên của các trường Đại học nổi tiếng trên thế giới cùng chuyên ngành Điện tử và Kỹ thuật Máy tính.
b. Nhu cầu thực tế và khả năng áp dụng kết quả đề tài:
Đề tài thực hiện một nghiên cứu về giao tiếp ngoại vi ghép nối chip điều khiển.
10. Sản phẩm giao nộp của đề tài
Dạng
Các file đính kèm theo tài liệu này:
- Điều khiển robot nhận biết bằng hồng ngoại sử dụng FPGA.doc