Đề tài được xây dựng dựa trên kiến thức về giao tiếp máy tính và VĐK qua chuẩn RS-232, với việc dùng ngôn ngữ C Sharp để lập trình điều khiển ROBOT bằng giao diện điều khiển trên máy tín
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ
BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG
Cao Ngọc Tân 1063902 Lớp: Cơ Điện Tử
Khóa 32
Trang 2 Trong suốt khóa học 2006-2010 tại Bộ Môn Tự Động Hóa, Khoa Công Nghệ trường Đại Học Cần Thơ, chúng tôi đã nhận được những truyền đạt kiến thức quý báu, sự dạy dỗ ân cần và sự hướng dẫn tận tình Đặt biệt trong thời gian thực hiện luận văn tốt nghiệp chúng tôi còn có nhiều hạn chế về kiến thức, kinh nghiệm cũng như phương pháp tổ chức thực hiện luận văn tốt nghiệp Tuy nhiên, với sự giúp đỡ tận tình từ của các thầy cô giảng dạy, nhất là cán bộ hướng dẫn, các bậc đàn anh và các bạn cùng khóa, nên đề tài đã được hoàn thành đúng thời gian quy định Chúng tôi chân thành thành cảm ơn sâu sắc đến:
Ban Chủ Nhiệm khoa, tất cả các quý thầy, cô trong Bộ Môn Tự Động Hóa và trong khoa đã tận tụy giảng dạy, truyền đạt những kiến thức chuyên môn làm cơ sở để thực hiện luận văn tốt nghiệp và đã tạo mọi điều kiện thuận lợi cho chúng tôi hoàn thành khóa học
Đặc biệt, chúng tôi xin chân thành cảm ơn thầy hướng dẫn đề tài, TS Nguyễn Chí Ngôn, đã luôn nhiệt tình định hướng giúp đỡ, bất kể khi nào chúng tôi cần có sự hỗ trợ về kiến thức và kinh nghiệm, chúng tôi luôn nhận được sự trả lời và đáp ứng, điều đó giúp chúng tôi hoàn tất luận văn đúng thời hạn
Tất cả bạn bè đã giúp đỡ và động viên chúng tôi trong suốt quá trình thực hiện luận văn tốt nghiệp này
Cuối cùng là sự đóng góp tích cực về vật chất, sự ủng hộ về tinh thần từ phía gia đình tạo chỗ dựa vững chắc góp phần vào sự thành công của đề tài
Người làm xin chân thành cảm ơn!
Nhóm Sinh Viên Thực Hiện Lưu Trọng Hiếu Cao Ngọc Tân
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Cần Thơ, ngày … tháng … năm 2010
(Ký tên)
Trang 4NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Cần Thơ, ngày … tháng … năm 2010
(Ký tên)
Trang 5LỜI NÓI ĐẦU 6
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI 7
I ĐẶT VẤN ĐỀ 7
II MỤC TIÊU ĐỀ TÀI 10
1 YÊU CẦU PHẦN CỨNG 10
2 YÊU CẦU PHẦN MỀM 10
III PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ 11
1 GIẢI PHÁP PHẦN CỨNG 11
2 GIẢI PHÁP PHẦN MỀM 12
IV KỀ HOẠCH PHỐI HỢP THỰC HIỆN 12
1 PHẦN CƠ KHÍ 12
2 PHẦN ĐIỆN 12
3 PHẦN MỀM 12
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 14
A VI ĐIỀU KHIỂN PIC 18F4431 14
I MÔ TẢ CẤU TRÚC PHẦN CỨNG CỦA PIC 18F4431 14
II TẬP LỆNH CỦA PIC 18F4431 22
B GIỚI THIỆU NGÔN NGỮ C 22
C DÙNG CCS C LẬP TRÌNH CHO PIC 18F4431 23
D GIỚI THIỆU C Sharp (C#) 24
E GIAO TIẾP CỔNG NỐI TIẾP 24
I CẤU TRÚC CỔNG NỐI TIẾP 25
II TRUYỀN THÔNG GIỮA HAI NÚT 28
III TRUY XUẤT TRỰC TIẾP THÔNG QUA CỔNG COM 29
CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG 33
A PHẦN CƠ KHÍ 33
B PHẦN MẠCH 45
C PHẦN MỀM 56
Trang 6CHƯƠNG IV: KẾT QUẢ, KẾT LUẬN VÀ ĐỀ NGHỊ 61
I KẾT QUẢ ĐẠT ĐƯỢC 61
1 THUẬN LỢI 61
2 KHÓ KHĂN 61
3 HẠN CHẾ 62
II HƯỚNG PHÁT TRIỂN 62
III KHẢ NĂNG TRIỂN KHAI VÀ ỨNG DỤNG VÀO THỰC TIỄN 62
IV KẾT LUẬN 62
PHỤ LỤC 64
Trang 7LỜI NÓI ĐẦU
Kể từ năm 1956, khi cho Engelberger xây dựng một công ty sản xuất robot đầu tiên có tên là Unimation (Universal Automation) để sản xuất ra những con robot công nghiệp, họ cho ra đời robot đầu tiên tên là Unimate Một công nghiệp mới đã ra đời với rất nhiều các công việc do robot thực hiện Năm 1969, Victor Scheinman đã chế tạo ra cánh tay Stanford Thiết kế này đã trở thành chuẩn mực và vẫn đang ảnh hưởng nhiều đến những thiết kế của những cánh tay robot ngày nay Đây là cánh tay robot đầu tiên chạy bằng điện và điều khiển bằng máy tính thành công Robot này có thể đi theo một lộ trình tùy ý và mở rộng khả năng cho các ứng dựng đã được sử dụng để phát triển những kỹ thuật lắp ráp công nghiệp cho các cánh tay robot thương mại Tiếp theo đó là nhiều nghiên cứu ứng dụng như Skakey là robot di động có thể suy luận các hoạt động của nó,
là nền tảng của tri thông minh nhân tạo của robot ngày nay.Kể từ thập niên 80 ngành công nghiệp robot bắt đầu phát triển mạnh mẽ Robot được chế tạo để làm những công việc con người không muốn làm Robot được sử dụng trong rất nhiều lãnh vực với các chức năng đa dạng như quét sơn, làm việc trên cao tầng, hàn, lấp ráp sản phẩm, dịch vụ, giải trí, thám hiểm những vùng nguy hiểm, điển hình như Robot Thám Hiểm 8 Chân Dante thực hiện thám hiểm núi lửa, robot ASIMO (Advanced Step in Innovative Mobilit) có nghĩa là "Bước đột phá về khả năng di chuyển sáng tạo", thông minh và giống con người Năm 2002 Roomba là robot hút bụi của tập đoàn iRobot xuất hiện được xem là robot làm dịch vụ thành công nhất về thương mại
Tobio là robot hình dáng người đầu tiên của Việt Nam được thiết kế kiến trúc mạng neuron nhân tạo tự học thông minh, chế tạo bằn vật liệu composite sợi carbon siêu nhẹ, hệ thống 4 camera tốc độ cao giúp Tobio nhận dạng các quĩ đạo
và độ xoáy để có thể ra quyết định đánh bóng chính xác Tại triển lãm quốc tế lớn nhất thế giới về Robot (IREX 2009) diễn ra tại Nhật bản, công ty robot Tosy công nghiệp do Việt Nam sản xuất đã gây được ấn tượng mạnh cho khách tham quan Với giá thành sản xuất trong nước rẻ, robot sẽ là một ngành công nghiệp
Trang 8mũi nhọn và Việt nam hứa hẹn một bước tiến vững chắc để đáp ứng như cầu của
xã hội ngày càng cao
Trước thực tế đó, chúng tôi đã chọn đề tài “Nghiên cứu thiết kế ROBOT thám hiểm” do thầy Nguyễn Chí Ngôn hướng dẫn Đề tài được xây dựng dựa trên kiến thức về giao tiếp máy tính và VĐK qua chuẩn RS-232, với việc dùng ngôn ngữ C Sharp để lập trình điều khiển ROBOT bằng giao diện điều khiển trên máy tính Dù còn nhiều hạn chế nhưng đề tài đã được hoàn thành đúng thời hạn nhờ sự chỉ bảo tận tình của thầy Nguyễn Chí Ngôn Do thời gian và kiến thức còn hạn chế nên đề tài được thiết kế đơn giản và chưa thật sự hoàn thiện rất mong được sự đóng góp ý kiến của thầy, cô cùng các bạn để đề tài hoàn thiện hơn
Chân thành cảm ơn !
Nhóm sinh viên thực hiện Lưu Trọng Hiếu 1063870 Cao Ngọc Tân 1063902
Trang 9CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI
I Đặt vấn đề
1 Lịch sử phát triển ROBOT
Ý tưởng sáng tạo về Robot đã có từ những năm trước công nguyên khi một
kỹ sư người Hy lạp (Ctesibus) đã sáng tạo ra những thiết bị đo thời gian là đồng
hồ làm bằng nước
Năm 1921 thuật ngữ “Robot” lần dầu tiên được đặt để gọi “R.U.R” hoặc
“"Rossum's Universal Robots" bởi một nhà văn người Crech tên là Karel Capek Năm 1941 Nhà văn khoa học viễn tưỡng Isaac Asimov đầu tiên sử dụng từ
“robotics” để diễn tả kỹ thuật làm robot và ước tính hiệu lực gia tăng từ robot kỹ nghệ
Năm 1942 Asimow viết “"Runaround”, một câu chuyện về robots chứa đựng “ 3 luật của robotics” đó là:
Robot không được phép làm hại con người, không được nghỉ ngơi và con người được phép áp bức
Robot phải tuân lệnh con người, ngoại trừ các lệnh vi phạm luật 1 thì không được phép thi hành
Robot phải bảo vệ sự sống của con người sao cho không vi phạm luật 1 và Năm 1956 George Devol và Joseph Engelberger thành lập công ty robot đầu tiên trên thế giới Năm 1961 robot kỹ nghệ đầu tiên được ra đời có tên là ULTIMATE Năm 1963 Cánh tay robot nhân tạo được kiểm soát bởi máy tính đầu tiên ra đời, được thiết kế cho người tàn tật với 6 khớp cho phép hoạt động linh hoạt như tay người (http://prime.jsc.nasa.gov/ROV/history.html)
Từ đó, robot không ngừng được cải tiến, sáng tạo vì những lợi ích mà robot mang lại, con người quan tâm pháp triển ngành công nghiệp nầy
Định nghĩa Robot: thuật ngữ Robot có nguồn gốc từ tiếng Czech
“Robota” có nghĩa là cưỡng ép, ép buộc phải phục vụ, hay là “robotnik” có nghĩa
là nô lệ
Robot là một tác nhân cơ khí, nhân tạo, ảo, thường là một hệ thống cơ điện tử Từ Từ "robot" (người máy) thường được hiểu với hai nghĩa: robot cơ khí và phần mềm tự hoạt động Robot là công cụ lập trình được, đa chức năng được thiết kế để
Trang 10vận chuyển vật liệu, các bộ phận, công cụ, hoăc các thiết bị đặc biệt thông qua các chuyển động được lập trình để thực hiện các tác vụ đa dạng Một đặc điểm tiêu biểu để phân biệt robot nữa đó là khả năng đưa ra các lựa chọn Càng có khả năng đưa ra nhiều lựa chọn để giải quyết một vấn đề bao nhiêu, robot càng được đánh giá cao
Robot là một thiết bị tự động thực hiện các chức năng của con người hoặc một cỗ máy dưới hình dạng con người
Bước vào thế kỷ 21 ROBOT không ngừng được nghiên cứu và phát triển mạnh mẽ cùng với sự hổ trợ và phát triển của nhiều công nghệ hiện đại Có thể nói rằng công nghệ ROBOT vẫn đang trong thời kỳ đầu với những hứa hẹn phát triển rực rỡ trong tương lai
2 Lý do chọn đề tài
Trong cuộc sống ngày nay do nhiều nguyên nhân luôn có nhiều sự cố tai nạn hầm mỏ, cầu cống, sập nhà, những nơi nguy hiểm (phá mìn, thăm dò đáy đại dương, kiểm tra các đường ống ngầm, thám hiểm sao hỏa ), chật hẹp mà con người không thể tiếp cận thì vấn đề đặt ra là cần phải có một thiết bị nhỏ gọn có khả năng thay thế con người hoạt động hiệu quả trong mọi điều kiện nhằm giúp con người quan sát, xử lý, tìm kiếm, khắc phục sự cố được tốt hơn Đều đó luôn
là mối quan tâm của thế giới cũng như Việt Nam Với yêu cầu đầy tính ứng dụng thực tế đó, với lượng kiến thức tương đối đầy đủ về chuyên ngành trong 4 năm ngồi trên ghế nhà trường cùng với với sở thích niềm đam mê trong lĩnh vực ROBOT và yêu cầu vận dụng những khiến thức đã học vào thực tế, từ đó người làm đề tài đã hình thành nên ý tưởng thiết kế một loại ROBOT có khả năng đáp ứng một phần nhỏ các vấn đề trên và có tính ứng dụng thực tế cao, người làm đề
tài đã quyết định chọn đề tài “Nghiên cứu và thiết kế ROBOT thám hiểm” do thầy Nguyễn Chí Ngôn hướng dẫn làm luận văn tốt nghiệp do đáp ứng đầu đủ
các yêu cầu đặt ra
Đề tài “Nghiên cứu và thiết kế ROBOT thám hiểm” của người làm đề tài
dựa trên cơ sở tìm hiểu và kế thừa những gì có sẵn từ những đề tài đã nghiên cứu như về phần cứng, mô hình… từ đó người làm đề tài sẽ đi sâu nghiên cứu, cải
Trang 11tiến, phát triển thêm nhiều tính năng nhằm đáp nhu cầu thực tế ngày càng cao của cuộc sống hiện đại
3 Yêu cầu của đề tài
Thiết kế ROBOT thám hiểm nhỏ gọn, có khả năng hoạt động linh hoạt trong những địa hình không bằng phẳng
Điều khiển ROBOT bằng giao diện điều khiển trên máy tính giao tiếp với ROBOT qua cổng COM
Dùng encoder báo hiệu và tự dừng khi ROBOT hết dây hoặc không di chuyển được
Dùng Camera truyền tính hiệu hình ảnh thông qua Easy Capture kết nối với máy tính qua cổng USB
Dùng vi điều khiển PIC lập trình sẵn để xử lý hoạt động của ROBOT
Sử dụng RC Servo để xoay Camera
II Mục tiêu của đề tài
1 Yêu cầu phần cứng
Về cơ khí: Thiết kế một mô hình Robot đơn giản, dễ điều khiển và thông dụng Mô hình Robot này dễ dàng di chuyển trong những đường ống, những nơi nguy hiểm có gas, khí độc hại cho con người và có địa hình phức tạp
Mạch điều khiển: Đây là bộ xử lý trung tâm của Robot, dùng vi điều khiển
PIC 18F4431 để điều khiển cho hai động cơ di chuyển của Robot và một động cơ
xoay trái, xoay phải camera, giao tiếp và nhận tín hiệu tốt từ cảm biến Đặc biệt
vi điều khiển PIC 18F4431 còn giao tiếp trực tiếp với máy tính thông qua rs232
Về bộ cảm biến: Nghiên cứu, tìm hiểu nguyên lý để thiết kế và kết nối bộ cảm biến này giao tiếp dễ dàng với vi điều khiển để bộ cảm biến thực hiện, hoạt động đúng mục tiêu đã đề ra
Về điều khiển Camera cho ROBOT: Camera được gắn trên một động cơ độc lập Camera có thể xoay trái hoặc xoay phải một góc 1800 để dễ dàng quan sát đường đi ở trong đường ống
Thiết kế một mạch chia nguồn phù hợp để tạo ra các điện thế 24V, 12V, 5V cho mạch hoạt động
2 Yêu cầu phần mềm
Trang 12Trong hệ thống vi điều khiển, phần cứng được xem như thể xác còn phần mềm được xem như linh hồn chi phối toàn bộ hoạt động khả năng làm việc của Robot linh hoạt hay không chính là ở đây Vì vậy cần thiết kế một chương trình điều khiển cho vi điều khiển PIC 18F4431 để nhận tín hiệu từ cảm biến và xử lí các tín hiệu điều khiển được gửi xuống từ máy vi tính để vận hành cho Robot hoạt động và còn thiết kế một giao diện điều khiển trên màn hình monitor tích hợp đầy đủ các nút chức năng như: chạy tới, chạy lùi, dừng lại, xoay trái, xoay phải, xoay Camera, khung hiển thị trạng thái robot khung hiển thị số mét của Robot đi được…
Điều khiển cho Robot hoạt động tốt
Tạo tín hiệu điều khiển cho bộ cảm biến, thu nhận và xử lý tín hiệu từ bộ cảm biến
Thu nhận tín hiệu hình ảnh quan sát tốt từ Camera trên Robot gửi về và hiển thị lên màn hình điều khiển để quan sát
Robot thám hiểm được điều khiển từ một giao diện điều khiển trung tâm
III Phương pháp giải quyết vấn đề
Chọn mô hình Robot để thiết kế: Robot thám hiểm được thiết kế theo mô hình xe tăng mạnh mẽ, nhỏ gọn và đơn giản Đây là mô hình Robot rất thông dụng và dễ làm hiện nay Đặc điểm của mô hình Robot thăm dò này được chúng tôi thiết kế với các đặc điểm như sau:
Hai motor chuyển động bánh xe được bố trí so le nhau Một motor được gắn bên trái phía trước Robot, một motor được gắn bên phải phía sau
Trang 13Robot Hai bánh xe bên trái và bên phải còn lại được gắn ở hai vị trí còn lại và đồng trục với hai động cơ và quay khi hai motor quay và kéo chúng quay theo
Bánh xe bố trí hai bên xe, mỗi bên 4 bánh gồm 2 bánh lớn ở giữa và
2 bánh nhỏ ở ngoài Một bánh lớn ở mỗi bên được gắn vào trục của motor chuyển động Hai motor chuyển động bánh xe được bố trí so le nhau Các bánh
xe còn lại được bố trí đồng truc với nhau và đồng trục với motor
Bốn bánh xe bên trái, bốn bánh xe bánh xe bên phải được liên kết với nhau bằng dây xích Để tám bánh xe hoạt động hỗ trợ nhau
Motor điều khiển Camera có thể xoay trái, xoay phải tùy ý
Bộ cảm biến Encoder cũng có một vai trò quan trọng là đếm số vòng xoay của bánh xe Robot và nhờ vào lập trình mà qui đổi ra đơn vị tính là met
2 Giải pháp phần mềm
Có rất nhiều ngôn ngữ bậc cao mà người lập trình có thể lựa chọn như: Hợp ngữ (Assembly), Tubo Passal, C, C++,… để lập trình cho vi điều khiển PIC 18F4431 Muốn vi xử lý hiểu được các ngôn ngữ bậc cao này, phải có chương trình dịch các chương trình này sang mã lệnh Ở đây chúng tôi chọn ngôn ngữ C,
vì đây là ngôn ngữ dễ học và dễ dàng chuyển đổi qua ngôn ngữ máy
IV Kế hoạch thực hiện
Đây là một đề tài khó bao gồm nhiều hệ thống phức tạp, với khối lượng công việc lớn, đòi hỏi người làm đề tài phải tư duy và đầu tư nghiên cứu chuyên sâu về nhiều lĩnh vực khác nhau Nếu không định hướng từ trước và đề ra một kế hoạch làm việc phù hợp sẽ khó có thể hoàn thành Qua sự quyết định và nhất trí giữa các thành viên trong nhóm, chúng tôi quyết định chia đề tài ra thành 3 phần nhỏ Sau đó dựa vào sở trường và sở thích của mỗi thành viên, nhóm sẽ đề ra công việc phù hợp của từng thành viên với phần thích hợp với mình Đây là yếu
tố quan trọng để đảm bảo đề tài được hoàn thành đúng tiến độ
1 Phần cơ khí
Để hình thành nên mô hình ROBOT phải tiến hành tìm hiểu học hỏi những lý thuyết liên quan về ROBOT như: phương pháp thiết kế hình dạng cho
Trang 14ROBOT, tìm hiểu về hoạt động của động cơ, cách bố trí và mạch điều khiển cho động cơ, lắp đặt phần “đầu, thân và đuôi” với một kết cấu cơ khí tốt, cách bố trí
và hoạt động của cảm biến Encoder…sao cho ROBOT có tính cơ động cao, linh hoạt và có tính thẩm mỹ Qua sự phân công của nhóm bạn Cao Ngọc Tân sẽ được giao thiết kế phần khung mô hình ROBOT
Chương trình trong ROBOT giống như bộ não của con người, biến ROBOT
từ một vật tưởng chừng như vô tri vô giác trở nên linh hoạt vì ROBOT chỉ hoạt động khi có chương trình cài đặt sẵn Tất cả những hoạt động của ROBOT điều
do người lập trình quyết định do đây là phần rất quan trọng nên nhóm đã quyết định chọn bạn Lưu Trọng Hiếu lập trình điều khiển cho ROBOT nhằm cụ thể hóa những ý tưởng của nhóm thành chương trình phần mềm
Khi mới nhìn qua kế hoạch phối hợp thực hiện tưởng chừng như công việc của mỗi thành viên là độc lập nhưng để ROBOT có thể hoạt động tốt cần phải có
sự phối hợp chặt chẽ giữa các phần cơ khí, mạch và lập trình nếu một bộ phận không tốt thì mạch sẽ ngưng không hoạt động cho nên cần phải có sự gắn bó chặt chẽ, giúp đỡ và hỗ trợ lẫn nhau giữa các thành viên trong nhóm góp phần vào thành công của đề tài.Với cách phân công trên công việc của mỗi thành viên không quá nặng, bên cạnh đó khắc phục được những khó khăn, bù đắp những mặt thiếu sót của nhau hơn nữa còn góp phần thúc đẩy sức sáng tạo riêng của mỗi người
Trang 15CHƯƠNG II: CƠ SỞ LÝ THUYẾT A- VI ĐIỀU KHIỂN PIC 18F4431
I Mô tả cấu trúc phần cứng của PIC 18F4431
1.Cấu trúc phần cứng bên ngoài và bên trong PIC 18F4431
Data EEPROM memory (RAM) 256
Motion Feedback module 1 QEL or 3*IC
A/D module(10bit-hight-speed) 9 input channels
Reset and delays (PWRT, OST), MCLR (optional),
Programmable low-voltage Yes
Programmable brown-out reset Yes
Instruction set 75 intruction
44 pin-QFN Xem thêm phụ lục 1
Trang 16Chức năng từng chân của PORTA: Xem phụ lục 1
Các chân RA<2.4> được tích hợp với ba chân ngỏ vào Capture và
QEI.Các chân RA6 và RA7 được tích hợp với chân dao dộng chính.Các chân
Trang 17RA<3:0>và chân RA5 chuyển đổi A/D khi đặt hoặc xoá bit điều khiển trong thanh ghi ANSEL0 và ANSEL1
Ví dụ :
TRISA=1; // PORT A LA INPUT
TRISA=0; // PORT A LA OUTPUT
PORTA=0X00; PORT A O MUC THAP
Bộ timer/counter 8 hoặc 16 bit
Có thể đọc hoặc ghi được
Phần mên chuyên dụng có thể lập trình prescale được
Nguồn xung clock có thể chọn từ bên ngoài hoặc bên trong
Ngắt tràn từ ff 00h trong 8 bit và ffff0000h trong chế độ 16 bit Chọn cạnh cho nguồn xung clock ngoài
Thanh ghi điều khiển là T0CON
b.Timer1
Có các chức năng sau:
Timer/counter 16 bit
Có thể đọc hoặc xoá được
Lựa chọn nguốn xung clock bên ngoài hoặc bên trong
Ngắt tràn từ FFFF _0000H
Trang 18Thanh ghi điêu khiển là T1CON
Có hai chế độ hoạt động là single-shot vá continue
Cho phép chọn tỉ lệ tần số timer/tần số vào timer
Ngắt xảy ra khi thoả mãn giá trị thanh ghi PR5
Hoạt động của timer5
Kết hợp hai thanh ghi 8 bit là TMR5H và TMR5L thành thanh ghi 16 bit.Trong đó thanh ghi TMR5L thật sự là byte thấp của timer5,nó có thể đọc và ghi trực tiếp được,còn byte cao của timer5 được đọc và ghi thông qua thanh ghi TMR5
Cặp thanh ghi thứ hai là PR5H và PR5L làm thanh ghi chu kì Khi giá trị thanh ghi TMR5 tiến đến và bằng giá trị thanh ghi PR5 thì cờ ngắt TMR5IF được bật lên cho đến khi được xoá băng phần mềm
5 Ngắt
a.Giới thiệu tổng quát
PIC18F4431 có nhiều nguồn ngắt khác nhau và có mức độ ưu tiên khác nhau.Vector ngắt có mức ưu tiên cao nhất là 000008H và thấp nhất là
000018H,sự kiện ngắt ưu tiên cao sẽ được ưu tiên ngắt trước so với ngắt có mức
ưu tiên thấp hơn
Có 10 thanh ghi để điều khiển việc ngắt
RCON; INTCON ; INTCON2 ; INTCON3 ; PIR1, PIR2, PIR3;
Trang 19PIE1, PIE2, PIE3; IPR1, IPR2, IPR3
Mỗi nguồn ngắt có ba bit để điều khiển ngắt
Bit cờ chỉ sự kiện ngắt xuất hiện
Bit cho phép thực thi chương trình rẻ nhánh đến địa chỉ vector ngắt khi cờ ngắt đã bật
Bit ưu tiên để chọn mức ưu tiên cao hoặc mức ưu tiên thấp
Ngắt ưu tiên được cho phép băng cách đặt bit IPEN.Khi ngắt ưu tiên được cho phép,có hai bit cho phép ngắt toàn cục,việc đặt bit GIE sẽ cho phép ngắt mà
có bit ưu tiên cao hơn và đặt bit GIEL cho phép tất cả các ngắt mà có mức ưu tiên được xoá ưu tiên thấp
Khi có sự kiên ngắt thì sẽ nhảy vào thực thi các lệnh từ địa chỉ ngắt và bit
có thể bị cấm thông qua các bit cho phép của chúng
Khi bit IPEN bị xoá chức năng ưu tiên sẽ bị cấm Khi 1 ngắt được đáp ứng thì bit cho phép ngắt toàn cục được xoá để cấm các ngắt thêm Nếu bit IPEN bị xoá thì đó là bit GIE Nếu mức ưu tiên ngắt được sử dụng thì đó sẽ là GIEH hoặc GIEL Nguồn ngắt ưu tiên thấp không được thực thi khi nguồn ngắt ưu tiên cao đang thực hiện
Địa chỉ PC được cất vào vùng stack và pc được nạp giá trị là địa chỉ của vector ngắt Sau khi có thủ tục ngắt,các nguồn ngắt có thể xác định bằng việc kiểm soát các bit cờ ngắt Các bit cờ ngắt phải được xoá bằng phần mền trước khi cho ngắt trở lại để tránh ngắt liên tục
Thủ tục ngắt như sau
ENABLE_INTERRUPTS(INT_EXT); // khoi tao ngat ngoai
EXT_INT_EDGE(0,L_TO_H); // ngat ngoai 0 gia tri nhan theo muc L=>H ENABLE_INTERRUPTS(GLOBAL); // cho phep ngat toan cuc
Trang 206 Các Module của PIC18F4431
PIC 18F4431 có tất cả là 4 module: Module ADC, Module PWM, Module
I2C/SPI, Module Feedback Ở đây ta chỉ chú ý đến Module PWM dung để điều khiển động cơ cho robot
Module PWM
Sơ đồ khối của PWM: Xem Phụ lục 1
Các thanh ghi điều khiển
Có tất cả 22 thanh ghi để điều khiển module này
8 thanh ghi trong số này được dùng để tạo xung điều khiển: PTCON0,
PTCON1, PWMCON0, PWMCON1, DTCON0, ODVCOND, ODVCONS, FLTCONFIG
14 thanh ghi còn lại là thanh ghi 16 bit:
Cặp thanh ghi PTMRH và PTMRL
Cặp thanh ghi PTERH và PTERL
Cặp thanh ghi SEVTCMPH và SEVTCMPL
Cặp thanh ghi PDC0H và PDCOL
Trang 21Các chế độ đếm của PWM
Chế độ tree running count
Hình 2.2: Tree running count
Chế độ up/down counting
Hình 2.3 :Up/down counting
Tạo duty cycle
PWM duty cycle được xác định bởi cặp thanh ghi (PDCxL và PDCxH).Và việc tạo duty cycle này được tạo bằng việc so sánh hai cặp thanh ghi này với PWM time base (PTPRH và PTPRL)
Hình 2.4: PDCxL và PDCxH
Trang 22Khi PWM time base đếm lên fit với giá trị của PDCxx thì sẽ tạo ra được xung như hình sau: giá trị đỉnh của bộ đếm được lưu trong PTPER
Hình 2.5: Giá trị đỉnh của bộ đếm
7.Dead time control
Dead time là khoảng thời gian lên và xuống của 1 xung điều khiển bởi vì các thiết bị năng lượng không thuần tuý là chỉ có đóng cắt thông thường mà phải
có 1 khoảng thời gian đóng và cắt để tránh tình trạng bị trùng dẫn dẫn đến có thể
hư hại thiết bị nếu hoạt động lâu dài
Khoảng thời gian dead time này có thể được lập trình trong module PWM
Hình 2.6 Dead time control
Thanh ghi điều khiển nạp dead time cho xung:
Hình 2.7:Dead time control register
bit 7-6 DTPS1:DTPS0: Dead Time Unit A Prescale Select bits
11 = nguồn clonk cho Dead Time Unit is FOSC/16
10 = nguồn clonk cho Dead Time Unit is FOSC/8
01 = nguồn clonk cho Dead Time Unit is FOSC/4
Trang 2300 = nguồn clonk cho Dead Time Unit is FOSC/2
bit 5-0 DT5:DT0: Unsigned 6-bit dead time value bits for Dead Time Unit
II TẬP LỆNH HỌ PIC 18Fxxxx
Xem Phụ lục 1
B GIỚI THIỆU NGÔN NGỮ C
Ngôn ngữ C được thiết kế bởi nhà khoa học Dennis Ritchie tại phòng thí nghiệm Bell Telephone vào năm 1972 C được thiết kế để viết hệ điều hành UNIX và để hỗ trợ cho các nhà lập trình nhanh chóng hoàn thành công việc của mình Về tên gọi, ngôn ngữ C được đặt tên như thế vì tiền thân của nó là ngôn ngữ B Ngôn ngữ B được phát triển bởi nhà khoa học Ken Thompson, ông cũng làm việc tại phòng thí nghiệm Bell C là một ngôn ngữ lập trình rất mạnh và linh động do đó việc sử dụng nó nhanh chóng vượt qua khỏi giới hạn của phòng thí nghiệm Bell Các nhà lập trình ở khắp nơi bắt đầu sử dụng nó để viết đủ loại chương trình Ngay sau đó, nhiều nhà sản xuất phần mềm bắt đầu tung ra các phiên bản C khác nhau, và việc phân biệt hay sử dụng ngôn ngữ C bắt đầu làm cho các nhà lập trình bối rối Để giải quyết vấn đề này, Viện Định Chuẩn Quốc Gia Mỹ (American National Standard Institute) gọi tắt là ANSI đã triệu một cuộc họp vào năm 1983 nhằm thiết lập các chuẩn mực cho ngôn ngữ C và được gọi là ANSI C Ngoài ngôn ngữ C còn có rất nhiều ngôn ngữ lập trình cấp cao khác như Pascal, BASIC… nhưng theo đánh giá của các chuyên gia điện toán, C có những
ưu điểm nổi bật như sau:
C là ngôn ngữ rất mạnh và linh động, có khả năng thể hiện bất kỳ ý tưởng nào của bạn Nó có thể chạy trên các hệ điều hành khác nhau và có thể chen các đoạn lệnh C vào cách chương trình viết bằng ngôn ngữ khác
C là ngôn ngữ rất phổ biến, được sử dụng rộng rãi bởi các nhà lập trình chuyên nghiệp Do đó có rất nhiều công cụ được phát triển giúp mọi người có thể lập trình bằng ngôn ngữ C nhanh chóng hơn
C là ngôn ngữ có tính khả chuyển Tức là một chương trình C được víêt cho một hệ thống máy tính nào đó (ví dụ IBM PC) cũng có thể được biên dịch và chạy trên một hệ thống máy tính khác (ví dụ DEC VAX) với rất ít thay đổi hay hầu như không cần thay đổi gì cả
Trang 24C là ngôn ngữ lập trình đơn giản chỉ chứa các thuật ngữ gọi là từ khóa, là
cơ sở để xây dựng chương trình
C là ngôn ngữ lập trình đơn thể Mã lệnh trong C có thể được viết thành các hàm và có thể được sử dụng lại trong nhiều chương trình khác nhau
Ngày nay có một số ngôn ngữ lập trình cấp cao khác như C++, C#, … Đây là các ngôn ngữ lập trình hướng đối tượng và có thể xem là ngôn ngữ C nâng cấp Do đó, toàn bộ những gì bạn học được trong ngôn ngữ C đều có thể áp dụng cho các ngôn ngữ nâng cấp đó
Tuy nhiên C không phải là vạn năng , có thể thực hiện mọi thứ như ý muốn Trong 1 số trường hợp, nó có thể sinh mã chạy sai
C DÙNG CCS C LẬP TRÌNH CHO PIC 18F4431
1 Vì sao sử dụng CCS ?
Sự ra đời của một loại vi điều khiển đi kèm với việc phát triển phần mềm ứng dụng cho việc lập trình cho con vi điều khiển đó Vi điều khiển chỉ hiểu và làm việc với hai con số 0 và 1 Ban đầu để việc lập trình cho VĐK là làm việc với dãy các con số 0 và 1 Sau này khi kiến trúc của Vi điều khiển ngày càng phức tạp, số luợng thanh ghi lệnh nhiều lên, việc lập trình với dãy các số 0 và 1 không còn phù hợp nữa, đòi hỏi ra đời một ngôn ngữ mới thay thế Và ngôn ngữ lập trình Assembly Ở đây ta không nói nhiều đến Assmebly Sau này khi ngôn ngữ C ra đời, nhu cầu dùng ngôn ngữ C để thay cho ASM trong việc mô tả các lệnh lập trình cho Vi điều khiển một cách ngắn gọn và dễ hiểu hơn đã dẫn đến sự
ra đời của nhiều chương trình soạn thảo và biên dịch C cho Vi điều khiển: Keil
C, Mb Lab, HTPIC, MikroC, CCS…
2 Giới thiệu CCS
CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hãng Microchip Đây là ngôn ngữ lập trình đầy sức mạnh , giúp người lập trình viết chương trình nhanh chóng hơn so với ngôn ngữ Assembly
Giống như nhiều trình biên dich C khác cho PIC, CCS giúp cho người sử dụng nắm bắt nhanh được vi điều khiển PIC và sử dụng PIC trong các dự án Các chương trình điều khiển sẽ được thực hiện nhanh chóng và đạt hiệu quả cao thông qua việc sử dụng ngôn ngữ lập trình cấp cao – Ngôn ngữ C
Trang 25CCS chứa rất nhiều hàm phục vụ cho mọi mục đích và có rất nhiều cách lập trình mã cho cùng 1 vấn đề dẫn đến khác nhau tốc độ thực thi mã, độ dài chương trình Sự tối ưu là do kỹ năng lập trình C của người lập trình
CCS C có đủ khả năng để người sử dụng không cần phải chèn thêm bất kỳ dòng lệnh ASSEMBLY nào, và mặc dù vẫn cho phép phối hợp ASSEMBLY cùng với C , tuy nhiên CCS sẽ không bảo đảm chương trình chạy chính xác CCS cung cấp các công cụ tiện ích giám sát hoạt động chương trình như : C/ASM list : cho phép xem mã ASM của file biên dịch , giúp quản lý mã và nắm được cách thức mã sinh ra và nó chạy như thế nào, là công cụ rất quan trọng, người sử dụng có thể gỡ rối chương trình và nắm được hoạt động của nó ;
SYMBOL hiển thị bộ nhớ cấp phát cho từng biến , giúp quản lý bộ nhớ các biến chương trình , CallTree hiển thị phân bổ bộ nhớ
Chương trình là CCS sự tích hợp của 3 trình biên dịch riêng viết cho 3 dòng PIC khác nhau đó là:
PCB cho dòng PIC 12bit opcodes
PCM cho dòng PIC 14bit opcodes
PCH cho dòng PIC 16 và 18bit
Tất cả 3 trình biên dich này đuợc tích hợp lại vào trong một chương trình bao
gồm cả trình soạn thảo và biên dịch là CCS
Mã lệnh trong CCSC được tối ưu khi biên dịch
Tham khảo thêm các cải tiến ở các version CCS trên web : info.CCS.com
D GIỚI THIỆU C SHARP (C#)
C# được phát triển bởi đội ngũ kỹ sư của Microsoft Dẫn đầu là : Anders Hejlsberg và Scott Wiltamuth
C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mười kiểu
dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao C# hỗ trợ lập trình có cấu trúc, hướng đối tượng, hướng thành phần (component oriented)
Trọng tâm của ngôn ngữ hướng đối tượng là lớp Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết C# có những từ khoá dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới C# hỗ trợ đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế,
Trang 26đa hình Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt như C++ Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp trong tập tin mã nguồn Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạng XML
C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java) Một lớp chỉ có
thể kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện
C# có kiểu cấu trúc, struct (không giống C++) Cấu trúc là kiểu hạng nhẹ
và bị giới hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt giao diện
C# cung cấp những đặc trưng lập trình hướng thành phần như property, sự
kiện và dẫn hướng khai báo (được gọi là attribute) Lập trình hướng component
được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata) Siêu dữ liệu mô tả các lớp bao gồm các phương thức và thuộc tính, các thông tin bảo mật …
Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên là
các thư viện liên kết động (DLL) hay tập tin thực thi (EXE) Trong NET một assembly là một đon vị của việc tái sử dụng, xác định phiên bản, bảo mật, và phân phối CLR cung cấp một số các lớp để thao tác với assembly
C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng
mã đó được xem như không an toàn CLR sẽ không thực thi việc thu dọn rác tự động các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải phóng
Có ý nghĩa khi thực thi khái niệm lập trình hiện đại
Được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java
Về mặt kỹ thuật thì C# và VB.NET tương đương với nhau về mặt chức năng Dễ dàng chuyển đổi code từ C# sang VB.NET và ngược lại
E GIAO TIẾP CỔNG NỐI TIẾP
I Cấu trúc cổng nối tiếp
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có các ưu điểm sau:
Khoảng cách truyền xa hơn truyền song song
Số dây kết nối ít
Trang 27Có thể truyền không dây dùng hồng ngoại
Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device) Cho phép nối mạng
Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc
Có thể cung cấp nguồn cho các mạch điện đơn giản
Các thiết bị ghép nối chia thành 2 loại : DTE (Data Terminal Equipment) và DCE (Data Communication Equipment) DCE là các thiết bị trung gian như MODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển, … Việc trao đổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền) Các tín hiệu còn lại có chức năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín hiệu bắt tay (handshake) Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát đường truyền Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations) Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáp truyền đủ ngắn có thể lên đến 115.200 bps
Các phương thức nối giữa DTE và DCE:
Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm chỉ được truyền theo 1 hướng
Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:
Hình 2.8: Khung truyền dữ liệu theo chuẩn RS-232
Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp 10V) Khi bắt đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần Start D0 D1 D2 D3 D4 D5 D6 D7 P Stop
Trang 28-lượt truyền từ D0 đến D7 và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường truyền Dạng tín hiệu truyền mô tả như sau (truyền ký tự A):
Hình 2.9 - Tín hiệu truyền của ký tự ‘A’
Các đặc tính kỹ thuật của chuẩn RS-232 như bảng 2.2:
Bảng 2.2: Đặc tính kỹ thuật của chuẩn RS-232
Chiều dài cable cực đại 15m Tốc độ dữ liệu cực đại 20 Kbps Điện áp ngõ ra cực đại 25V Điện áp ngõ ra có tải 5V đến 15V Trở kháng tải 3K đến 7K Điện áp ngõ vào 5V
Độ nhạy ngõ vào 3V Trở kháng ngõ vào 3K đến 7K Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps,
4800 bps,9600 bps và 19200 bps
Sơ đồ chân:
Hình 2.10 - Sơ đồ chân cổng nối tiếp
Trang 29Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân)
mô tả như hình 2.10 Ý nghĩa của các chân: Xem Phụ lục 2
II Truyền thông giữa hai nút
Các sơ đồ khi kết nối dùng cổng nối tiếp:
Hình 2.11 - Kết nối đơn giản trong truyền thông nối tiếp
Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và thu giống nhau Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào
bộ đệm và tạo ngắt
Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:
Hình 2.12 - Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay
Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực tác động lên DSR của DTE2 cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM (ảo) Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết DTE1 có thể nhận dữ liệu Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền khác nhau nên phải thực hiện điều khiển lưu lượng Quá trinh điều khiển này có thể thực hiện bằng phần mềm hay phần cứng Quá trình điều khiển bằng phần mềm thực hiện bằng hai ký tự Xon và Xoff Ký tự Xon được DCE gởi đi khi rảnh (có thể nhận dữ liệu) Nếu DCE bận thì sẽ gởi ký tự Xoff Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS Nếu
Trang 30DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận dữ liệu (đang rảnh) thì gởi lại CTS
III Truy xuất trực tiếp thông qua cổng COM
Các cổng nối tiếp trong máy tính được đánh số là COM1, COM2, COM3, COM4 với các địa chỉ như bảng 2.3
Bảng 2.3: Các cổng nối tiếp trong máy tính
Tên Địa chỉ Ngắt Vị trí chứa địa chỉ
IIR (Interrupt Identification Register)
IIR xác định mức ưu tiên và nguồn gốc của yêu cầu ngắt mà UART đang chờ phục vụ Khi cần xử lý ngắt, CPU thực hiện đọc các bit tương ứng để xác định nguồn gốc của ngắt Định dạng của IIR như bảng 2.4:
Bảng 2.4 Interrupt Identification Register
(mức 1 ưu tiên cao nhất)
IER (Interrupt Enable Register): cho phép hay cấm các nguyên nhân ngắt khác nhau (1: cho phép, 0: cấm ngắt)
Trang 31Hình 2.13: Interrupt Identification
MCR (Modem Control Register)
Hình 2.14: Modem Control Register
MSR (Modem Status Register)
Hình 2.15: Modem Status Register
LSR (Line Status Register)
Hình 2.16: Line Status Register
FIE: FIFO Error - sai trong FIFO
TSRE: Transmitter Shift Register Empty - thanh ghi dịch rỗng (=1 khi đã phát 1 ký tự và bị xoá khi có 1 ký tự chuyển đến từ THR
THRE: Transmitter Holding Register Empty (=1 khi có 1 ký tự đã chuyển
từ THR TSR và bị xoá khi CPU đưa ký tự tới THR)
BI: Break Interrupt (=1 khicó sự gián đoạn khi truyền, nghĩa là tồn tại mức logic 0 trong khoảng thời gian dài hơn khoảng thời gian truyền 1 byte và bị
Trang 32xoá khi CPU đọc LSR)
FE: Frame Error (=1 khi có lỗi khung truyền và bị xoá khi CPU đọc LSR) PE: Parity Error (=1 khi có lỗi parity và bị xoá khi CPU đọc LSR)
OE: Overrun Error (=1 khi có lỗi thu đè, nghĩa là CPU không đọc kịp dữ liệu làm cho quá trình ghi chồng lên RBR xảy ra và bị xoá khi CPU đọc LSR) RxDR: Receiver Data Ready (=1 khi đã nhận 1 ký tự và đưa vào RBR và
bị xoá khi CPU đọc RBR)
LCR (Line Control Register)
Hình 2.16: Line Control Register
DLAB (Divisor Latch Access Bit) = 0: truy xuất RBR, THR, IER, = 1 cho phép đặt bộ chia tần trong UART để cho phép đạt tốc độ truyền mong muốn UART dùng dao động thạch anh với tần số 1.8432 MHz đưa qua bộ chia 16 thành tần số 115,200 Hz Khi đó, tuỳ theo giá trị trong BRDL và BRDH, ta sẽ có tốc độ mong muốn Ví dụ như đường truyền có tốc độ truyền 2,400 bps có giá trị chia 115,200 / 2,400 = 48d = 0030h BRDL = 30h, BRDH = 00h
SBCB (Set Break Control Bit) =1: cho phép truyền tín hiệu Break (=0) trong khoảng thời gian lớn hơn một khung
PS (Parity Select):
Bảng 2.5: Parity Select
STB (Stop Bit) = 0: 1 bit stop, =1: 1.5 bit stop (khi dùng 5 bit dữ liệu) hay
2 bit stop (khi dùng 6, 7, 8 bit dữ liệu)
Trang 33Bảng 2.6: WLS (Word Length Select):
Trang 34CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG
A- PHẦN CƠ KHÍ
I Lý thuyết thiết kế
1 Ý tưởng cho mô hình thiết kế
Từ thế kỷ 20 nhân loại đã chứng kiến cuộc cách mạng khoa học kỹ thuật phát triển mạnh mẽ trên toàn thế giới Đặt trưng của cuộc cách mạng này là kỹ thuật máy tính, công nghệ thông tin và tự động hóa Trong đó công nghệ tự động hóa đóng một vai trò quan trọng trong mọi lĩnh vực ứng dụng và phát triển Việc ứng dụng công nghệ tự động hóa mang lại những lợi ích to lớn về nhiều mặt như: cải thiện sức lao động của con người, nâng cao chất lượng sản phẩm, tiết kiệm nguyên vật liệu, nâng cao hiệu quả và năng suất sản xuất, đóng vai trò tích cực trong việc gìn giữ và bảo vệ môi trường
Một trong những ứng dụng tự động hóa là công nghệ chế tạo robot Robot phát triển mạnh vào những thập niên 80 với hàng loạt các loại robot được ra đời với những tính năng đặc biệt Ngày nay robot đóng 1 vai trò hết sức quan trọng trong sản xuất thay thế cho sức lao động của con ngươi, thay thế con người làm những công việc có tính chất nguy hiểm như các robot thám hiểm vũ trụ,các hành tinh mới, những công việc trong hầm mỏ,và các môi trường độc hại…
ROBOT được nghiên cứu và sản xuất chế tạo theo từng ứng dụng khác nhau mà hình dáng kích thước của robot vì thế mà khác nhau
Thông thừơng Robot được chế tạo để thay thế sức lao động của con người Từ những công việc nhỏ như dọn dẹp nhà cửa trông coi nhà cho tới những công việc nghiên cứu thám hiểm hầm mỏ, các môi trường độc hại và vũ trụ…vv
Ở Việt Nam thuật ngữ Robot không còn xa lạ nhưng việc chế tạo và sử dụng Robot chỉ mới giới hạn trong các cuộc thi MCR, Robot mìn hay Robocon, chưa ứng dụng rộng rãi vào đời sống Trước yêu cầu đó nhóm sinh viên thực hiện
đề tài đã chọn đề tài “Nghiên cứu và thiết kế Robot thám hiểm”, với mô hình được lấy từ ý tưởng các Robot di động và những chiếc xe tăng mạnh mẽ với cơ cấu chuyển động bằng bánh xích có thể di chuyển động linh hoạt trong địa hình không bằng phẳng Để việc quan sát thăm dò và điều khiển mang tính tự động và linh hoạt cao thì việc điều khiển Robot được thao tác trên máy vi tính nhờ
Trang 35Camera quan sát đặt trên Robot hứa hẹn được phát triển và ứng dụng trong nhiều lĩnh vực
2 Hoạt động chung của mô hình
Robot hoạt động với sự điều khiển hoàn toàn bằng máy vi tính, giao tiếp với máy vi tính bằng cổng COM qua chuẩn RS-232 bằng dây cáp điện 7 lõi, tính hiệu truyền từ Camera và vi điều khiển về máy vi tính thông qua dây cáp này Chương trình điều khiển Robot với giao diện điều khiển viết bằng C Sharp, hình ảnh truyền từ Camera được hiển thị trên máy vi tính thông qua chương trình Ulead VideoStudio SE DVD Vi điều khiển 18F4431nhận tính hiệu từ RC7/RXD
để xử lí điều khiển Robot, 18F4331 được lập trình trước bằng ngôn ngữ C viết trên phần mềm CCSC, khi nhận tính hiệu điều khiển từ máy tính thì vi điều khiển
sẽ xử lý điều khiển Robot tiến, lùi, xoay trái, xoay phải và dừng lại thông qua hệ thống truyền động bởi hệ thống động cơ, bánh xích và dây xích Đồng thời khi Robot hoạt động ta còn có thể xoay Camera để quan sát Bên trong Robot còn được gắn hệ thống Encoder để đếm số vòng quay của bánh xe và thông qua việc lập trình để tính toán quãng đường Robot đi được
3 Sơ đồ khối hệ thống
Hình 3.1: Sơ đồ khối hệ thống
VI ĐIỀU KHIỂN
ĐỘNG
CƠ BÊN TRÁI
RC SERVO CAMERA
ĐỘNG
CƠ BÊN PHẢI
ENCODER
COMPUTER
Trang 36Như đã giới thiệu Robot thăm dò là thiết bị được con người điều khiển trực tiếp và nhận tính hiệu truyền hình từ Camera về máy vi tính Để thực hiện những việc nêu trên thì Robot được cấu tạo từ những bộ phận nhỏ, mỗi bộ phận
có nhiệm vụ riêng và hỗ trợ lẫn nhau Sơ đồ khối hệ thống được đưa ra nhằm giúp người đọc có cái nhìn tổng quát về hoạt động của Robot
a Khối mạch xử lý
Board mạch trung tâm MCU
Board mạch trung tâm đóng vai trò rất quan trọng trong hệ thống để phân tích và xử lý các tính hiệu đồng thời thực hiện việc điều khiển cho các thiết bị
Nguồn cung cấp
Nguồn là khối rất quan trọng trong mạch điện tử đảm bảo duy trì hoạt động của mạch được liên tục Trong phạm vi đề tài nguồn cung cấp cho mạch điều khiển, Encoder, Camera và các động cơ là nguồn Adaptor DC 24V-2A Nguồn 24V được dùng dể kích IC L298 điều khiển 2 động cơ chính giúp Robot chuyển động Bên cạnh đó với sự phát triển của công nghệ vi mạch các nhà sản xuất đã cho ra đời hàng loạt IC ổn áp chuyên dùng có độ ổn định cao, các IC này còn tích hợp cả mạch bảo vệ quá áp, quá dòng với nhiều chủng loại IC như: 78xx, 79xx… Do đó để tạo nguồn điện áp 12V cung cấp cho Camera và điện áp 5V cung cấp cho các khối mạch sử dụng điện áp 5V hoạt động người làm đã chọn IC LM7812 và LM7805
Hình 3.2: 78xx
Mạch điều khiển
Đây là khối mạch quan trọng nhất quyết định sự thông minh và đóng vai trò như bộ não của Robot, điều khiển toàn bộ hoạt động của Robot theo chương
Trang 37trình đươc lập trình sẵn Vi điều khiển đảm nhận việc tính toán, xử lý và đưa ra các đáp ứng thích hợp cho hoạt động của Robot và giao tiếp với máy vi tính để nhận dữ liệu điều khiển cũng như việc gửi dữ liệu về máy vi tính
Khối này có một VĐK PIC 18F4431 điều hành mọi hoạt động của Robot
do phải thực hiện nhiều việc cùng lúc nên đòi hỏi việc xử lý phải nhanh, xuất các tính hiệu điều khiển thích hợp đến IC điều khiển các motor, RC Servo… và nhận tính hiệu từ cảm biến Encoder
Hình 3.3: PIC 18F4431 Mạch tạo dao động
Khối tạo dao động có nhiệm vụ hết sức quan trọng giúp cho mạch hoạt động đồng bộ Nó có thể được thiết kế từ mạch dùng IC 555, thạch anh… Do yêu cầu đề tài cần độ chính xác cao nên người thiết kế đã sử dung thạch anh có tần số 12MHz nhầm tạo xung clock có tần số ổn định để tạo sự đồng bộ cao giữa các khối, hai tụ lọc được dùng trong mạch dao động có giá trị 33pF
Thạch anh có đặc tính là khi chịu kích thích bởi một điện trường thì sẽ bị biến dang sinh ra dao động cơ học cho nên tinh thể thạch anh là một mạch dao động cộng hưởng cơ bản có tần số dao động rất ổn định
Hình 3.4: Mạch tạo dao động
Board mạch giao tiếp vi điều khiển với máy vi tính
Mạch điều khiển Robot dùng chuẩn RS232 giao tiếp VĐK với máy vi tính bằng việc nhận tín hiệu điều khiển từ máy tính đưa vào VĐK để xử lý điều khiển các thiết bị và nhận tín hiệu từ VĐK VĐKề máy vi tính thông qua cổng COM
Trang 38Hình 3.5: Female COM
Board mạch điều khiển động cơ
Dùng IC L298 để điều khiển đảo chiều, điều khiển tốc độ động cơ, IC L298 là mạch tích hợp 2 mạch cầu H đơn chip có kiểu vỏ công suất 15 chân có khả năng hoạt động ỏ điện áp đến 46V, dòng chịu đến 4A, bảo vệ quá nhiệt Với những tính năng tiện ít đó, IC L298 được dùng để điều khiển hai động cơ chính dùng cho chuyển động của Robot
Hình 3.6: L298
b Thiết bị truyền hình ảnh từ Camera về máy vi tính
Sử dụng EasyCap USB TV Capture để kết nối Camera với máy vi tính thông qua cổng USB 2.0
Hình 3.7: EasyCap USB TV Capture
EasyCap USB TV Capture có khả năng ghi lại hình ảnh và âm thanh chất lượng cao trực tiếp từ cổng USB 2.0 mà không cần thông qua card âm thanh của
Trang 39máy tính Quá trình cài đặt thiết bị hết sức đơn giản Thiết bị không cần sử dụng nguồn bên ngoài mà sử dụng trực tiếp nguồn từ cổng USB
c Khối động cơ điều khiển Camera
Động cơ điều khiển Camera là động cơ RC Servo, vì RC Servo có thể xoay Camera đạt góc độ mong muốn một cách đơn giản mà không cần các công tắc hành trình hay mạch điện phức tạp
Hình 3.8: RC Servo
d Động cơ chính
Phần động cơ dùng cho cơ cấu chuyển động của Robot là động cơ DC, có giảm tốc, độ hãm tốt… vì động cơ DC có đăc tính ưu việt hơn so với các động cơ khác, đó là đặc tính điều chình tốc độ dễ dàng nhờ đó mà cấu trúc mạch điều khiển động lực khá đơn giản Từ nhũng đặc tính trên người làm đã chọn động cơ
để điều khiển Robot là hai động cơ Hàn Quốc có giảm tốc model KM3448A sử dụng nguồn 24V DC, tốc độ 50 vòng/phút được lắp so le trên đế Robot Nguồn cấp cho động cơ là nguồn Adaptor 24V DC
Hình 3.9: Động cơ Hàn Quốc có giảm tốc
Trang 40e Khối Camera
Camera sử dụng là Camera mini Vantech model VT-2100S với độ phân giải 480 TV Line và hệ màu PAL : 510(H)x492(V) Nguồn nuôi cho Camera sử dụng nguồn 12V được tạo từ IC LM7812
Hình 3.10: Camera mini Vantech model VT-2100S
f Khối cảm biến đường đi (Encoder)
Sử dụng Encoder hồng ngoại với 2 pha tính hiệu pha A và pha B lệch nhau 30o dùng để đếm xung và xác định chiều chuyển động của Robot
Đĩa chia Encoder sử dung loại đĩa 100 lỗ được lấy từ động cơ Encoder
Hình 3.11: Đĩa Encoder 100 xung
g Khối hiển thị (Máy vi tính)
Hiển thị những yêu cầu của hệ thống khi đang hoạt động trên giao diện điều khiển, tính hiệu điều khiển được gửi về từ Camera cho phép người sử dung
có thể quan sát điều khiển Robot dễ dàng và sử lý sự cố kịp thời, giúp cho việc kiểm soát Robot tốt hơn, với những hướng dẫn hiển thị trên máy vi tính sẽ làm Robot dễ điều khiển và gần gũi với người sử dụng
Ngoài ra máy vi tính còn là thiết bị dùng để lập trình, chương trình điều khiển được nạp xuống VĐK bằng cổng COM với chuẩn RS232
Hình 3.12: Computer