Mạch in công suất Để điều khiển servo ta cấp cho dây điều khiển một tín hiệu PWM có chu kỳ khoảng 20ms, duty cycle của PWM sẽ quyết định góc xoay của servo... Ở trong đề tài để điều khiể
Trang 1CHƯƠNG IV: THIẾT KẾ ĐIỆN TỬ MÔ HÌNH XE CHẠY TỰ
ĐỘNG
1. Thiết kế phần cứng
1.1. Mạch giao tiếp với máy tính
Sử dụng FT232 RL giao tiếp chuyển đổi USB to USART
Cài đặt driver cho cổng COM
Cắm mạch chuyển đổi vào cổng USB máy tinh sau đó kích chuột phải
Computer chọn manage, xuất hiện bảng sau và tiếp tục chọn Device Manager Tiếp tục
chọn xuất hiện bảng: Unknown device Properties
Hình 3.1: Mạch giao tiếp FT232RL
Trang 2Chọn sẽ thấy bảng:
Hình 3.2: Mô tả cài đặt driver cho cổng COM
Chọn Update Driver
Hình 3.3: Bảng chọn update driver
Trang 3Tiếp đến chọn tìm kiếm thư mục chứa driver và nhấn Next
Ta thiết lập cổng COM nào thì khi cài đặt phần mềm lập trình thì phải thiết lập tín hiệu của phần mềm truyền qua cổng COM đó
1.2. Mạch điều khiển
Thiết kế mạch điều khiển bằng orcad
Hình 3.4: Bảng chọn thư mục có chứa file update
Trang 4Mạch sử dụng nguồn 12v, qua mạch nguồn cho ra nguồn 5 vôn ổn định nuôi vi điều khiển
Vi điều khiển sử dụng thạch anh ngoài
8MH - Sơ lược LM7805:
Đầu vào từ 7v đến 18v LM7805 sẽ cho đầu ra là 5 vôn
1.2.1 Mạch nguyên lý
Hình 3.5: Mạch nguyên lý vi điều khiển
Hình 3.6: LM7805
Trang 51.3. Mạch công suất
1.2.2 Mạch in của vi điều khiển
Hình 3.7: Mạch in vi điều khiển
Trang 6- Sử dụng Fet để điều xung PWM
1.3.1 Mạch nguyên lý
Hình 3.8: Nguyên lý mạch công suất
Trang 7Loại N:
Mosfet có điện trở giữa cực G với cực S và giữa cực G với cực D là vô cùng lớn , còn điện trở giữa cực D và cực S phụ thuộc vào điện áp chênh lệch giữa cực G và cực S (UGS)
Khi điện áp UGS = 0 thì điện trở RDS rất lớn, khi điện áp UGS > 0 =>
do hiệu ứng từ trường làm cho điện trở RDS giảm, điện áp UGS càng lớn thì điện trở RDS càng nhỏ Mosfet mở cho dòng đi qua
Sơ lược về Fet:
Hình 3.9: Mô tả hoạt động của Fet
Trang 8Với chân 1 là nhận tín hiệu vào, chân 2 và 3 nối mass (0 vôn), chân 4 nối với mức áp cao
Khi có tín hiệu truyền tới chân số 1, (như trên hình 3.9), thì giữa chân 4 và
3 thông mạch, cho dòng đi qua
Như trên (hình 3.10) chân 4 và 6 sẽ được cấp nguồn, chân 5 và 3 nối mass (0 vôn) Động cơ được nối vào chân 2 và 7 Tiếp điểm như trên hình thì dòng sẽ đi từ chân 6,7 qua động cơ tới chân 2,3 xuống mass, động cơ quay Và khi cuộn dây được kích thì dòng sẽ đi ngược lại, như thế động cơ đảo chiều
- Sử dụng opto để cách ly giữa vi điều khiển và mạch công suất
Hình 3.10: Hoạt động của opto
- Sử dụng relay 6 chân, dùng đảo chiều động cơ
Hình 3.11: Hoạt động relay
Trang 91.3.2 Mạch in công suất
Để điều khiển servo ta cấp cho dây điều khiển một tín hiệu PWM có chu kỳ khoảng 20ms, duty cycle của PWM sẽ quyết định góc xoay của servo Với độ rộng xung là 1ms, servo xoay về vị trí 0 độ, khi độ rộng =2ms, góc
Hình 3.12: Mạch in công suất
1.4 Sơ lược về servo bẻ lái
Hình 3.13: hoạt động của servo
Trang 10xoay sẽ là 180 độ, từ đó ta có thể tính được duty cycle cần thiết khi muốn servo xoay đến 1 vị trí bất kỳ giữa 0 độ và 180 độ
Ở trong đề tài để điều khiển được bẻ lái thì ta qui ước xe đi thẳng ứng với góc servo là 90 độ Như vậy tương tự góc lái khi rẽ trái thì servo là (0,90), góc lái khi rẽ phải thì servo là (0, 180) độ
2. Thiết kế phần mềm
2.1. Giới thiệu Atmega 16 và các tính năng sử dụng cho đề tài
Sơ lược về Atmega16
Atmega16
Atmelga16L có đầy đủ tính năng của họ AVR, và làm các công việc ứng dụng tới vi điều khiển
Tính năng:
-Bộ nhớ16K(flash) 512 byte (EEPROM) 1 K (SRAM)
-40 chân , trong đó có 32 chân vào ra dữ liệu chia làm 4
-PORT A,B,C,D Các chân này đều có trở kéo lên
Trang 11-Giao tiếp SPI - Giao diện I2C Có 8 kênh ADC 10 bit
-1 bộ so sánh analog
-2 bô timer/counter 8 bit, 1 bộ timer/counter1 16 bit
-1 bộ định thời Watchdog
-1 bộ truyền nhận USART
Các tính năng sử dụng cho đề tài:
2.1.1 Truyền nhận USART (Universal Synchronous & Asynchronous serial Reveiver and Transmitter) (bộ truyền nhận nối tiếp đồng bộ và không đồng bộ)
Khái niệm “đồng bộ” để chỉ sự “báo trước” trong quá trình truyền Khác với cách truyền đồng bộ, truyền thông “không đồng bộ” chỉ cần một đường truyền cho một quá trình “Khung dữ liệu” đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến
USART hay UART cần phải kết hợp với một thiết bị chuyển đổi mức điện áp để tạo ra một chuẩn giao tiếp nào đó Ví dụ, chuẩn RS232 (hay COM) trên các máy tính cá nhân là sự kết hợp của chip UART và chip chuyển đổi mức điện áp Tín hiệu từ chip UART thường theo mức TTL: mức logic high là
5, mức low là 0V Trong khi đó, tín hiệu theo chuẩn RS232 hay USB trên máy tính cá nhân thường là -12V cho mức
Trang 12Sử dụng truyền thông nối tiếp không đồng bộ với AVR (UART)
Vi điều khiển Atmega32 có 1 module truyền thông nối tiếp USART Có
3 chân chính liên quan đến module này đó là chân xung nhịp - XCK (chân số 1), chân truyền dữ liệu – TxD (Transmitted Data) và chân nhận dữ liệu – RxD (Reveived Data) Trong đó chân XCK chỉ được sử dụng như là chân phát hoặc nhận xung giữ nhịp trong chế độ truyền động bộ Tuy nhiên chúng ta không khảo sát chế độ truyền thông đồng bộ, vì thế chỉ cần quan tâm đến 2 chân TxD
và RxD Vì các chân truyền/nhận dữ liệu chỉ đảm nhiệm 1 chức năng độc lập (hoặc là truyền, hoặc là nhận), để kết nối các chip AVR với nhau (hoặc kết nối AVR với thiết bị hỗ trợ UART khác) phải đấu “chéo” 2 chân này TxD của thiết bị thứ nhất kết nối với RxD của thiết bị 2 và ngược lại
Module USART trên chip Atmega16 hoạt động “song công” (Full Duplex Operation), nghĩa là quá trình truyền và nhận dữ liệu có thể xảy ra đồng thời
Để sử dụng module USART trên AVR phải thực hiện 3 việc quan trọng,
đó là:
cài đặt tốc độ baud (thanh ghi UBRR), định dạng khung truyền (UCSRB, UCSRC) và cuối cùng kích hoạt bộ truyền, bộ nhận, ngắt
logic high và +12 cho mức low
Hình 3.14: Mô tả khung truyền và tín hiệu chuẩn RS232, UART
Trang 132.1.2 Timer/Counter
Sử dụng Timer/Counter1 để tạo xung PWM điều khiển tốc độ động cơ:
Timer/Counter1 là bộ T/C 16 bits, đa chức năng Đây là bộ T/C rất lý tưởng cho lập trình đo lường và điều khiển vì có độ phân giải cao (16 bits) và
có khả năng tạo xung điều rộng PWM Có 2 kênh tạo xung PWM là OC1A và OC1B
Hình 3.15: xung PWM
Ta sử dụng chế độ Fast PWM với giá trị TOP được gán trong thanh ghi ICR1, từ đó tùy ý gán giá trị vào thanh ghi OCR1A để điều khiển độ rộng của xung, làm thay
Trang 14Trong timer1 có thanh ghi chứa giá trị hoạt động của nó là TCNT1 Thanh ghi này bắt đầu đếm từ 0 cho đến giá trị của OCR1A thì tín hiệu sẽ thay đổi trạng thái từ mức cao thành mức thấp, cho đến giá trị của thanh ghi OCR1 thì TCNT1 sẽ reset trở về 0 (hết 1 chu kỳ) Cứ như vậy, đó chính là quá trình tạo xung PWM
đổi tốc độ động cơ
Hình 3.16: Tạo xung PWM
Trang 15Hình 3.17: Nguyên lý điều khiển
Mạch chuyển đổi tín hiệu sẽ nhận tín hiệu từ máy tính với một khung truyền được chuẩn hóa, dữ liệu truyền là 8 bit (hình 3.13) chuyển thành chuẩn USART truyền tới bộ USART của vi điều khiển
Vi điều khiển dựa vào tín hiệu nhận được và phát tín hiệu điều khiển tốc độ động cơ và góc bẻ lái của servor
Tín hiệu truyền từ máy tính và tín hiệu điều khiển được thống nhất với nhau, được qui định trước với một tín hiệu truyền tới thì ứng với một tín hiệu điều khiển Cũng có nghĩa rằng ứng với một chế độ mà cảm biến (camera) nhận được thì tốc độ của xe và góc bẻ lái tương ứng
Ví dụ:
Ta dùng OC1A để điều khiển động cơ, OC1B để điều khiển servo (chân
18, 19 của vi điều khiển)
Khi tín hiệu mà vi điều khiển nhận được là 00011000 (mã nhị phân 8 bit), với tín hiệu này thì yêu cầu xe phải chạy thẳng (servo ở 90 độ) (phần servo hình 3.12), tốc độ đạt 50% Như thế vi điều khiển sẽ tạo ra xung PWM
có độ rộng xung bằng một nữa chu kỳ của nó, tương ứng thì gán giá trị OCR1A=1/2 ICR1 để điều khiển động cơ (phần timer1 hình 3.14)
Bánh xe
2.2 Nguyên lý điều khiển
Cảm biến
(Camera)
Máy tính xử lý (Labview)
Vi điều khiển
Động cơ
Hệ thống lái
Vi sai
Mạch chuyển đổi tín hiệu
Trang 16Để điều khiển được góc quay của servo thì ta cần phải chú ý đến xung nhịp hoạt động của timer1 Giả sử tần số của chip là 8Mh, ta cài đặt xung nhịp của timer1 là chia
8, ứng với 1Mh, có ngĩa cứ 1 us thì thanh ghi TCNT1 tăng 1 đơn vị Vậy để được 1 chu kỳ là 20ms thì phải gán giá trị ICR1=20000 Như thế để điều khiển servo ở 90 độ thì gán OCR1B=1500 (1,5 ms) (phần servor hình 3.12)
PHẦN KẾT LUẬN
Trong quá trình nghiên cứu đề tài, tuy lượng thời gian không nhiều nhưng chúng em đã cố gắng hết khả năng để đạt được mục đích đề ra Cùng sự
nổ lực bản thân, chúng em nhận được sự hướng dẫn nhiệt tình của thầy Lê Thanh Phúc và các anh đi trước đã nhiệt tình góp ý Đồ án đi sâu phần mềm nghiên cứu vẽ cơ khí, ứng dụng phần mềm kỹ thuật Catia thiết kế hệ thống xe
tự động thực tế Ngoài ra còn ứng dụng các phần mềm thiết kế mạch điện để hoàn thiện mô hình
Qua thiết kế, tính toán theo lý thuyết chúng em đã đưa ra mô hình thực
tế nằm trong giới hạn cho phép, độ tin cậy cao Tuy nhiên đồ án còn nhiều thiếu sót và chưa có điều kiện đi sâu hơn Nhưng cũng một phần nào góp phần cho sự nghiên cứu và
hướng phát triển mô hình xe tự động trong tương lai
Trang 17TÀI LIỆU THAM KHẢO
[1]http://hocavr.com
[2]Giáo trình ô tô 2 trường đại học Sư Phạm Kỹ Thuật thành phố Hồ Chí Minh
[3]http://www.meslab.org/mes/archive/index.php/f-194.html
Trang 18[4]http://vntech.vn/threads/mf-bai-tap-thuc-hanh-catia.5608/
[5]http://www.otofun.net/threads/97-thua%CC%A3t-ngu%CC%83-oto [6]http://www.download.com.vn/docs/tu-hoc-microsoft-excel-ebook/ download [7 ] http://dientuvietnam.net