Phần Một: Mục đích thiết kế đề tài1.1 Công cụ mô tả phần cứng VHDL VHDL là một ngôn ngữ mô tả phần cứng hardware description language, mô tả hành vi của mạch điện hoặc hệ thống, từ đó mạ
Trang 1BÁO CÁO ĐỒ ÁN THIẾT KẾ LOGIC SỐ
Thiết Kế Robot Dò Đường Theo Vạch
Trang 2Mục Lục
Lời Nói Đầu 3
Phần Một: Mục đích thiết kế đề tài 4
1.1 Công cụ mô tả phần cứng VHDL 4
1.2 Công cụ và ngôn ngữ lập trính FPGA 5
1.3 Robot dò đường theo vạch 8
Phần Hai: 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 9
2.1.3 Led hồng ngoại (Light Emiting Diode ) 10
2.1.4 Sơ đồ nguyên lý của 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 Mạch cầu H điều khiển động cơ 16
2.2.3 Khối nguồn điều khiển 24
2.3 Điều xung PWM, điều chỉnh vận tốc cho động cơ 26
Phần Ba: Lập Trình Điều Khiển 28
3.1.Giới thiệu về kit thử nghiệm CPLD COOLRUNNER – II 256 TQ144 28
3.2.Lập trình trên KIT thử nghiệm 30
3.3.Sơ đồ khối mạch điều khiển 30
3.4 Cách bố trí cảm biển trên robot 31
3.5 Trạng thái điều khiển cho động cơ 32
3.6 CODE điều khiển 33
Phần Bốn: Kết Thúc Đề Tài 36
Tài Liệu Tham Khảo 37
Trang 3Lời Nói Đầu
Ngày nay điều khiển tự động đã trở thành một nhu cầu không thể thiếu đượccủa con người dưới sự xuất hiện của các học thuyết và các ứng dụng cụ thể trongđời sống hằng ngày, có thể nói điều khiển tự động đang chi phối dần cuộc sống củachúng ta Con người đang cố gắng sáng tạo ra các con robot có khả năng làm việcthay cho con người Chúng ta thường bắt gặp các con robot trong các dây chuyềncông nghiệp sản xuất tự động hay robot giúp việc trong gia đình Để tìm ra các ýtưởng sáng tạo hay hàng năm đề diễn ra cuộc thi robocon châu á thái bình dương
đó là tiền đề để tạo ra những con robot có khả năng áp dụng vào thực tế
Cũng chính vì mục đích đó mà chúng em thực hiện đồ án điều khiển robot
dò đường nó lại là bước khởi đầu trong lập trình robot để robot có thể thực hiệncác công việc tiếp theo Đây chỉ là một công việc nhỏ của lập trình điều khiểnrobot nhưng qua quá trình thiết kế và thi công đề tài chúng em đã rút ra được rấtnhiều kinh nghiệm thực tiễn quý báu Mục đích của đề tài hướng đến là tạo ra bướcđầu cho sinh viên thử nghiệm những ứng dụng của vdk trong thực tiễn để rồi từ đótìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến
Mặc dù đã cố gắng hết sức mình để hoàn thành xong đồ án môn học bằngcác kiến thức đã học, một số sách tham khảo và một số nguồn tài liệu khác nhưngcũng không tránh khỏi những thiếu sót Do vậy, chúng em rất mong được sự góp ýquý báu của thầy cô và các bạn để đề tài có thể hoàn thiện ở mức cao nhất
Em xin thay mặt nhóm gửi lời cảm ơn sâu sắc tới thầy hướng dẫn NguyễnNgọc Minh và các bạn lớp D09DTMT đã giúp đỡ nhiệt tình để chúng em hoànthành đồ án này!
Trang 4Phần Một: Mục đích thiết kế đề tài
1.1 Công cụ mô tả phần cứng VHDL
VHDL là một ngôn ngữ mô tả phần cứng (hardware description language),
mô tả hành vi của mạch điện hoặc hệ thống, từ đó mạch điện vật lý hoặc hệ thống
có thể được thực thi
VHDL là viết tắt của VHSIC Hardware Description Language Bản thânVHSIC là viết tắt của Very High Speed Integrated Circuits (mạch tích hợp tốc độcao), lần đầu tiên được sáng lập bởi United State Department of Defense trongnhững năm 80, sau đó tạo ra VHDL Phiên bản đầu tiên là VHDL 87, lần nâng cấpsau đó có tên là HDL 93 VHDL là ngôn ngữ mô tả phần cứng nguyên gốc đầu tiênđược chuẩn hóa bởi Institue of Electrical and Electronics Engineers (IEEE), tớichuẩn IEEE 1076 Trong IEEE 1164, có một chuẩn được thêm vào là giới thiệu hệthống logic đa giá trị (multi-valued logic system)
Động cơ thúc đẩy cơ bản khi dùng VHDL (hay dùng Verilog) là VHDL làmột ngôn ngữ độc lập chuẩn của các nhà công nghệ, các nhà phân phối do đóchúng có khả năng portable và kế thừa cao (reusable) Hai ứng dụng trực tiếpchính của VHDL là trong mảng các thiết bị logic lập trình được (ProgrammableLogic Devices) (bao gồm CPLDs – Complex Programmable Logic Devices vàFPGAs – Field Programmable Gate Arrays) Mỗi khi mã nguồn VHDL được viết,chúng có thể được dùng để thực thi mạch điện trong các thiết bị lập trình được (từAltera, Xilinx, Almel, ) hoặc có thể gửi đến các xưởng chế tạo các chíp ASIC.Hiện này, rất nhiều các chip thương mại phức tạp (ví dụ như các microcontrollers )được thiết kế dựa trên cách tiếp cận này
Một điều chú ý về VHDL là trái ngược với các chương trình máy tính thông thường được thực hiện tuần tự thì các câu lệnh được thực hiện songsong (concurrent) Vì lí do đó, nên VHDL thường được coi là một mã nguồn hơn
là một chương trình Trong VHDL chỉ có các câu lệnh đặt trong PROCESS,FUNCTION, hay PROCEDURE được thực thi tuần tự
Trang 5Một trong những tiện ích lớn của VHDL là cho phép tổng hợp mạch điệnhoặc hệ thống trong thiết bị khả lập trình (programmable devide) (PLD hoặcFPGA) hoặc trong một hệ ASIC.
1.2 Công cụ và ngôn ngữ lập trính FPGA
PLD là viết tắt của từ tiếng anh Programmable Logic Device Nótrước hết là các ICs (Integrated Circuits) chứa trong nó các đơn vị logic số
và các liên kết khả trình để hình thành nên một mạch điện tử số
Về cơ bản, nó cho phép các nhà thiết kế "cấu hình" các đơn vị logic sốcũng như các liên kết giữa các đơn vị này để hình thành một mạch điện tử sốnội bên trong một IC đơn Trong IC này, tài nguyên phần cứng được cấuhình để thực hiện một chức năng yêu cầu nào đó Bằng cách thay đổi cấuhình cứng, các PLD có thể thực hiện những chức năng khác nhau PLD có
ba loại chính: Simple PLD (PLA, PAL, GAL), Complex PLD và FPGA Cácnhà sản xuất PLD lớn:
- Achronix Semiconductor Corporation
Các phương pháp và công cụ thiết kế mạch logic khả trình:
Về cơ bản, mỗi nhà sản xuất đều có một công cụ hỗ trợ thiết kế miễnphí đối với các PLD của chính hãng Tất nhiên các công cụ miễn phí này đều
có những giới hạn nhất định trong thiết kế tuỳ từng hãng Dưới đây là tómtắt các công cụ của từng hãng:
- Actel Corporation: Libero IDE
- Altera Corporation: Quartus II
- Altium: Altium Designer
- Atmel Corporation: Integrated Development System (IDS)
- Cypress Semiconductor: Warp
Trang 6- Mentor Graphics: FPGA Advantage
- Quicklogic Corporation: QuickWorks
- Synplicity: Synplify Pro
- Xilinx: ISE Tuy mỗi công cụ của các hãng có giao diện tương tác với người sửdụng khác nhau tuy nhiên tất cả đều có điểm chung là cung cấp những chứcnăng cơ bản để tạo và thực hiện một thiết kế trên các PLD của hãng Đây là
sơ đồ khối của một quá trình thiết kế với PLD
Trang 7- Design entry: Đưa thiết kế vào trong công cụ phần mềm của hãng bằngcách kết hợp sơ đồ mạch (schematic capture), thiết kế HDL (HardwareDescription Language) và đồ hình trạng thái (State Machine flow diagram)
- Design simulation: Khi thiết kế đã được đưa vào trong công cụ, vấn đề tiếptheo là mô phỏng để kiểm tra xem thiết kế có lỗi kô so với yêu cầu đặt ra củabài toán
Trang 8- HDL code synthesis: thường là ở mức RTL, thiết kế HDL được "tổng hợp"dưới dạng mạch logic số theo (in terms of) các cổng logic và liên kết giữacác cổng logic này (netlist)
- Fit or Place and Route: Một cách đại khái, đây là quá trình mapping thiết
kế với tài nguyên phần cứng trên PLD, nghĩa là xác định phần nào của PLDthực hiện chức năng gì trong thiết kế và các khối chức năng đó liên kết vớinhau như thế nào
- Configuration file generation: Tạo tệp cấu hình cho PLD
1.3 Robot dò đường theo vạch
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
Là một dạng robot tự hành, robot dò đường theo vạch hoạt động theo nguyên tắc bám theo đường vạch (đen) mong muốn để tới đích và sẽ tự quayđầu trở lại điểm xuất phát khi hết vạch Tuy nhỏ nhưng robot dò đường theo vạch là khởi đầu cho những robot tiên tiến sau này Không thể không kể tới những ứng dụng mà robot dò đường được tích hợp như: nghiên cứu, tìm đường, vận chuyển…
Trang 92.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
Trang 102.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.
Trang 11Như 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 đenhoặ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 ánhsá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átbở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ộtvậ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 :
Cấu tạo bộ phát hồng ngoại
Trang 12Hì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ựcdương của nguồn điện.Chân cathode được nối đất(cực âm) Thông thường thì chânanode dài hơn chân cathode.
3 Cấu tạo bộ thu hồng ngoại :
Cấu tạo bộ thu hồng ngoạiCấu tạo Quang trở gồm một lớp chất bán dẫn (cadimi sunfua CdS chẳnghạ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ándẫ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 Khichiế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ớihạ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óitrê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
khoảng 20 om
Trang 132.1.4 Sơ đồ nguyên lý của bộ cảm biến :
2.2 Mạch công suất điều khiển động cơ.
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ộtnam 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
Trang 142.2.1 Hoạt động của DC motor
Khi cho dòng điện một chiều đi qua motor sẽ khiến motor quay theo chiều
Khi ta đảo 2 cực của dòng điện động cơ đảo chiều
Động cơ DC cho dòng điện một chiều chạy qua và làm quay Roto dẫn đếnmotor 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 momentngẫ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ố
Trang 15Ví Dụ: Tốc độ quay của một DC motor là 1000 Vòng/ Phút được gắn vàomộ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 chiacho 1000
2.2.2 Mạch cầu H điều khiển động cơ
Giả sử bạn có một động cơ DC có 2 đầu A và B, nối 2 đầu dây này với mộtnguồn điện DC (ắc qui điện – battery) Ai cũng biết rằng nếu nối A với cực (+), Bvới cực (-) mà động cơ chạy theo chiều thuận (kim đồng hồ) thì khi đảo cực đấudây (A với (-), B với (+)) thì động cơ sẽ đảo chiều quay Tất nhiên khi bạn là một
“control guy” thì bạn không hề muốn làm công việc “động tay động chân” này(đảo chiều đấu dây), bạn ắt sẽ nghĩ đến một mạch điện có khả năng tự động thựchiện việc đảo chiều này, mạch cầu H (H-Bridge Circuit) sẽ giúp bạn Như thế,mạch cầu H chỉ là một mạch điện giúp đảo chiều dòng điện qua một đối tượng.Tuy nhiên, rồi bạn sẽ thấy, mạch cầu H không chỉ có một tác dụng “tầm thường”như thế Nhưng tại sao lại gọi là mạch cầu H, đơn giản là vì mạch này có hình chữcái H
Mạch cầu H
Trong hình, xem 2 đầu V và GND là 2 đầu (+) và (-) của ắc qui, “đối tượng”
là động cơ DC mà chúng ta cần điều khiển, “đối tượng” này có 2 đầu A và B, mụcđích điều khiển là cho phép dòng điện qua “đối tượng” theo chiều A đến B hoặc Bđến A Thành phần chính tạo nên mạch cầu H của chúng ta chính là 4 “khóa” L1,L2, R1 và R2 (L: Left, R:Right) Ở điều kiện bình thường 4 khóa này “mở”, mạchcầu H không hoạt động Tiếp theo chúng ta sẽ khảo sát hoạt động của mạch cầu Hthông qua các hình minh họa:
Trang 16Nguyên lý hoạt động mạch cầu H.
Giả sử bằng cách nào đó (cái cách nào đó chính là nhiệm vụ của người thiết
kế mạch) mà 2 khóa L1 và R2 được “đóng lại” (L2 và R1 vẫn mở), bạn dễ dànghình dung có một dòng điện chạy từ V qua khóa L1 đến đầu A và xuyên qua đốitượng đến đầu B của nó trước khi qua khóa R2 và về GND (như hình 2a) Nhưthế, với giả sử này sẽ có dòng điện chạy qua đối tượng theo chiều từ A đến B Bâygiờ hãy giả sử khác đi rằng R1 và L2 đóng trong khi L1 và R2 mở, dòng điện lạixuất hiện và lần này nó sẽ chạy qua đối tượng theo chiều từ B đến A như tronghình 2b (V->R1->B->A->L2->GND) Vậy là đã rõ, chúng ta có thể dùng mạch cầu
H để đảo chiều dòng điện qua một “đối tượng” (hay cụ thể, đảo chiều quay độngcơ) bằng “một cách nào đó”
Chuyện gì sẽ xảy ra nếu ai đó đóng đồng thời 2 khóa ở cùng một bên (L1 vàL2 hoặc R1 và R2) hoặc thậm chí đóng cả 4 khóa? Rất dễ tìm câu trả lời, đó là hiệntượng “ngắn mạch” (short circuit), V và GND gần như nối trực tiếp với nhau vàhiển nhiên ắc qui sẽ bị hỏng hoặc nguy hiểm hơn là cháy nổ mạch xảy ra Cáchđóng các khóa như thế này là điều “đại kị” đối với mạch cầu H Để tránh việc nàyxảy ra, người ta thường dùng thêm các mạch logic để kích cầu H, chúng ta sẽ biết
rõ hơn về mạch logic này trong các phần sau
Giả thuyết cuối cùng là 2 trường hợp các khóa ở phần dưới hoặc phần trêncùng đóng (ví dụ L1 và R1 cùng đóng, L2 và R2 cùng mở) Với trường hợp này, cả
Trang 172 đầu A, B của “đối tượng” cùng nối với một mức điện áp và sẽ không có dòngđiện nào chạy qua, mạch cầu H không hoạt động Đây có thể coi là một cách
“thắng” động cơ (nhưng không phải lúc nào cũng có tác dụng) Nói chung, chúng
ta nên tránh trường hợp này xảy ra, nếu muốn mạch cầu không hoạt động thì nên
mở tất cả các khóa thay vì dùng trường hợp này
Sau khi đã cơ bản nắm được nguyên lý hoạt động của mạch cầu H, phần tiếptheo chúng ta sẽ khảo sát cách thiết kế mạch này bằng các loại linh kiện cụ thể.Như tôi đã trình bày trong phần trước, thành phần chính của mạch cầu H chính làcác “khóa”, việc chọn linh kiện để làm các khóa này phụ thuộc vào mục đích sửdụng mạch cầu, loại đối tượng cần điều khiển, công suất tiêu thụ của đối tượng và
cả hiểu biết, điều kiện của người thiết kế Nhìn chung, các khóa của mạch cầu Hthường được chế tạo bằng rờ le (relay), BJT (Bipolar Junction Transistor) hayMOSFET (Metal Oxide Semiconductor Field-Effect Transistor) Phần thiết kếmạch cầu H vì vậy sẽ tập trung vào 3 loại linh kiện này Trong mỗi cách thiết kế,tôi sẽ giải thích ngắn gọn nguyên lý cấu tạo và hoạt động của từng loại linh kiện đểbạn đọc dễ nắm bắt hơn
MOSFET có 3 chân gọi là Gate (G), Drain (D) và Source (S) tương ứng với
B, E và C của BJT Bạn có thể nguyên lý hoạt động của MOSFET ở các tài liệu vềđiện tử, ở đây chỉ mô tả các kích hoạt MOSFET Cơ bản, đối với MOSFET kênh
N, nếu điện áp chân G lớn hơn chân S khoảng từ 3V thì MOSFET bão hòa haydẫn Khi đó điện trở giữa 2 chân D và S rất nhỏ (gọi là điện trở dẫn DS), MOSFETtương đương với một khóa đóng Ngược lại, với MOSFET kênh P, khi điện ápchân G nhỏ hơn điện áp chân S khoảng 3V thì MOSFET dẫn, điện trở dẫn cũng rấtnhỏ Vì tính dẫn của MOSFET phụ thuộc vào điện áp chân G (khác với BJT, tínhdẫn phụ thuộc vào dòng IB), MOSFET được gọi là linh kiện điều khiển bằng điện
áp, rất lý tưởng cho các mạch số nơi mà điện áp được dùng làm mức logic (ví dụ0V là mức 0, 5V là mức 1)
MOSFET thường được dùng thay các BJT trong các mạch cầu H vì dòng màlinh kiện bán dẫn này có thể dẫn rất cao, thích hợp cho các mạch công suất lớn Do
Trang 18cách thức hoạt động, có thể hình dung MOSFET kênh N tương đương một BJTloại npn và MOSFET kênh P tương đương BJT loại pnp Thông thường các nhàsản xuất MOSFET thường tạo ra 1 cặp MOSFET gồm 1 linh kiện kênh N và 1 linhkiện kênh P, 2 MOSFET này có thông số tương đồng nhau và thường được dùngcùng nhau Một ví dụ dùng 2 MOSFET tương đồng là các mạch số CMOS(Complemetary MOS) Cũng giống như BJT, khi dùng MOSFET cho mạch cầu H,mỗi loại MOSFET chỉ thích hợp với 1 vị trí nhất định, MOSFET kênh N đượcdùng cho các khóa phía dưới và MOSFET kênh P dùng cho các khóa phía trên Đểgiải thích, hãy ví dụ một MOSFET kênh N được dùng điều khiển motor DC nhưtrong hình 12.
Dùng MOSFET kênh N điều khiển motor DC
S bằng 0 Khi MOSFET được kích và dẫn, điện trở dẫn DS rất nhỏ so với trởkháng của motor nên điện áp chân S gần bằng điện áp nguồn là 12V Do yêu cầucủa MOSFET, để kích dẫn MOSFET thì điện áp kích chân G phải lớn hơn chân S
ít nhất 3V, nghĩa là ít nhất 15V trong khi chúng ta dùng vi điều khiển để kíchMOSFET, rất khó tạo ra điện áp 15V Như thế MOSFET kênh N không phù hợp
để làm các khóa phía trên trong mạch cầu H (ít nhất là theo cách giải thích trên).MOSFET loại P thường được dùng trong trường hợp này Tuy nhiên, một nhượcđiểm của MOSFET kênh P là điện trở dẫn DS của nó lớn hơn MOSFET loại N Vìthế, dù được thiết kế tốt, MOSFET kênh P trong các mạch cầu H dùng 2 loạiMOSFET thường bị nóng và dễ hỏng hơn MOSFET loại N, công suất mạch cũng