0

ĐATN trần huy long vũ

71 8 0
  • ĐATN trần huy long vũ

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 23/06/2022, 19:34

ĐỒ ÁN TỐT NGHIỆP Đề Tài NGHIÊN CỨU LẬP TRÌNH ĐIỀU KHIỂN CHUYỂN ĐỘNG CÁNH TAY VÀ MÁY TÍNH NHÚNG LATTERTHÔNG TIN SỬ DỤNG MÁY TÍNH NHÚNG LATTER PANDA.HUYỂN ĐỘNG CÁNH TAYHUYỂN ĐỘNG CÁNH TAYHUYỂN ĐỘNG CÁNH TAY TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN KHOA CƠ KHÍ ĐỒ ÁN TỐT NGHIỆP Đề Tài: NGHIÊN CỨU LẬP TRÌNH ĐIỀU KHIỂN CHUYỂN ĐỘNG CÁNH TAY VÀ KHỚP CỔ CHO ROBOT THƠNG TIN SỬ DỤNG MÁY TÍNH NHÚNG LATTER PANDA Giảng viên hướng dẫn : ThS Trịnh Thanh Nga Sinh viên thực : Trần Huy Long Vũ Lớp : 110186 Hưng Yên, tháng 06, năm 2022 LỜI CẢM ƠN Em xin chân thành cảm ơn Trường Đại học Sư phạm kỹ thuật Hưng Yên cho phép thực đề tài Cảm ơn Khoa Cơ khí Bộ môn Cơ điện tử tạo điều kiện tốt suốt trình thực đề tài Cảm ơn Th.S Trịnh Thanh Nga tận tình hướng dẫn chun mơn để nhóm thực hoàn thành đề tài nghiên cứu Em xin cảm ơn gia đình bạn bè giúp đỡ, động viên, hộ trợ em thời gian qua Tuy nhiên thời gian thực đồ án em vài thiếu sót, mong nhận ý kiến đóng góp nhiệt tình q thầy Sau em xin kính chúc tất thầy Khoa sức khỏe dồi để tiếp tục dìu dắt hệ học trị tới thành cơng Em xin chân thành cảm ơn! Sinh viên thực Trần Huy Long Vũ MỤC LỤC DANH MỤC HÌNH ẢNH Hình 3.1 Lưu đồ thuật tốn chung tốn Hình Thuật tốn truyền nhận máy tính nhúng Arduino Hình 3.3 Khai báo thư viện Hình 3.4 Khai báo sử dụng truyền thông Serial thư viện Pyserial Hình 3.5 Hàm nghe Hình 3.6 Hàm nói Hình 3.7 Lưu đồ thuật tốn điều khiển khối cử Hình 3.8 Hàm kiếm tra tín hiệu âm Hình 3.9 Gửi tín hiệu xuống Arduino Hình 3.10 Gửi tín hiệu xuống Arduino Hình 11 Khai báo Hình 12 Các chân điều khiển động Servo Hình 15 Nhận tín hiệu từ khối giao tiếp Hình 17 Điều khiển khối cử hàm chế độ CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 Lý chọn đề tài Đặt vấn đề: Ngày nay, xã hội đại, khoa học kỹ thuật phát triển sống người có nhu cầu sử dụng đầy đủ thiết bị thông minh để phục vụ cho sinh hoạt cơng việc mình, điển Robot Hiện ngành phát triển vô mạnh mẽ, Robot đại thông minh Robot truyền thống đặc biệt lĩnh vực tương tác người Robot bùng nổ Mặc dù vậy, Robot nghiên cứu số quốc gia phát triển ngơn ngữ hỗ trợ ngôn ngữ thông dụng như: Anh, Nhật vv, ngơn ngữ Tiếng Việt cịn thiếu sót Chưa kể đến giá thành Robot cao với nhu cầu hỗ trợ thông tin sở trường học, bệnh viện, quan nhà nước.v.v quan trọng Vì vậy,dựa kết đạt từ đồ án trước em tìm hiểu, nghiên cứu, chọn đề tài: "Nghiên cứu lập trình điều khiển chuyển động cánh tay khớp cổ cho Robot thơng tin sử dụng máy tính nhúng latter panda " để làm đồ án tốt nghiệp Lựa chọn ứng dụng Máy tính nhúng Lattepanda lí chúng em lựa chọn đề tài tiêu ưu tiên kinh phí thấp độ xác cao 1.2 Yêu cầu đề tài - Nghiên cứu thiết kế khí cho hệ thống đảm bảo yêu cầu kích thước:  Kích thước khung bàn  Trọng lượng chi tiết linh kiện  Đảm bảo yêu cầu khí linh kiện hình thức, thẩm mỹ,  Dễ dàng lắp ráp sử dụng  Các chi tiết thiết kế phải phù hợp với giá thành 1.3 Phương pháp nghiên cứu • Thiết kế mơ hình chạy mơ • Thường xuyên trao đổi với giáo viên hướng dẫn để giải vấn đề khúc mắc • Làm việc nhóm thường xun để đạt hiệu cơng việc chia sẻ kiến thức • Tiến hành hồn thiện mơ hình • Tìm hiểu ngun lý hoạt động module thiết bị điện nhà 1.4 Mục tiêu, nhiệm vụ • Nghiên cứu thiết bị • Nghiên cứu servo • Thiết kế mạch điều khiển cho hệ thống • Mơ phỏng… • Chế tạo… • Kiểm nghiệm mạch… 1.5 Đối tượng nghiên cứu Với đề tài “ Nghiên cứu lập trình điều khiển chuyển động cánh tay khớp cổ cho robot thông tin sử dụng máy tính nhúng latter panda” em tập trung nghiên cứu vấn đề sau: • Nghiên cứu chọn lựa thiết kế thiết bị Nghiên cứu thiết kế tồn khung bàn • Ứng dụng thực tiễn đề tài CHƯƠNG 2: PHÂN TÍCH CHUYỂN ĐỘNG CÁNH TAY, GIẢI BÀI TOÀN ĐỘNG HỌC NGƯỢC VÀ CHỌN THIẾT BỊ 2.1 Các cử giao tiếp người Giao tiếp hoạt động thường xuyên diễn sống Trong nói chuyện, người thường kèm theo động tác thể Có thể nói hai phương tiện giao tiếp chủ yếu, thường gặp lời nói (ngơn ngữ) cử (phi ngơn ngữ) Cử nét mặt, ánh mắt, động tác thể… Trong tình cụ thể, cử mang ý nghĩa định Có thể nói, cử thể thứ ngôn ngữ không lời giao tiếp Nó góp phần quan trọng vào thành cơng giao tiếp, đặc biệt giao tiếp mặt đối mặt Cánh tay phận có khả di chuyển nhiều bạn trị chuyện Các tư vị trí cánh tay nói lên nhiều điều thú vị Nó giúp củng cố thơng điệp rõ ràng Nó giúp chứng minh thái độ cảm xúc với vấn đề mà người nói nói tới Hình Các cử giao tiếp người 2.2 Mơ hình hóa cánh tay Robot giải tốn động học ngược 2.2.1 Mơ hình hóa cánh tay Robot Hình 2 Mơ hình hóa cánh tay trái Robot Hình Mơ hình hóa cánh tay trái Robot 2.2.2 Giải toán động học ngược Xuất phát từ cơng thức tốn thuận (1) T4 = n  x  n y  nz  A1 A2 A3 A4  sx sy sz a x p x  a y p y   az pz    Ta có công thức tổng quátt sau: (2) Tn = Ti1Tn Nhân hai vế với Ti-1 ta có : −1 Ti −1 = ( A1 A2 Ai) −1 = Ai A A Ti Tn = T n −1 i ; Ta có : (3) −1 Ai A A Tn = T n −1 −1 i Kết hợp (1) với ta có: (4) i T n = Ai A A −1 −1 −1 n  x  n y   nz   sx sy sz a x p x  a y p y   az pz    Từ biểu thức (3) ứng với ( i ÷3 ; n =4 ) ta có: Rơbơt co bậc tự ta có 10 −1 −1 delay(1000); sv1.write(74); sv2.write(10); sv3.write(30); sv4.write(120); sv5.write(42); sv6.write(97); sv7.write(10); sv8.write(74); sv9.write(127); sv10.write(127); delay(1000); } void chedo5() /*Dang tay ôm*/ { sv1.write(20); sv2.write(64); sv3.write(24); sv4.write(120); sv5.write(42); sv6.write(103); sv7.write(64); sv8.write(20); sv9.write(127); sv10.write(127); } 57 void chedo6() /*Cool ngầu*/ { sv1.write(78); sv2.write(78); sv3.write(30); sv4.write(97); sv5.write(0); sv6.write(127); sv7.write(85); sv8.write(10); sv9.write(127); sv10.write(127); } void chedo7() /*Chỉ trái*/ { sv1.write(0); sv2.write(10); sv3.write(0); sv4.write(191); sv5.write(42); sv6.write(127); sv7.write(78); sv8.write(10); sv9.write(127); sv10.write(127); } 58 void chedo8() /*Chỉ phải*/ { sv1.write(0); sv2.write(81); sv3.write(0); sv4.write(71); sv5.write(42); sv6.write(127); sv7.write(0); sv8.write(0); sv9.write(127); sv10.write(127); } void chedo9() /*Xin chào*/ { sv1.write(64); sv2.write(64); sv3.write(64); sv4.write(120); sv5.write(42); sv6.write(127); sv7.write(0); sv8.write(0); sv9.write(127); sv10.write(127); delay(1000); sv1.write(50); 59 delay(1000); } void chedo10() /*Băn khoăn*/ { sv1.write(78); sv2.write(84); sv3.write(64); sv4.write(120); sv5.write(42); sv6.write(127); sv7.write(0); sv8.write(0); sv9.write(127); sv10.write(127); delay(1000); sv1.write(71); sv9.write(113); delay(1000); } void chedo11() /*Xin mời*/ { sv1.write(57); sv2.write(10); sv3.write(10); sv4.write(120); sv5.write(42); 60 sv6.write(113); sv7.write(10); sv8.write(71); sv9.write(155); sv10.write(155); } void chedo12() /*Oh yeah*/ { sv1.write(0); sv2.write(10); sv3.write(127); sv4.write(120); sv5.write(42); sv6.write(0); sv7.write(10); sv8.write(0); sv9.write(127); sv10.write(127); } void chedo13() /*Đầu hàng*/ { sv1.write(64); sv2.write(64); sv3.write(64); sv4.write(127); sv5.write(42); 61 sv6.write(64); sv7.write(64); sv8.write(64); sv9.write(127); sv10.write(127); } void chedo14()/*cúi mặt buồn*/ { sv1.write(0); sv2.write(10); sv3.write(0); sv4.write(127); sv5.write(0); sv6.write(127); sv7.write(0); sv8.write(0); sv9.write(127); sv10.write(127); } void chedo15()/*chỉ tay lên trời*/ { sv1.write(0); sv2.write(10); sv3.write(127); sv4.write(127); 62 sv5.write(57); sv6.write(127); sv7.write(0); sv8.write(0); sv9.write(127); sv10.write(127); } void loop() { if (Serial2.available()) { value = Serial2.read(); //Serial.write(value); } if (Serial.available()) { value = Serial.read(); //Serial1.write(value); } switch(value) 63 { case '0': chedo0(); break; case '1': chedo1(); break; case '2': chedo2(); break; case '3': chedo3(); break; case '4': chedo4(); break; case '5': chedo5(); break; case '6': chedo6(); break; case '7': chedo7(); break; case '8': chedo8(); break; case '9': chedo9(); break; case 'a': chedo10(); break; case 'b': chedo11(); break; case 'c': chedo12(); break; case 'd': chedo13(); break; case 'e': chedo14(); break; case 'f': chedo15(); break; } } 64 Chương trình điều khiển ngôn ngữ Python: import speech_recognition import time from time import sleep import pyttsx3 import speech_recognition as sr from gtts import gTTS import os import time from playsound import playsound import serial ardu= serial.Serial('COM4',9600, timeout=1) # CHE DO DIEU KHIEN CANH TAY, DAU def xerial0(): s = ardu.readline() ardu.write('0'.encode()) def xerial1(): s = ardu.readline() ardu.write('1'.encode()) def xerial2(): s = ardu.readline() ardu.write('2'.encode()) def xerial3(): s = ardu.readline() 65 ardu.write('3'.encode()) def xerial4(): s = ardu.readline() ardu.write('4'.encode()) def xerial5(): s = ardu.readline() ardu.write('5'.encode()) def xerial6(): s = ardu.readline() ardu.write('6'.encode()) def xerial7(): s = ardu.readline() ardu.write('7'.encode()) def xerial8(): s = ardu.readline() ardu.write('8'.encode()) def xerial9(): s = ardu.readline() ardu.write('9'.encode()) def xeriala(): 66 s = ardu.readline() ardu.write('a'.encode()) def xerialb(): s = ardu.readline() ardu.write('b'.encode()) def xerialc(): s = ardu.readline() ardu.write('c'.encode()) def xeriald(): s = ardu.readline() ardu.write('d'.encode()) def xeriale(): s = ardu.readline() ardu.write('e'.encode()) def xerialf(): s = ardu.readline() ardu.write('f'.encode()) def assistant(): noi("""Xin chào bạn Tôi robot hỗ trợ thông tin :) Sẽ thật tuyệt biết tên bạn Bạn tên nhỉ?""") 67 ten = get_you() listten = ten.split() name = listten[-1] if name: listname = ['Trợ lý hân hạnh trợ giúp cho bạn {}'.format(name), 'Chào bạn {} Bạn cần Trợ lý giúp nào?'.format(name), 'Rất vui gặp {} Tơi giúp cho bạn?'.format(name)] a = random.choice(listname) xerial1() xerialu() noi(a) while True: you = get_you() if not you: break elif "robot ngu" in you or "dốt" in you or "đần độn" in you or "kém" in you: listngu = ['Bạn làm buồn Tôi HƠI HƠI ngu thật','Chỉ chút mà Tôi thông minh ', 'Tôi học hỏi thông minh bạn hihi'] ngu = random.choice(listngu) xeriale() xerialv() noi(ngu) elif "có đẹp khơng" in you or "đẹp trai khơng" in you or "xinh không" in you or "xinh gái không" in you: xeriald() xerialt() 68 noi('Thầy trẻ trung phong độ lắm.') elif "điên" in you or "dở" in you or "hâm" in you or "thần kinh" in you: listcrazy = ['Đôi phải khùng khùng chút đời vui hihi','Có lé đến lúc tìm trợ giúp từ bệnh viện rồi.', 'Chắc chắn điên Nhưng đáng yêu '] crazy = random.choice(listcrazy) xeriala() xerialv() noi(crazy) elif "bạn đẹp" in you or "bạn thật tuyệt" in you or "bạn giỏi lắm" in you or "Robot giỏi lắm" in you or "rất tốt" in you: xerial6() xeriali() noi("Không đẹp đâu, tơi cịn ngầu đấy!") elif "tơi xin lỗi" in you or "xin lỗi bạn" in you or "xin lỗi robot" in you: xerial5() xeriali() noi("tôi muốn ôm bạn") elif "ôm" in you or "tôi muốn ôm" in you or "ôm đi" in you: listhug = ['ôm nào','lại nào','tôi muốn ôm bạn nha '] hug = random.choice(listhug) xerial5() xeriali() noi(hug) elif "giận đi" in you or "hờn đi" in you or "dỗi đi" in you: listemt = ['đã dỗi thật','bạn khơng thích tơi gì','được thơi mặt buồn'] 69 emt = random.choice(listemt) xerial2() xerialw() noi(emt) elif "bạn nhất" in you or "bạn mười điểm" in you or "bạn 10 điểm" in you: listvodoi = ['tơi cịn phải học hỏi bạn nhiều','khơng dám, cảm ơn bạn, hihi','mình số hai khơng số một'] vodoi = random.choice(listvodoi) xerialf() xerialt() noi(vodoi) elif "chào cờ đi" in you or "có biết chào cờ khơng" in you: listchaoco = ['Đồn qn việt nam đi, chung đường cứu nước','nghiêm '] chaoco = random.choice(listchaoco) xerial3() noi(chaoco) elif "tôi đây" in you or "tôi nha" in you or "tôi nhé" in you: listxinmoi = ['xin mời', 'rất hân hạnh phục vụ'] xinmoi = random.choice(listxinmoi) xerialb() noi(xinmoi) elif "trái đâu" in you or "chỉ bên trái" in you: xerial7() noi("là bên nè") elif "phải đâu" in you or "chỉ bên phải" in you or "thế bên phải" in you: xerial7() 70 noi("Đương nhiên bên lại rồi") elif "tạm biệt" in you or "ngủ thôi" in you: xerial9() xerialu() stop() xerial0() break elif "có thể làm gì" in you or "chức trợ lý" in you: help_me() elif "chào robot" in you or "xin chào robot"in you or "xin chào" in you: xerial9() xerialt() hello(name) assistant 71 ... dồi để tiếp tục dìu dắt hệ học trị tới thành cơng Em xin chân thành cảm ơn! Sinh viên thực Trần Huy Long Vũ MỤC LỤC DANH MỤC HÌNH ẢNH Hình 3.1 Lưu đồ thuật tốn chung tốn Hình Thuật tốn truyền nhận... CHƯƠNG 2: PHÂN TÍCH CHUYỂN ĐỘNG CÁNH TAY, GIẢI BÀI TOÀN ĐỘNG HỌC NGƯỢC VÀ CHỌN THIẾT BỊ 2.1 Các cử giao tiếp người Giao tiếp hoạt động thường xuyên diễn sống Trong nói chuyện, người thường kèm... trọng vào thành cơng giao tiếp, đặc biệt giao tiếp mặt đối mặt Cánh tay phận có khả di chuyển nhiều bạn trị chuyện Các tư vị trí cánh tay nói lên nhiều điều thú vị Nó giúp củng cố thơng điệp rõ
- Xem thêm -

Xem thêm: ĐATN trần huy long vũ,