Trong lĩnh vực điều khiển, từ khicông nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điềukhiển hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khi
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CƠ KHÍ
BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ
ĐỀ
TÀI:
THIẾT KẾ ĐIỀU KHIỂN ĐỘNG CƠ ENCODER
Giảng viên hướng dẫn: TS Dương Văn Lạc
Sinh viên thực hiện: Quách Hải Dương – 20205295
Trần Nam Khánh – 20205493
Vũ Minh Hóa – 20205314 Lớp: Vi xử lý 149639
Hà Nội, 7-2024
Trang 2Báo cáo BTL Vi xử lý | Điều khiển động cơ encoder
cơ encoder TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CƠ KHÍ
BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ
ĐỀ
TÀI:
THIẾT KẾ ĐIỀU KHIỂN ĐỘNG CƠ ENCODER
Giảng viên hướng dẫn: TS Dương Văn Lạc
Sinh viên thực hiện: Quách Hải Dương – 20205295
Trần Nam Khánh – 20205493
Vũ Minh Hóa – 20205314 Lớp: Vi xử lý 149639
Hà Nội, 7-2024
2
Trang 3Nhận xét của giáo viên
3
Trang 4Mục lục
Nhận xét của giáo viên 3
Lời mở đầu 4
Chương I Mô tả đề tài 6
1 Đặt vấn đề 6
2 Phân tích yêu cầu thiết kế 7
Chương II Lập kế hoạch 9
1 Bảng phân tích nhân lực 9
2 Bảng phân công công việc 10
3 Bảng kế hoạch thực hiện 11
Chương III Thiết kế hệ thống 12
1 Thiết kế sơ đồ khối 12
2 Thiết kế sơ đồ khối chi tiết 12
2.1 Khối nguồn 12
2.2 Khối điều chỉnh tốc độ động cơ 13
2.3 Khối hiển thị 14
2.4 Khối động cơ 15
2.5 Khối điều khiển 15
2.6 Linh kiện đi kèm 17
3 Sơ đồ nguyên lý 18
Chương IV Hoàn thành sản phẩm 19
1 Layout mạch in 19
2 Làm mạch, hàn linh kiện 20
3 Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm 22
Chương VI Kết luận 23
1 Đánh giá những điều đã làm được và chưa làm được 23
1.1 Những điều đã làm được 25
1.2 Những điểm còn hạn chế 25
2 Hướng phát triển 24
3 Kết luận 25
Tài liệu tham khảo 26
Phụ lục 1: Source code 28
Phụ lục 2: Hướng dẫn sử dụng 44
4
Trang 5Lời mở đầu
Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện
tử đã được ứng dụng rất nhiều trong công nghiệp Trong lĩnh vực điều khiển, từ khicông nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điềukhiển hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khiển lắpráp bằng các linh kiện rời như kích thước nhỏ, giá thành rẻ, độ làm việc tin cậy,công suất tiêu thụ nhỏ
Ngày nay, trong lĩnh vực điều khiển đã được ứng dụng rộng rãi trong cácthiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hàng ngày của con người như máygiặt, đồng hồ báo giờ… đã giúp cho đời sống của chúng ta ngày càng hiện đại vàtiện nghi hơn
Chúng em đã chọn đề tài “ Điều khiển động cơ encoder ” để hoàn thành bàitập lớn môn Vi xử lý, cũng như để đáp ứng mong muốn tìm hiểu và làm một sảnphẩm điện tử cụ thể từ một dòng Vi điều khiển của bản thân
Đề tài “Điều khiển động cơ encoder” là một đề tài quen thuộc, có thể thựchiện trên rất nhiều dòng VĐK Nhưng đối với chúng em, khi mới tìm hiểu một dòngVĐK mới, và đặc biệt phải thiết kế mạch trên dòng VĐK AVR theo yêu cầu, đócũng là một thách thức và trải nghiệm rất thú vị Do kiến thức còn hạn chế nên đềtài chắc chắn còn nhiều thiếu sót Chúng em rất mong nhận được những ý kiến đónggóp để chúng em hoàn thiện đề tài từ phía thầy cô cũng như các bạn sinh viên
Chúng em xin chân thành cảm ơn thầy Dương Văn Lạc và các nhóm trợgiảng đã giúp đỡ chúng em rất nhiều trong tất cả quá trình, từ lúc mới bắt đầu đếnlúc hoàn thiện sản phẩm!
Trang 6Chương I Mô tả đề tài
1 Đặt vấn đề
Bài này là một bài tổng hợp nhiều vấn đề ứng dụng AVR bao gồm nhận dữ liệu từ người dùng, điều khiển motor, đọc encoder, hiển thị LCD, cả giải thuật điều khiển PID và mạch công suất cho Motor…Do đó, ít nhất bạn phải nắm được các vấn đề cơ bản như Timer-Counter, TexLCD, mạch cầu H Có 2 phương pháp điều khiển động cơ DC là analog và digital Mục đích chính của chúng ta là dùng AVR điều khiển động cơ DC nên phương pháp số mà cụ thể
là phương pháp điều rộng xung (PWM) sẽ được giới thiệu Ngoài ra, khi nói đến điều khiển động cơ DC có 2 đại lương điều khiển chính là vị trí (số vòng quay) và vận tốc Trong phần ví dụ lập trình cho AVR chúng ta sẽ thực hiện điều khiển vận tốc cho DC Motor Bằng cách này, bạn có thể tự tin để mở rộng ví dụ để điều khiển cho cả 2 đại lượng Vì là điều khiển một cách tự động nên chúng ta cần đọc về đại lượng điều khiển (cụ thể là vị trí hoặc vận tốc motor) và hồi tiếp (feedback) về để “hiệu chỉnh” PWM cấp cho động cơ Chúng ta sẽ dùng incremental optical encoder để đọc số vòng quay và hồi tiếp
về cho AVR Bộ điều khiển PID sẽ được dùng và vận hành bởi AVR
Từ việc phân tích và khảo sát trên đây, nhóm đã đưa ra các vấn đề chính cần giảiquyết của bài toán đặt ra là:
- Tìm hiều kiến thức cơ bàn về VĐK Atmega8, đặc biệt về phần giao tiếp vớiL298n và LCD Tìm hiểu về phần mềm CodeVisionAVR C Compiler đểthực hiện code cho VĐK Atmega8
- Xây dựng sơ đồ khối, từ đó xây dựng mạch nguyên lý và mô phỏng trênphần mềm Proteus
- Thiết kế mạch in trên phần mềm Proteus
- Thực hiện lắp ráp linh kiện trên mạch in Để nạp code cho VĐK nhóm sửdụng phần mềm Progisp và mạch nạp USB ISP
- Viết báo cáo tổng hợp về quy trình thực hiện đề tài
Trang 72 Phân tích yêu cầu thiết kế
2.1 Yêu cầu chức năng
Để điều khiển số vòng quay hay vận tốc động cơ thì chúng ta nhất thiết phải đọc được góc quay của motor Một số phương pháp có thể được dùng để xác định góc quay của motor bao gồm tachometer (thật ra tachometer đo vận tốc quay), dùng biến trở xoay, hoặc dùng encoder Trong đó 2 phương pháp đầu tiên là phương pháp analog và dùng optiacal encoder (encoder quang) thuộc nhóm phương pháp digital Hệ thống optical encoder bao gồm một nguồn phát quang (thường là hồng ngoại – infrared), một cảm biến quang và một đĩa có chia rãnh Optical encoder lại được chia thành 2 loại: encoder tuyệt đối (absolute optical encoder) và encoder tương đối (incremental optical encoder) Trong đa số các DC Motor, incremental optical encoder được dùng và mô hình động cơ servo trong bài này cũng không ngoại lệ Từ bây giờ khi tôi nói encoder tức là incremental encoder Hình 2 là mô hình của encoder loại này
Hình 2 Optical Encoder (trích từ [1]).
Encoder thường có 3 kênh (3 ngõ ra) bao gồm kênh A, kênh B và kênh I (Index) Trong hình 2 bạn thấy hãy chú ý một lỗ nhỏ bên phía trong của đĩa quay và một cặp phat-thu dành riêng cho lỗ nhỏ này Đó là kênh I của encoder Cữ mỗi lần motor quay được một vòng, lỗ nhỏ xuất hiện tại vị trí của cặp phát-thu, hồng ngoại
từ nguồn phát sẽ xuyên qua lỗ nhỏ đến cảm biến quang, một tín hiệu xuất hiện trên cảm biến Như thế kênh I xuất hiện một “xung” mỗi vòng quay của motor Bên ngoài đĩa quay được chia thành các rãnh nhỏ và một cặp thu-phát khác dành cho các rãnh này Đây là kênh A của encoder, hoạt động của kênh A cũng tương tự kênh I, điểm khác nhau là trong 1 vòng quay của motor, có N “xung” xuất hiện trên kênh A N là số rãnh trên đĩa và được gọi là độ phân giải (resolution) của encoder Mỗi loại encoder có độ phân giải khác nhau, có khi trên mỗi đĩa chĩ có vài rãnh nhưng cũng có trường hợp đến hàng nghìn rãnh được chia Để điều khiển động cơ, bạn phải biết độ phân giải của encoder đang dùng Độ phân giải ảnh hưởng đến độ chính xác điều khiển và cả phương pháp điều khiển Không được vẽ trong hình 2,
Trang 8tuy nhiên trên các encoder còn có một cặp thu phát khác được đặt trên cùng đường tròn với kênh A nhưng lệch một chút (lệch M+0,5 rãnh), đây là kênh B của encoder Tín hiệu xung từ kênh B có cùng tần số với kênh A nhưng lệch pha 90o Bằng cách phối hợp kênh A và B người đọc sẽ biết chiều quay của động cơ Hãy quan sát hình 3.
Hình 3 Hai kênh A và B lệch pha trong encoder (trích từ [1])
Hình trên cùng trong hình 3 thể hiện sự bộ trí của 2 cảm biến kênh A và B lệch pha nhau Khi cảm biến A bắt đầu bị che thì cảm biến B hoàn toàn nhận được hồng ngoại xuyên qua, và ngược lại Hình thấp là dạng xung ngõ ra trên 2 kênh Xét trường hợp motor quay cùng chiều kim đồng hồ, tín hiệu “đi” từ trái sang phải Bạn hãy quan sát lúc tín hiệu A chuyển từ mức cao xuống thấp (cạnh xuống) thì kênh B đang ở mức thấp Ngược lại, nếu động cơ quay ngược chiều kim đồng hồ, tín hiệu
“đi” từ phải qua trái Lúc này, tại cạnh xuống của kênh A thì kênh B đang ở mức cao Như vậy, bằng cách phối hợp 2 kênh A và B chúng ta không những xác định được góc quay (thông qua số xung) mà còn biết được chiều quay của động cơ (thông qua mức của kênh B ở cạnh xuống của kênh A).
Trang 9Chương II Lập kế hoạch
Quá trình lập kế hoạch giúp chúng em có cái nhìn tổng quan về mục tiêu, nhiệm vụcần thực hiện cũng như phân bố thời gian hợp lí cho toàn bộ quá trình thiết kế sảnphẩm Đây là bước giúp chúng em hiểu hơn về từng thành viên trong nhóm, từngcông việc cụ thể cần phải thực hiện
1 Bảng phân tích nhân lực
Bảng 1 Bảng phân tích nhân lực
Quách Hải Dương
- Kỹ năng sử dụng atmega8 và encoder thành thạo
- Khả năng làm mạch tốt
- Chưa thành thạo cácphần mềm mô phỏng
Trần Nam Khánh
- Thành thạo kỹ năng vẽ mạch
và mô phỏng trên phần mềm proteus
- Kỹ năng thuyết trình tốt
- Hạn chế về code kỹnăng xử lý thuật toáncho vi điều khiển
Trang 102 Bảng phân công công việc
Bảng 2 Bảng phân công công việc
Tìm hiểu
đề tài
Xác định đề tài, yêu cầu thiết kế của Mạch
Tìm hiểu kiến thức về Vi điều khiển AVR,
Lập kế hoạch chi tiết, phân công công việc cho quá trình thiết kế sản phẩm Nam Khánh
Thiết kế hệ
thống
Thiết kế chi tiết từng khối Nam Khánh + Hải
Dương
Vẽ mạch nguyên lý và mô phỏng trên
Lập trình cho Vi điều khiển Atmega8 Hải Dương
Hoàn thành
sản phẩm
Thiết kế mạch in, đặt mạch in Minh HóaMua linh kiện, test nguội mạch in Minh Hóa
Đo đạc, kiểm tra, đánh giá sản phẩm Nam Khánh + Hải
Dương
Trang 113 Bảng kế hoạch thực hiện
Bảng 3 Bảng kế hoạch thực hiện
Công việc Thời gian
bắt đầu
Thời gian kết thúc Yêu cầu đạt được Trạng thái
Hoàn thành
Tìm hiểu về Vi
điều khiển AVR,
code cho AVR
01/03 08/03
Hiểu và trình bàyđược những kiến thức
về Vi điều khiểnAVR
Hoàn thành
Thiết kế mạch
Hoàn thành sơ đồkhối chi tiết, mạchnguyên lý
Hoàn thành
Thiết kế mạch in 29/03 12/04
Hoàn thành thiết kếmạch in trên phầnmềm Altium
Hoàn thành
Kiểm tra, hoàn
thiện báo cáo 24/05 14/06
Bản báo cáo Bài tậplớn, video giới thiệusản phẩm
Hoàn thành
Trang 12Khối báo thức
Khối điều khiển chính
Khối hiển thị Khối động cơ
Khối nguồn
Khối điều chỉnh tốc
độ động cơ
Chương III Thiết kế hệ thống
1 Thiết kế sơ đồ khối
Hình 1 Sơ đồ khối tổng quan mạch điều khiển động cơ
2 Thiết kế sơ đồ khối chi tiết
2.1 Khối nguồn
Trang 13Hình 2 Adapter 5V – 2A
Mạch sử dụng nguồn lấy từ adapter 5V-2A như trong hình 2 để cung cấp đủ dòng cho toàn bộ các khối
2.2 Khối điều chỉnh tốc độ động cơ
Hình 2.1: Module điều khiển động cơ L298n
L298N là module điều khiển động cơ trong các xe DC và động cơ bước Module có một IC điều khiển động cơ L298 và một bộ điều chỉnh điện áp 5V 78M05 Module L298N có thể điều khiển tối đa 4 động cơ DC hoặc 2 động cơ DC với khả năng điều khiển hướng và tốc độ.
Trang 14
Hình 2.4: Màn hình hiển thị LCD
Trang 16ATmega8 là vi điều khiển AVR 28 chân Mặc dù có nhiều bộ vi điều khiển tương
tự, nhưng ATMEGA8 phổ biến vì nó là một trong những bộ vi điều khiển rẻ nhất
và có nhiều tính năng với số chân ít hơn
Atmega8 là một lọai Vi điều khiển có nhìều tính năng đặc biệt thíchhợp cho việcgiải quyết những bài tóan điều khiển trên nền vi xử lý
Atmega8 là vi điều khiển 8bit dựa trên kiến trúc RISC Với khảnăng thực hiện mỗilệnh trong vong một chu kỳ xung clock, Atmega16có thể đạt được tốc độ 1MIPStrên mỗi MHz( 1triệu lệnh/s/MHz),các lệnh được xử lý nhanh hơn,tiêu thụ nănglượng thấp
Hình 2.7: Cấu hình chân của atmega8
Trang 172.6 Linh kiện đi kèm
Là bộ phận chính trong các mạch khuyếch đại tần số trong các hệ thống liên
hiện đại thế nào cũng phải dùng các bộ tạo dao động tinh thể để điều khiển các bus, xung động xử lý (Hệ thống mạch Arduino).
Hình 2.8 Thạch anh
Tụ gốm 22PF là tụ không phân cực có giá trị nhỏ thường được dùng trong
Hình 2.9 Tụ 22pf
Trang 183 Sơ đồ nguyên lí
Hình 3.1 Sơ đồ nguyên lí
Trang 19Báo cáo BTL Vi xử lý | Điều khiển động cơ encoder
Chương IV Hoàn thành sản phẩm
Quá trình Hoàn thành sản phẩm là bước cuối cùng trong toàn bộ quy trình thiết kế một sản phẩm điện tử
1 Layout mạch in
Hình 4.1 Mạch in PCB 2D
Hình 4.2 Mạch in PCB 3D
Trang 202 Làm mạch, hàn linh kiện
Sau khi có mạch in và các linh kiện đầy đủ, ta sẽ tiến hành lắp ráp thànhmạch hoàn chỉnh Sử dụng mạch nạp và phần mềm nạp để kết nối giữa máy tính vàmạch đã lắp ráp Tùy từng mạch nạp mà có phần mềm nạp riêng Sau khi nạp xongchúng ra có thể test mạch thử và cung cấp nguồn cho mạch hoạt động
Hình 18 Kiểm tra mạch trên board
Hình 19 Mạch in đã hàn linh kiện
Trang 21Hình 20 Hình ảnh mạch thực tế đang hoạt động
Trang 223 Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm
Việc đo nguội là quá trình đo đạc, kiểm tra trước khi cấp nguồn cho mạch.Việc này nhằm kiểm tra kết nối giữa cách đường đi dây, các kết nối trên mạch in,các mối hàn
Sau khi đo nguội mà không có lỗi, ta sẽ cấp nguồn cho mạch hoạt động (Chú
ý : cấp nguồn sau cùng khi lắp ráp mạch và ngắt nguồn đầu tiên khi tắt mạch)
Kiểm tra các chức năng hoạt động của encoder, LCD hiển thị, chức năng cácphím nhấn, có hoạt động tốt không
Khi mạch đã hoạt động ổn định, ta cần đo sai số của mạch Nếu mạch có sai
số lớn hơn mức cho phép, cần điều chỉnh lại code Chúng em đã kiểm tra và đođược sai số trong tốc độ là 0.1m/s và 2 độ khi quay góc 180 độ
Trong quá trình hoạt động, cần đánh giá nhiệt độ của mạch để có biện phápđiều chỉnh giúp mạch tản nhiệt tốt, bảo vệ linh kiện và hoạt động ổn định hơn
Trang 23Chương VI Kết luận
1 Đánh giá những điều đã làm được và chưa làm được
1.1 Những điều đã làm được
Nhìn chung, sản phẩm hoàn thành đã đạt được yêu cầu thiết kế đã đề ra:
- Động cơ encoder hoạt động tốt, điều chỉnh được góc quay và tốc độ theo ýmuốn
- Sản phẩm đơn giản, gọn nhẹ, dễ dàng sử dụng
- Ngoài việc áp dụng những kiến thức đã được học trong môn vi xử lí,chúng em còn được làm quen và thực hành với Vi điều khiển AVR Atmega8 Đây
là những kiến thức nền tảng, phục vụ cho ngành học điện tử sau này
Chúng em được làm quen và sử dụng các phần mềm mô phỏng Proteus, phầnmềm lập trình CodeVisionAVR C Compilier cho vi điều khiển AVR, phần mềmthiết kế mạch in Altium và thực hiện ráp mạch thực tế Đây là những kỹ năng rấtquan trọng trong quá trình học tập, đặc biệt đối với sinh viên ngành điện tử
Trong quá trình hoàn thành thiết kế sản phầm điều khiển động cơ encoder ,chúng em đã học hỏi được thêm rất nhiều kiến thức và kinh nghiệm về điện tử.Chúng em được thực hành, vân dụng các kiến thức đã học để thiết kế nên một sảnphẩm theo đúng quy trình thiết kế sản phẩm điện tử chuyên nghiệp
1.2 Những điểm còn hạn chế
Ngoài các chức năng đã đạt được đề tài còn một số hạn chế sau:
- Mạch nhìn còn thô, tính thẩm mĩ chưa cao
- Các nút bấm còn chưa nhạy, chưa có nút reset mạch (phải reset mạch bằngcách rút nguồn)
Trang 24- Mạch chạy thời gian dài còn tỏa nhiều nhiệt, ảnh hưởng tới độ bền của linh kiện và độ chính xác của sản phẩm.
2 Hướng phát triển
Đề tài có thể được tiếp tục phát triển một số chức năng sau:
- Có thể điều khiển nhiều động cơ hơn
- Thêm phần đo thời gian sử dụng động cơ
- Hệ thống chuống báo khi động cơ quay không như ý
Chúng em xin được gửi lời cảm ơn chân thành tới thầy TS Dương Văn Lạc
đã giúp đỡ chúng em rất nhiều trong các quá trình thiết kế và hoàn thành sản phẩm