1. Trang chủ
  2. » Công Nghệ Thông Tin

Chế tạo và lập trình robot với python

105 1 0

Đang tải... (xem toàn văn)

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

THÔNG TIN TÀI LIỆU

Chế tạo và lập trình robot với Python Sáng Chế và Lập Trình Robot Tài liệu này sẽ hướng dẫn bạn khám phá về lĩnh vực robot thông qua việc tìm hiểu, tự xây dựng lắp ráp robot từ đầu và lập trình chúng.

Sáng Chế Lập Trình Robot Tài liệu hướng dẫn bạn khám phá lĩnh vực robot thông qua việc tìm hiểu, tự xây dựng lắp ráp robot từ đầu lập trình chúng hoạt động ngơn ngữ Python - ngôn ngữ dần phổ biến cộng đồng Makers, STEM ứng dụng trí tuệ nhân tạo (AI) Tài liệu chia làm phần chính, tương ứng với chuyên đề sách giáo khoa Tin học lớp 10 - Chuyên đề Khoa học máy tính, bao gồm: phận robot, mơi trường lập trình kết nối robot với máy tính, lập trình điều khiển robot Ở cuối tài liệu, bạn hướng dẫn thực dự án thiết kế, chế tạo lập trình robot thực chức hữu ích cho người thực tế Nội dung tài liệu xếp từ đến nâng cao, giúp bạn dễ dàng nắm vững khái niệm lập trình, điện tử robot mà khơng cần kiến thức tảng trước Tài liệu xây dựng dựa kit Maker Robot Kit Đây kit thiết kế dành riêng cho nội dung Robotics giáo dục STEM, giúp bạn làm quen với giới lập trình chế tạo robot cách dễ dàng Bộ kit lập trình ngơn ngữ khối lệnh (cho em từ 8-12 tuổi) ngôn ngữ nâng cao dạng chữ C/C++ Python (cho lứa tuổi cao hơn) Bộ điều khiển xController Maker Robot Kit với cấu hình mạnh mẽ module sử dụng chuẩn cắm Plug & Play, giúp việc thực hành lắp ráp sáng tạo trở nên dễ dàng hết, đặc biệt phù hợp với lớp học STEM Ngơn ngữ lập trình sử dụng tài liệu Python, ngơn ngữ lập trình bậc cao Guido van Rossum tạo Python sử dụng phổ biến giáo dục nhiều lĩnh vực ứng dụng trí tuệ nhân tạo, khoa học liệu, lập trình web, game,… So với C/C++ tảng Arduino, lợi Python, ngơn ngữ lập trình cấp cao, gần gũi với ngơn ngữ tự nhiên Python có cấu trúc rõ ràng, dễ đọc, dễ hiểu cho người bắt đầu Người dùng thực thi lệnh trực tiếp để thử nghiệm kiểm tra code cách nhanh chóng mà khơng phải biên dịch lại Arduino, giúp tiết kiệm nhiều thời gian Cuối cùng, chúc bạn đạt nhiều kiến thức bổ ích, tự sáng tạo robot cho riêng có tảng lĩnh vực Robotics với giáo trình Mục Lục Phần 1: Các thành phần robot Robot gì? Đặc điểm robot Cấu tạo chung robot giáo dục Robot giáo dục Cấu tạo chung robot 8 Các phận điện, điện tử robot Bảng mạch Động điện Mạch điều khiển động Pin Cảm biến Cảm biến siêu âm Cảm biến dò đường Các thành phần khác 11 11 13 16 17 18 18 20 21 Lắp ráp phận robot giáo dục Chuẩn bị linh kiện, phụ kiện Hướng dẫn lắp ráp robot 23 23 27 Phần 2: Kết nối Robot với máy tính Bài 1: Kết nối robot với máy tính qua USB Các kênh truyền thơng robot máy tính Phần mềm kết nối robot với máy tính Cài đặt làm quen với OhStem App Giao diện lập trình Cài đặt driver cho xController Các bước cài đặt driver Kiểm tra kết nối robot với máy tính 35 35 35 35 37 38 39 39 41 Bài 2: Kết nối robot qua Bluetooth Kết nối robot với máy tính thơng qua Bluetooth Kết nối robot với điện thoại thông qua Bluetooth 44 44 45 Bài 3: Thực hành kết nối nạp chương trình cho robot Mục tiêu Viết chương trình Giải thích chương trình Thư viện (library) gì? Hướng dẫn đặt tên, lưu, tạo chia sẻ chương trình 48 48 48 53 53 54 Phần 3: Lập trình điều khiển robot 58 Bài 1: Điều khiển động Di chuyển tới lui Mục tiêu Viết chương trình Giải thích chương trình Di chuyển qua trái quay phải Mục tiêu Viết chương trình Giải thích chương trình Điều khiển động riêng biệt Mục tiêu Viết chương trình Giải thích chương trình 58 58 58 58 58 59 59 60 60 61 61 61 61 Bài 2: Làm việc với đèn LED RGB Bật tắt đổi màu đèn LED RGB Mục tiêu Kiến thức Viết chương trình Giải thích chương trình Robot di chuyển bật đèn Mục tiêu Viết chương trình 63 63 63 63 64 64 65 65 65 Bài 3: Làm việc với nút nhấn Làm việc với nút nhấn Mục tiêu Viết chương trình Giải thích chương trình Câu lệnh “if" Câu lệnh “if … else" Câu lệnh “if … elif … else" Nhấn nút để bắt đầu chương trình Mục tiêu Viết chương trình Giải thích chương trình 67 67 67 67 68 68 69 69 70 70 70 71 Bài 4: Phát âm với còi báo Phát nhạc với còi báo Mục tiêu Kiến thức Còi báo (buzzer) Hàm (function) lập trình Viết chương trình 72 72 72 72 72 73 74 Giải thích chương trình Phát âm robot bắt đầu hoạt động Mục tiêu Viết chương trình Giải thích chương trình 75 77 77 77 78 Bài học 5: Cảm biến khoảng cách Phát vật cản Mục tiêu Viết chương trình Giải thích chương trình Robot né vật cản Mục tiêu Viết chương trình Giải thích chương trình 79 79 79 79 79 80 80 81 81 Bài 6: Robot dò đường Chuẩn bị sa bàn Cơ chế dò đường robot Robot dò đường Mục tiêu Viết chương trình Giải thích chương trình Robot né tránh đường line Mục tiêu Viết chương trình Giải thích chương trình 83 83 83 84 84 84 85 87 87 87 88 Bài 7: Điều khiển tay gắp Giới thiệu tay gắp Robot đóng mở tay gắp Mục tiêu Viết chương trình Giải thích chương trình 90 90 90 90 91 91 Bài học 8: Điều khiển qua remote Mục tiêu Kiến thức mới: Ánh sáng hồng ngoại Viết chương trình Giải thích chương trình 93 93 93 95 95 Bài học 9: Điều khiển qua Bluetooth Mục tiêu Hướng dẫn tạo bảng điều khiển Các bước tạo bảng điều khiển Các loại điều khiển Tạo bảng điều khiển động Servo, đèn âm nhạc 98 98 99 99 100 101 Lời cuối sách 105 Phần 1: Các thành phần robot Robot gì? Sự đời robot tạo nên thời đại phát triển vượt bậc khoa học kỹ thuật Robot nâng cao chất lượng sống giảm tối đa công việc nặng nhọc, nguy hiểm cho người Với công việc lặp lặp lại, robot thực nhanh chóng thay sức lao động cho hàng chục người Hiện nay, robot trở nên thông minh gần gũi với người Ta kể đến vài loại robot phổ biến robot dọn dẹp nhà cửa - trợ lý giúp việc, có khả tìm kiếm biết lập kế hoạch đường để tránh đồ đạc nhà; robot giáo dục thông minh giúp trẻ em vừa học vừa chơi, tích hợp nhiều loại ngơn ngữ khác để giao tiếp với trẻ em; cánh tay robot - phát triển vượt bậc ngành công nghiệp, chúng thực cơng việc cần xác tuyệt đối, giúp tiết kiệm thời gian, giảm chi phí nhân công Robot ứng dụng vào nhiều lĩnh vực khác sống quân hay y tế Nói ngắn gọn, robot sử dụng nhằm phục vụ người, giúp tăng chất lượng, hiệu cơng việc giảm chi phí thực (Theo SGK Cánh Điều, Chuyên đề học tập Tin học 10 - Khoa học máy tính, chuyên đề 1) Đặc điểm robot Một số đặc điểm chung robot nêu SGK Cánh Điều, Chuyên đề học tập Tin học 10 - Khoa học máy tính, chuyên đề 1, trang 7, sau: Khả thu nhận thông tin Robot có khả thu nhận thơng tin khác nhau, nhờ vào chức loại cảm biến sử dụng robot Các cảm biến ví giác quan người, giúp robot nhìn thấy cảm nhận mơi trường xung quanh Khả tự vận hành Robot có khả tự vận hành nhờ vào cấu chấp hành robot tương tác với Cơ cấu chấp hành robot động thực việc chuyển lượng điện thành chuyển động, giúp robot di chuyển bánh xe cử động cánh tay động Yêu cầu cung cấp lượng Để robot hoạt động, cần cung cấp lượng cho robot pin, nguồn điện trực tiếp từ lưới điện, lượng điện từ mặt trời Trí thơng minh Trí thơng minh robot thường có lập trình Nhờ vào thơng minh này, robot có khả tự động hồn thành cơng việc mà thiết kế lập trình sẵn Hình dạng robot Robot có nhiều hình dạng khác như: robot hút bụi có hình trịn, cánh tay robot có hình dạng giống với cánh tay người có khả làm việc tự động có độ xác cao, người máy robot có hình dạng giống người Tùy vào mục đích sử dụng mà robot có hình dạng tương ứng, số hình dạng mẫu: Người máy Asimo Cánh tay robot Robot hút bụi Một số hình dạng robot Cấu tạo chung robot giáo dục Robot giáo dục Robot giáo dục mơ hình mơ số chức đơn giản robot thực tế, có kích thước nhỏ gọn an tồn, giúp học sinh thỏa sức sáng tạo thơng qua việc lắp ráp Nhiều loại robot giáo dục có đa dạng mơ hình, cho phép học sinh thỏa sức sáng tạo lắp ráp thành nhiều robot có hình dáng khác Thông qua việc học tập với robot giáo dục, học sinh rèn luyện kỹ lập trình, tư máy tính trang bị thêm kiến thức điện, điện tử, khí kiến thức khoa học quanh ta theo phương pháp liên mơn giáo dục STEM Bên cạnh đó, em phát triển kỹ mềm giải vấn đề robot gặp lỗi, kỹ làm việc nhóm, tư phản biện bảo vệ ý kiến khả đánh giá kết cơng việc Dưới số ví dụ minh họa loại robot giáo dục: Robot Vex V5 Robot Rover Robot AI Module Một số loại robot giáo dục Cấu tạo chung robot Cấu tạo chung robot: Các phận robot Theo SGK Cánh Điều, Chuyên đề học tập Tin học 10 - Khoa học máy tính, chuyên đề 1, robot có số đặc điểm chung gồm phần chính: phần cứng (điện - điện tử, khí) phần mềm, định nghĩa sau: Phần cứng gồm: ● Phần điện, điện tử robot gồm phận nhận/xuất xử lý thông tin cảm biến, bảng mạch chính, động điện… Cảm biến siêu âm Cảm biến dò đường Bảng mạch Động giảm tốc Các phận điện, điện tử robot ● Phần khí định mục đích sử dụng hình dạng robot bánh xe, khung xe, tay gắp… Khung xe Bánh xe Bánh xe điều hướng Tay gắp Các phận khí robot Phần mềm giúp điều khiển phối hợp hoạt động phần cứng Con người thường sử dụng ngôn ngữ C, C++, Python, Java… để giao tiếp tạo nên thông minh robot 10 Viết chương trình ● Mở giao diện lập trình phần mềm OhStem App ● Tạo dự án mới, viết chạy thử chương trình sau import time def gap_vat(): servo.position(0, 0) # đóng tay gắp time.sleep(1) def tha_vat(): servo.position(0, 90) # mở tay gắp time.sleep(1) while btn_onboard.is_pressed() == False: pass while True: robot.turn_left_angle(90) gap_vat() time.sleep(1) robot.turn_right_angle(90) tha_vat() time.sleep(1) Sau chạy chương trình, robot liên tục xoay qua trái để gắp vật xoay qua phải để thả xuống Giải thích chương trình Trong chương trình khai báo hàm để gắp vật: def gap_vat(): servo.position(0, 0) # đóng tay gắp time.sleep(1) Câu lệnh để điều khiển Servo quay đến góc định có cú pháp sau: servo.position(index, degrees, max_degree=180) 91 ● index: Số thứ tự cổng servo cần điều khiển xController có cổng servo S1-S8, đánh số từ đến ● degrees: Góc cần quay Góc có giá trị từ đến 180 độ servo 180 độ, từ đến đến 270 độ với loại servo có góc quay 270 độ ● max_degree: Cho biết loại servo có góc quay 180 độ hay 270 độ, lệnh mặc định loại 180 độ không khai báo tham số chương trình mẫu Tương tự, ta khai báo hàm riêng để xử lý việc thả vật xuống: def tha_vat(): servo.position(0, 90) # mở tay gắp time.sleep(1) Trong vịng lặp chính, ta liên tục cho robot quay qua trái gắp vật quay qua bên phải để thả vật: while True: robot.turn_left_angle(90) gap_vat() time.sleep(1) robot.turn_right_angle(90) tha_vat() time.sleep(1) 92 Bài học 8: Điều khiển qua remote Mục tiêu Tìm hiểu tín hiệu hồng ngoại remote điều khiển từ xa kèm Viết chương trình để thay đổi màu sắc đèn LED RGB board remote Kiến thức mới: Ánh sáng hồng ngoại Chắc bạn sử dụng remote hồng ngoại để điều khiển TV, quạt, máy lạnh, không nào? Các remote sử dụng tín hiệu hồng ngoại (Infrared, gọi tắt IR), hiểu chùm sóng ánh sáng khơng thể nhìn thấy mắt thường Do đó, bạn khơng thể thấy ánh sáng phát nhìn vào đèn LED hồng ngoại nhỏ đầu remote Remote điều khiển từ xa Trên remote có nhiều LED hồng ngoại sử dụng để truyền tín hiệu hồng ngoại Tín hiệu nhận thu hồng ngoại đặc biệt chuyển thành dạng xung điện, sau đó, xung điện chuyển đổi thành liệu sử dụng cho thiết bị điện tử Nếu bạn tò mò muốn biết ánh sáng hồng ngoại nào, nhấn nút remote nhìn vào đèn LED đầu remote thông qua camera nhé! 93 Nhận biết ánh sáng hồng ngoại qua camera nhấn nút Board xController tích hợp sẵn đèn LED hồng ngoại, LED thu LED phát Bộ kit robot sử dụng không kèm remote hồng ngoại mà phải mua thêm để thực hành Vị trí đèn LED hồng ngoại mạch xController Trong bạn cần thêm remote hồng ngoại link 94 Remote hồng ngoại Viết chương trình ○ Mở phần mềm OhStem App ○ Tạo chương trình sau from ir_receiver import * ir_rx.start() while True: if ir_rx.get_code() == IR_REMOTE_UP: robot.forward(50) elif ir_rx.get_code() == IR_REMOTE_DOWN: robot.backward(50) elif ir_rx.get_code() == IR_REMOTE_LEFT: robot.turn_left(35) elif ir_rx.get_code() == IR_REMOTE_RIGHT: robot.turn_right(35) else: robot.stop() ir_rx.clear_code() time.sleep(0.1) Giải thích chương trình Chương trình liên tục đọc tín hiệu IR (nếu có) giải Nếu tín hiệu giải mã trùng với phím Lên, Xuống, Trái Phải remote hồng ngoại kèm ta cho robot di chuyển phía tương ứng 95 Ở đầu chương trình, ta khai báo sử dụng thư viện đọc tín hiệu hồng ngoại từ remote IR Thư viện có sẵn firmware xController: from ir_receiver import * Khởi tạo bắt đầu xử lý tín hiệu IR: ir_rx.start() Hàm ir_rx.get_code() trả chuỗi tương ứng với phím nhấn IR remote: ir_rx.get_code() Giá trị tín hiệu nút nhấn remote khai báo sẵn thư viện ir_receiver, bao gồm: ● IR_REMOTE_A ● IR_REMOTE_B ● IR_REMOTE_C ● IR_REMOTE_D ● IR_REMOTE_E ● IR_REMOTE_F ● IR_REMOTE_UP ● IR_REMOTE_DOWN ● IR_REMOTE_LEFT ● IR_REMOTE_RIGHT ● IR_REMOTE_SETUP ● IR_REMOTE_0 ● IR_REMOTE_1 ● IR_REMOTE_2 ● IR_REMOTE_3 ● IR_REMOTE_4 ● IR_REMOTE_5 ● IR_REMOTE_6 ● IR_REMOTE_7 ● IR_REMOTE_8 ● IR_REMOTE_9 96 Trong phần xử lý tín hiệu, ta dùng hàm if để kiểm tra xem tín hiệu nhận có trùng với phím điều hướng hay khơng, có ta cho robot di chuyển phía tương ứng if ir_rx.get_code() == IR_REMOTE_UP: robot.forward(50) elif ir_rx.get_code() == IR_REMOTE_DOWN: robot.backward(50) elif ir_rx.get_code() == IR_REMOTE_LEFT: robot.turn_left(35) elif ir_rx.get_code() == IR_REMOTE_RIGHT: robot.turn_right(35) Ta cho tốc độ quay trái phải chậm so với di chuyển tới, lùi để việc điều khiển robot dễ dàng hơn, tín hiệu từ remote điều khiển hồng ngoại thường không nhạy Trong trường hợp khơng phát phím nhấn, ta cần cho robot dừng lại else: robot.stop() Đồng thời, ta sử dụng thêm hàm ir_rx.clear_code() để xóa tín hiệu xử lý để tránh xử lý tín hiệu trùng lần vòng lặp ir_rx.clear_code() Sau chạy chương trình, bạn thử hướng remote phía board nhấn phím Lên, Xuống, Trái, Phải để điều khiển robot nhé! 97 Bài học 9: Điều khiển qua Bluetooth Mục tiêu Có cách khác để điều khiển robot từ xa, sử dụng phần mềm OhStem App Chúng ta dùng giao diện điều khiển mục Chơi phần mềm tạo bảng điều khiển riêng Giao diện danh mục Chơi Tuy nhiên, bạn tự tạo giao diện điều khiển theo yêu cầu riêng bạn cho mục đích sau: Lắp ráp mơ hình có thêm phụ kiện Điều khiển nhanh chương trình lập module chức trình sẵn (thường sử dụng thi) Dưới giao diện điều khiển tự tạo mẫu mà thực hiện: 98 Giao diện điều khiển tự tạo OhStem App Hướng dẫn tạo bảng điều khiển Các bước tạo bảng điều khiển Để tạo bảng điều khiển mới, bạn vào mục Sáng tạo: Chọn vào mục Sáng tạo 99 Sau , bạn nhấn vào biểu tượng Tạo mới, phần mềm mở giao diện thiết kế bảng điều khiển mới: Giao diện tạo bảng điều khiển Bạn kéo loại điều khiển (còn gọi widget) bên trái vào xếp theo ý bạn Các loại điều khiển Phần mềm OhStem App hỗ trợ loại widget bảng sau: JoyStick D-Pad Nút nhấn (Button) Giúp điều khiển robot di Nút điều khiển hướng, giúp Thực đoạn chuyển tự hướng robot di chuyển với hướng chương trình nhấn nút Nút bật tắt (Switch) Thanh kéo Servo Thanh kéo giá trị (Slider) 100 Nút nhấn thay đổi Thanh điều khiển động Thanh trượt giúp thay đổi trạng thái Bật Tắt Servo giá trị khoảng Bạn cấu hình để chạy Bạn cho chương trình khác cho chạy chương trình trạng thái phím trượt thay đổi vị trí Thanh kéo thả Thanh kéo cho phép kéo phía thả quay vị trí ban đầu Chúng thường sử dụng để tự điều chỉnh động Servo tay Có loại đứng nằm (hình minh họa loại nằm) Tạo bảng điều khiển động Servo, đèn âm nhạc Chúng ta tạo thử bảng điều khiển có chức sau: Có thể di chuyển nút điều khiển hướng Có kéo Servo để điều khiển góc quay Servo nối vào cổng S1 Có nút nhấn để bật cịi cảnh báo Có nút bật tắt để bật tắt đèn LED Nếu bạn khơng có sẵn động Servo bỏ qua mục số Các bước thực hiện: Kéo widget D-pad Servo S1 vào, thực sau: 101 Tạo nút di chuyển điều khiển Servo Cấu hình cho kéo: ● Bạn nhấn vào kéo Servo, chọn Cài đặt cấu hình minh họa ● Bạn thay đổi tốc độ quay Servo tùy ý Bạn chọn cổng Servo với cổng dùng để cắm Servo, từ đến Cấu hình cho Servo Đưa nút nhấn vào để bật còi cảnh báo: 102 Thêm nút nhấn Bạn nhấn vào Nút nhấn chọn đổi tên thành “Còi xe” Đổi tên nút nhấn thành còi xe Cấu hình cho nút: chọn Code nhấn nút, sau viết chương trình sau: speaker.play(['C4:1'], wait=True) Sau xây dựng chương trình xong, bạn nhấn vào nút X góc trái hình để đóng Lưu ý: Trong lúc viết chương trình, bạn nhấn vào nút Chạy Dừng để kiểm tra chương trình Bạn mở chương trình lưu để sử dụng Thêm vào nút bật tắt đặt tên “Đèn xe” 103 Thêm nút bật tắt đèn Viết chương trình cho trường hợp nút bật tắt ● Chương trình nút bật: led_onboard.show(0, color=(255, 0, 0)) ● Chương trình nút tắt: led_onboard.show(0, color=(0, 0, 0)) Sau hoàn thành bảng điều khiển mới, bạn nhấn vào biểu tượng Play góc phải để chuyển sang chế độ điều khiển hình minh họa phía dưới: Giao diện bảng điều khiển Cuối cùng, tiến hành kết nối robot sử dụng bảng điều khiển vừa tạo xem có hoạt động cài đặt khơng 104 Lời cuối sách Chúc mừng bạn hoàn thành dự án tài liệu chế tạo lập trình robot với ngơn ngữ Python xController này! Chúng tơi hy vọng bạn có tảng robot lập trình Python Đây kiến thức dự án mà bạn cần thực muốn tiếp cận với lĩnh vực OhStem hiểu việc nghiên cứu sách không đủ để bạn hiểu hết chủ đề này, nữa, bạn gặp nhiều khó khăn thực hành Do đó, OhStem tạo cộng đồng thành viên kỹ thuật có đam mê robot lập trình, để trao đổi hỗ trợ trình thực hành Trong group cộng đồng có đội ngũ kỹ thuật thầy cố vấn chuyên môn nhiều kinh nghiệm, đông đảo người dùng để hỗ trợ bạn Bạn tham gia vào group tại: Cộng đồng Facebook Link: https://www.facebook.com/groups/dayvahocsteam Cộng đồng Zalo Link: https://zalo.me/g/lnlumg837 105

Ngày đăng: 04/05/2023, 19:20

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w